introduction to esb architecture and message flow

Post on 20-May-2015

1.386 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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,  shafreen@wso2.com.  

๏ Buddhima  Wijeweera  Sotware  Engineer  from  ESB  team,  buddhima@wso2.com.  

 

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  !  

top related