SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Kafka - Messaging System
Kafka - Messaging SystemKafka - Messaging System
Kafka - Messaging System
Tanuj Mehta
 

Was ist angesagt? (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
 

Ähnlich wie AdroitLogic UltraESB

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
WSO2
 

Ähnlich wie 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
 

Mehr von AdroitLogic

Mehr von 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
 

Kürzlich hochgeladen

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Kürzlich hochgeladen (20)

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 

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