SlideShare a Scribd company logo
TS 4839 - Enterprise Integration Patterns in Practice
What Are Design Patterns? 


          A design pattern is a formal way of
          documenting a solution to a design
          problem in a particular field of expertise.
         (Wikipedia)




                                                       2
Got EIP?
Core Principles of EIP

>   Patterns using asynchronous messaging as a style
    of integration

>   Pros
    • Scaling
    • Decoupling
>   Cons
    • Latency vs. throughput
    • Decoupling not always appropriate
                                                       4

Recommended for you

Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus

The document discusses selecting an enterprise service bus (ESB) and provides the following information: 1. It outlines an ESB evaluation framework that examines common and advanced ESB features. 2. It describes using the framework to understand how to implement common use cases and demonstrate ease of development with graphical tools and connectors. 3. It evaluates the composable architecture and enterprise fit by examining cross-component use cases, governance practices, security, and performance validation.

 
by WSO2
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters

At a high level, both SOA and web APIs seem to solve the same problem – expose business function in real-time and in a reusable way. This tutorial looks at how these initiatives are different and how they align into an evolving integration architecture. It discusses how API Management differs from the integration architectures that came before it, such as SOA and EAI.

integrationsoaapi
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of Integration

The software integration market is heating up with many new-entry cloud-based vendors and a sea-change in customer expectations. What does this means for traditional Enterprise Application Integration? How do modern integration tools add value and where is the integration market heading? Microsoft is leading the charge forward with a new emphasis on microservice-based integration. What are microservices? How do they relate to iPaaS and what does the Azure-based microservice ecosystem offer? How will this emerging world transform integration in the future?

eaienterprise application integrationmicrosoft azure
Pattern Overview




                   5
Identifying and Expressing Patterns




                                      6
Layers of Functionality




>   Not an either/or choice, combine layers as
    appropriate

                                                 7
Message Flow / Service Composition

>   Strengths and uses
    • De-coupling and re-using Services
        • Easier to evolve
    •   Scaling, Throughput
        • Asynchronous nature
    •   Message routing, processing, transformation
    •   Easy to mediate



                                                      8

Recommended for you

WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen

The document discusses the drive towards connected business and making it happen. It describes motivations like Moore's law for data, the growth of app stores and APIs, and the rise of the internet of things. The key aspects of connected business are connecting internal systems and partners to create a platform for internal and external innovation, and virtualizing data, functions and processes with cloud-based approaches. Milestone planning with independent, time- or function-based milestones is recommended to pursue the vision in a structured way.

 
by WSO2
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro

This document compares and contrasts microservice architecture (MSA) and service-oriented architecture (SOA). SOA defines application components as loosely coupled services that communicate over a network, while MSA develops applications as suites of small services communicating via lightweight mechanisms like REST. The document also discusses Netflix's transition from a monolithic to a microservices architecture led by Adrian Cockcroft, highlighting benefits like speed, autonomy, and flexibility.

kubernetesmsaturn garbage into gold
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices

CPU and RAM costs continue to plummet. Multi-core systems are ubiquitous. Writing code is easier than it has ever been. Why, then, is it still so darn hard to make a scalable system?

microservicesscalabilitydurable service
Message Endpoints / Services

>   Message Endpoints / Services
    • Message based interface
    • Expose coarse grained services
    • Typically stateless
    • Anticipate re-use
    • Visibility scope examples
     •   Within application
     •   Within ESB
     •   Anyone with access to JMS server
     •   External
                                            9
Code Composition

>   Strengths and uses
    • Fine grained API access
    • Stateful, fine grained interactions
     •   Low latency


>   Challenge
    • Interface tighter coupled


                                           10
Implicit and Explicit Patterns

>   Some patterns inherent in technology / framework
    • Not every pattern a "keyword"
     •   e.g. JMS publish/subscribe ...
>   Patterns realized in user code 
     •   e.g. Scatter-Gather realized in Java
>   Platform has pre-built constructs
     •   e.g. Unix pipe symbol "|" : pipes-and-filters  
     •   Route in Camel or Fuji: pipes-and-filters



                                                          11
Visualizing EIPs




 • Stencils exist for Visio and OmniGraffle 
   •   http://www.eaipatterns.com/downloads.html  




                                                     12

Recommended for you

