Introduction to SOI-ToolkitSimplify development of open source based integrations and services
Magnus Larsson| [email protected]
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Background
• Increasing interest for open source based integrations and services
– Specifically based on Mule ESB
– For details on Mule ESB see:
– CADEC 2009: SOA and Open Source
– CADEC 2010: Replacing a commercial integration platform with an open source ESB
• Experience from many projects indicates need for an initial establishment phase
– Very much in common for most projects
2
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Things to consider…Before or during development (of in worst case afterwards…)
• Code structures and component model
• Dependency management
• Testing (unit and integration tests)
• Property files for environment specific configuration
• Logging, what to log, when and how
• Software configuration, build, release and deploy management
• Various OSS needs to be glued together
• Catalog of standard high level patterns
Common problems should be given a common solution!
3
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Result
• SOI-Toolkit was born…
– A toolkit for Service Oriented Integration
– Codebase from Volvofinans Bank AB
– Initiated in September and first release during October 2010
– Apache 2.0 license (business friendly)
– http://soi-toolkit.org
• Vision
– Simplify development of open source based integrations and services
– Support all software lifecycle phases of an integration or service
– Initial development, test, operations and maintenance
4
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
SOI-Toolkit - Building Blocks
55
Components
Select
Implement
and Test
Deliverintegrations
and services
integrations and
services
Deployed Integrations and Services
Pattern Catalog
Pattern basedcode generator
Reference Apps Monitor and Trace
Business Demands on
Integrations and ServicesEA and IT Gov. Strategies
Policies and Recommendations
Maintenance
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Supporting all lifecycle phases of a service
6
Enhance code and
rerun tests
Deploy to test
Test with other
systems
Deploy to production
Operations
Select pattern
Generate skeleton
code
Run generated
tests
Maintenance
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Sample high-level Patterns
7
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Pattern based Code Generator Eclipse plugin
8
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Pattern based Code Generator
• Generates
– Code structures
– Maven build files
– Services
– Tests
– Test consumers and test producers
– Logging
– Property files
– Deployable files
• Developer can focus on developing integrations and services using standard Mule functionality!
9
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
TestingHow to test large and complex integrations and services?
10
?
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
TestingMule ESB uses Spring, Maven, Eclipse and jUnit to support local automated unit testing of integrations and services!
11
!Infrastruktur-
komponenter
exekverar
inbäddat
i testerna
Ingen infrastruktur att installera
- Allt som behövs laddas ner av Maven
(med undantag för ftp och sftp server…)
Ingen deploy-fil att skapa…
- Alla tester kör direkt inne i Eclipse
Ingen deploy behöver göras…
- All infrastruktur är inbäddad i Eclipse
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Testing• Integration tests
– PROBLEM: Very often all systems are not ready for test…
12
?
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Testing• SOLUTION: Deploy test-producers (test-stubs)
for affected systems in Mule ESB
– Deploy as separate war-file
13
!
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Tutorial overview-
Demo time!
14
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Tutorial/Demo – SOI Toolkit Ref AppLogical view
15
Dealer system
Order systemShipping system
Mail system
Dealer admin
shippingRequest
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Tutorial/Demo – SOI Toolkit Ref AppPhysical view
16
Dealer system
Order system
Shipping system
Mail system
Dealer admin
Shipping-
Request
ESB (Mule)
Local file adapter (Mule)
Shipping-
Request
JMS + XML
File + XML
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Tutorial/Demo – SOI Toolkit Ref AppTechnical overview
17
Name Transports Transformation Quality of Service
CreateOrder(Dealer Order)
Sync SOAPAsynch JMS
XML CSV • Idempotent Receiver,eliminating duplicate requests.
ShippingRequest(Order Shipping)
JMS File None (XML) • JMS Retry + max retries DLQ.• Self healing connection.• Mule acts as a local file-adapter.
OrderConfirmation(Order Dealer)
JDBC SMTP DB Mime with attachment
• Resend of mail.• Self healing connection.
Dealer system
Order system Shipping system
Mail system
Dealer admin
shippingRequest
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppPhysical view
18
Dealer system
Order system
Shipping system
Mail system
Dealer adminShipping-
RequestESB
Local
file adapter
Shipping-
Request
JMS + XML
File + XML
BAM (Esper)
BPM (JBoss jBPM)
Order admin
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppsoapUI instead of a Dealer web-app…
19
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppBPM – Process Orchestration with Mule ESB + JBoss jBPM
20
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppBPM – Process decides that Order Admin needs to review an Order
21
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppMail as Order Confirmation
22
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppBAM – Business Activity Monitoring with Esper + Grails
23
BAM BILD
No Order Admin involved…
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppBAM – Business Activity Monitoring with Esper + Grails
24
Order Admin Approves the Order
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref App
25
BAM BILD
BAM – Business Activity Monitoring with Esper + Grails
Order Admin Cancel the Order
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Extended Demo – SOI Toolkit Ref AppBAM – Business Activity Monitoring with Esper + Grails
26
Order Admin is away…
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
You have seen the following in action…
27
Business
Systems
Core
Services
COTS Legacy
Composite
Services
Business Process
Management
Business
Systems Portals Web Apps
Inhouse
Service
Consumers Managem
ent &
Monito
ring
CE
P -
BA
M
Mule ESB
Apache CXF & Active MQ
JBoss jBPM
Esper
Grails
(Tracer)
SOI - Toolkit
Smooks
© 2011 Callista Enterprise | www.callistaenterprise.seCADEC 2011, Introduction to SOI-Toolkit
Want to know more?Visit http://soi-toolkit.org!
28