MULE ESB
•
 MULE
 REQUIRED S/W
 MULE BUILDING BLOCKS
 SET UP IDE/SW
 DEMO EXAMPLES
•
ENTERPRISE SERVICE BUS (ESB)
EASILY PERFORM INTEGRATION OF EXISTING SYSTEMS, REGARDLESS OF
TECHNOLOGY.
SERVICE CREATION AND HOSTING — EXPOSE AND HOST REUSABLE SERVICES.
SERVICE MEDIATION- SERVICE MEDIATOR AIDS COMMUNICATION BETWEEN SYSTEM-
LEVEL SERVICE CONSUMERS AND SERVICE PROVIDERS
MESSAGE ROUTING - ROUTE, FILTER, AGGREGATE, AND RE-SEQUENCE MESSAGES
BASED ON CONTENT AND RULES.
 DATA TRANSFORMATION — EXCHANGE DATA ACROSS VARYING FORMATS AND
TRANSPORT PROTOCOLS
• COMPONENTS:
• FILTERS:
• ROUTERS:
• SCOPES
• TRANSFORMERS
• TO MAKE DECISIONS ABOUT ROUTING, FILTERING, AND OTHER COMMON
TASKS. THE LOGIC OF THESE DECISIONS OFTEN RELIES ON EVALUATING
EXPRESSIONS.
• MULE EXPRESSION LANGUAGE (MEL) IS THE PRIMARY LANGUAGE USED FOR
FORMULATING SUCH EXPRESSIONS THROUGHOUT MULE ESB.
• THE MESSAGE HEADER, WHICH CONTAINS METADATA ABOUT THE MESSAGE
• THE MESSAGE PAYLOAD, WHICH CONTAINS YOUR BUSINESS-SPECIFIC DATA.
#[message.header.get()] This expression calls the "get"
method and performs it on the
object,
#[message.payload[4]] the expression returns the value of
the 5th item in the list.
#[message.payload['type'].equals(
'XML')]
Check if param type is equals to
XML
#[message.id] This expression accesses a
particular attribute associated with
the specified context object.
#[message.payload] Returns payload.
#[2 + 2 == 4] This expression uses an operator to
perform a comparison. It evaluates
to true.
• ENDPOINTS
• AJAX: THIS ALLOWS MULE EVENTS TO BE ASYNCHRONOUSLY RECEIVED TO AND FROM
WEB.
• FILE: ALLOWS MULE APPLICATION TO READ AND WRITE INTO LOCAL FILE SYSTEM.
• HTTP: ALLOW MULE EVENTS TO BE CONNECTED WITH HTTP PROTOCOL.
• JMS: ALLOW MULE EVENTS TO READ AND SEND MESSAGE TO QUEUE WITH JMS API.
• COMMONLY USED COMPONENT
• USE A LOGGER COMPONENT TO LOG ACTIVITIES IN THE FLOW AS THEY OCCUR.
• USE AN EXPRESSION COMPONENT TO EVALUATE A PARTICULAR EXPRESSION UPON A
MESSAGE IN A FLOW.
• USE AN ECHO COMPONENT TO RETURN THE PAYLOAD OF A MESSAGE AS A CALL
RESPONSE.
• USE A FLOW REF COMPONENT TO ACCESS ANOTHER FLOW FROM WITHIN A FLOW.
• MULE MESSAGE FILTERS ARE MESSAGE PROCESSORS THAT FOLLOW THE
ENTERPRISE INTEGRATION PATTERN CALLED MESSAGE FILTER.
•
•
<FLOW NAME="FILTEREDFLOW2">
<HTTP:INBOUND-ENDPOINT HOST="LOCALHOST" PORT="8000" PATH="ORDERS"/>
<EXPRESSION-FILTER EXPRESSION="MESSAGE.INBOUNDPROPERTIES['AUTHORIZATION'] !=
NULL"/>
<COMPONENT CLASS="ORG.MY.ORDERPROCESSINGCOMPONENT" />
</FLOW>…..
• A CHOICE ROUTER IS A MESSAGE PROCESSOR THAT DECIDES WHERE TO SEND A
MESSAGE BASED ON THEIR CONTENTS.
• A CHOICE EXCEPTION STRATEGY IS A WAY OF DECIDING WHICH WAY TO ROUTE A
MESSAGE THAT MUST DEVIATE FROM THE NORMAL PROCESSING PATH. CHOICE
EXCEPTION STRATEGIES USE MEL EXPRESSIONS.
• <FLOW NAME="DOWNLOADSSORTERFLOW">
• <FILE:INBOUND-ENDPOINT PATH="/HOME/ME/DOWNLOADS" />
• <CHOICE>
• <WHEN EXPRESSION="#[MESSAGE.INBOUNDPROPERTIES['FILENAME'].ENDSWITH('.JPG']">
• <FILE:OUTBOUND-ENDPOINT PATH="/HOME/ME/PHOTOS" />
• </WHEN>
• <WHEN EXPRESSION="#[MESSAGE.INBOUNDPROPERTIES['FILENAME'].ENDSWITH('.DOC')]">
• <FILE:OUTBOUND-ENDPOINT PATH="#[/HOME/ME/DOCS" />
• </WHEN>
• <OTHERWISE>
• <FILE:OUTBOUND-ENDPOINT PATH="/HOME/ME/MISC"/>
• </OTHERWISE>
• </CHOICE>
• </FLOW>
•
• AN EXPRESSION TRANSFORMER IS A MESSAGE PROCESSOR THAT EXECUTES
EXPRESSIONS ON THE CURRENT MESSAGE. THE RESULTS OF THE EXPRESSIONS
REPLACE THE PAYLOAD.
• THIS TRANSFORMER TRANSFORMS THE MESSAGE BY APPENDING “RECEIVED !”
TO THE MESSAGE PAYLOAD.
• <EXPRESSION-TRANSFORMER EXPRESSION="#[MESSAGE.PAYLOAD +
'RECEIVED!']"/>
•
•
<LOGGER
MESSAGE="FILE RECEIVED (SIZE = #[MESSAGE.INBOUNDPROPERTIES['FILESIZE']/1024]
KB)"
LEVEL="INFO"
/>
•
•
•
•
•
•
•
• IMPORT A PROJECT INTO A MULE STUDIO CHOICE EXAMPLE.
• RIGHT CLICK ON THE PROJECT –START AS MULE PROJECT
• WATCH THE LOGS WHETHER PROJECT IS DEPLOYED SUCCESSFULLY.
• EXECUTE FOLLOWING URL TO GET XML RESPONSE
• HTTP://LOCALHOST:1001/?NAME=MULEY&AMOUNT=20000&TERM=48&SSN
=1234&TYPE=XML
• EXECUTE FOLLOWING URL TO GET DIFFERENT RESPONSE
• HTTP://LOCALHOST:1001/?NAME=MULEY&AMOUNT=20000&TERM=48&SSN
=1234&TYPE=OTHERVALUE
• START APACHE MQ
• IMPORT JMSEXAMPLE INTO MULE STUDIO, DEPLOY THE PROJECT.
• OPEN HTTP://LOCALHOST:8161/ADMIN/QUEUES.JSP . CLICK ON SEND TAB,
MESSAGE GUI WILL APPEAR, SELECT QUEUE AS QUEUE1 AND SET BODY
CONTENT EITHER 1001 OR 1002 OR 1003 FOR VALID CONTENT OR OTHER
VALUE TO SET ERROR MESSAGES .
• WATCH CONSOLE LOGS, PAYLOAD FOR EACH FLOW WILL APPEAR.
• SUCCESS MESSAGE WILL ENQUEUE IN CUSTOMERQUEUE
• ERROR MESSAGE WILL ENQUEUE IN ERRORQUEUE
Mule esb

