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
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.