SlideShare a Scribd company logo
THIS PRESENTATION AND THE INFORMATION IN IT ARE PROVIDED IN CONFIDENCE, AND MAY NOT BE DISCLOSED TO ANY THIRD PARTY OR USED FOR ANY OTHER PURPOSE
WITHOUT THE EXPRESS WRITTEN PERMISSION OF ADROITLOGIC LANKA PRIVATE LIMITED.
1
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
2
Key Concepts
• Transport
- Provides several asynchronous and synchronous transports - almost all the well-known transport protocols
are supported
• Proxy Service
- Main unit of deployment
• Mediation Sequence
- Definition of actions to invoke during mediation
- Re-usable and similar to methods
• External Endpoint
- Defines an external service or endpoint and options to use when communicating with it
• Deployment unit
- An entity which facilitates user deployable artifacts such as proxy services, sequences and endpoints to be
grouped into a single entity
3
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
4
Endpoints and Addresses
• Endpoint is a remote service endpoint to ESB which contains one or more
addresses
- Different address types
‣ URL - absolute URL of the endpoint
‣ Prefix - when the absolute destination for a message depends on some URL prefix + a trailing section of the
incoming URL. Mostly used while exposing REST services
‣ Response - used to send a response over the incoming message channel (e.g. HTTP)
‣ Echo - inject the message to the out sequence as a response message for the proxy service
‣ Default - used to send to dynamic endpoint addresses; for example if the destination address is picked up from
a database, registry or even another service etc.
• In-Destination and out-Destination
- Specify default endpoints for incoming and outgoing messages
• A sequence can route the message to a selected endpoint
5
Endpoints and Addresses - cont.
• Endpoints supports load balancing and failover
• Different types of endpoints
- Single Endpoints
- Round-Robin Endpoints without Fail-Over
- Round-Robin Endpoints with Fail-Over
- Fail-Over only Endpoint
- Weighted Endpoint without Fail-Over
- Weighted Endpoint with Fail-Over
- Random Endpoint without Fail-Over
- Random Endpoint with Fail-Over
6
Endpoints and Addresses - cont.
7
• Using specific transport sender for endpoint address
- Transport sender for a given endpoint address will be selected based on the transport
protocol
- If there are multiple transport senders for a given protocol, one sender will be selected
randomly
- This selection can be configured by adding the sender id to the address value
<u:endpoint id="sender-1-ep">

<u:address>{http-sender-1}http://localhost:9000/service/SimpleStockQuoteService</u:address>

</u:endpoint>



<u:endpoint id="sender-2-ep">

<u:address>{http-sender-2}http://localhost:9000/service/SimpleStockQuoteService</u:address>

</u:endpoint>