[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina

To implement most business use cases, it is required to reuse existing services. Writing everything from scratch isn’t practical or efficient. A composite service is a coarse-grained service which reuses the functionality exposed by other services. This session will explore how implementing composite services using Ballerina is straightforward as it has all the features required to implement various types of composite services.

 
by WSO2
ballerinacomposite applications
Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your business

Service orientation provides benefits for businesses by enabling them to move from brittle, hardwired application silos to shared, reusable business and infrastructure components. This eliminates application redundancy and complexity, enabling business agility, innovation and operational excellence. The document discusses service orientation at eBay, where over 300 services have been developed to organize the enterprise as reusable business functions and reduce costs of new features and applications. Challenges of service orientation include technical issues like latency and security as well as ensuring developer adoption and effective governance processes.

 
by WSO2
wso2wso2 bamebay
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture

The document discusses integration architecture in a microservices world. It begins by defining integration architecture as how data and functions are shared between applications. It then discusses challenges with large enterprise landscapes that have undergone mergers and acquisitions. The document outlines different types of integration architectures like external, enterprise, batch-based, and event-based integration. It also discusses common misconceptions around microservices, such as thinking microservices refer to exposed APIs rather than application components. The summary concludes by noting debates around the differences between microservices and service-oriented architecture (SOA).

esbmicroservicessoa
Patterns in Practice




                       13
Gotcha - Flexibility vs. Productivity

>   Issue: Too little explicit support out-of-the-box
    • Too much roll your own
>   Issue: Explicit support out-of-the-box is too rigid
    • Does not exactly fit the use case
     •   Forced to work around or again roll your own


>   What you want is out-of-the-box productivity with
    explicit constructs AND flexibility to customize the
    constructs
                                                          14
Intro to Frameworks 

 • Apache Camel
   •   http://camel.apache.org/


 • Project Fuji / OpenESB v3
   •   http://fuji.dev.java.net/




                                   15
What is Apache Camel? 


                            A framework for simplifying integration
                            through the use of the 
                            Enterprise Integration Patterns for
                            message mediation, processing,
                            routing and transformation
 http://camel.apache.org/




                                                                      16

Recommended for you

Moving E Government to the Cloud
Moving E Government to the CloudMoving E Government to the Cloud
Moving E Government to the Cloud

This document discusses how a cloud native middleware platform can help solve issues with effective eGovernment systems. A cloud native platform provides an elastic, multi-tenant architecture that allows different government agencies to securely access shared services and data in the cloud. It also supports deploying common services for all agencies while allowing individual agencies to have their own unique processes and data. This type of platform enables central management of resources while giving individual agencies flexibility and isolation through tenant-level virtualization. It can help integrate scattered data repositories, enable transactions across agencies, and reduce costs through an on-demand, pay-per-use model.

 
by WSO2
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing

The document provides an overview of modern cloud architecture. It discusses key cloud concepts like Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). It also covers architectural considerations for cloud applications like multi-tenancy, load balancing, scaling, security, monitoring, and metering. Microservices architecture and containerization are introduced as approaches for building applications for the cloud. Data-intensive architectures like lambda architecture are also summarized.

software architecture cloud bigdata scaling
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...

Web Oriented Architecture (WOA) and Mobile Oriented Architecture (MOA) are terms coined for the architecture backing modern HTML 5 web applications (rich client/thin server) as well as mobile applications. A pivotal part of WOA and MOA is a layer of services that exposes relevant aspects - both data and functions - of enterprise systems, in a standardized fashion that can easily be consumed. RESTful services using JSON for message payloads are commonly preferred for this. The next generation of the SOA Suite has cloud integration, JSON processing and REST-services as one of its core themes. In this session, we will discuss how a MOA & WOA is designed and how the Oracle SOA Suite & Service Bus - both the current 11g and the upcoming 12c release - can be used to create the services layer.

woajsonsoa suite
Apache Camel is Focused on EIP




                               =>




    http://camel.apache.org/        http://eaipatterns.com/

                                                              17
Message Routing




                  from("A").to("B");




                                       18
Slightly More Complex Routing




       from("file:///tmp/myFile.txt").
       to("bean:MyBean?method=handleMessage").
       to("jms:TEST.Q");




                                                 19
Multicast Routing




       from("file:///tmp/myFile.txt").
       choice().when().
         method("MyBean", "matches").
         to("Q").
       end().
       multicast("B", "C", "D");
                                         20

Recommended for you

Using a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise developmentUsing a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise development

The document discusses how using a private cloud platform like WSO2 Stratos can help organizations overcome challenges in enterprise application development by providing an integrated development environment that allows for self-service provisioning of projects, automated governance of libraries and frameworks used, and metrics on code quality and testing through integration with development tools. Stratos aims to provide an on-demand, automated solution for managing the entire application lifecycle from a centralized platform.

 
by WSO2
BizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best PracticesBizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best Practices

