"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
How to extend WSO2 Carbon for your middleware needs
1. WSO2 Carbon : Effective
Use of Extension points
Pradeep Fernando
WSO2 Inc.
2. WSO2
● Founded in 2005 by acknowledged leaders in XML, Web Services
Technologies & Standards and Open Source. Primary contributors
to Apache Web Services projects started in 2001
● Producing entire middleware platform 100% open source under
Apache license
● Business model is to sell comprehensive support & maintenance
for our products
● Technology OEM’d by IBM, Progress, Software AG, Alcatel, EMC,
and CA
● Venture funded by Intel Capital and Quest Software.
● Global corporation with offices in Palo Alto, USA Portsmouth, UK &
Colombo, Sri Lanka
● 150+ employees and growing.
4. Sam the Architect
Sam is an enterprise architect work for the
company 'PhotographersRUs.'
The company operates an online photo hosting
site.
They have a growing demand in their market
niche.
They thought of adopting SOA within their IT
infrastructure.
Sam is evaluating WSO2 middleware stack.
5. First Look at WSO2 Product
-Admin Console
-Allows users to log-in using
username/password
6. However...
- But the internal apps in 'Photographers R Us'
have to be SSO enabled...
- Is it possible at all ?
Carbon Server
Any IDP
1
2
3
7. Authenticators.xml
-Allows you to configure front-end
authenticators
- and backend authenticators - what's that ?
- WSO2 servers support few authentication
mechanisms OOTB.
- It is easy to write your own one..
- Configuration file located in
$CARBON_HOME/repository/conf/secuirty/
8. The API
AbstractAuthenticator
protected String getUserNameFromRequest(MessageContext
messageContext) {}
protected void doAuthentication(String userNameInRequest, int tenantId,
MessageContext messageContext) throws AuthenticationFailureException {}
public boolean canHandle(MessageContext messageContext) {}
public boolean isAuthenticated(MessageContext msgContext) {}
10. There is a Cool Identity product by
WSO2 guys...
- Sam finds out that, WSO2 infact has an
identity product..
- It offers feature supports XACML,OAuth,etc
apart being able to act as IDP for SAML-
SSO
- Sam evaluates the product.
11. Everything looks good, but..
- But their company has their own User-stores
- Infact multiples of them...
JDBC UserStore with
Own Schema
LDAP
12. Yes... You Can Plug UserStores
- JDBCUserStoreManager
- LDAPUserStoreManager
- Configure MultipleUserStores
- Writing your custom user store and plug it in..
13. Deployers.. What are they ?
Carbon has a deployment framework to deploy
artifact types to the actual engines...
- Webapps deployer for deploying for .war files
to the Servlet container.
- Capps deployer
- DataServices deployer
16. How About Git ??
-Sam realizes that company policy doesn't
allow him to use any other version control
system other than Git.
- You can change the underneath
synchronization implementation. The default
one is SVN.
- Carbon also support WSO2 GReg based dep-
sync as well as.
- Git is in our roadmaps and almost done..
17. Monitoring ??
- The Higher Management of the
PhotographersRUs wants to monitor the IT
infrastructure for to be competitive in the
business..
- Sam wants to intercepts the messages to
WSO2 Servers.
18. Answer Is Not Straightforward, but..
- A typical Carbon server has more than one
transport
- If you are interested the servlet transport
(default ports - 9443/9763) then then we can
use 'valves'
- If the intercepting point message flow is NIO,
then ESB mediator is preferred.
- WSO2 provides data publishers for most of
the use-cases, this includes publishers for AS,
ESB , BPS,etc
19. Publishing Data ?
- Data receiver can be anything that can make
sense/process those data.
- Received data should be processed and
presented in a nice way..
- WSO2 has its own product for the exact use
case.
- WSO2 Business Activity Monitor
21. Integrating new systems
-The company 'PhotographersRUs' are
expanding their business.
-They are opening up retail stores in the
country.
- POS systems are communicating through ISO
8583 binary protocol
- However their backend systems talk XML
22. Transports and Formatters
-This is a typical Trasnsport/MessageFormat
switching scenario.
- The proper product would be, WSO2 ESB.
- Sam has to write a ISO 8583 message
builder.
- The message transport is TCP, which is
supported by ESB OOTB
26. Why Writing Carbon Modules..
You get all the Carbon goodness.
- Caching (both local and distributed)
- Logging
- Registry capabilities.
- Authentication/Authorization
27. Carbon Case Studies..
- All of WSO2 Products make use of Carbon
kernel as their base platform
- Apache Stratos make use of Carbon kernel.
29. WSO2 engagement model
QuickStart
Development Support
Development Services
Production Support
Turnkey Solutions
WSO2 Mobile Services Solution
WSO2 FIX Gateway Solution
WSO2 SAP Gateway Solution