How to extend WSO2 Carbon for your middleware needs


Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

How to extend WSO2 Carbon for your middleware needs

  1. 1. WSO2 Carbon : Effective Use of Extension points Pradeep Fernando WSO2 Inc.
  2. 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.
  3. 3. Sam the Architect
  4. 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. 5. First Look at WSO2 Product -Admin Console -Allows users to log-in using username/password
  6. 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. 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. 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) {}
  9. 9. Demo source : []
  10. 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. 11. Everything looks good, but.. - But their company has their own User-stores - Infact multiples of them... JDBC UserStore with Own Schema LDAP
  12. 12. Yes... You Can Plug UserStores - JDBCUserStoreManager - LDAPUserStoreManager - Configure MultipleUserStores - Writing your custom user store and plug it in..
  13. 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
  14. 14. Node 01 Node 02
  15. 15. Synchronizing the Deployment Artifacts... $CARBON_HOME/repository/deployment/serv er is a special directory. Things get synchronized across the cluster.. It is tenant aware.
  16. 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. 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. 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. 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
  20. 20. BAM Dashboard
  21. 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. 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
  23. 23. Listeners and Builders Transport Listener Builder Mediation engine
  24. 24. ISO 8583 Message Format Header Message Type Identifier Primary bitmap Secondary bitmap Data elements - VFS - JMS - FIX - AMQP
  25. 25. Carbon Components
  26. 26. Why Writing Carbon Modules.. You get all the Carbon goodness. - Caching (both local and distributed) - Logging - Registry capabilities. - Authentication/Authorization
  27. 27. Carbon Case Studies.. - All of WSO2 Products make use of Carbon kernel as their base platform - Apache Stratos make use of Carbon kernel.
  28. 28. Selected Customers
  29. 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
  30. 30. Q&A
  31. 31. Thank You!!