Mule esb

  • 1.
  • 2.
  • 3.
     MULE  REQUIREDS/W  MULE BUILDING BLOCKS  SET UP IDE/SW  DEMO EXAMPLES
  • 4.
    • ENTERPRISE SERVICE BUS(ESB) EASILY PERFORM INTEGRATION OF EXISTING SYSTEMS, REGARDLESS OF TECHNOLOGY. SERVICE CREATION AND HOSTING — EXPOSE AND HOST REUSABLE SERVICES. SERVICE MEDIATION- SERVICE MEDIATOR AIDS COMMUNICATION BETWEEN SYSTEM- LEVEL SERVICE CONSUMERS AND SERVICE PROVIDERS MESSAGE ROUTING - ROUTE, FILTER, AGGREGATE, AND RE-SEQUENCE MESSAGES BASED ON CONTENT AND RULES.  DATA TRANSFORMATION — EXCHANGE DATA ACROSS VARYING FORMATS AND TRANSPORT PROTOCOLS
  • 6.
    • COMPONENTS: • FILTERS: •ROUTERS: • SCOPES • TRANSFORMERS
  • 7.
    • TO MAKEDECISIONS ABOUT ROUTING, FILTERING, AND OTHER COMMON TASKS. THE LOGIC OF THESE DECISIONS OFTEN RELIES ON EVALUATING EXPRESSIONS. • MULE EXPRESSION LANGUAGE (MEL) IS THE PRIMARY LANGUAGE USED FOR FORMULATING SUCH EXPRESSIONS THROUGHOUT MULE ESB.
  • 8.
    • THE MESSAGEHEADER, WHICH CONTAINS METADATA ABOUT THE MESSAGE • THE MESSAGE PAYLOAD, WHICH CONTAINS YOUR BUSINESS-SPECIFIC DATA.
  • 9.
    #[message.header.get()] This expressioncalls the "get" method and performs it on the object, #[message.payload[4]] the expression returns the value of the 5th item in the list. #[message.payload['type'].equals( 'XML')] Check if param type is equals to XML #[message.id] This expression accesses a particular attribute associated with the specified context object. #[message.payload] Returns payload. #[2 + 2 == 4] This expression uses an operator to perform a comparison. It evaluates to true.
  • 10.
    • ENDPOINTS • AJAX:THIS ALLOWS MULE EVENTS TO BE ASYNCHRONOUSLY RECEIVED TO AND FROM WEB. • FILE: ALLOWS MULE APPLICATION TO READ AND WRITE INTO LOCAL FILE SYSTEM. • HTTP: ALLOW MULE EVENTS TO BE CONNECTED WITH HTTP PROTOCOL. • JMS: ALLOW MULE EVENTS TO READ AND SEND MESSAGE TO QUEUE WITH JMS API.
  • 11.
    • COMMONLY USEDCOMPONENT • USE A LOGGER COMPONENT TO LOG ACTIVITIES IN THE FLOW AS THEY OCCUR. • USE AN EXPRESSION COMPONENT TO EVALUATE A PARTICULAR EXPRESSION UPON A MESSAGE IN A FLOW. • USE AN ECHO COMPONENT TO RETURN THE PAYLOAD OF A MESSAGE AS A CALL RESPONSE. • USE A FLOW REF COMPONENT TO ACCESS ANOTHER FLOW FROM WITHIN A FLOW.
  • 12.
    • MULE MESSAGEFILTERS ARE MESSAGE PROCESSORS THAT FOLLOW THE ENTERPRISE INTEGRATION PATTERN CALLED MESSAGE FILTER.
  • 13.
    • • <FLOW NAME="FILTEREDFLOW2"> <HTTP:INBOUND-ENDPOINT HOST="LOCALHOST"PORT="8000" PATH="ORDERS"/> <EXPRESSION-FILTER EXPRESSION="MESSAGE.INBOUNDPROPERTIES['AUTHORIZATION'] != NULL"/> <COMPONENT CLASS="ORG.MY.ORDERPROCESSINGCOMPONENT" /> </FLOW>…..
  • 14.
    • A CHOICEROUTER IS A MESSAGE PROCESSOR THAT DECIDES WHERE TO SEND A MESSAGE BASED ON THEIR CONTENTS. • A CHOICE EXCEPTION STRATEGY IS A WAY OF DECIDING WHICH WAY TO ROUTE A MESSAGE THAT MUST DEVIATE FROM THE NORMAL PROCESSING PATH. CHOICE EXCEPTION STRATEGIES USE MEL EXPRESSIONS.
  • 16.
    • <FLOW NAME="DOWNLOADSSORTERFLOW"> •<FILE:INBOUND-ENDPOINT PATH="/HOME/ME/DOWNLOADS" /> • <CHOICE> • <WHEN EXPRESSION="#[MESSAGE.INBOUNDPROPERTIES['FILENAME'].ENDSWITH('.JPG']"> • <FILE:OUTBOUND-ENDPOINT PATH="/HOME/ME/PHOTOS" /> • </WHEN> • <WHEN EXPRESSION="#[MESSAGE.INBOUNDPROPERTIES['FILENAME'].ENDSWITH('.DOC')]"> • <FILE:OUTBOUND-ENDPOINT PATH="#[/HOME/ME/DOCS" /> • </WHEN> • <OTHERWISE> • <FILE:OUTBOUND-ENDPOINT PATH="/HOME/ME/MISC"/> • </OTHERWISE> • </CHOICE> • </FLOW>
  • 17.
  • 18.
    • AN EXPRESSIONTRANSFORMER IS A MESSAGE PROCESSOR THAT EXECUTES EXPRESSIONS ON THE CURRENT MESSAGE. THE RESULTS OF THE EXPRESSIONS REPLACE THE PAYLOAD. • THIS TRANSFORMER TRANSFORMS THE MESSAGE BY APPENDING “RECEIVED !” TO THE MESSAGE PAYLOAD. • <EXPRESSION-TRANSFORMER EXPRESSION="#[MESSAGE.PAYLOAD + 'RECEIVED!']"/>
  • 19.
    • • <LOGGER MESSAGE="FILE RECEIVED (SIZE= #[MESSAGE.INBOUNDPROPERTIES['FILESIZE']/1024] KB)" LEVEL="INFO" />
  • 20.
  • 22.
  • 23.
  • 24.
    • IMPORT APROJECT INTO A MULE STUDIO CHOICE EXAMPLE. • RIGHT CLICK ON THE PROJECT –START AS MULE PROJECT • WATCH THE LOGS WHETHER PROJECT IS DEPLOYED SUCCESSFULLY. • EXECUTE FOLLOWING URL TO GET XML RESPONSE • HTTP://LOCALHOST:1001/?NAME=MULEY&AMOUNT=20000&TERM=48&SSN =1234&TYPE=XML • EXECUTE FOLLOWING URL TO GET DIFFERENT RESPONSE • HTTP://LOCALHOST:1001/?NAME=MULEY&AMOUNT=20000&TERM=48&SSN =1234&TYPE=OTHERVALUE
  • 26.
    • START APACHEMQ • IMPORT JMSEXAMPLE INTO MULE STUDIO, DEPLOY THE PROJECT. • OPEN HTTP://LOCALHOST:8161/ADMIN/QUEUES.JSP . CLICK ON SEND TAB, MESSAGE GUI WILL APPEAR, SELECT QUEUE AS QUEUE1 AND SET BODY CONTENT EITHER 1001 OR 1002 OR 1003 FOR VALID CONTENT OR OTHER VALUE TO SET ERROR MESSAGES . • WATCH CONSOLE LOGS, PAYLOAD FOR EACH FLOW WILL APPEAR. • SUCCESS MESSAGE WILL ENQUEUE IN CUSTOMERQUEUE • ERROR MESSAGE WILL ENQUEUE IN ERRORQUEUE