UltraESB provides advanced mediation capabilities including mediation of messages within sequences. Sequences can be defined inline as Java or script fragments and support features like error handling. The mediation API is the same for Java and script sequences and provides methods for sending messages to endpoints, reading payloads, and more. Endpoints can specify load balancing and failover behaviors.
WSO2 ESB is the fastest open source ESB in the market. It achieves remarkable performance numbers through a special http transport implementation known as Pass-Through Transport (PTT). This presentation is an introduction to PTT.
Jolokia - JMX on Capsaicin (Devoxx 2011)roland.huss
"Jolokia - JMX on Capsaicin" was given as a "Tools in Action" talks at Devoxx 2011. For the full presentation, please go to parleys.com which includes a full recording of the talk.
MuleSoft ESB Routes first-successful
Routers (Flow Controls in Anypoint Studio) route messages to various destinations in a Mule flow using First Successful.
This is the slide I shared on the second community offline party of Horizon-Dalian. The topic is about restful web, and I started from web service and web history, telling people what the REST might be, and then gave six bindings of REST style.
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownAspen Mesh
In this CNCF Member Webinar, Neeraj Poddar (Aspen Mesh) and John Howard (Google) shared information on debugging your debugging tools when your service mesh goes down in production.
Service meshes are widely used as a means to enforce policies and at the same time gain visibility into your application behavior and performance. As more organizations adopt service mesh in their architectures, they are relying more heavily on the metrics, tracing and other traffic management and security capabilities provided by the service mesh. But what happens when a critical piece of your infrastructure like Istio has issues while in production?
In this webinar we will cover the debugging in production aspects of Istio, in particular the following topics will be covered:
* How to debug and diagnose issues with your sidecar proxy Envoy
* How to monitor and debug the Istio control plane
* How to use operational tools like “istioctl” to understand issues with your configuration
* Using profiling to identify bottlenecks
* Recommendations for a production ready secure Istio deployment
Event Processing and Integration with IAS Data ProcessorsInvenire Aude
Quick introduction to IAS Data Processors. Transport modes, transport drivers (SHM, IBM WebSphere MQ, Files, net, http(s)).
Business logic implementation.
Transaction support.
Data processors can be configured to act as:
Data transformation nodes, using PASCAL-like script language,
Gateways and bridges (e.g. HTTP/JSON and Queues/XML),
SQL Database interfaces using the data mapping script extension.
You can configure and use the Data Processors as single threaded programs but you can define many logic implementations and run them in parallel as threads.
You can choose the transaction support from the three available modes: auto-commit, single phase (independent) commits, distributed two phase commit with XA when the supported coordination software is used.
And last but not least, one can find the Data Processors as a very helpful command line admin's tool.
WSO2 ESB is the fastest open source ESB in the market. It achieves remarkable performance numbers through a special http transport implementation known as Pass-Through Transport (PTT). This presentation is an introduction to PTT.
Jolokia - JMX on Capsaicin (Devoxx 2011)roland.huss
"Jolokia - JMX on Capsaicin" was given as a "Tools in Action" talks at Devoxx 2011. For the full presentation, please go to parleys.com which includes a full recording of the talk.
MuleSoft ESB Routes first-successful
Routers (Flow Controls in Anypoint Studio) route messages to various destinations in a Mule flow using First Successful.
This is the slide I shared on the second community offline party of Horizon-Dalian. The topic is about restful web, and I started from web service and web history, telling people what the REST might be, and then gave six bindings of REST style.
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownAspen Mesh
In this CNCF Member Webinar, Neeraj Poddar (Aspen Mesh) and John Howard (Google) shared information on debugging your debugging tools when your service mesh goes down in production.
Service meshes are widely used as a means to enforce policies and at the same time gain visibility into your application behavior and performance. As more organizations adopt service mesh in their architectures, they are relying more heavily on the metrics, tracing and other traffic management and security capabilities provided by the service mesh. But what happens when a critical piece of your infrastructure like Istio has issues while in production?
In this webinar we will cover the debugging in production aspects of Istio, in particular the following topics will be covered:
* How to debug and diagnose issues with your sidecar proxy Envoy
* How to monitor and debug the Istio control plane
* How to use operational tools like “istioctl” to understand issues with your configuration
* Using profiling to identify bottlenecks
* Recommendations for a production ready secure Istio deployment
Event Processing and Integration with IAS Data ProcessorsInvenire Aude
Quick introduction to IAS Data Processors. Transport modes, transport drivers (SHM, IBM WebSphere MQ, Files, net, http(s)).
Business logic implementation.
Transaction support.
Data processors can be configured to act as:
Data transformation nodes, using PASCAL-like script language,
Gateways and bridges (e.g. HTTP/JSON and Queues/XML),
SQL Database interfaces using the data mapping script extension.
You can configure and use the Data Processors as single threaded programs but you can define many logic implementations and run them in parallel as threads.
You can choose the transaction support from the three available modes: auto-commit, single phase (independent) commits, distributed two phase commit with XA when the supported coordination software is used.
And last but not least, one can find the Data Processors as a very helpful command line admin's tool.
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...Ambassador Labs
Abstract: The idea of the "service mesh" is becoming very popular in microservice design circles. However, the mechanics of deploying one into an existing infrastructure are far from simple. In this talk we will cover the logistical details of how Envoy was developed and deployed incrementally at Lyft, focusing primarily on the evolution of service mesh configuration management. We will also discuss why high level systems such as Istio are likely to be the main mechanism by which most customers ultimately get access to service mesh technology.
This talk was presented as part of the Microservices Practitioner Virtual Summit, https://www.microservices.com/summit/
Service discovery like a pro (presented at reversimX)Eran Harel
So you want to auto scale your services, and use service oriented architecture, eh?
Want to reduce the cost of managing your clusters, and discover them dynamically?
In this talk we shall see how consul helps you do that very efficiently, explain how it works, demonstrate spinning up several interconnected services, and show how we can achieve seamless discovery, HA, and fault tolerance.
An introduction to KrakenD, the ultra-high performance API Gateway with middlewares. An opensource tool built using go that is currently serving traffic in major european sites.
Slide deck presented during my session on "Express: A Jump-Start" at JavaScript Meetup #4 on Saturday, July 23, 2016. The meetup happened at Portea Medical, Bengaluru.
Because this system is web application (partially)
Because we based (100%) on FOSS (open-source)
Because security matters
Because OWASP people cares about security and can affect recruitment processes (hopefully) ;)
Comparison between zookeeper, etcd 3 and other distributed coordination systemsImesha Sudasingha
This is a comparison between popular distributed coordination systems including zookeeper (which powers Apache Hadoop), etcd 3 (which powers Kubernetes), consul and hazelcast. This comparison was made in second half of 2016. Therefore, please note that some of these technologies have improved immensely over the time. Anyway, this presentation will provide an initial idea of each distributed coordination systems.
Introduction to Gatling performance testing tool and how we used it for testing Zonky's REST API. Example of running distributed performance tests in AWS Fargate with real-time monitoring with Logstash/ElasticSearch/Kibana stack.
REST & RESTful Web Service
REST stands for Representational State Transfer
REST web services communicate over the HTTP specification, using HTTP vocabulary
If a service does not include all constraints it is not a RESTful web service.
Software testing
Developers Belief on Software Testing
Developers Responsibility for testing
Test writing methods
State based testing
Behavioural/interaction based testing
Writing a Testable Code
Flaw 1 - Constructor does Real Work
Flaw 2 - API lies about it's real dependencies
Flaw 3 - Brittle Global State & Singletons
Testing Frameworks and tools for Java...
Mockito and PowerMock...
Testing Models
Stubs Based Testing Model
Mocked Objects Based Testing Model
JUit 4.+ and TestNG
https://www.adroitlogic.com
https://developer.adroitlogic.com
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
https://www.adroitlogic.com
https://developer.adroitlogic.com
Why Integration?
Point-to-Point ends up with spaghetti style
Disadvantages...
UltraESB to the rescue
UltraESB
More advantages of UltraESB
Gaining an edge on performance
Key Features
https://www.adroitlogic.com
https://developer.adroitlogic.com
AdroitLogic Product Catalog
• UltraESB-X - Enterprise Service Bus
• UltraStudio - IDE for integration flow designing
• IMonitor-X - Monitor your UltraESB-X servers / clusters
• IPS - Containerized Integration (deployment) Platform
• AS2Gateway / AS2Station - B2B electronic message
exchange as a service / on-premise
Why Integration?
What is UltraESB-X?
• Gaining an edge in performance
Why UltraStudio?
• IDE for designing, testing and debugging Integration Solutions to be deployed in UltraESB-X and IPS
Why IMonitor-X?
• Web console to monitor and manage the UltraESB-X servers / clusters
Why IPS?
• Containerized Deployment Platform for Integration Solutions built by UltraStudio
• Integration on Containers
• Cost Advantage
AS2?
• Hosted service which facilities electronic message exchange over AS2 protocol
• AS2Gateway simplifies the business
AS2Station
• AS2Station is the single station, on-premise version of the AS2Gateway that can be deployed with other integrations to automate AS2 processing
https://www.adroitlogic.com
https://developer.adroitlogic.com
Monitoring multiple UltraESB instances with UConsoleAdroitLogic
Learn how to use the UConsole, the management console of UltraESB to monitor a cluster of ESB nodes.
Learn more about AdroitLogic Enterprise Service Bus - UltraESB at http://adroitlogic.org/products/ultraesb.html
View the UConsole documentation from http://docs.adroitlogic.org/display/esb/Introducing+UConsole+and+UTerm
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. Mediation of messages
● Mediation of messages takes place within Sequences
●
Sequences maybe written as
●
In-line Java fragments
● Classes – (allows step-through debugging)
● Script fragments (JSR 223)
● Java source files or Script files
●
Spring beans - (allows step-through debugging)
●
All sequences run at the speed of byte-code, irrespective of how they were
defined (e.g. scripts are not slow, as they use JDK compilation)
●
Mediation API is same for Java and Script sequences
3. To any sequence
● “msg” and “mediation” are always available and
refers to the current message and the mediation
support handle
● For sequence fragments “logger” is also available
● Custom class sequences can define own loggers
● Logger refers to a SLF4J/Log4J logger for the sequence
4. Mediation within Sequences
● Can use the “mediation” API of the ESB
● e.g.
– mediation.sendToEndpoint(msg, “some-endpoint”)
– mediation.readPayloadAsString(msg) etc
● Can invoke Spring framework utilities
● For Database operations etc
●
Can invoke existing libraries or third party libraries
● e.g.
– LogB → XML or CSV conversion librariy
– Smooks, XMLSpy etc
●
Error handling
● Via error handler sequences
● Or try – catch blocks within sequences
5. What is the UltraESB “api” JAR?
● A suggestion from a real customer
● Forces user code to only depend on the UltraESB
“API” and not its implementation
● Prevent binding to ESB internals
● AdroitLogic can safely assure backwards compatibility of
API methods
● Available as a separate Maven artifact for customers
7. Sequence Error Handling
● One sequence can define another as its “error
handling sequence”
● Any un-handled exception causes the error handler
sequence to get invoked
● An error handler sequence should be carefully written,
and should take any recovery/log steps
● Example shows the specification of the error
sequence by its “id”
11. Re-Usable Sequences
● Does not belong to any proxy service
● Can be invoked by one or more proxy services
● But only within the same deployment unit
● Else, un-deploying one deployment unit could cause
problems to another
● If you want to define re-usable sequences to be
shared across multiple deployment units, define them
in the ultra-custom.xml
17. What is the “payload”?
● Defined by possible MessageFormats
● RawFileMessage – e.g. HTTP/S
● ByteArrayMessage – e.g. JMS
● DOMMessage – When XML manipulations are performed over a message
● DataHandlerMessage – e.g. Email
● MapMessage – e.g. JMS
● HAPIMessage – e.g. MLLP/S
● String – e.g. JMS
● Stream - e.g. JMS
● Object - e.g. JMS
18. MessageFormat conversions
● Takes place on demand
● Where required / implicit
– e.g. XML DOM manipulation
● Explicitly converted
– By user action e.g. a HTTP JSON message from a file to an untyped
Map
● Xpath evaluation can be performed without DOM parsing
when using VTD XML
● User just drops the VTD XML JAR into lib/custom
19. Message format Optimizations
● If a message is not modified, a non-effective changes with a
conversion maybe ignored by the ESB for performance
● e.g. a HTTP JSON message is parsed as an untyped Map, and
used for routing
– If the original message is not updated, the original raw file will be used to
write the message to the backend service
● Same applies for Xpath evaluation creating DOM from a raw file
●
20. Using Spring / Spring Security / 3rd
party libraries
● JDBC Insert - #105
● Local transactions - #105
● Authentication – LDAP, Database, Custom etc
23. Endpoints/Destinations and
Addresses
● An Endpoint can specify one or more Addresses
● Addresses could specify the destination as:
● A Full URL
– <u:address>http://localhost:9000/service/EchoService</u:address>
– <u:address>jms:/Q.jmsPending</u:address>
– <u:address>file:///tmp/AS2/received</u:address>
– <u:address>mailto:fwd@localhost</u:address>
●
A URL Prefix (e.g. for REST)
– <u:address type="prefix">http://localhost:9000/rest-services</u:address>
● As a “response” (e.g. for HTTP/S over same socket)
– <u:address type="response"/>
●
As “default” - i.e. pick actual address set during mediation (e.g. by looking at a Database etc)
– <u:address type="default"/>
24. Load balancing and Fail-Over
● Single (address) Endpoints
● Are never suspended on errors
– better try the only one available
● Group endpoints
● Failing addresses are given grace periods or are suspended from use
● Round-Robin with/without Fail-Over
● Weighted with/without Fail-Over
● Random with/without Fail-Over
● Fail-Over only
● More Endpoints in later versions
25. Synchronous / Asynchronous
Transports and Endpoints
● An Endpoint send could be synchronous or asynchronous
depending on the transport sender implementation
● At present
● HTTP/S, MLLP/S, TCP/S are asynchronous senders
● All others are synchronous
– e.g. JMS post, SFTP upload etc..
● Error handling could detect synchronous (e.g. invalid/unsupported
transport) as well as asynchronous (e.g. invalid hostname) errors
27. Errors and Codes
● Errors are indicated by Error codes
● Some signal serious errors(e.g. connection refused)
● Some signal temporary errors (e.g. socket timeout)
● Serious errors lead to suspension of failed address
● Duration of suspension is computed as
Current Duration = Last Duration == null ?
Initial Duration :
max( (Last Duration * Progression Factor), Maximum Duration)
29. Fail-Over behavior
● Not all failures maybe safe for retry
● User may override and specify which error conditions are safe for
retry with another address
● Default safe conditions are the following, and can be specified per
endpoint
– 101508 - Sender connect timeout (TCP level connection establishment
failure within specified (default 10) number of seconds
– 101503 - Connect failed (connection refused by remote party over the
specified port)
– 101510 - Rejection by response validator as a temporary error
30. Common Endpoint Errors
● Suspension
● 101503 - Connect failed (connection refused by remote party over the specified port)
● 101511 - Rejection by response validator as a suspension error
● Temporary
● 101508 - Sender connect timeout (TCP level connection establishment failure within specified (default 10) number of seconds
● 101504 - Sender connection Timeout (expiration of the specified, or default connection timeout from the ESB side sender)
● 101500 - Sender IO error during sending
● 101506 - Sender detection of a HTTP/S protocol violation during send
● 101505 - Sender detection of a connection close by remote party during send
● 101510 - Rejection by response validator as a temporary error
● 101006 - Listener detection that a response cannot be submitted (e.g. Connection already closed)
● 101000 - Listener side IO error during send
● 101003 - Listener connection timeout (expiration of the specified, or default connection timeout from the ESB side listener)
● 101005 - Listener detection of a connection close by remote party
31. Response Validation and
Location Header re-writing
● Validate response “body” instead of transport or response
header/status code
● e.g. “Service Not Found” HTML page returned with 200 status code
● Location headers used with REST must be re-written against
the proxy service to hide backend service
● e.g. <u:property name="ultra.endpoint.switch_location_headers_to"
value="http://localhost:8280/service/rest-proxy"/>
32. Transports
● Listeners
● Gets messages and pushes them to the ESB
● HTTP/S, JMS, File, FTP, SFTP, FTPS, POP3/IAMP/SMTP,
MLLP/S, TCP/S
● Senders
● Registers a protocol to the ESB and is invoked by the ESB
depending on the out URL
33. Other ways of getting Stuff in/out
● Transport Listers
● Polling transports (Email, FTP etc)
●
Fired on event (JMS, HTTP/S, etc)
●
Can configure more than one Listener per Service
– Services exposed over multiple transports (http/JMS/File etc)
– Multiple incoming ports, security configurations (auth, SSL etc)
●
Transport Senders
● Are selected by the outgoing URL for a message
● More than one instance can exist for same protocol
– e.g. Proxy Servers, Authentication, 2-way SSL etc
34. HTTP/S Transport Listeners
● Context Path customization
● Zero-Copy
● Bind Address
● No-Compression
● Connection Debugging
● Advanced properties (SO Timeout, Nagle, Buffer size)
● Maximum Payload Size
● Maximum connections before new connection acceptance pause
● Request Filters
● Service Resources (WSDL, XSD etc)
● Authentication (Basic and Digest)
● SSL – 2-way SSL and remote certificate validation disable for testing
35. HTTP/S Transport Senders
● Proxy server
● Proxy by-pass for hosts
● Zero-copy
● Unzip response entities
● Connection debug
●
Keep-alive time and safety threshold
● Advanced properties (SO Timeout, etc)
● SSL – Host name verification (Strict, Default..), remote certificate
validation disable for testing
36. e.g. Multiple HTTP Senders
- Though a Proxy Server and Direct connection
●
Sample # 207
<bean id="http-sender-1" class="org.adroitlogic.ultraesb.transport.http.HttpNIOSender">
<constructor-arg ref="fileCache"/>
</bean>
<bean id="http-sender-2" class="org.adroitlogic.ultraesb.transport.http.HttpNIOSender">
<constructor-arg ref="fileCache"/>
<property name="proxyHost" value="localhost"/>
<property name="proxyPort" value="3128"/>
<property name="proxyBypassList" value="asankha,127.0.0.1"/> </bean>
38. HTTP/S Connection Debugging
● Helps find out root cause
● e.g. Client to the ESB timed out, but actual cause was multiple
backend service timeouts after fail-over
● Can be disabled, or tuned to dump only a subset of headers
● Records error codes, times and connection socket/s, keep-
alive establishment times etc
2011-11-28 02:16:05,228 [-] [L-I/O dispatcher 8] WARN ServerConnectionDebug UUID=2846e762-58c8-4a9e-af60-68a32c1dc3f5, C2E-
Connection=10.194.142.84:49875->10.37.22.82:8281, C2E-Req-StartTime=02:16:05.033, C2E-Req-EndTime=02:16:05.033, C2E-Req-
ConnCreateTime=02:16:04.996, C2E-Req-URL=/services/sample-service-xfire, C2E-Req-Protocol=HTTP/1.1, C2E-Req-Method=POST, C2E-Req-IP=10.194.142.84,
C2E-Req-Info={Host=ec2-50-19-56-197.compute-1.amazonaws.com:8281, SOA_CALL_ID=543bbd22-56ec-43ac-bde0-2dabde756a44, Content-Length=947,
SOAPAction=urn:runForTime, User-Agent=SOA-Toolbox/1.5.0, Content-Type=text/xml; charset=UTF-8, Connection=Keep-Alive}, E2C-Resp-Start=02:16:05.169,
E2C-Resp-Status=HTTP/1.1 200 OK, E-C-IOSession-Start=02:16:04.996, E-C-IOSession-Last-Read=02:16:05.032, E-C-IOSession-Last-Write=02:16:05.224, E-C-
Error-Time=02:16:05.225, E-C-Error-Code=101000, C-Xfer-Time=55.583, C-Req-Xfer-Time=0.039, C-Res-Xfer-Time=55.544
40. Publicly exposed HTTP/S
Listener protection
● Limits connections allowed
● Limit maximum payload size
● Dump attacking IP when suspected, for
fail2ban blocking from the firewall
41. HTTP/S support for
'Maintenance Mode'
● When HTTP/S Listeners are put into Maintenance
(i.e. for a restart or temporary pause) new
connections will not be accepted
● However, established connections will be able to
respond without hindrance
● If an attack is detected, the HTTP/S listener would
automatically limit connections to the user specified
threshold and reject others
42. JMS Transport
● Based on Spring Framework
● Can map one or more request/response destinations to a service
● Supports local and JTA XA transactions
● Supports API 1.1/1.0.2b via Spring DefaultMessageListenerContainer
● Based on Polling, with automatic caching of resources
● All Spring tuneable properties are valid – e.g. concurrentConsumers,
maxConcurrentConsumers, messageSelector etc
43. JMS Transport (more)
● Text, Map, Stream, Bytes and Object messages
supported
● JMS Queues and Topics Supported
● Durable Subscriptions supported
● Message headers and properties supported
● Spring JMSTemplates and Connection Factory
tuning is re-used
44. Email Transport
●
Support for POP3/IMAP polling
● SMTP Sending
● Java Mail supported Authentication
● Parallel download and processing from one Inbox
● Delete or move after processing/failure
● Simplified support to manage email headers, and attachments
●
Support for text and multipart messages with content type based priority to
select “main” part and attachments
● Can quickly debug detailed mail server communication through integration
with javax.mail debugging
45. Scheduled Tasks
● Based on a simple polling specification or CRON
● Can be used to poll a Database, file system, remote
HTTP/S URL or Service etc
● Support for use of transactions when Databases are
used
● Simplified DB access with Spring JDBC Templates
● Ability to specify steps via any supported mediation
technology / language
46. File Transports
● Supports Files, FTP, SFTP and FTPS
● Delete or move [+rename] after processing
● File locking to prevent multiple threads from processing
the same file
● Safe mode support in Windows
but not recommended for production use
● Raw “file” access as a “file” is always kept as a “file”
without any wrapping
47. TCP/S and MLLP/S Transports
● TCP/S is an abstract transport
● Must specify the “protocol”
● e.g. MLLP/S is a concrete implementation for HL7
messaging
● Can develop support for legacy / proprietary
protocols easily with non-blocking TCP/S base
framework
48. Custom Transports
● Custom transports maybe implemented over
● The polling transport framework
● The abstract transport framework
49. Proxy Services & Work Managers
● Could be associated with a custom work manager
● By default each service binds to the default work manager
of the configuration
● Work managers defines the thread pools (usually
primary/secondary) and optional message persistence
● Default work manager is the SimpleQueue WorkManager
50. Proxy Service & Transports
● A Proxy Service attaches to one or more transport
listener configuration
● Depending on the transport, the service will specify
transport specific properties for the service
● e.g. URL or URL pattern for a HTTP/S service
● JMS destination and Response destination
● File/SFTP/FTPS locations and file patterns
51. File Caches
● Are a very efficient way to store messages in memory, without
an overhead to the CPU using Direct Memory Access (DMA)
where supported
● i.e. Zero-Copy proxying
● HTTP/S, MLLP/S, TCP/S transports use this
● Also used when messages are converted within the ESB at
some points
● Reduces GC overhead considerably due to fixed size
allocation outside of the heap
52. HTTP/S messages on Files
● Allows support for absolutely any type of payload
● SOAP, JSON, Hessian, Text, FI, Binary etc
● Unless mediation attempts to read payload content is left
intact as raw bytes
● Allows optimal fail-over – as an Object message would be
serialized multiple times for fail-over
– File messages messages are repeatable, and the size pre-known