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
Apache Flume is a simple yet robust data collection and aggregation framework which allows easy declarative configuration of components to pipeline data from upstream source to backend services such as Hadoop HDFS, HBase and others.
Apache Flume is a simple yet robust data collection and aggregation framework which allows easy declarative configuration of components to pipeline data from upstream source to backend services such as Hadoop HDFS, HBase and others.
Soa 31 jax ws server side development architectureVaibhav Khanna
The handler framework in the Java API for XML Web Services (JAX-WS) allows applications to address cross-cutting and/or system-level concerns by opening the service and client runtimes for applications to plug in modular components
This presentation describes Flume, a distributed log collection system for shipping data to frameworks such as Hadoop and HBase. It provides an overview and describes updates and emerging stories from the community since its open source release. These are the slides from the 2/18/11 Austin, TX HUG.
Speakers: Jingcheng Du and Ramkrishna Vasudevan (Intel)
As HBase continues to expand in application and enterprise or government deployments, there is a growing demand for storing data across geographically distributed datacenters for improved availability and disaster recovery. The Cross-Site BigTable extends HBase to make it well-suited for such deployments, providing the capabilities of creating and accessing HBase tables that are partitioned and asynchronously backed-up over a number of distributed datacenters. This talk reveals how the Cross-Site BigTable manages data access over multiple datacenters and removes the data center itself as a single point of failure in geographically distributed HBase deployments.
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.
Soa 31 jax ws server side development architectureVaibhav Khanna
The handler framework in the Java API for XML Web Services (JAX-WS) allows applications to address cross-cutting and/or system-level concerns by opening the service and client runtimes for applications to plug in modular components
This presentation describes Flume, a distributed log collection system for shipping data to frameworks such as Hadoop and HBase. It provides an overview and describes updates and emerging stories from the community since its open source release. These are the slides from the 2/18/11 Austin, TX HUG.
Speakers: Jingcheng Du and Ramkrishna Vasudevan (Intel)
As HBase continues to expand in application and enterprise or government deployments, there is a growing demand for storing data across geographically distributed datacenters for improved availability and disaster recovery. The Cross-Site BigTable extends HBase to make it well-suited for such deployments, providing the capabilities of creating and accessing HBase tables that are partitioned and asynchronously backed-up over a number of distributed datacenters. This talk reveals how the Cross-Site BigTable manages data access over multiple datacenters and removes the data center itself as a single point of failure in geographically distributed HBase deployments.
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.
WarsawITDays_ ApacheNiFi202
Apache NiFi 202: Integration and Best Practices
Timothy Spann, Principal Developer Advocate, Cloudera
APACHE NIFI, BEST PRACTICES, STREAMING, KAFKA, PULSAR, FLINK
MNIEJ
https://www.datainmotion.dev/2020/06/no-more-spaghetti-flows.html https://github.com/tspannhw/EverythingApacheNiFi https://www.datainmotion.dev/2020/12/basic-understanding-of-cloudera-flow.html https://www.datainmotion.dev/2020/10/top-25-use-cases-of-cloudera-flow.html In this talk, we will walk step by step through Apache NiFi from the first load to the first application. I will include slides, articles, and examples to take away as a Quick Start to utilizing Apache NiFi in your real-time dataflows. I will help you get up and running locally on your laptop or Docker. We will also show how to connect NiFi to Kafka, Pulsar, Flink, MQTT, and databases. I will cover: Advanced Record Processing Provenance Scheduling and Cron Relationships Routing Basic Cluster Architecture Listeners Controller Services Handling Errors Sources and Sinks
Timothy Spann,
Principal Developer Advocate, Cloudera
OSMC 2016 - Monasca - Monitoring-as-a-Service (at-Scale) by Roland HochmuthNETWAYS
Roland Hochmut ist der Project Tech Lead (PTL) und Software Architect bei Monasca, das Open –Source Monitoring-as-a-Service (at-Scale) OpenStack Project (https://wiki.openstack.org/wiki/Monasca). Er konzentriert sich auf die Entwicklung einer leistungsstarken, skalierbaren und zuverlässigen Turn-Key Monitoring Lösung, die Einfluss hat auf die leitenden Trends und Innovationen der Industrie was Streaming von Daten, Analyse und Big Data betrifft. Er ist auch verantwortlich für die Metrics Processing Pipeline für HP`s öffentliche Cloud. Er hat Erfahrung in mehreren Software-Bereichen und Domänen, sowohl von 3-D Computer Grafiken als auch von Remote Desktop Visualisierung und Cloud Computing und Monitoring.
OSMC 2016 | Monasca: Monitoring-as-a-Service (at-Scale) by Roland HochmuthNETWAYS
Monasca, monasca.io ist eine Turn-Key Open Source OpenStack Monitoring-as-a-Service Plattform, die Authentifizierung und multi-Tenancy mittels OpenStack Keystone Identity Service unterstützt. Monasca ist eine hoch skalierbare, leistungsfähige und Fehler-tolerante Monitoring-as-a-Service Lösung, die Push-based Streaming-Metrics, Gesundheit/Status, Alarmierung/Thresholding und Benachrichtigungen unterstützt. Logging-as-a-Service befindet sich in der Entwicklung, und das Ziel ist es eine umfassende und integrierte Monitoring Lösung für Open Stack Clouds zur Verfügung zu stellen, die auch Kennzahlen, Events und Logs unterstützt.
3450 - Writing and optimising applications for performance in a hybrid messag...Timothy McCormick
Messaging architectures in any environment, from local standalone deployments through to public clouds, must provide the highest reliability yet maximize their performance. This session gives you an insight into IBM MQ and how applications can be made to perform to their absolute best while maintaining the data integrity that IBM MQ is renowned for. We'll see how this can be achieved through a combination of good application design, system tuning and architectural patterns.
Configuring Oracle Enterprise Manager Cloud Control 12c for High AvailabilityLeighton Nelson
Oracle Enterprise Manager Cloud Control 12c provides a complete infrastructure management solution for databases, applications and hardware. Being such a key component in the enterprise naturally leads to concerns about redundancy and high availability. If something does go wrong within the configuration, it should be able to be recovered in the shortest possible time, thus minimizing disruptions to manageability and monitoring of the enterprise infrastructure. It is with these points in mind that Oracle Enterprise Manager has been designed to be able to meet high service and operating levels using different high availability mechanisms.
CAM - Cloud Automation Manager is a centralized and modular microservices plugins-based framework for DevOps and automation of Entereprise software development and service provider cloud operations using a single pane of glass using opensource architecture
JavaOne: Efficiently building and deploying microservicesBart Blommaerts
Since Martin Fowler’s article on microservices in the beginning of 2014, there has been a lot of controversy about the topic. Although most articles talk about microservices from an architectural perspective, this session intends to go further and also provide examples of and best practices for building and deploying polyglot applications in an enterprise Java environment. In the session, the build process focuses on efficiency and shows that microservices don’t necessarily cause overhead for a project. Microservices don't imply copying and pasting the same boilerplate code over and over. The deployment process in the presentation is, of course, automated but also demonstrates best practices for integration testing between different active services.
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
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
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
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
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