This presentation will provide you with common mapper problems and solutions, i.e., some BizTalk Mapper Patterns specifying best practices and some of the best ways to address some of your needs within the context of message transformation and also to enhance your skills when using the BizTalk Server Mapper.

data translationaggregatormicrosoft biztalk server best practices
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB

This document provides an introduction to the fundamentals of the WSO2 Enterprise Service Bus (ESB). It discusses the role of an ESB in service-oriented architecture and integration. It describes key components of the WSO2 ESB like mediators, sequences, endpoints and proxies. The document explains how the WSO2 ESB uses Apache Synapse as its mediation engine and is built on the WSO2 Carbon framework. It also provides an overview of how the ESB is configured using XML files and tools.

 
by WSO2
Pipeline Routing




       from("file:///tmp/myFile.txt").
       choice().when().
         method("MyBean", "matches").
         to("Q").
       end().
       pipeline("B", "C", "D");

                                         21
Camel Components

>    70+ components supported




                                22
What is Project Fuji? 
                                     http://fuji.dev.java.net/
>   Basis for OpenESB v3
>   Fuji Goals
    • Agility + Flexibility + Ease of Use = Productivity 
>   Service Platform to realize
    • Service Oriented Architecture (SOA)
    • Light weight SOA (aka Web Oriented Architecture)
    • Event Driven Architecture (EDA)
    • ... last but not least MOM style applications 
>   > 40 Components in OpenESB community today
                                                                 23
Interesting Properties of Fuji 

 • Convention, Configuration, Code... in that order
 • Light weight, OSGi based
 • Not JMS centric but Service Centric
   •   In-VM service composition option
   •   Choice of transport when going across VMs
       •   E.g. load balancing via http or federating using JXTA

 • Visual and textual (DSL) editing for EIPs
   •   Camel component is another option 




                                                                   24

Recommended for you

Exchange online real world migration challenges
Exchange online real world migration challengesExchange online real world migration challenges
Exchange online real world migration challenges

The document discusses real-world challenges encountered when migrating email from an on-premises Exchange deployment to Exchange Online. It covers planning considerations like directory synchronization, firewall configuration, and testing migration throughput. During the migration, it is important to communicate with users and use distribution groups to organize mailbox moves in batches. Thorough planning and testing are essential to overcome challenges and ensure a smooth migration.

Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
Migration to Microsoft Online Services from Exchange and Non-Microsoft PlatformsMigration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms

Microsoft TechEd 2009 Los Angeles Session UNC310 Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms

techedmicrosoftonline
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice

This document provides an overview of enterprise integration patterns (EIPs) and how they are implemented using Apache Camel and Project Fuji frameworks. It discusses core EIP principles like asynchronous messaging for integration. It also describes various EIP implementations like content-based routing, dead letter channels, and message transformation patterns. Code examples are shown using the Java and Spring DSLs for Apache Camel and the DSL and web UI for Project Fuji.

eip integration java apache camel
Web Tooling Option
Service Composition with EIPs in a Browser




                                             25
Web UI Gives the User...

 • All-in-one interface for service composition
     • Service Definition
     • Routing, EIPs
     • Configuration
     • Deployment
 •   Layered on textual representation (DSL)
     • Check out from version control, edit in IDE
 •   Tooling option for different preferences and skills
     • e.g. casual technologist vs, Developer
 •   Extensible
                                                           26
Composition in an IDE / Text Editor
A textual representation of EIPs
>   Goals                                                     "Hello World 1" - 
                                                               simple routing
    • Simple, concise syntax
        • Easy to type and read
    •   Top-down design
        • Generate service templates 
    • Concept
        •   used to declare and configure services, routing
            •   Sets up services and routing at deployment time;
                NOT interpreted on the fly at runtime



                                                                                   27
Basic Concepts of the DSL
Integration Flow Language

                    "Hello World 2" - 
                     pipes-and-filters




Output of one filter/stage flows to input of next
stage similar to Unix Pipes
                                                  28

Recommended for you

Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel

This document provides an overview of integrating microservices with Apache Camel and JBoss Fuse. It introduces Apache Camel as a lightweight integration library that uses enterprise integration patterns and domain-specific languages to define integration "flows" and "routes". It describes how Camel supports features like dynamic routing, REST APIs, backpressure, load balancing, and circuit breakers that are useful for building microservices. The document also introduces JBoss Fuse as a development and runtime platform for microservices that provides tooling, frameworks, management capabilities and container support using technologies like Apache Camel, CXF, ActiveMQ and Karaf.

jboss fuseapache camelmicroservices
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011

AS 7 provides a lightweight, modular, and highly scalable application server architecture. It features a unified configuration model, improved performance, and simplified management interfaces. It can run in standalone mode as a traditional single JVM server or in domain mode for multi-server management of a cluster. The modular design allows the application server to start small and grow as needs change.

jbugjavajbossas7
Integration in the age of DevOps
Integration in the age of DevOpsIntegration in the age of DevOps
Integration in the age of DevOps

In an increasingly competitive marketplace, speed and business agility are paramount. And integration between customer-facing systems and back-end applications is more crucial than ever. At this event, you'll learn how open source software built by communities, like Apache Camel, Docker, Kubernetes, OpenShift Origin, and Fabric8, can help organizations integrate services and establish effective continuous integration and delivery (CI/CD) pipelines.

devopsjboss enterprise middlewarered hat openshift
Basic Concepts of the DSL
Explicit EIP Constructs
                   "Hello World 3" - 
                 adding EIP constructs




                                         29
Example Pattern Implementations 




                                   30
Message Routing: Content-Based Router



     RouteBuilder builder = new RouteBuilder() {
         public void configure() {
           from("activemq:NewOrders").
           choice().
               when(header("product").
                   isEqualTo("widget")).
                   to("http://remotehost:8888/someApp/").
                   to("activemq:Orders.Widgets").
               when(header("product").
                   isEqualTo("gadget")).
                   to("ftp://bsnyder@remotehost/private/reports/").
                   to("activemq:Orders.Gadgets").
               otherwise().
                   to("activemq:ERRORS");
         }
         };
     }


                                                                      Apache Camel Java DSL
                                                                                         31
Message Routing: Content-Based Router



     <route>
      <from uri="activemq:NewOrders"/>
      <choice>
        <when>
         <xpath>/order/product = 'widget'</xpath>
         <to uri="activemq:Orders.Widgets"/>
        </when>
        <when>
         <xpath>/order/product = 'gadget'</xpath>
         <to uri="activemq:Orders.Gadgets"/>
        </when>
        <otherwise>
         <to uri="activemq:ERRORS"/>
        </otherwise>
      </choice>
     </route>


                                                    Apache Camel Spring DSL
                                                                         32

Recommended for you

Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShift

What are, or aren't, microservices? There's a lot of hype and buzz, but microservices emerged organically vs how some of the other distributed architectural styles were "handed down to us", so I believe there's some good things once you cut through the hype. In this talk I discussed what are and are NOT microservices, introduced some concepts, and discussed some concrete open-source libraries and frameworks that can help you develop and manage microservice style deployments.

softareopenshiftapache
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShift

What are and aren't microservices? Microservices is a validation of the open-source approach to integration and service implementation and a rebuff of the committee-driven SOA approach. In this

Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OSPutting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS

Apache Kafka–part of Lightbend Fast Data Platform–is a distributed streaming platform that is best suited to run close to the metal on dedicated machines in statically defined clusters. For most enterprises, however, these fixed clusters are quickly becoming extinct in favor of mixed-use clusters that take advantage of all infrastructure resources available. In this webinar by Sean Glover, Fast Data Engineer at Lightbend, we will review leading Kafka implementations on DC/OS and Kubernetes to see how they reliably run Kafka in container orchestrated clusters and reduce the overhead for a number of common operational tasks with standard cluster resource manager features. You will learn specifically about concerns like: * The need for greater operational knowhow to do common tasks with Kafka in static clusters, such as applying broker configuration updates, upgrading to a new version, and adding or decommissioning brokers. * The best way to provide resources to stateful technologies while in a mixed-use cluster, noting the importance of disk space as one of Kafka’s most important resource requirements. * How to address the particular needs of stateful services in a model that natively favors stateless, transient services.

apache kafkakubernetesmesosphere dc/os
Message Channels: Dead Letter Channel 




      RouteBuilder builder = new RouteBuilder() {
          public void configure() {
              errorHandler(deadLetterChannel("activemq:ERRORS.QUEUE"));


              from("file:///tmp/MyFile.txt?delay=2000").
              to("activemq:TEST.Q");
          }
          };
      }

                                                                      Apache Camel Java DSL
                                                                                         33
Message Channels: Dead Letter Channel 




   <bean id="errorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder"
     p:deadLetterUri="smtp://mail.springsource.com:25" />
   <camelContext id="camel" errorHandlerRef="errorHandler" 
     xmlns="http://camel.apache.org/schema/spring">
     <route>
       <from uri="seda:a" />
       <to uri="seda:b" />
     </route>
   </camelContext>




                                                                             Apache Camel Spring DSL
                                                                                                  34
Message Transformation: Content Filter




     RouteBuilder builder = new RouteBuilder() {
         public void configure() {
             from("activemq:THIS.QUEUE").
                 process(new Processor() {
                     public void process(Exchange e) {
                         Message in = exchange.getIn();
                         in.setBody(in.getBody(String.class) + " Ride the Camel!");
             }
                 }).
             to("activemq:THAT.QUEUE");
         }
         };
     }


                                                                                      Apache Camel Java DSL
                                                                                                         35
Message Transformation: Content Filter




    <bean id="transformerBean" class="com.mycompany.orders.transform.MyTransformerBean" />
    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
      <from uri="activemq:THIS.QUEUE" />
      <bean ref="transformerBean" method="transformMessage" />
      <to uri="activemq:THAT.QUEUE" />
    </camelContext>




                                                                               Apache Camel Spring DSL
                                                                                                    36

Recommended for you

Red Hat Open Day JBoss Fuse
Red Hat Open Day JBoss FuseRed Hat Open Day JBoss Fuse
Red Hat Open Day JBoss Fuse

This document provides an overview of Apache Camel, an open source framework for integration. It discusses key Camel concepts like routes, endpoints, components, messages and integration patterns. It provides examples of routing messages between different endpoints using the Java and XML domain specific languages.

redhat jboss fuse esb
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator

The document provides an introduction to Typesafe Activator and the Play Framework. It discusses how Activator is a tool that helps developers get started with the Typesafe Reactive Platform and Play applications. It also covers some core features of Play like routing, templates, assets, data access with Slick and JSON, and concurrency with Futures, Actors, and WebSockets.

play activator typesafe
TechBeats #2
TechBeats #2TechBeats #2
TechBeats #2

Applause's journey from a monolith to a microservice environment running on Mesosphere DC/OS by Christopher Gianelloni

devopsapachemesosmicroservices
Camel Pattern: Throttler

>   Limit the number of messages to be sent in a given
    time window

      public class MyRouteBuilder extends RouteBuilder {
          public void configure() {
            from("activemq:TEST.QUEUE”).
              throttler(3).timePeriodMillis(10000).
              to("http://remotehost:8888/meticProcessingService");
        }
      }




>   (only send three messages every 10 seconds)

                                                                     Apache Camel Java DSL
                                                                                        37
Camel Pattern: Delayer

>   Impose a simple delay on messages before being
    sent along 

      public class MyRouteBuilder extends RouteBuilder {
          public void configure() {
            from("activemq:TEST.QUEUE").
              delayer(header("JMSTimestamp", 3000).
              to("http://remotehost:8888/meticProcessingService");
        }
      }




>   (delay messages for a duration of JMSTimestamp
    value plus three seconds)
                                                                     Apache Camel Java DSL
                                                                                        38
Message Routing: Scatter-Gather ("all")




                          Fuji - DSL and Web UI
                                                  39
Message Routing: Scatter-Gather ("best")




                         Fuji - DSL and Web UI
                                                 40

Recommended for you

Think evo and use evo
Think evo and use evoThink evo and use evo
Think evo and use evo

The document discusses UI5 evolution goals of making it more modular, future-proof, and compatible. It outlines plans to split UI5 into distinct modular layers, establish asynchronous APIs and loading, introduce AMD-style module definition, and avoid globals. Examples demonstrate migrating from synchronous to asynchronous loading and use of sap.ui.define and sap.ui.require instead of jQuery namespaces. The changes aim to make UI5 more modular, optimized for modern web standards and new features.

ui5conthinkevoui5
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference

The document discusses web service orchestration and composition. It defines web services and standards like SOAP and WSDL. It describes how BPEL can be used for orchestrating web services by defining business processes and workflows in an XML format. BPEL allows activities like invoking other services, receiving messages, and structured activities like sequence, flow and pick. The document provides examples of synchronous BPEL processes and how messages are exchanged.

Service-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMixService-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMix

This document provides an overview of Service Oriented Integration with Apache ServiceMix. It discusses what an Enterprise Service Bus (ESB) is, introduces Java Business Integration (JBI) and its normalized message format. It then describes Apache ServiceMix, an open source ESB and JBI container, covering its architecture, features, and how it supports common integration patterns like content-based routing through the use of Apache Camel. Configuration and tooling options for ServiceMix are also reviewed.

integrationapacheservicemix
Message Routing: Content-Based Router




                       Fuji - DSL and Web UI
                                               41
Message Routing: Content-Based Router (dynamic)




 • CBR rules configured at deployment/runtime

                          Fuji - DSL and Web UI
                                                  42
Message Routing: Composed Message Processor




                      Fuji - DSL and Web UI
                                              43
EIP Product Demo 

 • Apache Camel
 • Project Fuji




                    44

Recommended for you

Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC

The document describes a cloud compiler system that allows users to compile, run, test and debug code in various programming languages like Java, HTML, SQL, and C# without installing compilers locally. It discusses key aspects of the system like the objective, introduction, platforms and technologies used like Tomcat server, Java Server Pages, and Struts framework. Some benefits highlighted are that it is user friendly, supports multiple languages, and allows accessing programs from any device with an internet connection.

cloud compiler
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)

This document provides an overview of open source software and the Apache Software Foundation. It discusses the Apache license and how it differs from GPL. It then introduces several popular Apache projects including Apache Commons, Apache Ant, Apache Axis2, Apache Camel, and Apache Tomcat. For each project, it provides a brief description and links to the project's website. The document uses these examples to illustrate the benefits of applying open source software, such as reducing costs and development time.

開放原始碼
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...

The code will print false, because paid = true assigns a local variable rather than setting the instance variable @paid. To fix it, use self.paid = true.

ruby on rails
Andreas Egloff
andreas.egloff@sun.com


Bruce Snyder
bruce.snyder@springsource.com

More Related Content

What's hot

Introduction to Java Cloud Service
Introduction to Java Cloud ServiceIntroduction to Java Cloud Service
Introduction to Java Cloud Service
Perficient, Inc.
 
Microservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference ArchitectureMicroservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference Architecture
Jesus Rodriguez
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
Peter R. Egli
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus
WSO2
 
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
Kim Clark
 
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of Integration
BizTalk360
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen
WSO2
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
Sonic leigh
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
Chase Aucoin
 
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
WSO2
 
Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your business
WSO2
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
Kim Clark
 
Moving E Government to the Cloud
Moving E Government to the CloudMoving E Government to the Cloud
Moving E Government to the Cloud
WSO2
 
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
Giragadurai Vallirajan
 
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
Lucas Jellema
 
Using a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise developmentUsing a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise development
WSO2
 
BizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best PracticesBizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best Practices
BizTalk360
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
WSO2
 
Exchange online real world migration challenges
Exchange online real world migration challengesExchange online real world migration challenges
Exchange online real world migration challenges
Steve Goodman
 
Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
Migration to Microsoft Online Services from Exchange and Non-Microsoft PlatformsMigration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
BitTitan
 

What's hot (20)

Introduction to Java Cloud Service
Introduction to Java Cloud ServiceIntroduction to Java Cloud Service
Introduction to Java Cloud Service
 
Microservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference ArchitectureMicroservices in the Enterprise: A Research Study and Reference Architecture
Microservices in the Enterprise: A Research Study and Reference Architecture
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus
 
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
 
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of Integration
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
 
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
 
Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your business
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Moving E Government to the Cloud
Moving E Government to the CloudMoving E Government to the Cloud
Moving E Government to the Cloud
 
Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
 
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 
Using a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise developmentUsing a private cloud to automate and govern enterprise development
Using a private cloud to automate and govern enterprise development
 
BizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best PracticesBizTalk Mapping Patterns and Best Practices
BizTalk Mapping Patterns and Best Practices
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
 
Exchange online real world migration challenges
Exchange online real world migration challengesExchange online real world migration challenges
Exchange online real world migration challenges
 
Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
Migration to Microsoft Online Services from Exchange and Non-Microsoft PlatformsMigration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
Migration to Microsoft Online Services from Exchange and Non-Microsoft Platforms
 

Similar to TS 4839 - Enterprise Integration Patterns in Practice

EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
Bruce Snyder
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
Christian Posta
 
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011
hbraun
 
Integration in the age of DevOps
Integration in the age of DevOpsIntegration in the age of DevOps
Integration in the age of DevOps
Albert Wong
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Christian Posta
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Christian Posta
 
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OSPutting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Lightbend
 
Red Hat Open Day JBoss Fuse
Red Hat Open Day JBoss FuseRed Hat Open Day JBoss Fuse
Red Hat Open Day JBoss Fuse
Adrian Gigante
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
Kevin Webber
 
TechBeats #2
TechBeats #2TechBeats #2
TechBeats #2
applausepoland
 
Think evo and use evo
Think evo and use evoThink evo and use evo
Think evo and use evo
Ram Prasad G S
 
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
choreos
 
Service-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMixService-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMix
Bruce Snyder
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
vipin kumar
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
My own sweet home!
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Nilesh Panchal
 
Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)
Camuel Gilyadov
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
MariaDB plc
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
Steve Wong
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
Johan Edstrom
 

Similar to TS 4839 - Enterprise Integration Patterns in Practice (20)

EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011
 
Integration in the age of DevOps
Integration in the age of DevOpsIntegration in the age of DevOps
Integration in the age of DevOps
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShift
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
 
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OSPutting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
 
Red Hat Open Day JBoss Fuse
Red Hat Open Day JBoss FuseRed Hat Open Day JBoss Fuse
Red Hat Open Day JBoss Fuse
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
TechBeats #2
TechBeats #2TechBeats #2
TechBeats #2
 
Think evo and use evo
Think evo and use evoThink evo and use evo
Think evo and use evo
 
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
 
Service-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMixService-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMix
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
 
Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 

Recently uploaded

20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 

Recently uploaded (20)

20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 

TS 4839 - Enterprise Integration Patterns in Practice

  • 2. What Are Design Patterns?  A design pattern is a formal way of documenting a solution to a design problem in a particular field of expertise. (Wikipedia) 2
  • 4. Core Principles of EIP > Patterns using asynchronous messaging as a style of integration > Pros • Scaling • Decoupling > Cons • Latency vs. throughput • Decoupling not always appropriate 4
  • 7. Layers of Functionality > Not an either/or choice, combine layers as appropriate 7
  • 8. Message Flow / Service Composition > Strengths and uses • De-coupling and re-using Services • Easier to evolve • Scaling, Throughput • Asynchronous nature • Message routing, processing, transformation • Easy to mediate 8
  • 9. Message Endpoints / Services > Message Endpoints / Services • Message based interface • Expose coarse grained services • Typically stateless • Anticipate re-use • Visibility scope examples • Within application • Within ESB • Anyone with access to JMS server • External 9
  • 10. Code Composition > Strengths and uses • Fine grained API access • Stateful, fine grained interactions • Low latency > Challenge • Interface tighter coupled 10
  • 11. Implicit and Explicit Patterns > Some patterns inherent in technology / framework • Not every pattern a "keyword" • e.g. JMS publish/subscribe ... > Patterns realized in user code  • e.g. Scatter-Gather realized in Java > Platform has pre-built constructs • e.g. Unix pipe symbol "|" : pipes-and-filters   • Route in Camel or Fuji: pipes-and-filters 11
  • 12. Visualizing EIPs • Stencils exist for Visio and OmniGraffle  • http://www.eaipatterns.com/downloads.html   12
  • 14. Gotcha - Flexibility vs. Productivity > Issue: Too little explicit support out-of-the-box • Too much roll your own > Issue: Explicit support out-of-the-box is too rigid • Does not exactly fit the use case • Forced to work around or again roll your own > What you want is out-of-the-box productivity with explicit constructs AND flexibility to customize the constructs 14
  • 15. Intro to Frameworks  • Apache Camel • http://camel.apache.org/ • Project Fuji / OpenESB v3 • http://fuji.dev.java.net/ 15
  • 16. What is Apache Camel?  A framework for simplifying integration through the use of the  Enterprise Integration Patterns for message mediation, processing, routing and transformation http://camel.apache.org/ 16
  • 17. Apache Camel is Focused on EIP => http://camel.apache.org/ http://eaipatterns.com/ 17
  • 18. Message Routing from("A").to("B"); 18
  • 19. Slightly More Complex Routing from("file:///tmp/myFile.txt"). to("bean:MyBean?method=handleMessage"). to("jms:TEST.Q"); 19
  • 20. Multicast Routing from("file:///tmp/myFile.txt"). choice().when(). method("MyBean", "matches"). to("Q"). end(). multicast("B", "C", "D"); 20
  • 21. Pipeline Routing from("file:///tmp/myFile.txt"). choice().when(). method("MyBean", "matches"). to("Q"). end(). pipeline("B", "C", "D"); 21
  • 22. Camel Components >  70+ components supported 22
  • 23. What is Project Fuji?  http://fuji.dev.java.net/ > Basis for OpenESB v3 > Fuji Goals • Agility + Flexibility + Ease of Use = Productivity  > Service Platform to realize • Service Oriented Architecture (SOA) • Light weight SOA (aka Web Oriented Architecture) • Event Driven Architecture (EDA) • ... last but not least MOM style applications  > > 40 Components in OpenESB community today 23
  • 24. Interesting Properties of Fuji  • Convention, Configuration, Code... in that order • Light weight, OSGi based • Not JMS centric but Service Centric • In-VM service composition option • Choice of transport when going across VMs • E.g. load balancing via http or federating using JXTA • Visual and textual (DSL) editing for EIPs • Camel component is another option  24
  • 25. Web Tooling Option Service Composition with EIPs in a Browser 25
  • 26. Web UI Gives the User... • All-in-one interface for service composition • Service Definition • Routing, EIPs • Configuration • Deployment • Layered on textual representation (DSL) • Check out from version control, edit in IDE • Tooling option for different preferences and skills • e.g. casual technologist vs, Developer • Extensible 26
  • 27. Composition in an IDE / Text Editor A textual representation of EIPs > Goals "Hello World 1" -  simple routing • Simple, concise syntax • Easy to type and read • Top-down design • Generate service templates  • Concept • used to declare and configure services, routing • Sets up services and routing at deployment time; NOT interpreted on the fly at runtime 27
  • 28. Basic Concepts of the DSL Integration Flow Language "Hello World 2" -  pipes-and-filters Output of one filter/stage flows to input of next stage similar to Unix Pipes 28
  • 29. Basic Concepts of the DSL Explicit EIP Constructs "Hello World 3" -  adding EIP constructs 29
  • 31. Message Routing: Content-Based Router RouteBuilder builder = new RouteBuilder() {     public void configure() {       from("activemq:NewOrders").       choice().           when(header("product").               isEqualTo("widget")).               to("http://remotehost:8888/someApp/").               to("activemq:Orders.Widgets").           when(header("product").               isEqualTo("gadget")).               to("ftp://bsnyder@remotehost/private/reports/").               to("activemq:Orders.Gadgets").           otherwise().               to("activemq:ERRORS");     }     }; } Apache Camel Java DSL 31
  • 32. Message Routing: Content-Based Router <route> <from uri="activemq:NewOrders"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:Orders.Widgets"/> </when> <when> <xpath>/order/product = 'gadget'</xpath> <to uri="activemq:Orders.Gadgets"/> </when> <otherwise> <to uri="activemq:ERRORS"/> </otherwise> </choice> </route> Apache Camel Spring DSL 32
  • 33. Message Channels: Dead Letter Channel  RouteBuilder builder = new RouteBuilder() {     public void configure() {         errorHandler(deadLetterChannel("activemq:ERRORS.QUEUE"));         from("file:///tmp/MyFile.txt?delay=2000").         to("activemq:TEST.Q");     }     }; } Apache Camel Java DSL 33
  • 34. Message Channels: Dead Letter Channel  <bean id="errorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder"   p:deadLetterUri="smtp://mail.springsource.com:25" /> <camelContext id="camel" errorHandlerRef="errorHandler"    xmlns="http://camel.apache.org/schema/spring">   <route>     <from uri="seda:a" />     <to uri="seda:b" />   </route> </camelContext> Apache Camel Spring DSL 34
  • 35. Message Transformation: Content Filter RouteBuilder builder = new RouteBuilder() {     public void configure() {         from("activemq:THIS.QUEUE").             process(new Processor() {                 public void process(Exchange e) {                     Message in = exchange.getIn();                     in.setBody(in.getBody(String.class) + " Ride the Camel!");         }             }).         to("activemq:THAT.QUEUE");     }     }; } Apache Camel Java DSL 35
  • 36. Message Transformation: Content Filter <bean id="transformerBean" class="com.mycompany.orders.transform.MyTransformerBean" /> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">   <from uri="activemq:THIS.QUEUE" />   <bean ref="transformerBean" method="transformMessage" />   <to uri="activemq:THAT.QUEUE" /> </camelContext> Apache Camel Spring DSL 36
  • 37. Camel Pattern: Throttler > Limit the number of messages to be sent in a given time window public class MyRouteBuilder extends RouteBuilder {     public void configure() {       from("activemq:TEST.QUEUE”).         throttler(3).timePeriodMillis(10000).         to("http://remotehost:8888/meticProcessingService");   } } > (only send three messages every 10 seconds) Apache Camel Java DSL 37
  • 38. Camel Pattern: Delayer > Impose a simple delay on messages before being sent along  public class MyRouteBuilder extends RouteBuilder {     public void configure() {       from("activemq:TEST.QUEUE").         delayer(header("JMSTimestamp", 3000).         to("http://remotehost:8888/meticProcessingService");   } } > (delay messages for a duration of JMSTimestamp value plus three seconds) Apache Camel Java DSL 38
  • 39. Message Routing: Scatter-Gather ("all") Fuji - DSL and Web UI 39
  • 40. Message Routing: Scatter-Gather ("best") Fuji - DSL and Web UI 40
  • 41. Message Routing: Content-Based Router Fuji - DSL and Web UI 41
  • 42. Message Routing: Content-Based Router (dynamic) • CBR rules configured at deployment/runtime Fuji - DSL and Web UI 42
  • 43. Message Routing: Composed Message Processor Fuji - DSL and Web UI 43
  • 44. EIP Product Demo  • Apache Camel • Project Fuji 44