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

How to extend WSO2 Carbon for your middleware needs

Jan 15, 2015

Download

Technology

WSO2

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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!!