How to extend WSO2 Carbon for your middleware needs

Post on 15-Jan-2015

1.416 views 3 download

Tags:

description

 

Transcript of How to extend WSO2 Carbon for your middleware needs

WSO2 Carbon : Effective Use of Extension points

Pradeep FernandoWSO2 Inc.

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.

Sam the Architect

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.

First Look at WSO2 Product

-Admin Console-Allows users to log-in using username/password

However...

- But the internal apps in 'Photographers R Us' have to be SSO enabled...- Is it possible at all ?

Carbon ServerAny IDP

1

2

3

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/

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) {}

Demo

source : [http://occupations.phillipmartin.info/magician_001.htm]

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.

Everything looks good, but..

- But their company has their own User-stores- Infact multiples of them...

JDBC UserStore with Own Schema

LDAP

Yes... You Can Plug UserStores

- JDBCUserStoreManager- LDAPUserStoreManager- Configure MultipleUserStores- Writing your custom user store and plug it in..

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

Node 01 Node 02

Synchronizing the Deployment Artifacts...

$CARBON_HOME/repository/deployment/server is a special directory.

Things get synchronized across the cluster..

It is tenant aware.

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..

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.

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

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

BAM Dashboard

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

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

Listeners and Builders

Transport Listener Builder

Mediation engine

ISO 8583 Message Format

Header Message Type Identifier

Primary bitmap Secondary bitmap

Data elements

- VFS- JMS- FIX- AMQP

Carbon Components

Why Writing Carbon Modules..

You get all the Carbon goodness.

- Caching (both local and distributed)- Logging- Registry capabilities.- Authentication/Authorization

Carbon Case Studies..

- All of WSO2 Products make use of Carbon kernel as their base platform- Apache Stratos make use of Carbon kernel.

Selected Customers

WSO2 engagement model

QuickStartDevelopment SupportDevelopment ServicesProduction Support

Turnkey SolutionsWSO2 Mobile Services SolutionWSO2 FIX Gateway SolutionWSO2 SAP Gateway Solution

Q&A

Thank You!!