how to extend wso2 carbon for your middleware needs

31
WSO2 Carbon : Effective Use of Extension points Pradeep Fernando WSO2 Inc.

Upload: wso2

Post on 15-Jan-2015

1.415 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: How to extend WSO2 Carbon for your middleware needs

WSO2 Carbon : Effective Use of Extension points

Pradeep FernandoWSO2 Inc.

Page 2: How to extend WSO2 Carbon for your middleware needs

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.

Page 3: How to extend WSO2 Carbon for your middleware needs

Sam the Architect

Page 4: How to extend WSO2 Carbon for your middleware needs

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.

Page 5: How to extend WSO2 Carbon for your middleware needs

First Look at WSO2 Product

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

Page 6: How to extend WSO2 Carbon for your middleware needs

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

Page 7: How to extend WSO2 Carbon for your middleware needs

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/

Page 8: How to extend WSO2 Carbon for your middleware needs

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

Page 9: How to extend WSO2 Carbon for your middleware needs

Demo

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

Page 10: How to extend WSO2 Carbon for your middleware needs

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.

Page 11: How to extend WSO2 Carbon for your middleware needs

Everything looks good, but..

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

JDBC UserStore with Own Schema

LDAP

Page 12: How to extend WSO2 Carbon for your middleware needs

Yes... You Can Plug UserStores

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

Page 13: How to extend WSO2 Carbon for your middleware needs

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

Page 14: How to extend WSO2 Carbon for your middleware needs

Node 01 Node 02

Page 15: How to extend WSO2 Carbon for your middleware needs

Synchronizing the Deployment Artifacts...

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

Things get synchronized across the cluster..

It is tenant aware.

Page 16: How to extend WSO2 Carbon for your middleware needs

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

Page 17: How to extend WSO2 Carbon for your middleware needs

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.

Page 18: How to extend WSO2 Carbon for your middleware needs

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

Page 19: How to extend WSO2 Carbon for your middleware needs

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

Page 20: How to extend WSO2 Carbon for your middleware needs

BAM Dashboard

Page 21: How to extend WSO2 Carbon for your middleware needs

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

Page 22: How to extend WSO2 Carbon for your middleware needs

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

Page 23: How to extend WSO2 Carbon for your middleware needs

Listeners and Builders

Transport Listener Builder

Mediation engine

Page 24: How to extend WSO2 Carbon for your middleware needs

ISO 8583 Message Format

Header Message Type Identifier

Primary bitmap Secondary bitmap

Data elements

- VFS- JMS- FIX- AMQP

Page 25: How to extend WSO2 Carbon for your middleware needs

Carbon Components

Page 26: How to extend WSO2 Carbon for your middleware needs

Why Writing Carbon Modules..

You get all the Carbon goodness.

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

Page 27: How to extend WSO2 Carbon for your middleware needs

Carbon Case Studies..

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

Page 28: How to extend WSO2 Carbon for your middleware needs

Selected Customers

Page 29: How to extend WSO2 Carbon for your middleware needs

WSO2 engagement model

QuickStartDevelopment SupportDevelopment ServicesProduction Support

Turnkey SolutionsWSO2 Mobile Services SolutionWSO2 FIX Gateway SolutionWSO2 SAP Gateway Solution

Page 30: How to extend WSO2 Carbon for your middleware needs

Q&A

Page 31: How to extend WSO2 Carbon for your middleware needs

Thank You!!