integration mule

22
Integration med Mule ESB

Upload: hedenberg

Post on 16-Aug-2015

41 views

Category:

Software


3 download

TRANSCRIPT

  1. 1. Integration med Mule ESB
  2. 2. Outline Grunderna Enterprise Service Bus Hur man installerar och startar mule Hur man skapar projekt med Maven Ett enkelt flde Praktiskt Endpoints, Transports och Connectorer Transformationer Komponenter Avancerade Flden
  3. 3. Enterprise Service Bus En ESB r - - en central punkt dr man exponerar funktionalitet och data. Medfr: - lsare koppling mellan system - Wrappa gamla tekniker och exponera som nya - teranvndbarhet av APIer - Kan exponera data p kanoniskt format - Kan applicera skerhet etc.
  4. 4. Mule ESB Open source ESB. Finns en Enterprise variant. Byggt i Java. Bygg egna tillgg i Java. Flden skapas i XML (/XSD). Scriptbart med - Groovy - Python - Ruby - Javascript - Beanshell Transformering med XSLT. Filtreringsmjligheter etc..
  5. 5. Installera och kra http://www.mulesoft.org/download-mule-esb- community-edition Standalone r den rena servervarianten. tar xvfz mule-standalone-3.4.0.tar.gz Unzip fr Windows. cd mule-standalone-3.4.0/bin/ ./mule start tail f ../logs/*.log Startar standardprojektet under /apps/.
  6. 6. Skapa project Projekthantering med Maven mvn org.mule.tools:mule-project-archetype:create - Dinteractive=false -DartifactId=Labb01 -Ddescription="Facade for XXX" -DmuleVersion=3.3.1 -Dpackage=com/crepido/mule - Dtransports=http,vm,file -Dmodules=cxf,scripting,xml ; ( cd Labb01 ; mvn eclipse:eclipse ; mkdir -p src/main/resources ; cd src/main/resources ; mkdir mule ; mkdir xslt ) Eclipse: Import Existing Project
  7. 7. Frsta fldet Bygg och deploy: mvn clean package cp target/labb01-1.0-SNAPSHOT.zip /apps
  8. 8. Frsta fldet - Resultat
  9. 9. Endpoints: Transports och Connectors En endpoint r en kommunikationspunkt. En lyssnare, ett anrop ivg till en webservice eller lsning/skrivning ifrn/till fil. En Transport definierar protokollet fr en endpoint. Tex Fil, UDP, DB, JMS, HTTP En Connector r en anpassad transport och endpoint till ett visst API.
  10. 10. Exempel FIL till WS till Fil
  11. 11. Transformatorer Transformation av meddelanden att ndra formateringen av datan - r en naturlig del av integration, och sjlvklart ven en del av Mule ESB. Finns ett antal standardtransformatorer, tex:
  12. 13. Transformatorer - Groovy
  13. 14. Komponenter Komponenter skter funktionalitet som inte rr transformering av meddelandets innehll. Till exempel: Utkad loggning. Modifiering av meddelanden i helhet. Businesslogik. Skerhet. Implementeras i Java eller ett ngot av tidigare nmnda scriptsprk.
  14. 15. Komponenter Exempel public class GroupingService implements Callable { public Object onCall(MuleEventContext eventContext) { code here return message; } }
  15. 16. Loggning Ifrn Java/Groovy kod funkar log4j. I flden hanteras det manuellt. Loggar ut texten angiven som message. Loggar ut textmeddelande + sjlva payloaden.
  16. 17. Annat bra att veta Tillter flera inbound endpoints till ett flde. Hanterar WSDLer, tillter validering samt ger lite felhantering. Stter en session-property med data ifrn meddelandet.
  17. 18. Lite mer Anropar en extern tjnst och berikar data ifrn den.
  18. 19. Request-reply / All / Async Request-reply Mjliggr att vi gr ngot och vntar p ett anrop. All kopierar upp meddelandet och skickar ett till varje del. Async Lsgr sig som en egen trd. Correlation Stter metadata p meddelandet (jag r 1 av 3)
  19. 20. Vntar p alla meddelanden och samlar dem (krver correlation) Meddelanden blir en Lista. Kan sls ihop med en enkel java-component. for (MuleMessage m : msg.getMessagesAsArray()) { try { sb.append(m.getPayloadAsString()); } catch (Exception e) { e.printStackTrace(); } } Aggregering
  20. 21. Avancerat exempel: RDBE Ett anrop till RDBE innehller ndvndig indata till underliggande tjnster. RDBE skall anropa ett antal tjnster, samla ihop resultatet och transformera det. Sedan returneras det till anvndaren.
  21. 22. Avancerat exempel: RDBE