integration mule
TRANSCRIPT
- 1. Integration med Mule ESB
- 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. 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. 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. 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. 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. Frsta fldet Bygg och deploy: mvn clean package cp target/labb01-1.0-SNAPSHOT.zip /apps
- 8. Frsta fldet - Resultat
- 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. Exempel FIL till WS till Fil
- 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:
- 13. Transformatorer - Groovy
- 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.
- 15. Komponenter Exempel public class GroupingService implements Callable { public Object onCall(MuleEventContext eventContext) { code here return message; } }
- 16. Loggning Ifrn Java/Groovy kod funkar log4j. I flden hanteras det manuellt. Loggar ut texten angiven som message. Loggar ut textmeddelande + sjlva payloaden.
- 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.
- 18. Lite mer Anropar en extern tjnst och berikar data ifrn den.
- 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)
- 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
- 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.
- 22. Avancerat exempel: RDBE