Date post: | 20-May-2015 |
Category: |
Technology |
Upload: | wso2 |
View: | 1,380 times |
Download: | 2 times |
Understanding WSO2 ESB -‐ Introduc7on to ESB Architecture and
Message Flow
Shafreen Anfar So#ware Engineer
Buddhima Wijeeweera So#ware Engineer
2
About the Presenter(s)
๏ Mohamed Shafreen, Sotware Engineer from ESB team, [email protected].
๏ Buddhima Wijeweera Sotware Engineer from ESB team, [email protected].
3
About WSO2 ๏ Global enterprise, founded in 2005 by
acknowledged leaders in XML, web services technologies, standards and open source
๏ Provides only open source plaMorm-‐as-‐a-‐service for private, public and hybrid cloud deployments
๏ All WSO2 products are 100% open source and released under the Apache License Version 2.0.
๏ Is an AcSve Member of OASIS, Cloud Security Alliance, OSGi Alliance, AMQP Working Group, OpenID FoundaSon and W3C.
๏ Driven by InnovaSon
๏ Launched first open source API Management soluSon in 2012
๏ Launched App Factory in 2Q 2013
๏ Launched Enterprise Store and first open source Mobile soluSon in 4Q 2013
4
What WSO2 delivers
Agenda
๏ Background of ESB ๏ WSO2 ESB ๏ ESB FuncSonal Components ๏ Message Flows ๏ Architecture
5
Why ESB? – Modern Enterprises
• Comprised of so many Systems and Services • Built based on open standards, custom-‐built, acquired from a third party, part of a legacy system or any such combinaSon
– Integra7on
• OrganizaSons move away from monolithic systems • MulSple Systems connected via SOA as the blue print
λ Source : h^p://bonfirehealth.com/week-‐13-‐insights-‐spark-‐integraSon/
Background
If We are Not Careful…
Why ESB? SpagheB Integra7on Dilemma
• How about ? – maintainability, scalability, troubleshooSng and governance etc.
Background
ESB in AcSon
Why ESB? – ESB – The standard infrastructure to implement the SOA
Background
Enterprise Service Bus (ESB) • An ESB is a middleware soluSon that enables interoperability
among heterogeneous environments using a service-‐oriented model.
• Stateless and Seamless IntegraSon • Standard Protocols – SOAP, REST, JSON etc. • Transports – HTTP/S, JMS, TCP, VFS etc.
λ Source : h^p://graegert.com/programming/no-‐soa-‐criScism-‐somewhere
Background
• A lightweight, high performance ESB
• Feature rich and standards compliant – SOAP and WS-‐* standards – REST support – Domain specific protocol support (eg: FIX, HL7)
• User friendly and highly extensible • 100% free and open source with commercial support
WSO2 ESB
Key Features: Rou7ng
Key Features: Filtering
Key Features: Transforma7on
Key Features: Protocol Switching
Key Features: Load Balancing
Key Features: QOS
ESB FuncSonal Components • Mediators • Sequences • Endpoints • Proxy Services • REST API • Message Stores & Processors • Templates • Tasks • Local Entries • Priority Executors • Registry
Building Blocks
20
Client Service
Endpoints
Mediators
Sequences
Transports
1. The most basic message flow
Invoking Messages Flows
22
Service
Messages can be injected into sequences through the following interfaces: o Proxy Services o Main Sequence o APIs (h^p services) o Tasks
Entry Points : Proxy Services
High-level Message Flow (Programming Model)
23
Client Service
In Sequence
Out Sequence
Fault Seq.
1 2 3
6 5 4
!
<proxy name="StockQuoteProxy" > <target> <inSequence>
… <send> <endpoint key=“BankService” </send>
</inSequence>
<outSequence> <send/>
</outSequence> <faultSequence>
… </faultSequence> </target> </proxy>
Entry Points : Proxy services
2. Calling mulSple services
Invoking Service_01
Invoking Service_02
Syntax 1 (Send Mediator): <proxy name="StockQuoteProxy" > <target> <inSequence> <log/> <send receive=“NextSeq"> <endpoint key="Service_01"/> </send> </inSequence> </target> </proxy> <sequence name=“NextSeq"> <send receive=“RespondSeq"> <endpoint key="Service_02"/> </send> </sequence> <sequence name="RespondSeq"> <respond/> </sequence>
* Note: this is just the syntax
Syntax 2 (Call Mediator):
<proxy name="StockQuoteProxy" > <target> <inSequence> <call> <endpoint key="Service_01"/> </call>
<!-‐ -‐ Mediate Message -‐ -‐> <call> <endpoint key=" Service_02"/> </call> <respond/> </inSequence> </target> </proxy>
Invoking Service_01
Invoking Service_02
* Note: this is just the syntax
3. Store & Forward
Syntax:
Storing Messages
Message Store
Message Processor
<proxy name="StockQuoteProxy" > <target> <inSequence> <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> <property name="OUT_ONLY" value="true"/> <property name="target.endpoint" value="Service"/> <store messageStore=“ My_Store "/> </inSequence> </target> </proxy> <messageStore name=" My_Store "/> <messageProcessor name=“Forwarding_Processor" messageStore=" My_Store "> <parameter name="interval">20000</parameter> </messageProcessor>
* Note: this is just the syntax
4. Task
Syntax:
<task name="CheckPrice"> <property name="to" value="Service"/> <property name="soapAcSon" value="urn:getQuote"/> <property name="message"> <m0:getQuote xmlns:m0="h^p://services.samples/xsd"> <m0:request> <m0:symbol>WSO2</m0:symbol> </m0:request> </m0:getQuote> </property> <trigger interval="5000"/> </task> <in> <send/> </in> <out> <log /> </out>
Message Template Task DefiniSon
* Note: this is just the syntax
Architecture
Request
Response
Architecture
• Transports • HTTP, JMS, Mail, … etc.
• Message Builders & Message Forma^ers • For SOAP, JSON, … etc.
• Quality of Service (QoS) • Security, Thro^ling, Caching, … etc.
Thank You!
Q & A
36
Business Model
37
Call to acSon page
๏ Official website : h^p://wso2.com/products/enterprise-‐service-‐bus/
๏ DocumentaSon : h^ps://docs.wso2.com/display/ESB481/WSO2+Enterprise+Service+Bus+DocumentaSon
Contact us !