Endpoints and Addresses - cont.
8
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
9
Deployment Units
• Units of functionality which facilitate user deployable artifacts such as proxy services,
sequences, transports and endpoints to be grouped into a single entity
• Deployable either as,
- archives with .dua extension
- exploded deployment units with a directory structure
• Main configuration file is ultra-unit.xml
• Dynamically update/ deploy without downtime
- hot update for an existing DU without downtime for message processing
10
Deployment Units - Configuration and Class Scope
• Artifact configurations such as sequences and endpoints are locally
scoped within the deployment units.
- ensures a given deployment unit is self contained and can be easily updated/
reloaded
• Libraries or classes placed into the deployment units lib or classes
directory are also loaded at the local scope of the deployment unit
- allows one to use 2 different versions of the same library within 2 deployment units
11
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
12
Mediation Support APIs
• UltraESB contains in-built mediation support APIs for utility functionalities
- XMLSupport - for DOM based mediation
- JSONSupport - for JSON based mediation
- HTTPSupport - HTTP/S transport related mediation support
- and MetricsSupport, JAXBSupport, EmailSupport, AlertSupport, etc.
• Support APIs can be accessed as,
mediation.getXMLSupport().extractAsStringUsingXPath()
• Custom support APIs can be written to expose a custom reusable utility
functionality
13
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
14
Error Handling
• Handle errors as close as possible to its occurrence
• Best to use try-catch-finally and standard exception handling
- Feel free to define checked / runtime execptions specific to use cases
- Use a sequence error handler, only as a last resort for unhandled exceptions - when you
don’t have control to handle an exception with try-catch block
‣ handling asynchronous exceptions
try {

mediation.getXMLSupport().validate(msg, ...);

} catch (Exception e) {

if (logger.isTraceEnabled()) {

logger.trace("Format 2 failed schema validation : {}n{}",

e.getMessage(), mediation.readFullPayloadAsString(clone));

}

logger.error(FILTERING_VAL_ERROR, 'W', "Filtered XML failed schema validation for
Format 2 : {}", e.getMessage());
}
15
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
16
Interceptors
• 3 Types of interceptors
- Message Interceptors
- Artifact Interceptors
- Server Interceptors
• Annotation driven, zero configuration
• Multiple levels of interceptions
• Synchronous
17
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
18
Configuration Externalization
• Externalize configurable parameters to an external property file
• Secure parameter values with encryption
- Define string encryptor in ultra-root.xml file
- Define property placeholders in ultra-*.xml configuration files which have
externalized properties
19
Configuration Externalization - cont.
• In ultra-root.xml, string encryptor should be configured with the required encryption configuration
<bean name="stringEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">

<property name="config">

<bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">

<property name="algorithm" value="PBEWITHSHA256AND256BITAES-CBC-BC"/>

<property name="passwordEnvName" value="APP_PASSWORD"/>

<property name="providerClassName" value="org.bouncycastle.jce.provider.BouncyCastleProvider"/>

<property name="providerName" value="BC"/>

</bean>

</property>

</bean>

• Add encryptable property placeholder configurer for encrypted properties in root level configuration files (ultra-root.xml, ultra-custom.xml
etc.)
<bean id="root-secure-property-configurer" class="org.adroitlogic.ultraesb.core.helper.EncryptablePropertyPlaceholderConfigurer">

<constructor-arg ref="stringEncryptor"/>

</bean>

• For deployment unit level encrypted properties, another property placeholder configurer should be defined either with the same or with
another string encryptor with a different encryption configuration
<bean id="du-secure-property-configurer" class="org.adroitlogic.ultraesb.core.helper.EncryptablePropertyPlaceholderConfigurer">

<constructor-arg ref="stringEncryptor"/>

</bean>

• In configuration files, parameters can be configured using generic spring placeholders syntax
<u:endpoint id="test-endpoint">

<u:address>${externalized.url}</u:address>

</u:endpoint>
20
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
21
Invoke an Asynchronous Flow
• If there is a task to be executed in parallel to the main execution flow,
- define that task as a separate sequence
<u:sequence id="asynchronous-seq">

<u:class name="org.adroitlogic.testing.seq.AsynchronousTestSequence"/>

</u:sequence>

- invoke that sequence asynchronously at the main execution sequence - possibly
with a cloned message of the original message
mediation.invokeSequenceAsynchronously(clonedMsg, "asynchronous-seq");
22
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
23
Usage of Message Files for Large Payload Manipulations
• Message file is a file acquired from the file cache - RAM disk based file
cache
- Memory mapped file created outside the heap
• Effectively handle large payloads without loading payload content to the
heap
- Fast access to the content since it’s a memory mapped file
- No GC overhead since it resides outside from the heap
- No file creation/ deletion overhead since it’s a cached file which is created at start
up
24
Usage of Message Files for Large Payload Manipulations
• Eg: when you want to prepare your response message with a large payload which should
be constructed by combining string values - possibly with a considerable size
Message responseMsg = msg.createDefaultResponseMessage();

MessageFile mf = mediation.resetPayloadToNewMessageFile(responseMsg);

BufferedWriter writer = Files.newBufferedWriter(mf.toPath(), StandardCharsets.UTF_8);

………

writer.write(“first portion of the payload”);

………

writer.write(“second portion of the payload”);

• Eg: when you want to copy payload to a new message,
Message clone = msg.cloneMessage();

MessageFile mf = mediation.resetPayloadToNewMessageFile(clone);

try (OutputStream out = mf.getOutputStream()) {

msg.getCurrentPayload().writeTo(out);

} catch (final IOException e) { 

…………

}
25
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
26
UltraESB Clustering
• UltraESB Clustering separates:
- Group Coordination & Cooperative Control
‣ Group of nodes operating seamlessly as a single unit
‣ Mechanism to control complete cluster as a single unit
- State replication
‣ By default nothing is shared between nodes in a cluster
‣ Any state shared is through Caching
• Cluster management
- ZooKeeper + JMX
- Connect to any node, control the cluster
- Cluster wide management commands
27
UltraESB Clustering
• Deployment view of an UltraESB cluster
28
UltraESB Clustering
• UltraESB distribution includes ZK
- But can connect to an existing ZK quorum too
• There are no administration and worker nodes
- All nodes in a cluster are equal
• Active / Passive
- Depends on “pinned” services
‣ e.g. a SFTP polling service may be pinned to a node
- High Availability and Fail Over occurs for pinned services
29
UltraESB Clustering - Pinned Services
• Proxy services can be “pinned” to one or more nodes
• If such nodes go down or are missing in the cluster, the specified nodes
take over those services
• If the owner nodes re-appear later, the services shift back
• Useful for Active-Passive services where only one node must execute the
service at a given time
30
UltraESB Clustering - Fail-over
• Ability to failover and fail-back automatically
• Failover between nodes or node groups
• Several failover criteria
- On node count
- On node percentage
- On majority
31
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
32
Metrics and Alerting
• By default metrics and statistics are collected and published to
Elasticsearch
• Can be configured to evict statistics to an external entity
• Alerts can be configured to be raised on collected metrics
• Metrics and statistics can be viewed via Monitor
33
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
34
Monitoring and Management
• UltraESB can be monitored and managed via IMonitor
• iMonitor facilitates,
- complete control over cluster-wide or nodewise management
- visualization of collected metrics and statistics
- monitor system/ cluster health
- troubleshooting deployment issues
35
Topics
• Key Concepts
• Endpoints and Addresses
• Deployment Units
• Mediation Support APIs
• Error Handling
• Interceptors
• Configuration Externalization
• Invoke an Asynchronous Flow
• Usage of Message Files
• UltraESB Clustering
• Metrics and Alerting
• Monitoring and Management
• EMW Framework
36
EMW Framework
• Enterprise Middleware Framework (EMW)
- Framework for fast delivery of solutions based on UltraESB
‣ Pub-Sub style messaging
‣ Request-Response style messaging
- Guaranteed delivery
- At least once delivery
• Asynchronously persist the messages for tracing and provides message level
auditing
• Visualize persisted message information via IMonitor
• The amount of code that you have to write to implement a solution is made
minimal and provides a standard dashboard view
• A deployment that facilitates a complete solution
37

More Related Content

What's hot

Flume
FlumeFlume
Soa 31 jax ws server side development architecture
Soa 31 jax ws server side development architectureSoa 31 jax ws server side development architecture
Soa 31 jax ws server side development architecture
Vaibhav Khanna
 
Mule message processor or routers
Mule message processor or routersMule message processor or routers
Mule message processor or routers
sathyaraj Anand
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
Praneethchampion
 
Mule web services
Mule web servicesMule web services
Mule web services
Thang Loi
 
Flume @ Austin HUG 2/17/11
Flume @ Austin HUG 2/17/11Flume @ Austin HUG 2/17/11
Flume @ Austin HUG 2/17/11
Cloudera, Inc.
 
Cross-Site BigTable using HBase
Cross-Site BigTable using HBaseCross-Site BigTable using HBase
Cross-Site BigTable using HBase
HBaseCon
 
Mule esb usecase
Mule esb usecaseMule esb usecase
Mule esb usecase
charan teja R
 
Mule Script Transformer
Mule Script TransformerMule Script Transformer
Mule Script Transformer
Ankush Sharma
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
File connector
File connectorFile connector
File connector
krishashi
 
UltraESB - an introduction
UltraESB - an introductionUltraESB - an introduction
UltraESB - an introduction
AdroitLogic
 
Kafka - Messaging System
Kafka - Messaging SystemKafka - Messaging System
Kafka - Messaging SystemTanuj Mehta
 
How to use processor chain
How to use processor chainHow to use processor chain
How to use processor chain
sivachandra mandalapu
 
UltraESB - Advanced services
UltraESB - Advanced servicesUltraESB - Advanced services
UltraESB - Advanced services
AdroitLogic
 
RESTful web
RESTful webRESTful web
RESTful web
Alvin Qi
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
Dong Ngoc
 

What's hot (20)

Flume
FlumeFlume
Flume
 
Soa 31 jax ws server side development architecture
Soa 31 jax ws server side development architectureSoa 31 jax ws server side development architecture
Soa 31 jax ws server side development architecture
 
Mule message processor or routers
Mule message processor or routersMule message processor or routers
Mule message processor or routers
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
 
Mule web services
Mule web servicesMule web services
Mule web services
 
Flume @ Austin HUG 2/17/11
Flume @ Austin HUG 2/17/11Flume @ Austin HUG 2/17/11
Flume @ Austin HUG 2/17/11
 
Cross-Site BigTable using HBase
Cross-Site BigTable using HBaseCross-Site BigTable using HBase
Cross-Site BigTable using HBase
 
Building Web Services
Building Web ServicesBuilding Web Services
Building Web Services
 
About Http Connection
About Http ConnectionAbout Http Connection
About Http Connection
 
Mule esb usecase
Mule esb usecaseMule esb usecase
Mule esb usecase
 
AMQP
AMQPAMQP
AMQP
 
Mule Script Transformer
Mule Script TransformerMule Script Transformer
Mule Script Transformer
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 
File connector
File connectorFile connector
File connector
 
UltraESB - an introduction
UltraESB - an introductionUltraESB - an introduction
UltraESB - an introduction
 
Kafka - Messaging System
Kafka - Messaging SystemKafka - Messaging System
Kafka - Messaging System
 
How to use processor chain
How to use processor chainHow to use processor chain
How to use processor chain
 
UltraESB - Advanced services
UltraESB - Advanced servicesUltraESB - Advanced services
UltraESB - Advanced services
 
RESTful web
RESTful webRESTful web
RESTful web
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 

Similar to AdroitLogic UltraESB

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
mdfkhan625
 
Mule overview
Mule overviewMule overview
Mule overview
Mohammed625
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
AbdulImrankhan7
 
Introduction to Adapters 3.7
Introduction to Adapters 3.7Introduction to Adapters 3.7
Introduction to Adapters 3.7
StephenKardian
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
Thang Loi
 
CloudStack Architecture and Refactor
CloudStack Architecture and RefactorCloudStack Architecture and Refactor
CloudStack Architecture and Refactor
gavin_lee
 
WarsawITDays_ ApacheNiFi202
WarsawITDays_ ApacheNiFi202WarsawITDays_ ApacheNiFi202
WarsawITDays_ ApacheNiFi202
Timothy Spann
 
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland HochmuthOSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
NETWAYS
 
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland HochmuthOSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
NETWAYS
 
AWS Best Practices
AWS Best PracticesAWS Best Practices
AWS Best Practices
Kenichi Shibata
 
Consul and Consul Pusher
Consul and Consul PusherConsul and Consul Pusher
Consul and Consul Pusher
Łukasz Cieśluk
 
Flume lspe-110325145754-phpapp01
Flume lspe-110325145754-phpapp01Flume lspe-110325145754-phpapp01
Flume lspe-110325145754-phpapp01
joahp
 
AWS Best Practices Version 2
AWS Best Practices Version 2AWS Best Practices Version 2
AWS Best Practices Version 2
Kenichi Shibata
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1WSO2
 
3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...
Timothy McCormick
 
Mule esb overview
Mule esb overviewMule esb overview
Mule esb overview
Gunjan Deshmukh
 
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High AvailabilityConfiguring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
Leighton Nelson
 
Cloud Automation Manager
Cloud Automation ManagerCloud Automation Manager
Cloud Automation Manager
Nithin Babu
 
JavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservicesJavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservices
Bart Blommaerts
 

Similar to AdroitLogic UltraESB (20)

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
 
Introduction to Adapters 3.7
Introduction to Adapters 3.7Introduction to Adapters 3.7
Introduction to Adapters 3.7
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
 
CloudStack Architecture and Refactor
CloudStack Architecture and RefactorCloudStack Architecture and Refactor
CloudStack Architecture and Refactor
 
WarsawITDays_ ApacheNiFi202
WarsawITDays_ ApacheNiFi202WarsawITDays_ ApacheNiFi202
WarsawITDays_ ApacheNiFi202
 
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland HochmuthOSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
 
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland HochmuthOSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland Hochmuth
 
AWS Best Practices
AWS Best PracticesAWS Best Practices
AWS Best Practices
 
Consul and Consul Pusher
Consul and Consul PusherConsul and Consul Pusher
Consul and Consul Pusher
 
Cloudera's Flume
Cloudera's FlumeCloudera's Flume
Cloudera's Flume
 
Flume lspe-110325145754-phpapp01
Flume lspe-110325145754-phpapp01Flume lspe-110325145754-phpapp01
Flume lspe-110325145754-phpapp01
 
AWS Best Practices Version 2
AWS Best Practices Version 2AWS Best Practices Version 2
AWS Best Practices Version 2
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
 
3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...3450 - Writing and optimising applications for performance in a hybrid messag...
3450 - Writing and optimising applications for performance in a hybrid messag...
 
Mule esb overview
Mule esb overviewMule esb overview
Mule esb overview
 
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High AvailabilityConfiguring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
 
Cloud Automation Manager
Cloud Automation ManagerCloud Automation Manager
Cloud Automation Manager
 
JavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservicesJavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservices
 

More from AdroitLogic

AdroitLogic Integration Platform Server (IPS) Whitepaper
AdroitLogic Integration Platform Server (IPS) WhitepaperAdroitLogic Integration Platform Server (IPS) Whitepaper
AdroitLogic Integration Platform Server (IPS) Whitepaper
AdroitLogic
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
AdroitLogic
 
Software Testing
Software TestingSoftware Testing
Software Testing
AdroitLogic
 
AdroitLogic UltraESB-X
AdroitLogic UltraESB-XAdroitLogic UltraESB-X
AdroitLogic UltraESB-X
AdroitLogic
 
AS2Gateway and AS2Station
AS2Gateway and AS2StationAS2Gateway and AS2Station
AS2Gateway and AS2Station
AdroitLogic
 
AdroitLogic Product Portfolio
AdroitLogic Product PortfolioAdroitLogic Product Portfolio
AdroitLogic Product Portfolio
AdroitLogic
 
System Configuration for UltraESB
System Configuration for UltraESBSystem Configuration for UltraESB
System Configuration for UltraESB
AdroitLogic
 
Administration and Management with UltraESB
Administration and Management with UltraESBAdministration and Management with UltraESB
Administration and Management with UltraESB
AdroitLogic
 
Systems management - UltraESB
Systems management - UltraESBSystems management - UltraESB
Systems management - UltraESB
AdroitLogic
 
Getting hands on-experience with UltraESB
Getting hands on-experience with UltraESBGetting hands on-experience with UltraESB
Getting hands on-experience with UltraESB
AdroitLogic
 
ESB vs API management
ESB vs API managementESB vs API management
ESB vs API management
AdroitLogic
 
UltraESB - Installation and Configuration
UltraESB - Installation and ConfigurationUltraESB - Installation and Configuration
UltraESB - Installation and Configuration
AdroitLogic
 
Introduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESBIntroduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESB
AdroitLogic
 
WADL support for UltraESB
WADL support for UltraESBWADL support for UltraESB
WADL support for UltraESB
AdroitLogic
 
Monitoring multiple UltraESB instances with UConsole
Monitoring multiple UltraESB instances with UConsoleMonitoring multiple UltraESB instances with UConsole
Monitoring multiple UltraESB instances with UConsole
AdroitLogic
 

More from AdroitLogic (15)

AdroitLogic Integration Platform Server (IPS) Whitepaper
AdroitLogic Integration Platform Server (IPS) WhitepaperAdroitLogic Integration Platform Server (IPS) Whitepaper
AdroitLogic Integration Platform Server (IPS) Whitepaper
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
AdroitLogic UltraESB-X
AdroitLogic UltraESB-XAdroitLogic UltraESB-X
AdroitLogic UltraESB-X
 
AS2Gateway and AS2Station
AS2Gateway and AS2StationAS2Gateway and AS2Station
AS2Gateway and AS2Station
 
AdroitLogic Product Portfolio
AdroitLogic Product PortfolioAdroitLogic Product Portfolio
AdroitLogic Product Portfolio
 
System Configuration for UltraESB
System Configuration for UltraESBSystem Configuration for UltraESB
System Configuration for UltraESB
 
Administration and Management with UltraESB
Administration and Management with UltraESBAdministration and Management with UltraESB
Administration and Management with UltraESB
 
Systems management - UltraESB
Systems management - UltraESBSystems management - UltraESB
Systems management - UltraESB
 
Getting hands on-experience with UltraESB
Getting hands on-experience with UltraESBGetting hands on-experience with UltraESB
Getting hands on-experience with UltraESB
 
ESB vs API management
ESB vs API managementESB vs API management
ESB vs API management
 
UltraESB - Installation and Configuration
UltraESB - Installation and ConfigurationUltraESB - Installation and Configuration
UltraESB - Installation and Configuration
 
Introduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESBIntroduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESB
 
WADL support for UltraESB
WADL support for UltraESBWADL support for UltraESB
WADL support for UltraESB
 
Monitoring multiple UltraESB instances with UConsole
Monitoring multiple UltraESB instances with UConsoleMonitoring multiple UltraESB instances with UConsole
Monitoring multiple UltraESB instances with UConsole
 

Recently uploaded

Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 

Recently uploaded (20)

Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 

AdroitLogic UltraESB

  • 1. THIS PRESENTATION AND THE INFORMATION IN IT ARE PROVIDED IN CONFIDENCE, AND MAY NOT BE DISCLOSED TO ANY THIRD PARTY OR USED FOR ANY OTHER PURPOSE WITHOUT THE EXPRESS WRITTEN PERMISSION OF ADROITLOGIC LANKA PRIVATE LIMITED. 1
  • 2. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 2
  • 3. Key Concepts • Transport - Provides several asynchronous and synchronous transports - almost all the well-known transport protocols are supported • Proxy Service - Main unit of deployment • Mediation Sequence - Definition of actions to invoke during mediation - Re-usable and similar to methods • External Endpoint - Defines an external service or endpoint and options to use when communicating with it • Deployment unit - An entity which facilitates user deployable artifacts such as proxy services, sequences and endpoints to be grouped into a single entity 3
  • 4. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 4
  • 5. Endpoints and Addresses • Endpoint is a remote service endpoint to ESB which contains one or more addresses - Different address types ‣ URL - absolute URL of the endpoint ‣ Prefix - when the absolute destination for a message depends on some URL prefix + a trailing section of the incoming URL. Mostly used while exposing REST services ‣ Response - used to send a response over the incoming message channel (e.g. HTTP) ‣ Echo - inject the message to the out sequence as a response message for the proxy service ‣ Default - used to send to dynamic endpoint addresses; for example if the destination address is picked up from a database, registry or even another service etc. • In-Destination and out-Destination - Specify default endpoints for incoming and outgoing messages • A sequence can route the message to a selected endpoint 5
  • 6. Endpoints and Addresses - cont. • Endpoints supports load balancing and failover • Different types of endpoints - Single Endpoints - Round-Robin Endpoints without Fail-Over - Round-Robin Endpoints with Fail-Over - Fail-Over only Endpoint - Weighted Endpoint without Fail-Over - Weighted Endpoint with Fail-Over - Random Endpoint without Fail-Over - Random Endpoint with Fail-Over 6
  • 8. • Using specific transport sender for endpoint address - Transport sender for a given endpoint address will be selected based on the transport protocol - If there are multiple transport senders for a given protocol, one sender will be selected randomly - This selection can be configured by adding the sender id to the address value <u:endpoint id="sender-1-ep">
 <u:address>{http-sender-1}http://localhost:9000/service/SimpleStockQuoteService</u:address>
 </u:endpoint>
 
 <u:endpoint id="sender-2-ep">
 <u:address>{http-sender-2}http://localhost:9000/service/SimpleStockQuoteService</u:address>
 </u:endpoint>
 
 Endpoints and Addresses - cont. 8
  • 9. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 9
  • 10. Deployment Units • Units of functionality which facilitate user deployable artifacts such as proxy services, sequences, transports and endpoints to be grouped into a single entity • Deployable either as, - archives with .dua extension - exploded deployment units with a directory structure • Main configuration file is ultra-unit.xml • Dynamically update/ deploy without downtime - hot update for an existing DU without downtime for message processing 10
  • 11. Deployment Units - Configuration and Class Scope • Artifact configurations such as sequences and endpoints are locally scoped within the deployment units. - ensures a given deployment unit is self contained and can be easily updated/ reloaded • Libraries or classes placed into the deployment units lib or classes directory are also loaded at the local scope of the deployment unit - allows one to use 2 different versions of the same library within 2 deployment units 11
  • 12. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 12
  • 13. Mediation Support APIs • UltraESB contains in-built mediation support APIs for utility functionalities - XMLSupport - for DOM based mediation - JSONSupport - for JSON based mediation - HTTPSupport - HTTP/S transport related mediation support - and MetricsSupport, JAXBSupport, EmailSupport, AlertSupport, etc. • Support APIs can be accessed as, mediation.getXMLSupport().extractAsStringUsingXPath() • Custom support APIs can be written to expose a custom reusable utility functionality 13
  • 14. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 14
  • 15. Error Handling • Handle errors as close as possible to its occurrence • Best to use try-catch-finally and standard exception handling - Feel free to define checked / runtime execptions specific to use cases - Use a sequence error handler, only as a last resort for unhandled exceptions - when you don’t have control to handle an exception with try-catch block ‣ handling asynchronous exceptions try {
 mediation.getXMLSupport().validate(msg, ...);
 } catch (Exception e) {
 if (logger.isTraceEnabled()) {
 logger.trace("Format 2 failed schema validation : {}n{}",
 e.getMessage(), mediation.readFullPayloadAsString(clone));
 }
 logger.error(FILTERING_VAL_ERROR, 'W', "Filtered XML failed schema validation for Format 2 : {}", e.getMessage()); } 15
  • 16. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 16
  • 17. Interceptors • 3 Types of interceptors - Message Interceptors - Artifact Interceptors - Server Interceptors • Annotation driven, zero configuration • Multiple levels of interceptions • Synchronous 17
  • 18. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 18
  • 19. Configuration Externalization • Externalize configurable parameters to an external property file • Secure parameter values with encryption - Define string encryptor in ultra-root.xml file - Define property placeholders in ultra-*.xml configuration files which have externalized properties 19
  • 20. Configuration Externalization - cont. • In ultra-root.xml, string encryptor should be configured with the required encryption configuration <bean name="stringEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
 <property name="config">
 <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
 <property name="algorithm" value="PBEWITHSHA256AND256BITAES-CBC-BC"/>
 <property name="passwordEnvName" value="APP_PASSWORD"/>
 <property name="providerClassName" value="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
 <property name="providerName" value="BC"/>
 </bean>
 </property>
 </bean>
 • Add encryptable property placeholder configurer for encrypted properties in root level configuration files (ultra-root.xml, ultra-custom.xml etc.) <bean id="root-secure-property-configurer" class="org.adroitlogic.ultraesb.core.helper.EncryptablePropertyPlaceholderConfigurer">
 <constructor-arg ref="stringEncryptor"/>
 </bean>
 • For deployment unit level encrypted properties, another property placeholder configurer should be defined either with the same or with another string encryptor with a different encryption configuration <bean id="du-secure-property-configurer" class="org.adroitlogic.ultraesb.core.helper.EncryptablePropertyPlaceholderConfigurer">
 <constructor-arg ref="stringEncryptor"/>
 </bean>
 • In configuration files, parameters can be configured using generic spring placeholders syntax <u:endpoint id="test-endpoint">
 <u:address>${externalized.url}</u:address>
 </u:endpoint> 20
  • 21. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 21
  • 22. Invoke an Asynchronous Flow • If there is a task to be executed in parallel to the main execution flow, - define that task as a separate sequence <u:sequence id="asynchronous-seq">
 <u:class name="org.adroitlogic.testing.seq.AsynchronousTestSequence"/>
 </u:sequence>
 - invoke that sequence asynchronously at the main execution sequence - possibly with a cloned message of the original message mediation.invokeSequenceAsynchronously(clonedMsg, "asynchronous-seq"); 22
  • 23. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 23
  • 24. Usage of Message Files for Large Payload Manipulations • Message file is a file acquired from the file cache - RAM disk based file cache - Memory mapped file created outside the heap • Effectively handle large payloads without loading payload content to the heap - Fast access to the content since it’s a memory mapped file - No GC overhead since it resides outside from the heap - No file creation/ deletion overhead since it’s a cached file which is created at start up 24
  • 25. Usage of Message Files for Large Payload Manipulations • Eg: when you want to prepare your response message with a large payload which should be constructed by combining string values - possibly with a considerable size Message responseMsg = msg.createDefaultResponseMessage();
 MessageFile mf = mediation.resetPayloadToNewMessageFile(responseMsg);
 BufferedWriter writer = Files.newBufferedWriter(mf.toPath(), StandardCharsets.UTF_8);
 ………
 writer.write(“first portion of the payload”);
 ………
 writer.write(“second portion of the payload”);
 • Eg: when you want to copy payload to a new message, Message clone = msg.cloneMessage();
 MessageFile mf = mediation.resetPayloadToNewMessageFile(clone);
 try (OutputStream out = mf.getOutputStream()) {
 msg.getCurrentPayload().writeTo(out);
 } catch (final IOException e) { 
 …………
 } 25
  • 26. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 26
  • 27. UltraESB Clustering • UltraESB Clustering separates: - Group Coordination & Cooperative Control ‣ Group of nodes operating seamlessly as a single unit ‣ Mechanism to control complete cluster as a single unit - State replication ‣ By default nothing is shared between nodes in a cluster ‣ Any state shared is through Caching • Cluster management - ZooKeeper + JMX - Connect to any node, control the cluster - Cluster wide management commands 27
  • 28. UltraESB Clustering • Deployment view of an UltraESB cluster 28
  • 29. UltraESB Clustering • UltraESB distribution includes ZK - But can connect to an existing ZK quorum too • There are no administration and worker nodes - All nodes in a cluster are equal • Active / Passive - Depends on “pinned” services ‣ e.g. a SFTP polling service may be pinned to a node - High Availability and Fail Over occurs for pinned services 29
  • 30. UltraESB Clustering - Pinned Services • Proxy services can be “pinned” to one or more nodes • If such nodes go down or are missing in the cluster, the specified nodes take over those services • If the owner nodes re-appear later, the services shift back • Useful for Active-Passive services where only one node must execute the service at a given time 30
  • 31. UltraESB Clustering - Fail-over • Ability to failover and fail-back automatically • Failover between nodes or node groups • Several failover criteria - On node count - On node percentage - On majority 31
  • 32. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 32
  • 33. Metrics and Alerting • By default metrics and statistics are collected and published to Elasticsearch • Can be configured to evict statistics to an external entity • Alerts can be configured to be raised on collected metrics • Metrics and statistics can be viewed via Monitor 33
  • 34. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 34
  • 35. Monitoring and Management • UltraESB can be monitored and managed via IMonitor • iMonitor facilitates, - complete control over cluster-wide or nodewise management - visualization of collected metrics and statistics - monitor system/ cluster health - troubleshooting deployment issues 35
  • 36. Topics • Key Concepts • Endpoints and Addresses • Deployment Units • Mediation Support APIs • Error Handling • Interceptors • Configuration Externalization • Invoke an Asynchronous Flow • Usage of Message Files • UltraESB Clustering • Metrics and Alerting • Monitoring and Management • EMW Framework 36
  • 37. EMW Framework • Enterprise Middleware Framework (EMW) - Framework for fast delivery of solutions based on UltraESB ‣ Pub-Sub style messaging ‣ Request-Response style messaging - Guaranteed delivery - At least once delivery • Asynchronously persist the messages for tracing and provides message level auditing • Visualize persisted message information via IMonitor • The amount of code that you have to write to implement a solution is made minimal and provides a standard dashboard view • A deployment that facilitates a complete solution 37