SlideShare a Scribd company logo
SOA
Agenda
• 1. Business context and problems faced
2. The idea of a service-oriented online architecture
3. How and why we selected Mule
4. Overview and examples of Mule use cases
5. Best practices and learnings
2
■ We did not Google „open source ESB“ to select Mule …
■ Instead we did a qualitative and quantitative comparison of major open source ESB
products using different criteria:
■ Primary: professional maintenance, commercial support with SLAs, licensing, performance,
operations by IT department possible
■ Secondary: documentation, code quality, activity and size of community, Spring support, sync
and async communication, supported standards, app server integration, development tools
■ Mule quickly emerged as the favored ESB product, followed by Fuse ESB and WSO2
■ Static analysis of the Mule sources (Sonar,
Structure101) showed acceptable quality
■ Modularization and project structure looks well-
thought-out and enables light-weight deployment
■ Good code quality, in spite of found violations and
partially low documentation
■ Test coverage is reasonably high to ensure correct
function in case of changes
How and why we selected Mule
Based on the proposed architecture
scenarios we could
identify the requirements on the ESB
product
3
■ Different load scenarios with constant and
increasing parallel requests (Apache JMeter)
■ Measurement of performance relevant
metrics using Software-EKG
■ Live profiling of system behavior (JProfiler)
■ All findings have been reported to MuleSoft
■ Together with MuleSoft we were able to solve
all the found issues:
■ MuleSoft supplied a working patch for the
Registry synchronization issue within 2 days
■ Other issues could simply be addressed using
the optimized configuration parameters (thread
pool settings, …) supplied to us
■ This was decisive for the confidence and the
final decision for Mule ESB
How and why we selected Mule
Intensive performance tests
uncovered several findings
(with Mule 3.1.1) …
4
Agenda
1. Business context and problems faced
2. The idea of a service-oriented online architecture
3. How and why we selected Mule
• 4. Overview and examples of Mule use cases
• 5. Best practices and learnings
5
Clustered deployment of Mule ESB as
a web application
for scalability and high availability■Requirement: Mule ESB
had to be deployed as a
Java web application to be
operated by the IT
department
■Embedding Mule into a web
app is pretty
• straight forward using the a
context listener
■Custom listener
implementation required to
customize working directory
and various other system
6Overview and examples of Mule use cases
Overview and examples of Mule use cases
Unified web service interface to
access details user
from heterogeneous data sources
7
■ Access to the endpoint is controlled
using a Spring security filter
■ Each data source has specific POJO
implementation or private flow
■ Choice is based on payload using a
Groovy evaluator
■ Only minor Java code required
■ Web service interface and types
■ Custom transformers
■ Choice uses CXF operation header
■ XSLT to transform XML/RPC to
JAXB XML structure
Overview and examples of Mule use cases
Web service to XML/RPC service
adapter to access the
BZST service for simple and qualified
VAT checks
8
■ Web service interface and types defined as
POJI and POJOs with JAX-WS annotations
■ The service component only performs
validation and preprocessing of request
Overview and examples of Mule use cases
Web service to email service adapter
to send support
requests to a ticketing backend
system
9
■ The actual sending using an SMTP
connector is performed asynchronous
■ Custom transformer uses Velocity to
convert request object to email body
Agenda
1. Business context and problems faced
2. The idea of a service-oriented online architecture
3. How and why we selected Mule
4. Overview and examples of Mule use cases
• 5. Best practices and learnings
10
■ Mule provides several built-in components
to test Mule XML and flow definitions
■ The MuleFunctionalTest allowed us to test
our flows within the IDE
■ No deployment to a standalone instance
required, thus reducing turn-around times
■ The MuleClient is not really intuitive to use
■ Smart combination of SoapUI test cases
together with mock services allowed 100%
local and off-site development
■ Learning: develop as much as possible as
POJOs and use „traditional“ unit testing
■ Learning: take the time to write a good
mock for the service you are integrating
Best practices and learnings
Test driven development using
MuleFunctionalTests,
SoapUI tests and mock services
11
■ „The Leanest, Meanest ESB: Mule ESB is the world's most efficient Enterprise
Service Bus” (http://www.mulesoft.com/mule-esb-small-footprint)
■ We went well below the mentioned figures by building a custom Mule distribution
tuned and optimized for our specific use cases
■ Based on the default distribution assembly XML found in the Mule community
sources, we
1. got rid of everything not required in production, mainly docs and examples, but also not
required Tanuki EXE wrapper binaries, etc.pp.;
2. selected only the required Mule modules and transports our uses cases really required, this
reduced the amount of 3rd party libs significantly;
3. used Maven dependency management to have full control of all used 3rd party libraries,
used more recent versions where possible (e.g. Spring, CXF, Saxon)
4. added our Mule apps and their dependencies, then repackaged
■ Thorough load tests lead to optimized JVM parameters and high performance:
-Xmx=128m -Xms=128m -XX:MaxPermSize=64m -XX:NewRatio=2 -XX:SurvivorRatio=12 -XX:+UseParallelGC
-XX:+UseParallelOldGC
Best practices and learnings
Building a custom Mule distribution for
100% control of
all dependencies and optimal
performance
12
96 MB
30 MB
37 MB
■ A migration of the whole infrastructure in one go would
have been impossible; the system needs to be
available around the clock
■ Instead a staged migration of the infrastructure
components and applications has been used:
■ Phase 1: Migration of all online servers, application by
application, introduction of the primary ESB with first
required services
■ Phase 2: Integration of a new online portal, operated in
parallel to the old portal infrastructure
■ Phase 3: Migration of all „legacy“ portals to access the new
online infrastructure components
■ After each phase the behavior of the new components
was monitored closely to detect any problems in
production
■ The services and backend systems integrated by the
primary ESB instance constantly grew (I might still be
growing in next phases)
Best practices and learnings
No big bang: start small and migrate
in several phases
13

More Related Content

What's hot

Mule esb mule message
Mule esb   mule messageMule esb   mule message
Mule esb mule message
sathyaraj Anand
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
Praneethchampion
 
Mule esb
Mule esbMule esb
Mule esb
Naresh Naidu
 
Scatter gather flow in mule
Scatter gather flow in muleScatter gather flow in mule
Scatter gather flow in mule
Praneethchampion
 
Mule Amazon SNS Connector
Mule Amazon SNS ConnectorMule Amazon SNS Connector
Mule Amazon SNS Connector
Ankush Sharma
 
Mule esb handling errors
Mule esb handling errorsMule esb handling errors
Mule esb handling errors
Naresh Naidu
 
Mule esb made system integration easy
Mule esb made system integration easyMule esb made system integration easy
Mule esb made system integration easy
Sudha Ch
 
Mule with stored procedure
Mule with stored procedureMule with stored procedure
Mule with stored procedure
mdfkhan625
 
Mule soa
Mule soaMule soa
Mule soa
D.Rajesh Kumar
 
Mule ESB Fundamentals
Mule ESB FundamentalsMule ESB Fundamentals
Mule ESB Fundamentals
Naresh Chintalcheru
 
Mule esb overview
Mule esb overviewMule esb overview
Mule esb overview
Swami Satish
 
Using spring task scheduler in java in mule
Using spring task scheduler in java in muleUsing spring task scheduler in java in mule
Using spring task scheduler in java in mule
Anirban Sen Chowdhary
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
kishore ippili
 
Mule: Java Component
Mule: Java ComponentMule: Java Component
Mule: Java Component
Sulthony Hartanto
 
What is the difference between using private flow
What is the difference between using private flowWhat is the difference between using private flow
What is the difference between using private flow
Son Nguyen
 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginners
Sindhu VL
 
Mule ESB
Mule ESBMule ESB
Mule ESBniravn
 
Cloudhub fabric
Cloudhub fabricCloudhub fabric
Cloudhub fabric
Shanky Gupta
 
Scatter gather in mule
Scatter gather in muleScatter gather in mule
Scatter gather in mule
Anirban Sen Chowdhary
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Srikanth N
 

What's hot (20)

Mule esb mule message
Mule esb   mule messageMule esb   mule message
Mule esb mule message
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
 
Mule esb
Mule esbMule esb
Mule esb
 
Scatter gather flow in mule
Scatter gather flow in muleScatter gather flow in mule
Scatter gather flow in mule
 
Mule Amazon SNS Connector
Mule Amazon SNS ConnectorMule Amazon SNS Connector
Mule Amazon SNS Connector
 
Mule esb handling errors
Mule esb handling errorsMule esb handling errors
Mule esb handling errors
 
Mule esb made system integration easy
Mule esb made system integration easyMule esb made system integration easy
Mule esb made system integration easy
 
Mule with stored procedure
Mule with stored procedureMule with stored procedure
Mule with stored procedure
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule ESB Fundamentals
Mule ESB FundamentalsMule ESB Fundamentals
Mule ESB Fundamentals
 
Mule esb overview
Mule esb overviewMule esb overview
Mule esb overview
 
Using spring task scheduler in java in mule
Using spring task scheduler in java in muleUsing spring task scheduler in java in mule
Using spring task scheduler in java in mule
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Mule: Java Component
Mule: Java ComponentMule: Java Component
Mule: Java Component
 
What is the difference between using private flow
What is the difference between using private flowWhat is the difference between using private flow
What is the difference between using private flow
 
Mule esb for beginners
Mule esb for beginnersMule esb for beginners
Mule esb for beginners
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
Cloudhub fabric
Cloudhub fabricCloudhub fabric
Cloudhub fabric
 
Scatter gather in mule
Scatter gather in muleScatter gather in mule
Scatter gather in mule
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2
 

Viewers also liked

healthcare toolkit
healthcare toolkithealthcare toolkit
healthcare toolkit
himajareddys
 
API Layer
API LayerAPI Layer
API Layer
himajareddys
 
Netsuite open air connector
Netsuite open air connectorNetsuite open air connector
Netsuite open air connector
himajareddys
 
Cloud hub application
Cloud hub applicationCloud hub application
Cloud hub application
himajareddys
 
Batch processing
Batch processingBatch processing
Batch processing
himajareddys
 
Cloudhub application
Cloudhub applicationCloudhub application
Cloudhub application
himajareddys
 
Cloud hub console overview
Cloud hub console overviewCloud hub console overview
Cloud hub console overview
himajareddys
 
Security authorization using spring security
Security   authorization using spring securitySecurity   authorization using spring security
Security authorization using spring security
himajareddys
 
SEcurity ldap for spring security
SEcurity   ldap for spring securitySEcurity   ldap for spring security
SEcurity ldap for spring security
himajareddys
 
Security spring security manager
Security   spring security managerSecurity   spring security manager
Security spring security manager
himajareddys
 
Cloud hub
Cloud hubCloud hub
Cloud hub
himajareddys
 
cloud hub console overview
cloud hub console overviewcloud hub console overview
cloud hub console overview
himajareddys
 
Xml transformation
Xml transformationXml transformation
Xml transformation
himajareddys
 
Oracle connectors
Oracle connectorsOracle connectors
Oracle connectors
himajareddys
 
Data weave
Data weaveData weave
Data weave
himajareddys
 
Connector for ibm® as400
Connector for ibm® as400Connector for ibm® as400
Connector for ibm® as400
himajareddys
 
Deploying a cloud hub application
Deploying a cloud hub applicationDeploying a cloud hub application
Deploying a cloud hub application
himajareddys
 
Connectors for Marketing
Connectors for MarketingConnectors for Marketing
Connectors for Marketing
himajareddys
 
Deploying a cloud hub application
Deploying a cloud hub applicationDeploying a cloud hub application
Deploying a cloud hub application
himajareddys
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategies
himajareddys
 

Viewers also liked (20)

healthcare toolkit
healthcare toolkithealthcare toolkit
healthcare toolkit
 
API Layer
API LayerAPI Layer
API Layer
 
Netsuite open air connector
Netsuite open air connectorNetsuite open air connector
Netsuite open air connector
 
Cloud hub application
Cloud hub applicationCloud hub application
Cloud hub application
 
Batch processing
Batch processingBatch processing
Batch processing
 
Cloudhub application
Cloudhub applicationCloudhub application
Cloudhub application
 
Cloud hub console overview
Cloud hub console overviewCloud hub console overview
Cloud hub console overview
 
Security authorization using spring security
Security   authorization using spring securitySecurity   authorization using spring security
Security authorization using spring security
 
SEcurity ldap for spring security
SEcurity   ldap for spring securitySEcurity   ldap for spring security
SEcurity ldap for spring security
 
Security spring security manager
Security   spring security managerSecurity   spring security manager
Security spring security manager
 
Cloud hub
Cloud hubCloud hub
Cloud hub
 
cloud hub console overview
cloud hub console overviewcloud hub console overview
cloud hub console overview
 
Xml transformation
Xml transformationXml transformation
Xml transformation
 
Oracle connectors
Oracle connectorsOracle connectors
Oracle connectors
 
Data weave
Data weaveData weave
Data weave
 
Connector for ibm® as400
Connector for ibm® as400Connector for ibm® as400
Connector for ibm® as400
 
Deploying a cloud hub application
Deploying a cloud hub applicationDeploying a cloud hub application
Deploying a cloud hub application
 
Connectors for Marketing
Connectors for MarketingConnectors for Marketing
Connectors for Marketing
 
Deploying a cloud hub application
Deploying a cloud hub applicationDeploying a cloud hub application
Deploying a cloud hub application
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategies
 

Similar to Soa

Mule soa
Mule soaMule soa
Mule soa
Khasim Saheb
 
Mule soa
Mule soaMule soa
Mule soa
Anand kalla
 
Mule soa
Mule soaMule soa
Mule soa
Mule soaMule soa
Mule soa
Phaniu
 
Mule soa
Mule soaMule soa
Mule soa
Mule soaMule soa
Mule soa
irfan1008
 
Mule soa
Mule soaMule soa
Mule soa
Son Nguyen
 
Service oriented online architecture using mule
Service oriented online architecture using muleService oriented online architecture using mule
Service oriented online architecture using mule
mdfkhan625
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
Sonic leigh
 
Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup
Rajesh Maheshwari
 
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideMuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
Manish Kumar Yadav
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
Julian Douch
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Richard Langlois P. Eng.
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
David Currie
 
Sprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime FabricSprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime Fabric
AaronLieberman5
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Jack-Junjie Cai
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
Paria Heidari
 
Sprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime FabricSprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime Fabric
AaronLieberman5
 
Srilekha mule esb
Srilekha mule esbSrilekha mule esb
Srilekha mule esb
srilekha2820
 
ESB Online Training Part 2
ESB Online Training Part 2ESB Online Training Part 2
ESB Online Training Part 2
Vince Soliza
 

Similar to Soa (20)

Mule soa
Mule soaMule soa
Mule soa
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule soa
Mule soaMule soa
Mule soa
 
Service oriented online architecture using mule
Service oriented online architecture using muleService oriented online architecture using mule
Service oriented online architecture using mule
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup Ahmedabad MuleSoft 3rd Meetup
Ahmedabad MuleSoft 3rd Meetup
 
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation SlideMuleSoft Meetup Mumbai Mule 4 Presentation Slide
MuleSoft Meetup Mumbai Mule 4 Presentation Slide
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
 
Sprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime FabricSprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime Fabric
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
Sprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime FabricSprinting with Anypoint Runtime Fabric
Sprinting with Anypoint Runtime Fabric
 
Srilekha mule esb
Srilekha mule esbSrilekha mule esb
Srilekha mule esb
 
ESB Online Training Part 2
ESB Online Training Part 2ESB Online Training Part 2
ESB Online Training Part 2
 

More from himajareddys

Domain in mule
Domain in muleDomain in mule
Domain in mule
himajareddys
 
Exception handling basics in mule
Exception handling basics in muleException handling basics in mule
Exception handling basics in mule
himajareddys
 
Mule integration patterns
Mule    integration patternsMule    integration patterns
Mule integration patterns
himajareddys
 
Design considerations in MULE ESB
Design considerations in MULE ESBDesign considerations in MULE ESB
Design considerations in MULE ESB
himajareddys
 
Mule architecture styles
Mule architecture stylesMule architecture styles
Mule architecture styles
himajareddys
 
Integration patterns in muleesb
Integration patterns in muleesbIntegration patterns in muleesb
Integration patterns in muleesb
himajareddys
 
Security components in mule esb
Security components in mule esbSecurity components in mule esb
Security components in mule esb
himajareddys
 
Cloudhub
CloudhubCloudhub
Cloudhub
himajareddys
 
Anypoint platform highlights
Anypoint platform highlightsAnypoint platform highlights
Anypoint platform highlights
himajareddys
 
Mule 3.4 features
Mule 3.4 featuresMule 3.4 features
Mule 3.4 features
himajareddys
 
Mule esb 3.8
Mule esb 3.8Mule esb 3.8
Mule esb 3.8
himajareddys
 
Mule soa
Mule soaMule soa
Mule soa
himajareddys
 
Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400
himajareddys
 
Mule addcontactsintosalesforce
Mule addcontactsintosalesforceMule addcontactsintosalesforce
Mule addcontactsintosalesforce
himajareddys
 
Mule anypointconnector dev kit
Mule anypointconnector dev kitMule anypointconnector dev kit
Mule anypointconnector dev kit
himajareddys
 
Dataweavewithflowreflookup
DataweavewithflowreflookupDataweavewithflowreflookup
Dataweavewithflowreflookup
himajareddys
 
Mule anypointenterprisesecurity
Mule anypointenterprisesecurityMule anypointenterprisesecurity
Mule anypointenterprisesecurity
himajareddys
 
Enterprise resources and mule
Enterprise resources and muleEnterprise resources and mule
Enterprise resources and mule
himajareddys
 
Multi saas integrations
Multi saas integrationsMulti saas integrations
Multi saas integrations
himajareddys
 
Mule any pointstudio
Mule any pointstudioMule any pointstudio
Mule any pointstudio
himajareddys
 

More from himajareddys (20)

Domain in mule
Domain in muleDomain in mule
Domain in mule
 
Exception handling basics in mule
Exception handling basics in muleException handling basics in mule
Exception handling basics in mule
 
Mule integration patterns
Mule    integration patternsMule    integration patterns
Mule integration patterns
 
Design considerations in MULE ESB
Design considerations in MULE ESBDesign considerations in MULE ESB
Design considerations in MULE ESB
 
Mule architecture styles
Mule architecture stylesMule architecture styles
Mule architecture styles
 
Integration patterns in muleesb
Integration patterns in muleesbIntegration patterns in muleesb
Integration patterns in muleesb
 
Security components in mule esb
Security components in mule esbSecurity components in mule esb
Security components in mule esb
 
Cloudhub
CloudhubCloudhub
Cloudhub
 
Anypoint platform highlights
Anypoint platform highlightsAnypoint platform highlights
Anypoint platform highlights
 
Mule 3.4 features
Mule 3.4 featuresMule 3.4 features
Mule 3.4 features
 
Mule esb 3.8
Mule esb 3.8Mule esb 3.8
Mule esb 3.8
 
Mule soa
Mule soaMule soa
Mule soa
 
Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400Anypoint connectorfor ibm as 400
Anypoint connectorfor ibm as 400
 
Mule addcontactsintosalesforce
Mule addcontactsintosalesforceMule addcontactsintosalesforce
Mule addcontactsintosalesforce
 
Mule anypointconnector dev kit
Mule anypointconnector dev kitMule anypointconnector dev kit
Mule anypointconnector dev kit
 
Dataweavewithflowreflookup
DataweavewithflowreflookupDataweavewithflowreflookup
Dataweavewithflowreflookup
 
Mule anypointenterprisesecurity
Mule anypointenterprisesecurityMule anypointenterprisesecurity
Mule anypointenterprisesecurity
 
Enterprise resources and mule
Enterprise resources and muleEnterprise resources and mule
Enterprise resources and mule
 
Multi saas integrations
Multi saas integrationsMulti saas integrations
Multi saas integrations
 
Mule any pointstudio
Mule any pointstudioMule any pointstudio
Mule any pointstudio
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 

Soa

  • 1. SOA
  • 2. Agenda • 1. Business context and problems faced 2. The idea of a service-oriented online architecture 3. How and why we selected Mule 4. Overview and examples of Mule use cases 5. Best practices and learnings 2
  • 3. ■ We did not Google „open source ESB“ to select Mule … ■ Instead we did a qualitative and quantitative comparison of major open source ESB products using different criteria: ■ Primary: professional maintenance, commercial support with SLAs, licensing, performance, operations by IT department possible ■ Secondary: documentation, code quality, activity and size of community, Spring support, sync and async communication, supported standards, app server integration, development tools ■ Mule quickly emerged as the favored ESB product, followed by Fuse ESB and WSO2 ■ Static analysis of the Mule sources (Sonar, Structure101) showed acceptable quality ■ Modularization and project structure looks well- thought-out and enables light-weight deployment ■ Good code quality, in spite of found violations and partially low documentation ■ Test coverage is reasonably high to ensure correct function in case of changes How and why we selected Mule Based on the proposed architecture scenarios we could identify the requirements on the ESB product 3
  • 4. ■ Different load scenarios with constant and increasing parallel requests (Apache JMeter) ■ Measurement of performance relevant metrics using Software-EKG ■ Live profiling of system behavior (JProfiler) ■ All findings have been reported to MuleSoft ■ Together with MuleSoft we were able to solve all the found issues: ■ MuleSoft supplied a working patch for the Registry synchronization issue within 2 days ■ Other issues could simply be addressed using the optimized configuration parameters (thread pool settings, …) supplied to us ■ This was decisive for the confidence and the final decision for Mule ESB How and why we selected Mule Intensive performance tests uncovered several findings (with Mule 3.1.1) … 4
  • 5. Agenda 1. Business context and problems faced 2. The idea of a service-oriented online architecture 3. How and why we selected Mule • 4. Overview and examples of Mule use cases • 5. Best practices and learnings 5
  • 6. Clustered deployment of Mule ESB as a web application for scalability and high availability■Requirement: Mule ESB had to be deployed as a Java web application to be operated by the IT department ■Embedding Mule into a web app is pretty • straight forward using the a context listener ■Custom listener implementation required to customize working directory and various other system 6Overview and examples of Mule use cases
  • 7. Overview and examples of Mule use cases Unified web service interface to access details user from heterogeneous data sources 7 ■ Access to the endpoint is controlled using a Spring security filter ■ Each data source has specific POJO implementation or private flow ■ Choice is based on payload using a Groovy evaluator
  • 8. ■ Only minor Java code required ■ Web service interface and types ■ Custom transformers ■ Choice uses CXF operation header ■ XSLT to transform XML/RPC to JAXB XML structure Overview and examples of Mule use cases Web service to XML/RPC service adapter to access the BZST service for simple and qualified VAT checks 8
  • 9. ■ Web service interface and types defined as POJI and POJOs with JAX-WS annotations ■ The service component only performs validation and preprocessing of request Overview and examples of Mule use cases Web service to email service adapter to send support requests to a ticketing backend system 9 ■ The actual sending using an SMTP connector is performed asynchronous ■ Custom transformer uses Velocity to convert request object to email body
  • 10. Agenda 1. Business context and problems faced 2. The idea of a service-oriented online architecture 3. How and why we selected Mule 4. Overview and examples of Mule use cases • 5. Best practices and learnings 10
  • 11. ■ Mule provides several built-in components to test Mule XML and flow definitions ■ The MuleFunctionalTest allowed us to test our flows within the IDE ■ No deployment to a standalone instance required, thus reducing turn-around times ■ The MuleClient is not really intuitive to use ■ Smart combination of SoapUI test cases together with mock services allowed 100% local and off-site development ■ Learning: develop as much as possible as POJOs and use „traditional“ unit testing ■ Learning: take the time to write a good mock for the service you are integrating Best practices and learnings Test driven development using MuleFunctionalTests, SoapUI tests and mock services 11
  • 12. ■ „The Leanest, Meanest ESB: Mule ESB is the world's most efficient Enterprise Service Bus” (http://www.mulesoft.com/mule-esb-small-footprint) ■ We went well below the mentioned figures by building a custom Mule distribution tuned and optimized for our specific use cases ■ Based on the default distribution assembly XML found in the Mule community sources, we 1. got rid of everything not required in production, mainly docs and examples, but also not required Tanuki EXE wrapper binaries, etc.pp.; 2. selected only the required Mule modules and transports our uses cases really required, this reduced the amount of 3rd party libs significantly; 3. used Maven dependency management to have full control of all used 3rd party libraries, used more recent versions where possible (e.g. Spring, CXF, Saxon) 4. added our Mule apps and their dependencies, then repackaged ■ Thorough load tests lead to optimized JVM parameters and high performance: -Xmx=128m -Xms=128m -XX:MaxPermSize=64m -XX:NewRatio=2 -XX:SurvivorRatio=12 -XX:+UseParallelGC -XX:+UseParallelOldGC Best practices and learnings Building a custom Mule distribution for 100% control of all dependencies and optimal performance 12 96 MB 30 MB 37 MB
  • 13. ■ A migration of the whole infrastructure in one go would have been impossible; the system needs to be available around the clock ■ Instead a staged migration of the infrastructure components and applications has been used: ■ Phase 1: Migration of all online servers, application by application, introduction of the primary ESB with first required services ■ Phase 2: Integration of a new online portal, operated in parallel to the old portal infrastructure ■ Phase 3: Migration of all „legacy“ portals to access the new online infrastructure components ■ After each phase the behavior of the new components was monitored closely to detect any problems in production ■ The services and backend systems integrated by the primary ESB instance constantly grew (I might still be growing in next phases) Best practices and learnings No big bang: start small and migrate in several phases 13