From the Tactical Edge to the Enterprise: Integrating DDS and JMS

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Context for this talk: Many people trying to find best practices for: 1. Taking data from “edge” systems (real-time and/or tactical systems), 2. Transforming data into situational awareness/business intelligence 3. By fusing, correlating, mining that data Technically, means connecting edge systems to DBs, CEP engines, app servers, etc. People doing this now, but in ad hoc way. Very broad problem; this talk is narrow: integrating messaging and data distribution across subsystems.

    What do I mean by a “data-centric core” and “JMS PSM”?

    The performance penalty will be decreased somewhat if one or both of the adapters shown can run in-process with the broker (such a configuration may or may not be possible; see below). However, if the system depends on the broker for other critical functions, running these adapters in-process means potentially exposing other system components to failures in those adapters. The performance penalty will be increased if the DDS implementation and/or the JMS implementation require per-node daemons, as these introduce additional data copies, context switches, potential priority inversions, and potential points of failure.

    Company Confidential

    Benefits of data-centric, “JMS PSM” approach should now be clear. Remaining concerns mostly apply to either approach. First: data model differences.

    Before we can talk about the particulars of data definition and representation, we have to understand the different communication models typical of each API. … but just as you can write object-oriented code in C or procedural code in Java, you can design message-centric or data-centric systems around either JMS or DDS.

    On to the particulars: how do we transform the data? Two approaches considered in detail: JMS-centric: IDL representation of JMS messages DDS-centric: JMS Message implementation in terms of DDS-compatible data

    Approach #1: IDL definition for all JMS message types, all unioned together

    Two main parts of the message: properties and body. Zoom in on properties first.

    Now zoom in on body. Before we move on, a summary of where we stand: If problem is just to represent JMS system in DDS, then don’t need to worry about keys/instances, instance lifecycle, etc.: JMS doesn’t have those. … but then DDS system needs to know it’s talking to JMS, and approach loses a lot of value. Next part of the presentation provides a more general mapping.

    Approach #2: Define JMS message interfaces to access DDS-compatible data Currently, implementation would be DDS-vendor-specific Extensible Topics specification will enable DDS-vendor-agnostic implementation (mars/08-06-22)

    Presentation of DDS-compatible meta-data through JMS API eases data-centric design in JMS … but doesn’t require it: ignore these properties and design message-centric system

    Instance lifecycle not totally transparent to JMS application. May be necessary to allow user to turn DDS lifecycle support on/off.

    Talked about data and messages. But where do we send those messages? Next step: delivering messages to destinations.

    JMS topic names may be simple or hierarchical and may have any syntax: flat, directory, dot-delimited, LDAP/other URL, etc. Changing JMS vendors can entail info model change: applies to any vendor change … but possibly even more so when moving from traditional JMS to JMS with more data-centric capabilities.

    JMS gives great freedom to vendors. Could be bad wrt JMS portability, but one good thing: allows JMS topics to be defined in terms of DDS topics OMG can show leadership in JMS configuration; QoS profile format from DDS/LwCCM spec is relevant but not perfect match (e.g. terminology differences)

    Can previous model (DDS destination == JMS destination) work for queues too? Queues don’t promise much – this is also a benefit when mapping to DDS.

    Each ESB and CEP vendor has their own adapter APIs. JMS adapters usually come out of the box; DDS adapters don’t. DDS adapters for some products may be available from your DDS vendor. Otherwise, build your own.

    In the shorter term, if you have an existing design and code base to preserve, and if you can live with the limitations of bridging, then bridge. In the longer term, if you’re making a strategic investment, work towards a unified information model based on a data-centric JMS implementation.

    QoS profiles and libraries done: DDS for Lightweight CCM (ptc/2009-02-02), UML Profile for DDS Extensible Topics in progress: mars/08-06-22 Java 5 PSM discussed in SIG, but no process started

    1 Favorite

    From the Tactical Edge to the Enterprise: Integrating DDS and JMS - Presentation Transcript

    1. From the Tactical Edge to the Enterprise: Integrating DDS and JMS Rick Warren, Principal Engineer
    2. Introduction
      • Rick Warren
      • Principal Engineer, RTI
      •  [email_address]
      •  http://blogs.rti.com/author/rtirick/
      • R&D, previously Services
      • Integration : usability, portability, scalability, *ility
      • Agenda
      • DDS+JMS Integration Challenge
      • DDS & JMS: Towards Best Practices
        • System Architecture
        • Data Model
        • Destinations
      • Closing Remarks
      • Q & A
      © 2009 Real-Time Innovations, Inc. Assumption: Some knowledge of DDS and JMS
    3. Problem Statement
      • JMS established in enterprise applications
        • Integrates web services, legacy applications, etc.
        • App servers, ESBs provide adapters
      • DDS, newcomer, successful at edge and moving in
        • For example:
          • Sensor networks
          • Distributed real-time control
          • Military tactical systems
        • Offers things JMS doesn’t:
          • Improved determinism
          • QoS for explicit configuration and resource management
          • Cross-vendor interoperability
      © 2009 Real-Time Innovations, Inc.
    4. Problem Statement
      • Large JMS-compatible ecosystem already exists
      • DDS-compatible ecosystem still developing
      • … So how do I plug my DDS app into a JMS-compatible system?
      © 2009 Real-Time Innovations, Inc.
    5. Solution Alternatives
      • What do you mean by “JMS”?
      • “ JMS” as a middleware implementation
        • e.g. WebLogic JMS, TIBCO EMS
        • JMS and DDS subsystems can’t communicate directly: different protocols (even across JMS implementations)
        •  Build a bridge; could be based on ESB or CEP engine
      © 2009 Real-Time Innovations, Inc. RTPS ??? DDS App Adapter Broker Adapter JMS App
    6. Solution Alternatives
      • What do you mean by “JMS”?
      • “ JMS” as a portability API
        • Raison d'être for JMS specification
        • Implement JMS API atop data-centric middleware core
        • aka “JMS PSM” for DDS
      © 2009 Real-Time Innovations, Inc. DDS App JMS App RTPS
    7. Solution Alternatives: JMS PSM for DDS
      • JMS front end to leverage existing JMS-compatible components
      • Data-centric back end for interop. with DDS systems
      © 2009 Real-Time Innovations, Inc. JMS API Data-Centric Core RTPS App Servers, ESBs, etc. Real-Time Systems
    8. System Architecture © 2009 Real-Time Innovations, Inc.
    9. Performance and Fault Tolerance: DDS  JMS Bridge
      • Leverages existing components and infrastructure while isolating subsystems
      • Broker is handy place to locate data translation, impedance mismatching, and other services
      DDS App © 2009 Real-Time Innovations, Inc. Adapter Broker Adapter JMS App copy copy pt of failure pt of failure pt of failure
    10. Performance and Fault Tolerance: DDS  JMS Bridge
      • Performance inversely proportional to number of clients per broker
      DDS App © 2009 Real-Time Innovations, Inc. Adapter Broker Adapter JMS App DDS App DDS App JMS App JMS App
    11. Throughput of Data-Centric Implementation |  Traditional JMS Implementations  | JMS PSM for DDS © 2009 Real-Time Innovations, Inc. http://www.rti.com/products/jms/latency-throughput-benchmarks.html
    12. Data Model © 2009 Real-Time Innovations, Inc. http://blogs.rti.com/2009/04/20/designing-information-models-for-distributed-applications/
      • Data-Centric Model
      • Deliver updates to the data itself
        • Most effective: data lives in middleware
        • Leverages configuration (QoS)-driven behavior
      • … Transparently, according to a well-defined data type
      • … Using user-defined interfaces
      • Message-Centric Model
      • Deliver messages about changes to the data
        • Most effective: data lives in app-managed store
        • Behaviors implemented in application code
      • … Opaquely, according to an implicit or ad hoc “data type”
      • … Using middleware-defined interfaces
      © 2009 Real-Time Innovations, Inc. Many distributed systems contain both, regardless of the API(s) they use. Data-Centric vs. Message-Centric Design http://blogs.rti.com/2009/06/03/thinking-differently-about-messaging/
    13. DDS  JMS Data Interoperability
      • Specialized Mapping
        • Build custom transformation in system-specific bridge
      • General-Purpose Mappings
        • Pack DDS-compatible data objects into JMS ObjectMessage
        • Define DDS-compatible type for representing JMS messages
        • Implement Message interfaces reflectively in terms of DDS-compatible data
      © 2009 Real-Time Innovations, Inc.  More Specific More Generic   Application JMS Provider 
    14. DDS Representation of JMS Messages
      • Any JMS Message can be sent to any Destination
        • BytesMessage
        • MapMessage
        • ObjectMessage
        • StreamMessage
        • TextMessage
      • … but DDS Topic is strongly typed
      © 2009 Real-Time Innovations, Inc. module JMS { struct BytesBody { … }; struct StreamBody { … }; struct MapBody { … }; struct TextBody { … }; union switch (BodyType) { case BYTES: BytesBody bytes; case STREAM: StreamBody stream; case MAP: MapBody map; case TEXT: TextBody text; } } IDL Definition
    15. DDS Representation of JMS Messages: Message Properties
      • struct Message {
      • sequence <NameValuePair>
      • properties;
      • … ;
      • };
      • struct NameValuePair {
      • string name;
      • union switch (ValueKind) {
      • case SHORT_KIND:
      • short short_value;
      • case LONG_KIND:
      • long long_value;
      • case …:
      • } value;
      • };
      • Any Message can contain arbitrary name-value pairs
      © 2009 Real-Time Innovations, Inc.
      • IDL is verbose
      • Content filtering is a challenge
    16. DDS Representation of JMS Messages: Message Body
      • struct Message {
      • sequence<NameValuePair> properties;
      • union switch (BodyKind) {
      • case BYTES_KIND:
      • sequence < octet > bytes;
      • case MAP_KIND:
      • sequence <NameValuePair> map;
      • case OBJECT_KIND:
      • sequence < octet > object;
      • case TEXT_KIND:
      • string text;
      • case …:
      • } body;
      • };
      © 2009 Real-Time Innovations, Inc. Not transparent : DDS subsystem coupled to JMS concepts
    17. JMS Representation of DDS Messages: Message Body
      • struct MyType
      • long my_long;
      • string my_string;
      • };
      • int intVal = msg.getInt( &quot;my_long&quot;);
      • msg.setString( &quot;my_string&quot;, &quot;my value&quot;);
      © 2009 Real-Time Innovations, Inc. IDL: JMS:
    18. JMS Representation of DDS Messages: Sample Metadata and Instance Lifecycle
      • DDS Meta-Data:
      • Key fields
      • Sample state, view state, instance state
      • Source and reception time stamps
      • Generation counts and ranks
      • Proposal :
      • JMS_ * message properties
      • * JMS app must be aware of DDS if it uses these, but it doesn’t have to
      © 2009 Real-Time Innovations, Inc.
    19. JMS Representation of DDS Messages: Sample Metadata and Instance Lifecycle
      • Publication : DDS unregister() and dispose()
      •  send() message with a property set
      • Subscription : Detecting unregistration/disposal
      •  Receive (body-less?) message with a property set
      • Open Issue : Not transparent to JMS applications  May not be compatible with existing JMS subsystems
      © 2009 Real-Time Innovations, Inc.
    20. Destinations and Delivery © 2009 Real-Time Innovations, Inc.
    21. A Topic is a Topic is a Topic…
      • DDS and JMS both describe topics for 1-to-many comm.
      • DDS specification rigorously defines what a Topic is
        • Name: literal string
        • Data type
        • QoS configuration: fully specified, application-visible
      • JMS specification leaves Topic concept to vendors
        • Names of unspecified syntax; info model flat or hierarchical
        • No data type
        • Config. vendor-specific; not available through std. interfaces
        •  Changing JMS vendors can entail information model changes: configuration, code, and/or design changes!
      © 2009 Real-Time Innovations, Inc.
    22. A Topic is a Topic is a Topic…
      • DDS Topic = JMS Topic
      • Simple topic name
      • Specified data type
        • Enforce message contents based on type definition
        • … or use “self-describing” type as in previous above
      • DDS-compatible configuration
      © 2009 Real-Time Innovations, Inc.
    23. A Queue is a … ?
      • JMS defines queues in addition to topics; DDS doesn’t
        • At-least-once delivery : messages must be kept until ack’ed
        • Only relevant message ordering is per-producing Session
        • Behavior with respect to concurrent consumers is unspecified
      • JMS queues can be mapped to DDS topics
        • DDS addition beneficial : at-least-once delivery (or at-least- n )
          • Proposal : min_acknowledgements = [ 1 , n ], LENGTH_UNLIMITED
          • In DurabilityQosPolicy ?
        • Existing 1-to-many delivery is compliant; does it match use case?
      • No def’n of exactly-once delivery in either spec Open issue for application developers
      © 2009 Real-Time Innovations, Inc.
    24. Conclusions © 2009 Real-Time Innovations, Inc.
    25. Bridged Integration Leverages Existing JMS Subsystems
      • Preserves investment in JMS design, which may or may not be portable
      • Requires adapter implementations specific to broker implementation
      • Limits levels of performance and integration across DDS/JMS interface
      • May limit fault tolerance of combined system
      DDS App © 2009 Real-Time Innovations, Inc. Adapter Broker Adapter JMS App
    26. JMS PSM for DDS Empowers Data-Centric Integration with Enterprise Infrastructure
      • Requires JMS provider with data-centric core
      • May require data-centric application design
      • Provides maximum performance and fault tolerance
      • Provides interoperability: DDS  DDS, DDS  JMS, JMS  JMS
      • Supports high performance and tight integration with unified data model
      © 2009 Real-Time Innovations, Inc. JMS API App Servers, ESBs, etc. Data-Centric Core RTPS Real-Time Systems JMS API App Servers, ESBs, etc. Data-Centric Core RTPS Real-Time Systems
    27. Information Mapping Concerns are the Same, Regardless of System Architecture
      • Information Model Components
        • Message/sample contents : body and properties
        • Instances and instance lifecycle
        • Message/sample destinations : topics, queues, and configuration
      • Mapping Considerations
        • Completeness : Are all data and meta-data needed from both APIs?
        • Transparency : Does DDS have to understand JMS or vice versa?
        • Data-centric vs. message-centric design : Do instances, keys, etc. need to be represented?
      © 2009 Real-Time Innovations, Inc. http://blogs.rti.com/2009/04/30/data-transparency-why-you-should-care/
    28. Needed: Standards Leadership
      • QoS profiles allow configuration where JMS API is lacking
      • Extensible Topics specification will improve portability of DDS  JMS data type interoperability implementation
      • Java 5 PSM for DDS would improve portability
        • Easier to create ESB, CEP adapters for multiple DDS impls.
        • To what extent should it be aligned with JMS?
      • OMG/JCP collaboration could improve portability and integration for combined DDS + JMS implementation(s)
      © 2009 Real-Time Innovations, Inc. Done In Progress Hypothetical
    29. Q & A © 2009 Real-Time Innovations, Inc.
    SlideShare Zeitgeist 2009

    + Rick WarrenRick Warren Nominate

    custom

    173 views, 1 favs, 0 embeds more stats

    Presentation to a Real-Time Workshop of the Object more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 173
      • 173 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 12
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories