SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Integration Patterns
                 [For Mission/Business Critical System of Systems]
OpenSplice DDS




                                                       Angelo CORSARO, Ph.D.
                                                               Chief Technology Officer
                                                               OMG DDS Sig Co-Chair
                                                                          PrismTech
                                                       angelo.corsaro@prismtech.com
18:45 CET       OpenSplice DDS       Hans van't Hag, OpenSplice DDS Product
                                                                                                                       Today - The V6       Manager, PrismTech
                                                                                                                       game changers

                                                                                                       19:10 CET       OpenSplice DDS       Dr Angelo Corsaro, OpenSplice DDS CTO,
                                                                                                                       Tomorrow - What's    PrismTech
                                                                                                                       coming next

                                                                                                       19:35 CET       Buffet and Hands
                                                                                                                       on with OpenSplice
                                                                                                                       DDS
                 Thank you for registering to attend PrismTech’s OpenSplice DDS User
                 Conference which will be held in Paris, France on Tuesday 17 April 2012 at            20.05 CET       The Community -      Dr Angelo Corsaro, OpenSplice DDS CTO,
                 6.00pm Central European Time.
                                                                                                                       Your contributions   PrismTech and Hans van't Hag, OpenSplice
                                                                                                                       enriching            DDS Product Manager, PrismTech
                 We very much look forward to meeting both new and experienced OpenSplice
                                                                                                                       OpenSplice DDS
                 DDS Users at the event. Please see below some logistical information for the
                 event.
                                                                                                       20:30 CET       OpenSplice DDS       OpenSplice DDS Users




                                                                                                                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 Event Location                                                                                        User Success
                                                                                                                       Stories
                 The OpenSplice DDS User Conference is free to attend and will be held at:
                                                                                                       20:45 CET       The OpenSplice       All
                 GRAND  ETOILE  D’OR  ROOM  (first level)                                                              DDS Forum – Your
                 Hotel Concorde La Fayette - http://www.concorde-lafayette.com/en/?                                    questions
                 3 Place du General Koenig,                                                                            answered and your
                 75017,                                                                                                ideas discussed
                 Paris,
OpenSplice DDS




                 France.                                                                               21:30 CET       Finish

                 The hotel is conveniently located close to the Champs-Elysees and the business
                 district of La Defense. Detailed directions to the hotel via different travel modes
                 is available from:                                                                    Special Offer
                 http://www.concorde-lafayette.com/en/paris-tourism/directions.aspx
                                                                                                       The OpenSplice DDS User Conference is being held in collaboration with the
                 Event Agenda                                                                          Object Management Group (OMG) Real-Time, Embedded, and Enterprise Scale
                                                                                                       Time-Critical Systems Workshop, which will run from Tuesday 17 April until
                 The agenda for the event will be as follows:                                          Thursday 19 April.
                 Time             Agenda                 Presenter                                     PrismTech is pleased to announce that as a platinum sponsor of the Workshop,
                 18:00 CET        Drinks and
                                                                                                       we are able to offer you a special discounted rate.
                                  Canapes
                                                                                                       Simply click on the link - http://www.omg.org/registration/RT-WS/index.htm -
                 18:15 CET        The Progress of        Dr Richard Soley, OMG                         and enter the  code  “rts”  where  it  prompts  you  to  do  so.
                                  DDS
                                                                                                       The code gives you a €295 saving off the standard conference rate as well as
                 18:30 CET        The Success Story      Keith Steele, CEO, PrismTech                  pricing options for individual days.
                                  that is OpenSplice
                                  DDS
Scope and Context
                      This presentation will focus on Integration Patterns for systems




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐
                      based on DDS

                  ☐   The patterns presented address the challenges arising when
OpenSplice DDS




                      integrating multiple DDS-based systems or when bridging across
                      technology

                  ☐   Finally, it is worth keeping in mind that Mission/Business- Critical
                      systems have specific QoS requirement that should not be
                      affected by integration!
Integration Challenges                                        [1/2]




                  ☐   Data Integration




                                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      ☐   Enable data to flow across systems/sub-systems

                  ☐   Data Policing
                          Control which data is allowed to get in/out of a given system/subsystem
OpenSplice DDS




                      ☐


                  ☐   Impedance/QoS Adaptation
                      ☐   Different network bandwidth
                      ☐   Different processing power
                      ☐   Ensure that QoS properties of parts are preserved when integrated into
                          the whole
Integration Challenges                                      [2/2]




                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Technology Integration
                      ☐   Enable data to flow across multiple formats and communication stacks

                  ☐   Security
OpenSplice DDS




                      ☐   Secure information exchange across system/sub-system boundaries
Data Integration Patterns
OpenSplice DDS
Data Integration Patterns                              [1/2]




                  Data Integration Patterns are a synthesis of the most commonly used




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  techniques for integrating systems that don’t share the same
                  representation for some given entities

                  ☐   Some common Data Integration Patterns are
OpenSplice DDS




                      ☐   Content Enricher
                      ☐   Content Filter
                      ☐   Type Transformation
                      ☐   Canonical Data Model
Content Enricher




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Enriches a data type by adding additional information required
                      by the target system/subsystem

                  ☐   Example: Compute speed and enrich position
OpenSplice DDS




                                                    Content Enricher
                                                                       struct Dynamics2D {
                        struct CartesianCoord2D {                         long x;
                           long x;                                        long y;
                           long y;                                        long dx;
                        };                                                long dy;

                                System A                               };    System B
Content Filter
                  ☐   Projects a data type by removing information not required by the




                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      target system/subsystem

                  ☐   Example: Going from Dynamics to Position
OpenSplice DDS




                                                    Content Filter
                                                                     struct Dynamics2D {
                        struct CartesianCoord2D {                       long x;
                           long x;                                      long y;
                           long y;                                      long dx;
                        };                                              long dy;

                                System A                             };    System B
Canonical Data Model




                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The Canonical Data Model Pattern is commonly
                      used in DDS systems. In this case, data is always
                      transformed into the representation used by the
                      “Canonical Model”. This approach is very useful
                      as it reduces the integration complexity                              Canonical Data Model
OpenSplice DDS




                  ☐   Example: Coordinate Systems


                                                       Type Transformer
                           struct CartesianCoord2D {                      struct PolarCoord2D {
                              long x;                                        long rho;
                              long y;                                        float theta;
                           };                                             };

                                   System A                                      System B
Impedance/QoS Adaptation Patterns
OpenSplice DDS
Impedance/QoS Adaptation Patterns




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Impedance/QoS Adaptation Patterns provide solutions to the
                      integration of systems/subsystems that have non-negligible
                      difference w.r.t. their computational and/or networking capabilities
OpenSplice DDS




                  ☐   Commonly Used Patterns are:
                      ☐   Impedance/QoS Mediator
                      ☐   Rate Adaptation
                      ☐   Compressor
Impedance Mediator




                                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                   System A (“Fast System”)   System B (“Slow System”)    Data
                                                                                         Reader
                          Data
                          Writer

                                                                                                   Data
                                                                                                  Reader
                                                  TopicD                    TopicD
OpenSplice DDS




                                       TopicA                    TopicA
                                                                                                   Data
                                                TopicB                     TopicB                 Reader
                 Data
                 Writer
                                      TopicC                     TopicC
                                                                               ...

                   Data                                                                       Data
                   Writer                                                                    Reader
Impedance Mediator
                                           System A (“Fast System”)   System B (“Slow System”)    Data




                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                 Reader
                                  Data
                                  Writer

                                                                                                           Data
                                                                                                          Reader
                                                        TopicD                    TopicD
                                             TopicA                     TopicA
                                                                                                           Data
OpenSplice DDS




                                                       TopicB                    TopicB                   Reader
                         Data
                         Writer
                                             TopicC                    TopicC
                                                                                     ...

                           Data                                                                       Data
                           Writer                                                                    Reader




                  ☐   Direct integration of the two systems could lead to serious issues w.r.t. the
                      “Fast” System as slow readers could slow down writers. This is not
                      acceptable on a large class of Mission/Business Critical Systems
Impedance Mediator
                                         System A (“Fast System”)                  System B (“Slow System”)    Data




                                                                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                              Reader
                          Data
                          Writer

                                                                                                                        Data
                                                                                                                       Reader
                                                      TopicD                                   TopicD
                                           TopicA                                    TopicA
                                                                                                                        Data
                                                                    Mediator
OpenSplice DDS




                                                     TopicB                                   TopicB                   Reader
                 Data
                 Writer
                                           TopicC                                   TopicC
                                                                                                  ...

                   Data                                                                                            Data
                   Writer                                                                                         Reader




                      ☐            The mediator becomes the point of elasticity of the integrated system
                      ☐             It decouples the fast from the slow system and allows for further injection of
                                   integration policies, such as, down-sampling (rate-adaptor), DDS QoS
                                   adaptation and compression
OpenSplice DDS




                 Security
Security Patterns
                  ☐   Security Integration Patterns provide common solutions to implement
                      secure information exchanged across system/subsystems




                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The most commonly used security pattern in integration is the combination
                      of the Border Security Model with Secure data Tunneling
OpenSplice DDS




                                                  Unsecured
                                                 Environment
                             Unsecured             System A            Unsecured
                            Environment     Secure Communication      Environment
                             System B                                   System C

                                           Unsecured Environment
OpenSplice Gateway
OpenSplice DDS
OpenSplice Gateway
                  ☐   Provides DDS applications with unprecedented                      JMS




                                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      integration capabilities by supporting high
                      performance format and content




                                                                                                  XM
                                                                                ST




                                                                                                     PP
                                                                               RE
                      transformation, routing and QoS mediation                         OpenSplice

                                                                                     Gateway
                      Leverages Apache Camel integration




                                                                                                       P
                                                                              Cu
                  ☐




                                                                                                     AMQ
                                                                               sto
                      framework and its support for over 80
OpenSplice DDS




                                                                                m
                      connectors
                                                                                      DDSI-RTPS
                  ☐    OpenSplice Gateway is the best choice for
                      integrating DDS-interoperable applications with
                      proprietary as well as standard-based             Supported Connectors Include:
                      messaging technologies, such as JMS and           - JMS                  - HTTP
                      AMQP, as well as user applications leveraging     - REST                 - AMQP
                                                                        - CometD               - XMPP
                      Web standards such as  W3C Web Services,          - CFX                  - Hibernate
                      REST and HTML5 WebSockets                         - TCP & UDP Sockets    - Custom
Architecture
                         OpenSplice
                          Gateway
                   Based on                  camel-ospl




                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 •


                   DataReader &              Component
                   DataWriter
                 •
                   Typed data           OpenSplice DDS

                 •
                   No native or              camel-ddsi
                   generated code            Component
                   No marshalling
OpenSplice DDS




                 •


                 (raw data buffer)      JDDSI


                 Camel DDS Processors


                 •
                     DDSI demarshaller /
                     marshaller
                 •
                     Data transformation
                 •
                     Dynamic Poll Enricher
                 •
                     QoS adaptations
Key Elements
                  ☐   Components: Provide connectivity to a given technology




                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Endpoints: Represent a source/destination of messages from/to a components
                  ☐   Exchanges: Encapsulate data and meta coming from and end-point
                  ☐   Routes: Define path from input endpoints to output endpoints
OpenSplice DDS




                  ☐   Processors: Allow to perform transformation to the data, its format, etc.


                                                            route
                      endpoint   exchange




                                             processor
Components and Endpoints
                  ☐   A component is a factory of Endpoint instances. Over 80




                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      components are supported

                  ☐   Endpoints are specified using URI:
                          dds:TopicName:DomainID/TopicType?QoS
OpenSplice DDS




                      ☐
                      ☐   cometd://host:port/channelname
                      ☐   jms:[topic:]destinationName
                      ☐   [tcp|udp|vm]:host[:port]
                      ☐   xmpp://host:port/room
                      ☐   …
Routes




                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   A route defines a path from an in endpoint to an out
                      endpoint.

                  ☐   Route can be defined in Spring, or using either the Java or
OpenSplice DDS




                      Scala DSL (I prefer the Scala DSL ;-)
Sample Route in Scala
                                   val route= new RouteBuilder {!




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                        “dds:Foo:1/FooType” to “dds:Bar:2/FooType” !
                                  }!

                 DDS Endpoint!    Topic Name!   DomainID!   TypeName!
OpenSplice DDS




                                   val route= new RouteBuilder {!
                                        “ddsi:Foo:1/FooType” to “dds:Bar:2/FooType” !
                                  }!

                 DDSI Endpoint!   Topic Name!   DomainID!   TypeName!
Enterprise Integration Patterns
                  ☐   EIP provide pre-specified ways of integrating




                                                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      endpoints                                                                       Content Based
                                                                                     Recipient List
                                                                                                         Router

                  ☐   The most common integration patterns are
                      supported, such as, multicast, filtering,                         Message
                                                                                                        A         B
OpenSplice DDS




                      correlation, content-routing, load-                                FIlter       Correlation ID



                      balancing, etc.

                  ☐   Multicast Ex:                                                      Splitter      Aggregator




                                val shapesRoute = new RouteBuilder {!
                                     “dds:Foo:1/FooType” !
                                       "to (“dds:Bar:2/BarType”, “jms:topic:Foo”)!
                               }!
Integrating Patterns in Action
OpenSplice DDS
iShapes Application
                  ☐   To explore the features




                                                                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      provided by the OpenSplice
                      Gateway we’ll use the simd-
                      cxx ishapes application
                  ☐   Three Topics
OpenSplice DDS




                      ☐    Circle, Square, Triangle

                  ☐   One Type
                          struct ShapeType {
                             string color;
                             long x;
                             long y;                        Spotted shapes represent subscriptions
                             long shapesize;
                          };                                                        Pierced shapes represent publications
                          #pragma keylist ShapeType color
Data Integration
OpenSplice DDS
Topic/Domain Bridging
                                                                   DDS
                      1   val in = "ddsi:Circle:0/ShapeType"     Domain 0




                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      2   val out = "ddsi:Square:1/ShapeType"
                      3                                             Topic
                                                                   “Circle”
                      4   val shapesRoute = new RouteBuilder {
                      5         in to out
                      6   }
OpenSplice DDS




                  ☐   When using a DDSI endpoint de-
                      marshaling is lazy. Thus in this example       Topic
                                                                   “Square”
                      data is never de-marshalled but simply
                      sent-over to the target domain, with the     DDS
                      result that domain bridging is very        Domain 1
                      efficient!
Type Transformation
                                                                              DDS
                                                                            Domain 0




                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  1 val shapeRoute0 = new RouteBuilder {
                  2       in unmarshal(cdrData) process ({
                                                                               Topic
                  3         e => foo2Bar(e.getIn.getBody(classOf[Foo]))})      “Foo”
                  4       to out
                  5     }
OpenSplice DDS




                  ☐   process allows to perform arbitrary
                      modifications to the exchange                            Topic
                      content                                                  “Bar”



                  ☐   As such it can be used to implement                     DDS
                                                                            Domain 1
                      arbitrary type transformations
OpenSplice DDS




                 Data Policing
Content Router
                                                                                                                    DDS
                  1
                  2
                      // Define endpoints
                         val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
                                                                                                                  Domain 0




                                                                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  3      val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType
                                                                                                                     Topic
                  4      val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType
                  5
                                                                                                                    “Circle”
                  6      val cdrData = new DataFormatDefinition(new CDRDataFormat)
                  7      val shapesRoute = new RouteBuilder {
                  8        inEndpoint unmarshal(cdrData) choice {
                  9          when ( e => {
                 10            val s = e.getIn.getBody(classOf[ShapeType])
                                                                                                    if (x >= y)                if (x <= y)
OpenSplice DDS




                 11            if (s.x > s.y) true else false
                 12          }) to outEndpoint1
                 13
                 14              when (e => {
                 15                val s = e.getIn.getBody(classOf[ShapeType])
                 16                if (s.x < s.y) true else false
                 17              }) to outEndpoint2                                                  Topic                        Topic
                 18                                                                                 “Circle”                     “Circle”
                 19              otherwise { to (outEndpoint1, outEndpoint2) }
                 20          }                                                                       DDS                         DDS
                 21                                                                                Domain 1                    Domain 2
                 22      }
Load Balancing
                                                                                                              DDS
                  1    // Define endpoints                                                                  Domain 0




                                                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  2    val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
                  3    val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType                 Topic
                  4    val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType                “Circle”
                  5
                  6    // Define a Route using the Java DSL
                  7    val shapesRoute = new RouteBuilder {
                  8      override def configure() =
OpenSplice DDS




                  9        from(inEndpoint).sample(period, TimeUnit.MILLISECONDS)                                         load balance
                 10        loadBalance() roundRobin()
                 11        to(outEndpoint1, outEndpoint2)
                 12    }



                                                                                                  Topic                     Topic
                                                                                                 “Circle”                  “Circle”

                                                                                              DDS                          DDS
                                                                                            Domain 1                     Domain 2
Impedance QoS Adaptation
OpenSplice DDS
Data Sampling
                                                                                             DDS
                                                                                           Domain 0

                                                                                              Topic




                                                                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  1 // Define endpoints                                                      “Circle”
                  2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
                  3 val outEndpoint = "ddsi:"+ outTopic +":"+ outDomain +"/" + shapeType
                  4
                  5 // Define a Route using the Java DSL                                                1 per 500 msec
                  6 val shapesRoute = new RouteBuilder {
OpenSplice DDS




                  7   override def configure() =
                  8     from(inEndpoint) sample(period, TimeUnit.MILLISECONDS)
                  9     to(outEndpoint)
                 10 }
                                                                                              Topic
                                                                                             “Circle”



                                                                                             DDS
                                                                                           Domain 1
Technology Integration
OpenSplice DDS
JMS Integration
                                                                                           DDS
                                                                                         Domain 0

                                                                                            Topic




                                                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                           “Circle”
                 1   val dds = "ddsi:Circle:0/ShapeType"
                 2   val jms =
                 3     "jms:topic:circle?jmsMessageType=Text&deliveryPersistent=false"
                 4
                 5   val shapeRoute = new RouteBuider {                                               To Json
OpenSplice DDS




                 6     from(dds) unmarshal("cdr") marshal().json() to(jms)
                 7   }


                                                                                            Topic
                                                                                           “Circle”




                                                                                           JMS
WebSocket Integration
                  1   // Define endpoints
                  2      val inEndpoint =




                                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  3        "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType
                  4      val outEndpoint =
                  5        "websocket://"+inTopic.toLowerCase + "?sendToAll=true"
                  6
                  7      // Define a Route using the Scala DSL
                  8      val shapesRoute = new RouteBuilder {
                  9        override def configure() =
OpenSplice DDS




                 10          from(inEndpoint) unmarshal("cdr") marshal() json() to(outEndpoint)                To JSON
                 11      }




                                                                                                     Topic
                                                                                                    “Circle”


                 ☐    This example requires Camel 2.10                                              DDS
                                                                                                  Domain 0
OpenSplice DDS




             Security
TCP/UDP Tunneling                                        DDS
                                                                        Domain 0

                 ☐   Integrate different DDS Domains via TCP (or UDP)      Topic
                                                                          “Circle”
                     tunnel
                     ☐   Per Topic bridging
                     ☐   Unidirectional or bidirectional                   GW 1
                     ☐   Possibly adding SSL/TLS                               TCP
OpenSplice DDS




                                                                           GW 2
                     1 // on GW1:
                     2 from("ddsi:Circle:0/ShapeType")
                     3 to("netty:tcp://localhost:6789?sync=false");
                                                                           Topic
                                                                          “Circle”
                     1 // on GW2:
                     2 from("netty:tcp://localhost:6789?sync=false")
                     3 to("ddsi:Circle:0/ShapeType");                     DDS
                                                                        Domain 0
HTTP/HTTPS Tunneling                                        DDS
                                                                           Domain 0

                 ☐   Integrate different DDS Domains via HTTP/HTTPS           Topic
                                                                             “Circle”
                     tunneling
                     ☐       Per Topic bridging
                     ☐       Unidirectional or bidirectional                  GW 1

                                                                                  HTTP
OpenSplice DDS




                         1   // on GTW1
                         2   from("ddsi:Circle:0/ShapeType")                  GW 2
                         3   unmarshal("cdr")
                         4   marshal().json()
                         5   to("jetty:https://localhost:5001/circle");
                                                                              Topic
                                                                             “Circle”

                         1   // on GTW1
                         2
                         3
                             from("jetty:https://localhost:5001/circle")
                             unmarshal().json()
                                                                             DDS
                         4   marshal("cdr")                                Domain 0
                         5   to("ddsi:Circle:0/ShapeType");
Concluding Remarks
OpenSplice DDS
Concluding Remarks
                      The OpenSplice Gateway, through its tight integration with




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐
                      Apache Camel, provides the best solution for integrating DDS-
                      based Systems with just about anything else
OpenSplice DDS




                  ☐   The OpenSplice Gateway architecture minimizes the integration
                      overhead by being lazy -- in other terms, only performing work
                      when this is necessary for the kind of transformation required

                  ☐   In brief the OpenSplice Gateway provides you with a rich set of
                      Integration Patterns and great performances!
References




                                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     OpenSplice | DDS
                     ¥ #1 OMG DDS Implementation      ¥ Integration Framework
                     ¥ Open Source                    ¥ Open Source
                     ¥ www.opensplice.org             ¥ camel.apache.org
OpenSplice DDS




                                                            Escalier
                     ¥ Fastest growing JVM Language        ¥ Scala API for OpenSplice DDS
                     ¥ Open Source                         ¥ Open Source
                     ¥ www.scala-lang.org                  ¥ github.com/kydos/escalier
:: Connect with Us ::



                   ¥opensplice.com             ¥forums.opensplice.org
                                                                                         ¥@acorsaro
                   ¥opensplice.org             ¥opensplicedds@prismtech.com                 ¥@prismtech
OpenSplice DDS




                                                                                         ¥ crc@prismtech.com
                                                                                         ¥sales@prismtech.com
                 ¥youtube.com/opensplicetube          ¥slideshare.net/angelo.corsaro

Mais conteúdo relacionado

Semelhante a Integration Patterns for Mission Critical Systems

The OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIThe OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIAngelo Corsaro
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsAngelo Corsaro
 
Architecture for a Extended/Virtual Enterprise
Architecture for a Extended/Virtual EnterpriseArchitecture for a Extended/Virtual Enterprise
Architecture for a Extended/Virtual Enterprisephermar
 
ICE2009 - An Architecture for a Extended/Virtual Enterprise
ICE2009 - An Architecture for a Extended/Virtual EnterpriseICE2009 - An Architecture for a Extended/Virtual Enterprise
ICE2009 - An Architecture for a Extended/Virtual Enterprisephermar
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAngelo Corsaro
 
KIM, ERIM and the Silo of Doom
KIM, ERIM and the Silo of DoomKIM, ERIM and the Silo of Doom
KIM, ERIM and the Silo of DoomAlex Ball
 
TET Presentation
TET PresentationTET Presentation
TET PresentationVideoguy
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDSAngelo Corsaro
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsZettaScaleTechnology
 
Dimenco_Brochure
Dimenco_BrochureDimenco_Brochure
Dimenco_BrochureKai Liang
 
Advance DLP for Superior 3D Printing
Advance DLP for Superior 3D Printing Advance DLP for Superior 3D Printing
Advance DLP for Superior 3D Printing Engineering Technique
 
Cad cam digital_impressions till nya tandläkare
Cad cam digital_impressions till nya tandläkareCad cam digital_impressions till nya tandläkare
Cad cam digital_impressions till nya tandläkareNora S
 
2015 NEOBIOTECH CADCAM SYSTEM
2015  NEOBIOTECH CADCAM SYSTEM2015  NEOBIOTECH CADCAM SYSTEM
2015 NEOBIOTECH CADCAM SYSTEMKei Lim
 
About the Zero Deviation Lifecycle
About the Zero Deviation LifecycleAbout the Zero Deviation Lifecycle
About the Zero Deviation LifecycleSteve Ross-Talbot
 

Semelhante a Integration Patterns for Mission Critical Systems (20)

OpenSplice DDS v6
OpenSplice DDS v6OpenSplice DDS v6
OpenSplice DDS v6
 
The OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIThe OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode II
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS Applications
 
Architecture for a Extended/Virtual Enterprise
Architecture for a Extended/Virtual EnterpriseArchitecture for a Extended/Virtual Enterprise
Architecture for a Extended/Virtual Enterprise
 
ICE2009 - An Architecture for a Extended/Virtual Enterprise
ICE2009 - An Architecture for a Extended/Virtual EnterpriseICE2009 - An Architecture for a Extended/Virtual Enterprise
ICE2009 - An Architecture for a Extended/Virtual Enterprise
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part I
 
KIM, ERIM and the Silo of Doom
KIM, ERIM and the Silo of DoomKIM, ERIM and the Silo of Doom
KIM, ERIM and the Silo of Doom
 
TET Presentation
TET PresentationTET Presentation
TET Presentation
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDS
 
Cloudand Xchange
Cloudand XchangeCloudand Xchange
Cloudand Xchange
 
Osimis pitch
Osimis pitchOsimis pitch
Osimis pitch
 
DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The Origins
 
Neuroscience-based UX research
Neuroscience-based UX researchNeuroscience-based UX research
Neuroscience-based UX research
 
Dimenco_Brochure
Dimenco_BrochureDimenco_Brochure
Dimenco_Brochure
 
Advance DLP for Superior 3D Printing
Advance DLP for Superior 3D Printing Advance DLP for Superior 3D Printing
Advance DLP for Superior 3D Printing
 
Cad cam digital_impressions till nya tandläkare
Cad cam digital_impressions till nya tandläkareCad cam digital_impressions till nya tandläkare
Cad cam digital_impressions till nya tandläkare
 
2015 NEOBIOTECH CADCAM SYSTEM
2015  NEOBIOTECH CADCAM SYSTEM2015  NEOBIOTECH CADCAM SYSTEM
2015 NEOBIOTECH CADCAM SYSTEM
 
About the Zero Deviation Lifecycle
About the Zero Deviation LifecycleAbout the Zero Deviation Lifecycle
About the Zero Deviation Lifecycle
 

Mais de Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationAngelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo Corsaro
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo Corsaro
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 

Mais de Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 

Último

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Último (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Integration Patterns for Mission Critical Systems

  • 1. Integration Patterns [For Mission/Business Critical System of Systems] OpenSplice DDS Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com
  • 2. 18:45 CET OpenSplice DDS Hans van't Hag, OpenSplice DDS Product Today - The V6 Manager, PrismTech game changers 19:10 CET OpenSplice DDS Dr Angelo Corsaro, OpenSplice DDS CTO, Tomorrow - What's PrismTech coming next 19:35 CET Buffet and Hands on with OpenSplice DDS Thank you for registering to attend PrismTech’s OpenSplice DDS User Conference which will be held in Paris, France on Tuesday 17 April 2012 at 20.05 CET The Community - Dr Angelo Corsaro, OpenSplice DDS CTO, 6.00pm Central European Time. Your contributions PrismTech and Hans van't Hag, OpenSplice enriching DDS Product Manager, PrismTech We very much look forward to meeting both new and experienced OpenSplice OpenSplice DDS DDS Users at the event. Please see below some logistical information for the event. 20:30 CET OpenSplice DDS OpenSplice DDS Users Copyright  2011,  PrismTech  –    All  Rights  Reserved. Event Location User Success Stories The OpenSplice DDS User Conference is free to attend and will be held at: 20:45 CET The OpenSplice All GRAND  ETOILE  D’OR  ROOM  (first level) DDS Forum – Your Hotel Concorde La Fayette - http://www.concorde-lafayette.com/en/? questions 3 Place du General Koenig, answered and your 75017, ideas discussed Paris, OpenSplice DDS France. 21:30 CET Finish The hotel is conveniently located close to the Champs-Elysees and the business district of La Defense. Detailed directions to the hotel via different travel modes is available from: Special Offer http://www.concorde-lafayette.com/en/paris-tourism/directions.aspx The OpenSplice DDS User Conference is being held in collaboration with the Event Agenda Object Management Group (OMG) Real-Time, Embedded, and Enterprise Scale Time-Critical Systems Workshop, which will run from Tuesday 17 April until The agenda for the event will be as follows: Thursday 19 April. Time Agenda Presenter PrismTech is pleased to announce that as a platinum sponsor of the Workshop, 18:00 CET Drinks and we are able to offer you a special discounted rate. Canapes Simply click on the link - http://www.omg.org/registration/RT-WS/index.htm - 18:15 CET The Progress of Dr Richard Soley, OMG and enter the  code  “rts”  where  it  prompts  you  to  do  so. DDS The code gives you a €295 saving off the standard conference rate as well as 18:30 CET The Success Story Keith Steele, CEO, PrismTech pricing options for individual days. that is OpenSplice DDS
  • 3. Scope and Context This presentation will focus on Integration Patterns for systems Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ based on DDS ☐ The patterns presented address the challenges arising when OpenSplice DDS integrating multiple DDS-based systems or when bridging across technology ☐ Finally, it is worth keeping in mind that Mission/Business- Critical systems have specific QoS requirement that should not be affected by integration!
  • 4. Integration Challenges [1/2] ☐ Data Integration Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Enable data to flow across systems/sub-systems ☐ Data Policing Control which data is allowed to get in/out of a given system/subsystem OpenSplice DDS ☐ ☐ Impedance/QoS Adaptation ☐ Different network bandwidth ☐ Different processing power ☐ Ensure that QoS properties of parts are preserved when integrated into the whole
  • 5. Integration Challenges [2/2] Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Technology Integration ☐ Enable data to flow across multiple formats and communication stacks ☐ Security OpenSplice DDS ☐ Secure information exchange across system/sub-system boundaries
  • 7. Data Integration Patterns [1/2] Data Integration Patterns are a synthesis of the most commonly used Copyright  2011,  PrismTech  –    All  Rights  Reserved. techniques for integrating systems that don’t share the same representation for some given entities ☐ Some common Data Integration Patterns are OpenSplice DDS ☐ Content Enricher ☐ Content Filter ☐ Type Transformation ☐ Canonical Data Model
  • 8. Content Enricher Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Enriches a data type by adding additional information required by the target system/subsystem ☐ Example: Compute speed and enrich position OpenSplice DDS Content Enricher struct Dynamics2D { struct CartesianCoord2D { long x; long x; long y; long y; long dx; }; long dy; System A }; System B
  • 9. Content Filter ☐ Projects a data type by removing information not required by the Copyright  2011,  PrismTech  –    All  Rights  Reserved. target system/subsystem ☐ Example: Going from Dynamics to Position OpenSplice DDS Content Filter struct Dynamics2D { struct CartesianCoord2D { long x; long x; long y; long y; long dx; }; long dy; System A }; System B
  • 10. Canonical Data Model Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The Canonical Data Model Pattern is commonly used in DDS systems. In this case, data is always transformed into the representation used by the “Canonical Model”. This approach is very useful as it reduces the integration complexity Canonical Data Model OpenSplice DDS ☐ Example: Coordinate Systems Type Transformer struct CartesianCoord2D { struct PolarCoord2D { long x; long rho; long y; float theta; }; }; System A System B
  • 12. Impedance/QoS Adaptation Patterns Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Impedance/QoS Adaptation Patterns provide solutions to the integration of systems/subsystems that have non-negligible difference w.r.t. their computational and/or networking capabilities OpenSplice DDS ☐ Commonly Used Patterns are: ☐ Impedance/QoS Mediator ☐ Rate Adaptation ☐ Compressor
  • 13. Impedance Mediator Copyright  2011,  PrismTech  –    All  Rights  Reserved. System A (“Fast System”) System B (“Slow System”) Data Reader Data Writer Data Reader TopicD TopicD OpenSplice DDS TopicA TopicA Data TopicB TopicB Reader Data Writer TopicC TopicC ... Data Data Writer Reader
  • 14. Impedance Mediator System A (“Fast System”) System B (“Slow System”) Data Copyright  2011,  PrismTech  –    All  Rights  Reserved. Reader Data Writer Data Reader TopicD TopicD TopicA TopicA Data OpenSplice DDS TopicB TopicB Reader Data Writer TopicC TopicC ... Data Data Writer Reader ☐ Direct integration of the two systems could lead to serious issues w.r.t. the “Fast” System as slow readers could slow down writers. This is not acceptable on a large class of Mission/Business Critical Systems
  • 15. Impedance Mediator System A (“Fast System”) System B (“Slow System”) Data Copyright  2011,  PrismTech  –    All  Rights  Reserved. Reader Data Writer Data Reader TopicD TopicD TopicA TopicA Data Mediator OpenSplice DDS TopicB TopicB Reader Data Writer TopicC TopicC ... Data Data Writer Reader ☐ The mediator becomes the point of elasticity of the integrated system ☐ It decouples the fast from the slow system and allows for further injection of integration policies, such as, down-sampling (rate-adaptor), DDS QoS adaptation and compression
  • 16. OpenSplice DDS Security
  • 17. Security Patterns ☐ Security Integration Patterns provide common solutions to implement secure information exchanged across system/subsystems Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The most commonly used security pattern in integration is the combination of the Border Security Model with Secure data Tunneling OpenSplice DDS Unsecured Environment Unsecured System A Unsecured Environment Secure Communication Environment System B System C Unsecured Environment
  • 19. OpenSplice Gateway ☐ Provides DDS applications with unprecedented JMS Copyright  2011,  PrismTech  –    All  Rights  Reserved. integration capabilities by supporting high performance format and content XM ST PP RE transformation, routing and QoS mediation OpenSplice Gateway Leverages Apache Camel integration P Cu ☐ AMQ sto framework and its support for over 80 OpenSplice DDS m connectors DDSI-RTPS ☐ OpenSplice Gateway is the best choice for integrating DDS-interoperable applications with proprietary as well as standard-based Supported Connectors Include: messaging technologies, such as JMS and - JMS - HTTP AMQP, as well as user applications leveraging - REST - AMQP - CometD - XMPP Web standards such as  W3C Web Services, - CFX - Hibernate REST and HTML5 WebSockets - TCP & UDP Sockets - Custom
  • 20. Architecture OpenSplice Gateway Based on camel-ospl Copyright  2011,  PrismTech  –    All  Rights  Reserved. • DataReader & Component DataWriter • Typed data OpenSplice DDS • No native or camel-ddsi generated code Component No marshalling OpenSplice DDS • (raw data buffer) JDDSI Camel DDS Processors • DDSI demarshaller / marshaller • Data transformation • Dynamic Poll Enricher • QoS adaptations
  • 21. Key Elements ☐ Components: Provide connectivity to a given technology Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Endpoints: Represent a source/destination of messages from/to a components ☐ Exchanges: Encapsulate data and meta coming from and end-point ☐ Routes: Define path from input endpoints to output endpoints OpenSplice DDS ☐ Processors: Allow to perform transformation to the data, its format, etc. route endpoint exchange processor
  • 22. Components and Endpoints ☐ A component is a factory of Endpoint instances. Over 80 Copyright  2011,  PrismTech  –    All  Rights  Reserved. components are supported ☐ Endpoints are specified using URI: dds:TopicName:DomainID/TopicType?QoS OpenSplice DDS ☐ ☐ cometd://host:port/channelname ☐ jms:[topic:]destinationName ☐ [tcp|udp|vm]:host[:port] ☐ xmpp://host:port/room ☐ …
  • 23. Routes Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ A route defines a path from an in endpoint to an out endpoint. ☐ Route can be defined in Spring, or using either the Java or OpenSplice DDS Scala DSL (I prefer the Scala DSL ;-)
  • 24. Sample Route in Scala val route= new RouteBuilder {! Copyright  2011,  PrismTech  –    All  Rights  Reserved. “dds:Foo:1/FooType” to “dds:Bar:2/FooType” ! }! DDS Endpoint! Topic Name! DomainID! TypeName! OpenSplice DDS val route= new RouteBuilder {! “ddsi:Foo:1/FooType” to “dds:Bar:2/FooType” ! }! DDSI Endpoint! Topic Name! DomainID! TypeName!
  • 25. Enterprise Integration Patterns ☐ EIP provide pre-specified ways of integrating Copyright  2011,  PrismTech  –    All  Rights  Reserved. endpoints Content Based Recipient List Router ☐ The most common integration patterns are supported, such as, multicast, filtering, Message A B OpenSplice DDS correlation, content-routing, load- FIlter Correlation ID balancing, etc. ☐ Multicast Ex: Splitter Aggregator val shapesRoute = new RouteBuilder {! “dds:Foo:1/FooType” ! "to (“dds:Bar:2/BarType”, “jms:topic:Foo”)! }!
  • 26. Integrating Patterns in Action OpenSplice DDS
  • 27. iShapes Application ☐ To explore the features Copyright  2011,  PrismTech  –    All  Rights  Reserved. provided by the OpenSplice Gateway we’ll use the simd- cxx ishapes application ☐ Three Topics OpenSplice DDS ☐ Circle, Square, Triangle ☐ One Type struct ShapeType { string color; long x; long y; Spotted shapes represent subscriptions long shapesize; }; Pierced shapes represent publications #pragma keylist ShapeType color
  • 29. Topic/Domain Bridging DDS 1 val in = "ddsi:Circle:0/ShapeType" Domain 0 Copyright  2011,  PrismTech  –    All  Rights  Reserved. 2 val out = "ddsi:Square:1/ShapeType" 3 Topic “Circle” 4 val shapesRoute = new RouteBuilder { 5 in to out 6 } OpenSplice DDS ☐ When using a DDSI endpoint de- marshaling is lazy. Thus in this example Topic “Square” data is never de-marshalled but simply sent-over to the target domain, with the DDS result that domain bridging is very Domain 1 efficient!
  • 30. Type Transformation DDS Domain 0 Copyright  2011,  PrismTech  –    All  Rights  Reserved. 1 val shapeRoute0 = new RouteBuilder { 2 in unmarshal(cdrData) process ({ Topic 3 e => foo2Bar(e.getIn.getBody(classOf[Foo]))}) “Foo” 4 to out 5 } OpenSplice DDS ☐ process allows to perform arbitrary modifications to the exchange Topic content “Bar” ☐ As such it can be used to implement DDS Domain 1 arbitrary type transformations
  • 31. OpenSplice DDS Data Policing
  • 32. Content Router DDS 1 2 // Define endpoints val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType Domain 0 Copyright  2011,  PrismTech  –    All  Rights  Reserved. 3 val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType Topic 4 val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType 5 “Circle” 6 val cdrData = new DataFormatDefinition(new CDRDataFormat) 7 val shapesRoute = new RouteBuilder { 8 inEndpoint unmarshal(cdrData) choice { 9 when ( e => { 10 val s = e.getIn.getBody(classOf[ShapeType]) if (x >= y) if (x <= y) OpenSplice DDS 11 if (s.x > s.y) true else false 12 }) to outEndpoint1 13 14 when (e => { 15 val s = e.getIn.getBody(classOf[ShapeType]) 16 if (s.x < s.y) true else false 17 }) to outEndpoint2 Topic Topic 18 “Circle” “Circle” 19 otherwise { to (outEndpoint1, outEndpoint2) } 20 } DDS DDS 21 Domain 1 Domain 2 22 }
  • 33. Load Balancing DDS 1 // Define endpoints Domain 0 Copyright  2011,  PrismTech  –    All  Rights  Reserved. 2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 3 val outEndpoint1 = "ddsi:"+ outTopic1 +":"+ outDomain1 +"/" + shapeType Topic 4 val outEndpoint2 = "ddsi:"+ outTopic2 +":"+ outDomain2 +"/" + shapeType “Circle” 5 6 // Define a Route using the Java DSL 7 val shapesRoute = new RouteBuilder { 8 override def configure() = OpenSplice DDS 9 from(inEndpoint).sample(period, TimeUnit.MILLISECONDS) load balance 10 loadBalance() roundRobin() 11 to(outEndpoint1, outEndpoint2) 12 } Topic Topic “Circle” “Circle” DDS DDS Domain 1 Domain 2
  • 35. Data Sampling DDS Domain 0 Topic Copyright  2011,  PrismTech  –    All  Rights  Reserved. 1 // Define endpoints “Circle” 2 val inEndpoint = "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 3 val outEndpoint = "ddsi:"+ outTopic +":"+ outDomain +"/" + shapeType 4 5 // Define a Route using the Java DSL 1 per 500 msec 6 val shapesRoute = new RouteBuilder { OpenSplice DDS 7 override def configure() = 8 from(inEndpoint) sample(period, TimeUnit.MILLISECONDS) 9 to(outEndpoint) 10 } Topic “Circle” DDS Domain 1
  • 37. JMS Integration DDS Domain 0 Topic Copyright  2011,  PrismTech  –    All  Rights  Reserved. “Circle” 1 val dds = "ddsi:Circle:0/ShapeType" 2 val jms = 3 "jms:topic:circle?jmsMessageType=Text&deliveryPersistent=false" 4 5 val shapeRoute = new RouteBuider { To Json OpenSplice DDS 6 from(dds) unmarshal("cdr") marshal().json() to(jms) 7 } Topic “Circle” JMS
  • 38. WebSocket Integration 1 // Define endpoints 2 val inEndpoint = Copyright  2011,  PrismTech  –    All  Rights  Reserved. 3 "ddsi:"+ inTopic +":"+ inDomain +"/" + shapeType 4 val outEndpoint = 5 "websocket://"+inTopic.toLowerCase + "?sendToAll=true" 6 7 // Define a Route using the Scala DSL 8 val shapesRoute = new RouteBuilder { 9 override def configure() = OpenSplice DDS 10 from(inEndpoint) unmarshal("cdr") marshal() json() to(outEndpoint) To JSON 11 } Topic “Circle” ☐ This example requires Camel 2.10 DDS Domain 0
  • 39. OpenSplice DDS Security
  • 40. TCP/UDP Tunneling DDS Domain 0 ☐ Integrate different DDS Domains via TCP (or UDP) Topic “Circle” tunnel ☐ Per Topic bridging ☐ Unidirectional or bidirectional GW 1 ☐ Possibly adding SSL/TLS TCP OpenSplice DDS GW 2 1 // on GW1: 2 from("ddsi:Circle:0/ShapeType") 3 to("netty:tcp://localhost:6789?sync=false"); Topic “Circle” 1 // on GW2: 2 from("netty:tcp://localhost:6789?sync=false") 3 to("ddsi:Circle:0/ShapeType"); DDS Domain 0
  • 41. HTTP/HTTPS Tunneling DDS Domain 0 ☐ Integrate different DDS Domains via HTTP/HTTPS Topic “Circle” tunneling ☐ Per Topic bridging ☐ Unidirectional or bidirectional GW 1 HTTP OpenSplice DDS 1 // on GTW1 2 from("ddsi:Circle:0/ShapeType") GW 2 3 unmarshal("cdr") 4 marshal().json() 5 to("jetty:https://localhost:5001/circle"); Topic “Circle” 1 // on GTW1 2 3 from("jetty:https://localhost:5001/circle") unmarshal().json() DDS 4 marshal("cdr") Domain 0 5 to("ddsi:Circle:0/ShapeType");
  • 43. Concluding Remarks The OpenSplice Gateway, through its tight integration with Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Apache Camel, provides the best solution for integrating DDS- based Systems with just about anything else OpenSplice DDS ☐ The OpenSplice Gateway architecture minimizes the integration overhead by being lazy -- in other terms, only performing work when this is necessary for the kind of transformation required ☐ In brief the OpenSplice Gateway provides you with a rich set of Integration Patterns and great performances!
  • 44. References Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice | DDS ¥ #1 OMG DDS Implementation ¥ Integration Framework ¥ Open Source ¥ Open Source ¥ www.opensplice.org ¥ camel.apache.org OpenSplice DDS Escalier ¥ Fastest growing JVM Language ¥ Scala API for OpenSplice DDS ¥ Open Source ¥ Open Source ¥ www.scala-lang.org ¥ github.com/kydos/escalier
  • 45. :: Connect with Us :: ¥opensplice.com ¥forums.opensplice.org ¥@acorsaro ¥opensplice.org ¥opensplicedds@prismtech.com ¥@prismtech OpenSplice DDS ¥ crc@prismtech.com ¥sales@prismtech.com ¥youtube.com/opensplicetube ¥slideshare.net/angelo.corsaro