SlideShare a Scribd company logo
1 of 42
Download to read offline
OpenSplice
                 DDS Everywhere
OpenSplice DDS




                              Angelo CORSARO, Ph.D.
                                      Chief Technology Officer
                                      OMG DDS Sig Co-Chair
                                                 PrismTech
                              angelo.corsaro@prismtech.com
DDS Everywhere Platform
                      A DDS-based, interoperable




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐
                      product family addressing           OpenSplice       OpenSplice

                      systems needs from Embedded         Cloud           Community
                      and Mobile to Enterprise and
                      Cloud
                                                                  OpenSplice
OpenSplice DDS




                  ☐   An Open Source core providing
                      free access to the OpenSplice       OpenSplice        OpenSplice
                      Ecosystem, security of supply and   Enterprise       Embedded
                      a vibrant, innovative community
DDS Everywhere Platform
                     Consumer
                     Platforms
                 ☐   Browser / HTML5




                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 ☐   iOS
                                                OpenSplice       OpenSplice
                 ☐   Android
                 ☐   Cloud                      Cloud           Community
                 ☐   No-SQL
                 ☐   Mobile/WiFi IP
                     Transp.
                                                        OpenSplice
OpenSplice DDS




                                                                               ☐   RTOS (VxWorks, QNX,
                 ☐   OS (Linux, Windows, etc)                                      etc.)
                 ☐   Cloud                                                     ☐ FPGA
                                                OpenSplice        OpenSplice
                 ☐   DBMS                                                      ☐ BSP / No-OS
                 ☐   No-SQL                     Enterprise       Embedded      ☐ IP + Exotic
                 ☐   InfiniBand + IP                                              Transports
                     Transports
                                                                                     Industrial
                         IT
                                                                                     Platforms
                     Platforms
DDS Everywhere Platform
                  ☐ Mobility
                  ☐ Elasticity
                  ☐ Cloud




                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐ Integration


                                            OpenSplice       OpenSplice

                                            Cloud           Community



                                                    OpenSplice
OpenSplice DDS




                      ☐   Fault-Tolerance   OpenSplice        OpenSplice
                      ☐   Throughput        Enterprise       Embedded
                      ☐   Scalability
                      ☐   Latency
                                                                           ☐ Determinism
                                                                           ☐ Latency
                      ☐   Security
                                                                           ☐ Footprint
                      ☐   Integration
OpenSplice Enterprise
OpenSplice DDS
Key Highlights
                  ☐   The best middleware                            OpenSplice         OpenSplice




                                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                     Cloud             Community
                      infrastructure to Simplify
                      Distributed System
                      Development
                                                                               OpenSplice
                  ☐   Reduce complexity of
OpenSplice DDS




                      building, testing, integrating,   OpenSplice
                                                                     OpenSplice          OpenSplice
                      and deploying high-               Tools
                                                                     Enterprise         Embedded
                      performance, scalable, and
                      fault-tolerant distributed
                      systems                                          OpenSplice
                                                                       DDS
OpenSplice DDS




                 New in v6.3
OpenSplice DDSI2E
                  Enhanced version of the Interoperable wire




                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  protocol DDSI v2.1

                  Discovery
                  ☐ Standardized discovery (locators)
                  ☐ Dynamic unicast/multicast selection
                  ☐ Optional static discovery
OpenSplice DDS




                  Real-Time
                  ☐ independently scheduled priority-lanes
                  ☐ Support for Logical and Physical Partitioning
                  ☐ Traffic-Shaping

                  Security
                  ☐   Encrypted network-Partitions
Record and Replay
                  ☐   Dynamic recording of any topic-




                                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      data in a DDS system

                  ☐   Selective replay with variable                         RnR
                                                                            RnR                     RnR
                      speed                                                Service
                                                                         Service(s)               Manager
                  ☐   Distributed control by topic-based                        Record/Replay command   Record/Replay command
                                                             Any topic
                      API (‘command’ & ‘status’ topics)
OpenSplice DDS




                                                                                & status topics         & status topics

                                                                                OpenSplice DDS
                  ☐   Seamless integration with
                      OpenSplice Tester (topic-based API)

                  ☐   Dedicated RnR-Manager graphical
                      GUI for scenario-definition and data
                      import/analysis
OpenSplice DDS


                                                                                          Record and Replay Tool




                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
New DDS APIs




                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The original DDS API introduces some unnecessary accidental
                      complexity
OpenSplice DDS




                  ☐   We’ve been working hard to standardize new C++/Java API for
                      DDS that makes using it as simple as possible
Statistics
                                                       Simple DataWriter with default QoS

                                                       DDS v1.2 C++ API          ISO C++ API




                                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                  15
                  ☐   The new API reduces the
                      number of lines of code     11
                      from 3x to 5x when
                      compared to the original
OpenSplice DDS




                                                   8
                      DDS API!

                  ☐   Less code means less bugs    4


                                                   0
                                                                          SLOC
struct ShapeType {




                 ISO C++ DDS API
                                                                           string color;
                                                                           long x;
                                                                           long y;
                                                                           long shapesize;
                                                                        };
                                                                        #pragma keylist ShapeType color




                                            int main(int argc, char* argv[]) {
                                                try {




                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Simple, Compact and   ! !
                                                   // Create DomainParticipant
                                                    DomainParticipant dp = DomainParticipant(0);

                      Elegant               ! !
                                                   // Create Topic
                                                    Topic<ShapeType> topic(dp, "Circle");
                                                   // Create Publisher
                                            ! !     Publisher pub(dp);
                  ☐   Type-safe                    // Create DataWriter QoS
                                                   DataWriterQos dwqos =
                                                      pub.default_datawriter_qos()
                                                      << Durability::Transient()
                  ☐   Orthogonal                      << History::KeepLast(10);
OpenSplice DDS




                                                  // Create DataWriter
                                            ! !    DataWriter<ShapeType> dw(pub, topic, dwqos);
                  ☐   Efficient                   // Write
                                                  ShapeType s = {"RED", 50, 70, 90};
                                                  dw << s;
                                                  // - or -
                  ☐   QoS DSL                     dw.write(s);      ! !
                                            ! } catch (const dds::core::Exception& e) {
                                            ! !    std::cout << e.what() << std::endl;
                                            ! }
                                            ! return 0;
                                            }
ISO C++ DDS API




                                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Unified and composable data selection API


                          std::vector<std::string> p;
                          p.push_back("100");
                          p.push_back("200");
OpenSplice DDS




                          Query q("x < %0 AND y < %1", p);

                          auto data = reader
                              ! .select()
                                   .instance(handle) // -- Select Instance
                              ! ! .state(status::DataState::new_data()) // -- Filter on State
                              ! ! .content(q) // -- Filter on Content
                                 .read(); // -- Execute the selection and read the data
Example: DataWriter
                 int main(int argc, char* argv[]) {
                 try {
                 ! !    DomainParticipant dp(0);




                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 ! !    Topic<ShapeType> topic(dp, "Circle");
                 ! !    Publisher pub(dp);
                 ! !    DataWriter<ShapeType> dw(pub, topic);

                 !   !   uint32_t pos = 0;
                 !   !   const uint32_t N = 300;
                 !   !   for (int i = 0; i < N; ++i) {
                 !   !   ! ShapeType bc = {"RED", i, i, 60};
OpenSplice DDS




                 !   !   ! ShapeType rc = {"BLUE", N-i, N-i, 60};
                 !   !   ! dw << rc;
                 !   !   ! usleep(10000);
                 !   !   }

                 !   } catch (const dds::core::Exception& e) {
                 !   !    std::cout << e.what() << std::endl;
                 !   }
                 !   return 0;
                 }
Example: DataReader
                 int main(int argc, char* argv[]) {
                    try {
                       DomainParticipant dp(0);




                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                       Topic<ShapeType> topic(dp, "Circle");
                       Subscriber sub(dp);
                       DataReader<ShapeType> dr(sub, topic);

                       uint32_t pos = 0;
                       const uint32_t N = 300;
                       uint32_t max_size = 10;
                       const uint32_t sleepTime = 500000;
OpenSplice DDS




                       while (true) {
                          LoanedSamples<ShapeType> samples =
                             dr.read();
                          std::cout << "-----------" << std::endl;
                          for_each(samples.begin(), samples.end(),
                                   printShapeSample);

                           usleep(sleepTime);
                        }
                     } catch (const dds::core::Exception& e) {
                        std::cout << e.what() << std::endl;
                     }
                     return 0;
                 }
Full C++ Shapes Application
                 see:




                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 github.com/kydos/dds-psm-cxx/tree/master/examples/ishapes-driver
OpenSplice DDS
OpenSplice Cloud
OpenSplice DDS
Key Highlights
                                                            OpenSplice
                                                            Gateway




                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Brings DDS on mobile
                      devices powered by       OpenSplice
                                                            OpenSplice                OpenSplice

                      Android/iOS              Mobile       Cloud                Community

                  ☐   Enables DDS-based
                                                                         OpenSplice
OpenSplice DDS




                      Cloud Messaging for
                      higher scalability,
                      throughout and minimal                OpenSplice                OpenSplice
                      cost per message                      Enterprise           Embedded
OpenSplice Mobile




                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Pure Java version of
                      OpenSplice targeting the JVM    DCPS Java 5 / Scala API

                  ☐   DDSI Protocol Stack optimized             DDSI
                      for mobility and Android OS       (Optimized for Mobility)
OpenSplice DDS




                  ☐   Only DDS on the market
                      designed and Engineered for
                      Android and the JVM
OpenSplice DDS


                                                                                          OpenSplice Mobile




                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSplice DDS


                                                                                          Demo




                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Java 5 PSM




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Idiomatic and ergonomic DDS API for Java

                  ☐   Guaranteed code portability through clean separation of standard
                      API (in an OMG provided JAR) and vendor implementation
OpenSplice DDS




                  ☐   QoS and Selector DSL simplify programming and make code more
                      readable

                  ☐   QoS Provider allows to “externalize” the QoS configuration
Java Shapes -- Reader
                  package	
  org.omg.demo.dds.shapes;

                  import	
  ...;




                                                                                                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  /**
                  	
  *	
  This	
  class	
  provides	
  a	
  simple	
  example	
  of	
  a	
  DDS	
  data	
  reader	
  using	
  the	
  new	
  Java	
  API.
                  	
  */
                  public	
  class	
  ShapesReader	
  {
                  	
  	
  	
  	
  public	
  static	
  void	
  main(String	
  args[])	
  throws	
  Exception	
  {

                  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (args.length	
  <	
  1)	
  {
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.out.println("USAGE:ntShapesWriter	
  <topic>");
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.out.println("nttopic	
  =	
  [Circle,	
  Square,	
  Triangle]");
OpenSplice DDS




                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.exit(1);
                  	
  	
  	
  	
  	
  	
  	
  	
  }

                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  String	
  shape	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  args[1].substring(0,1).toUpperCase()	
  +	
  
                  args[1].substring(1,args[1].length()).toLowerCase();

                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  ServiceEnvironment	
  env	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ServiceEnvironment.createInstance(ShapesWriter.class.getClassLoader());
Java Shapes -- Reader
                  	
  	
  	
  	
  	
  	
  	
  	
  DomainParticipantFactory	
  factory	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  DomainParticipantFactory.getInstance(env);
                  	
  	
  	
  	
  	
  	
  	
  	
  DomainParticipant	
  dp	
  =	
  factory.createParticipant();




                                                                                                                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  PolicyFactory	
  pf	
  =	
  env.getSPI().getPolicyFactory();
                  	
  	
  	
  	
  	
  	
  	
  	
  TopicQos	
  tqos	
  =	
  dp.getDefaultTopicQos();

                  	
  	
  	
  	
  	
  	
  	
  	
  tqos.withPolicies(pf.Durability().withTransient(),	
  	
  
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  pf.Reliability().withReliable());
                  	
  	
  	
  	
  	
  	
  	
  	
  Topic<ShapeType>	
  topic	
  =	
  dp.createTopic(shape,	
  ShapeType.class);

                  	
  	
  	
  	
  	
  	
  	
  	
  Subscriber	
  sub	
  =	
  dp.createSubscriber();
OpenSplice DDS




                  	
  	
  	
  	
  	
  	
  	
  	
  DataReaderQos	
  drqos	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  sub.getDefaultDataReaderQos().withPolicies(
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  pf.Reliability().withBestEffort(),
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  pf.Durability().withTransient()
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  );

                  	
  	
  	
  	
  	
  	
  	
  	
  DataReader<ShapeType>	
  dr	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  sub.createDataReader(topic,	
  drqos,	
  new	
  ShapeTypeListener(),	
  Status.allStatuses(env));

                  	
  	
  	
  	
  	
  	
  	
  	
  Thread.currentThread().join();
                  	
  	
  	
  	
  }
                  }
Java Shapes -- Writer
                  public	
  class	
  ShapesWriter	
  {
                  	
  	
  	
  	
  public	
  static	
  void	
  main(String	
  args[])	
  throws	
  Exception	
  {

                  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (args.length	
  <	
  4)	
  {




                                                                                                                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.out.println("USAGE:ntShapesWriter	
  <topic>	
  <circle>	
  <samples>	
  <period	
  ms>");
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.out.println("nttopic	
  =	
  [Circle,	
  Square,	
  Triangle]");
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.out.println("tcolor	
  =	
  [Red,	
  Blue,	
  Green,	
  Magenta,	
  Cyan]");
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  System.exit(1);
                  	
  	
  	
  	
  	
  	
  	
  	
  }

                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  String	
  shape	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  args[1].substring(0,1).toUpperCase()	
  +	
  args[1].substring(1,args[1].length()).toLowerCase();
                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  String	
  color	
  =	
  args[1].toUpperCase();
OpenSplice DDS




                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  int	
  samples	
  =	
  Integer.parseInt(args[2]);

                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  int	
  period	
  =	
  Integer.parseInt(args[3]);

                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  int	
  bound	
  =	
  100;

                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  ServiceEnvironment	
  env	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ServiceEnvironment.createInstance(ShapesWriter.class.getClassLoader());
Java Shapes -- Writer
                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  PolicyFactory	
  pf	
  =	
  env.getSPI().getPolicyFactory();
                  	
  	
  	
  	
  	
  	
  	
  	
  DomainParticipantFactory	
  factory	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  DomainParticipantFactory.getInstance(env);

                  	
  	
  	
  	
  	
  	
  	
  	
  DomainParticipant	
  dp	
  =	
  factory.createParticipant();




                                                                                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  	
  	
  	
  	
  	
  	
  	
  	
  Topic<ShapeType>	
  topic	
  =	
  dp.createTopic(shape,	
  ShapeType.class);

                  	
  	
  	
  	
  	
  	
  	
  	
  Publisher	
  pub	
  =dp.createPublisher();
                  	
  	
  	
  	
  	
  	
  	
  	
  DataWriterQos	
  dwqos	
  =
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  pub.getDefaultDataWriterQos().withPolicies(
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  pf.Reliability().withBestEffort(),
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  pf.Durability().withTransient());

                  	
  	
  	
  	
  	
  	
  	
  	
  DataWriter<ShapeType>	
  dw	
  =	
  pub.createDataWriter(topic);
OpenSplice DDS




                  	
  	
  	
  	
  	
  	
  	
  	
  final	
  ShapeType	
  sample	
  =	
  new	
  ShapeType(color,	
  0,	
  0,	
  0);
                  	
  	
  	
  	
  	
  	
  	
  	
  for	
  (int	
  i	
  =	
  0;	
  i	
  <	
  samples;	
  ++i)	
  {
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  sample
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  .setX(((int)Math.random()%bound))
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  .setY(((int)Math.random()%bound))
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  .setShapesize(((int)Math.random()%bound));
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  dw.write(sample);
                  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Thread.sleep(period);
                  	
  	
  	
  	
  	
  	
  	
  	
  }
                  	
  	
  	
  	
  }
                  }
Performance




                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   OpenSplice Mobile v1.0
                      beta features already
                      very good performance

                  ☐   Latency is low and pretty
OpenSplice DDS




                      stable ~3usec of
                      difference from 32 to 1024
                      bytes
OpenSplice Gateway
                                                                           JMS
                      Integration technology providing




                                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐




                                                                                     XM
                      connectivity from DDS to over 80




                                                                   ST




                                                                                        PP
                                                                  RE
                                                                           OpenSplice
                      technologies, including WebSockets                Gateway




                                                                                          P
                      and REST




                                                                 Cu




                                                                                        AMQ
                                                                  sto
                                                                   m
                  ☐   Java-based and easily deployable
OpenSplice DDS




                                                                         DDSI-RTPS

                      on the cloud
                                                           Supported Connectors Include:
                  ☐   Key building block for OpenSplice    - JMS                  - HTTP
                                                           - REST                 - AMQP
                      Based Cloud Messaging Solutions      - CometD               - XMPP
                                                           - CFX                  - Hibernate
                                                           -WebSockets            -HBase
                                                           - TCP, UDP Sockets     - Custom
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
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
OpenSplice Embedded
OpenSplice DDS
Key Highlights
                                                    OpenSplice          OpenSplice




                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                    Cloud           Community

                  ☐   The OpenSplice Embedded
                      Product family brings DDS             OpenSplice
                      connectivity to devices and                                           OpenSplice
OpenSplice DDS




                      resource constrained real-    OpenSplice          OpenSplice
                                                                                            Integrator

                      time embedded systems         Enterprise        Embedded
                                                                                     OpenSplice
                                                                                     Lite

                                                                  OpenSplice
                                                                  RTE
FPGA Integrator
                                                                 GIOP/DDSI                                    DDS




                                                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                                                  Data

                                                                   Bridge                                                        Reader


                             FPGA
                                                                                                Data
                                                                                                Writer



                                                  GIOP
                                                                                                                                           Data
                                                                                                                                          Reader
                                                                                       Data                         TopicD

                                      ICO                      GIOP       DDSI
                                                                                       Writer
                                                                                                         TopicA
                                                                                                                                           Data
                                                                                                                   TopicB                 Reader
                                                                                       Data
                                                                                       Writer
                                                                                                         TopicC
                                                                                                                       ...

                                                                                         Data                                         Data
                                                                                         Writer                                      Reader
OpenSplice DDS




                                                                                                         DDS Global Data Space


                  ☐   ‘Out-of-the-box’ solution for integrating FPGA’s withDDS based systems
                  ☐   Bridges the device-data (via GIOP) to the DDS-based system using a software
                      ‘gateway’ providing full DDS QoS support to maintain & distribute the device-data
                  ☐   Bridge-technology is be based either:
                      ☐   OpenSplice Gateway (if a Java platform is available) or
                      ☐   A small OpenSplice bridge application or pluggable-service
OpenSplice Lite
                                                                  ISO C++ API
                  ☐   Bring software-based DDS




                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      implementation to a range of resource
                      constrained devices                                 Native C API
                  ☐   Allow for variability on functionalities,
                      transport and support of underlying OS/            DDSI / DDSI-E
                      BSP
                                                                       OS           Transport
OpenSplice DDS




                  ☐   Provides very low footprint and very high    Abstraction     Abstraction
                      performance
                  ☐   Footprint as low as 100/200 KB                 RTOS           DSP
                      Latency as low as 35-45 usec (on Gigabit                   uController
                  ☐                                                   GPP
                      network)
OpenSplice RTE
                  ☐   Bring the full power of DDS to real-




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      time embedded systems                  DCPS API (C/C++/RT-Java)

                  ☐   Provides low footprint, superlative        DDSI-E / RT-NET
                      scalability and and high
                      performance                                        OS
OpenSplice DDS




                                                                     Abstraction
                  ☐   Footprint 2MB
                                                                       RTOS
                  ☐   Latency 75/80 usec (on Gigabit
                      network)                                         GPP
Putting it all Together
OpenSplice DDS
DDS Everywhere!
                                                                          OpenSplice

                                                                          Mobile
                               OpenSplice

                               Mobile                                   Embedded JVM



                                                                                          OpenSplice

                                                                  DDS                     Enterprise
OpenSplice DDS




                                            OpenSplice                                    Enterprise OS
                 MQTT, AMQP,                Gateway
                 JMS, REST,
                 ....                                                       OpenSplice
                                                          OpenSplice
                                                                            RTE
                                                          Lite
                                                                                   RTOS
                                                         Embedded OS
OpenSplice DDS




                 Final Remarks
Concluding Remarks




                                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   With the DDS Everywhere platform we are making DDS available
                      on any device

                  ☐   That means that:
                      ☐   You can get DDS data from your system to anywhere
OpenSplice DDS




                      ☐   You can exploit the power of DDS across devices and technologies
                      ☐   You have a single technology end-to-end that provides optimal efficiency,
                          scalability, performance and more importantly data-centricity!
OpenSplice DDS
:: 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

More Related Content

What's hot

The Present and Future of DDS
The Present and Future of DDSThe Present and Future of DDS
The Present and Future of DDSAngelo Corsaro
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo 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
 
20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies20 Tips for OpenSplice Newbies
20 Tips for OpenSplice NewbiesAngelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIAngelo Corsaro
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSAngelo Corsaro
 
Building IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter KitBuilding IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter KitAngelo Corsaro
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part IAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsAngelo Corsaro
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IAngelo Corsaro
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSAngelo Corsaro
 
Advanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAdvanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAngelo Corsaro
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IAngelo 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
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex LiteAngelo Corsaro
 

What's hot (20)

The Present and Future of DDS
The Present and Future of DDSThe Present and Future of DDS
The Present and Future of DDS
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
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
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies20 Tips for OpenSplice Newbies
20 Tips for OpenSplice Newbies
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDS
 
Building IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter KitBuilding IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter Kit
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
OMG DDS Tutorial - Part I
OMG DDS Tutorial - Part IOMG DDS Tutorial - Part I
OMG DDS Tutorial - Part I
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDS
 
Advanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAdvanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part II
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part I
 
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
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 

Viewers also liked

DDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web ApplicationsDDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web ApplicationsAngelo 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
 
UX / CX in the context of creative & marketing industry
UX / CX in the context of creative & marketing industryUX / CX in the context of creative & marketing industry
UX / CX in the context of creative & marketing industryKaKi Law
 
PHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocumentPHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocumentValentin Bora
 
Rupert 4.5 UDL and Backwards Design, Jan 2014
Rupert 4.5 UDL and Backwards Design, Jan 2014Rupert 4.5 UDL and Backwards Design, Jan 2014
Rupert 4.5 UDL and Backwards Design, Jan 2014Faye Brownlie
 
isd314-06-association-mining
isd314-06-association-miningisd314-06-association-mining
isd314-06-association-miningAnung Ariwibowo
 
Qualicum engagement.novpptx
Qualicum   engagement.novpptxQualicum   engagement.novpptx
Qualicum engagement.novpptxFaye Brownlie
 
Week 7 Cc 1
Week 7 Cc 1Week 7 Cc 1
Week 7 Cc 1oiwan
 
Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Angelo Corsaro
 

Viewers also liked (20)

DDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web ApplicationsDDS on the Web: Quick Recipes for Real-Time Web Applications
DDS on the Web: Quick Recipes for Real-Time Web Applications
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Animation in Diamond Resorts
Animation in Diamond ResortsAnimation in Diamond Resorts
Animation in Diamond Resorts
 
UX / CX in the context of creative & marketing industry
UX / CX in the context of creative & marketing industryUX / CX in the context of creative & marketing industry
UX / CX in the context of creative & marketing industry
 
PHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocumentPHP & XML: SimpleXML, DOMDocument
PHP & XML: SimpleXML, DOMDocument
 
Sph 107 Ch 7
Sph 107 Ch 7Sph 107 Ch 7
Sph 107 Ch 7
 
Sph 106 Ch 16
Sph 106 Ch 16Sph 106 Ch 16
Sph 106 Ch 16
 
Greetings
GreetingsGreetings
Greetings
 
SPH 107 Ch 3
SPH 107 Ch 3SPH 107 Ch 3
SPH 107 Ch 3
 
Work Samples
Work SamplesWork Samples
Work Samples
 
Rupert 4.5 UDL and Backwards Design, Jan 2014
Rupert 4.5 UDL and Backwards Design, Jan 2014Rupert 4.5 UDL and Backwards Design, Jan 2014
Rupert 4.5 UDL and Backwards Design, Jan 2014
 
isd314-06-association-mining
isd314-06-association-miningisd314-06-association-mining
isd314-06-association-mining
 
MRLC Feb Reading
MRLC Feb ReadingMRLC Feb Reading
MRLC Feb Reading
 
Bonsai
BonsaiBonsai
Bonsai
 
Qualicum engagement.novpptx
Qualicum   engagement.novpptxQualicum   engagement.novpptx
Qualicum engagement.novpptx
 
Naresh
NareshNaresh
Naresh
 
Week 7 Cc 1
Week 7 Cc 1Week 7 Cc 1
Week 7 Cc 1
 
Выход Есть!
Выход Есть!Выход Есть!
Выход Есть!
 
Option 2 - Coast
Option 2 - CoastOption 2 - Coast
Option 2 - Coast
 
Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley Introducing the OMG DDS to the Aerospace Valley
Introducing the OMG DDS to the Aerospace Valley
 

Similar to DDS Everywhere

Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging Angelo Corsaro
 
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 SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesAngelo Corsaro
 
Interoperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesInteroperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesAngelo Corsaro
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAngelo Corsaro
 
Got Big Data? Get OpenSplice!
Got Big Data? Get OpenSplice!Got Big Data? Get OpenSplice!
Got Big Data? Get OpenSplice!Angelo Corsaro
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology IncubatorsAngelo Corsaro
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDSAngelo Corsaro
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability DemoAngelo Corsaro
 
Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLAAngelo Corsaro
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsZettaScaleTechnology
 
Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Gerardo Pardo-Castellote
 
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFIRTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFIGerardo Pardo-Castellote
 
Liberate Your Files with a Private Cloud Storage Solution powered by Open Source
Liberate Your Files with a Private Cloud Storage Solution powered by Open SourceLiberate Your Files with a Private Cloud Storage Solution powered by Open Source
Liberate Your Files with a Private Cloud Storage Solution powered by Open SourceIsaac Christoffersen
 
Cloud as a Flexible &amp; Collaborative Tool for Creators
Cloud as a Flexible &amp; Collaborative Tool for CreatorsCloud as a Flexible &amp; Collaborative Tool for Creators
Cloud as a Flexible &amp; Collaborative Tool for Creatorsjlchatelain
 
Cloud State V02
Cloud State V02Cloud State V02
Cloud State V02mgion
 
The Path to SDN - How to Ensure a Successful SDN Evolution
The Path to SDN - How to Ensure a Successful SDN EvolutionThe Path to SDN - How to Ensure a Successful SDN Evolution
The Path to SDN - How to Ensure a Successful SDN EvolutionJuniper Networks
 

Similar to DDS Everywhere (20)

Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging Building and Deploying OpenSplice DDS Based Cloud Messaging
Building and Deploying OpenSplice DDS Based Cloud Messaging
 
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 SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart CitiesDDS in SCADA, Utilities, Smart Grid and Smart Cities
DDS in SCADA, Utilities, Smart Grid and Smart Cities
 
Interoperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesInteroperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System Architectures
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part I
 
Got Big Data? Get OpenSplice!
Got Big Data? Get OpenSplice!Got Big Data? Get OpenSplice!
Got Big Data? Get OpenSplice!
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology Incubators
 
Tweeting with OpenSplice DDS
Tweeting with OpenSplice DDSTweeting with OpenSplice DDS
Tweeting with OpenSplice DDS
 
Cloudand Xchange
Cloudand XchangeCloudand Xchange
Cloudand Xchange
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability Demo
 
Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLA
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The Origins
 
Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)
 
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFIRTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
RTI/Cisco response to the Software Defined Networks (SDN) OMG RFI
 
Liberate Your Files with a Private Cloud Storage Solution powered by Open Source
Liberate Your Files with a Private Cloud Storage Solution powered by Open SourceLiberate Your Files with a Private Cloud Storage Solution powered by Open Source
Liberate Your Files with a Private Cloud Storage Solution powered by Open Source
 
The Promise of Interoperability
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of Interoperability
 
Cloud as a Flexible &amp; Collaborative Tool for Creators
Cloud as a Flexible &amp; Collaborative Tool for CreatorsCloud as a Flexible &amp; Collaborative Tool for Creators
Cloud as a Flexible &amp; Collaborative Tool for Creators
 
Cloud State V02
Cloud State V02Cloud State V02
Cloud State V02
 
The Path to SDN - How to Ensure a Successful SDN Evolution
The Path to SDN - How to Ensure a Successful SDN EvolutionThe Path to SDN - How to Ensure a Successful SDN Evolution
The Path to SDN - How to Ensure a Successful SDN Evolution
 

More from Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo 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
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA ExplainedAngelo Corsaro
 
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...Angelo Corsaro
 

More from 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
 
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
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
Fog Computing Defined
Fog Computing DefinedFog Computing Defined
Fog Computing Defined
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA Explained
 
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

DDS Everywhere

  • 1. OpenSplice DDS Everywhere OpenSplice DDS Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com
  • 2. DDS Everywhere Platform A DDS-based, interoperable Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ product family addressing OpenSplice OpenSplice systems needs from Embedded Cloud Community and Mobile to Enterprise and Cloud OpenSplice OpenSplice DDS ☐ An Open Source core providing free access to the OpenSplice OpenSplice OpenSplice Ecosystem, security of supply and Enterprise Embedded a vibrant, innovative community
  • 3. DDS Everywhere Platform Consumer Platforms ☐ Browser / HTML5 Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ iOS OpenSplice OpenSplice ☐ Android ☐ Cloud Cloud Community ☐ No-SQL ☐ Mobile/WiFi IP Transp. OpenSplice OpenSplice DDS ☐ RTOS (VxWorks, QNX, ☐ OS (Linux, Windows, etc) etc.) ☐ Cloud ☐ FPGA OpenSplice OpenSplice ☐ DBMS ☐ BSP / No-OS ☐ No-SQL Enterprise Embedded ☐ IP + Exotic ☐ InfiniBand + IP Transports Transports Industrial IT Platforms Platforms
  • 4. DDS Everywhere Platform ☐ Mobility ☐ Elasticity ☐ Cloud Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Integration OpenSplice OpenSplice Cloud Community OpenSplice OpenSplice DDS ☐ Fault-Tolerance OpenSplice OpenSplice ☐ Throughput Enterprise Embedded ☐ Scalability ☐ Latency ☐ Determinism ☐ Latency ☐ Security ☐ Footprint ☐ Integration
  • 6. Key Highlights ☐ The best middleware OpenSplice OpenSplice Copyright  2011,  PrismTech  –    All  Rights  Reserved. Cloud Community infrastructure to Simplify Distributed System Development OpenSplice ☐ Reduce complexity of OpenSplice DDS building, testing, integrating, OpenSplice OpenSplice OpenSplice and deploying high- Tools Enterprise Embedded performance, scalable, and fault-tolerant distributed systems OpenSplice DDS
  • 7. OpenSplice DDS New in v6.3
  • 8. OpenSplice DDSI2E Enhanced version of the Interoperable wire Copyright  2011,  PrismTech  –    All  Rights  Reserved. protocol DDSI v2.1 Discovery ☐ Standardized discovery (locators) ☐ Dynamic unicast/multicast selection ☐ Optional static discovery OpenSplice DDS Real-Time ☐ independently scheduled priority-lanes ☐ Support for Logical and Physical Partitioning ☐ Traffic-Shaping Security ☐ Encrypted network-Partitions
  • 9. Record and Replay ☐ Dynamic recording of any topic- Copyright  2011,  PrismTech  –    All  Rights  Reserved. data in a DDS system ☐ Selective replay with variable RnR RnR RnR speed Service Service(s) Manager ☐ Distributed control by topic-based Record/Replay command Record/Replay command Any topic API (‘command’ & ‘status’ topics) OpenSplice DDS & status topics & status topics OpenSplice DDS ☐ Seamless integration with OpenSplice Tester (topic-based API) ☐ Dedicated RnR-Manager graphical GUI for scenario-definition and data import/analysis
  • 10. OpenSplice DDS Record and Replay Tool Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 11. New DDS APIs Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The original DDS API introduces some unnecessary accidental complexity OpenSplice DDS ☐ We’ve been working hard to standardize new C++/Java API for DDS that makes using it as simple as possible
  • 12. Statistics Simple DataWriter with default QoS DDS v1.2 C++ API ISO C++ API Copyright  2011,  PrismTech  –    All  Rights  Reserved. 15 ☐ The new API reduces the number of lines of code 11 from 3x to 5x when compared to the original OpenSplice DDS 8 DDS API! ☐ Less code means less bugs 4 0 SLOC
  • 13. struct ShapeType { ISO C++ DDS API string color; long x; long y; long shapesize; }; #pragma keylist ShapeType color int main(int argc, char* argv[]) { try { Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Simple, Compact and ! ! // Create DomainParticipant DomainParticipant dp = DomainParticipant(0); Elegant ! ! // Create Topic Topic<ShapeType> topic(dp, "Circle"); // Create Publisher ! ! Publisher pub(dp); ☐ Type-safe // Create DataWriter QoS DataWriterQos dwqos = pub.default_datawriter_qos() << Durability::Transient() ☐ Orthogonal << History::KeepLast(10); OpenSplice DDS // Create DataWriter ! ! DataWriter<ShapeType> dw(pub, topic, dwqos); ☐ Efficient // Write ShapeType s = {"RED", 50, 70, 90}; dw << s; // - or - ☐ QoS DSL dw.write(s); ! ! ! } catch (const dds::core::Exception& e) { ! ! std::cout << e.what() << std::endl; ! } ! return 0; }
  • 14. ISO C++ DDS API Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Unified and composable data selection API std::vector<std::string> p; p.push_back("100"); p.push_back("200"); OpenSplice DDS Query q("x < %0 AND y < %1", p); auto data = reader ! .select() .instance(handle) // -- Select Instance ! ! .state(status::DataState::new_data()) // -- Filter on State ! ! .content(q) // -- Filter on Content .read(); // -- Execute the selection and read the data
  • 15. Example: DataWriter int main(int argc, char* argv[]) { try { ! ! DomainParticipant dp(0); Copyright  2011,  PrismTech  –    All  Rights  Reserved. ! ! Topic<ShapeType> topic(dp, "Circle"); ! ! Publisher pub(dp); ! ! DataWriter<ShapeType> dw(pub, topic); ! ! uint32_t pos = 0; ! ! const uint32_t N = 300; ! ! for (int i = 0; i < N; ++i) { ! ! ! ShapeType bc = {"RED", i, i, 60}; OpenSplice DDS ! ! ! ShapeType rc = {"BLUE", N-i, N-i, 60}; ! ! ! dw << rc; ! ! ! usleep(10000); ! ! } ! } catch (const dds::core::Exception& e) { ! ! std::cout << e.what() << std::endl; ! } ! return 0; }
  • 16. Example: DataReader int main(int argc, char* argv[]) { try { DomainParticipant dp(0); Copyright  2011,  PrismTech  –    All  Rights  Reserved. Topic<ShapeType> topic(dp, "Circle"); Subscriber sub(dp); DataReader<ShapeType> dr(sub, topic); uint32_t pos = 0; const uint32_t N = 300; uint32_t max_size = 10; const uint32_t sleepTime = 500000; OpenSplice DDS while (true) { LoanedSamples<ShapeType> samples = dr.read(); std::cout << "-----------" << std::endl; for_each(samples.begin(), samples.end(), printShapeSample); usleep(sleepTime); } } catch (const dds::core::Exception& e) { std::cout << e.what() << std::endl; } return 0; }
  • 17. Full C++ Shapes Application see: Copyright  2011,  PrismTech  –    All  Rights  Reserved. github.com/kydos/dds-psm-cxx/tree/master/examples/ishapes-driver OpenSplice DDS
  • 19. Key Highlights OpenSplice Gateway Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Brings DDS on mobile devices powered by OpenSplice OpenSplice OpenSplice Android/iOS Mobile Cloud Community ☐ Enables DDS-based OpenSplice OpenSplice DDS Cloud Messaging for higher scalability, throughout and minimal OpenSplice OpenSplice cost per message Enterprise Embedded
  • 20. OpenSplice Mobile Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Pure Java version of OpenSplice targeting the JVM DCPS Java 5 / Scala API ☐ DDSI Protocol Stack optimized DDSI for mobility and Android OS (Optimized for Mobility) OpenSplice DDS ☐ Only DDS on the market designed and Engineered for Android and the JVM
  • 21. OpenSplice DDS OpenSplice Mobile Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 22. OpenSplice DDS Demo Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 23. Java 5 PSM Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Idiomatic and ergonomic DDS API for Java ☐ Guaranteed code portability through clean separation of standard API (in an OMG provided JAR) and vendor implementation OpenSplice DDS ☐ QoS and Selector DSL simplify programming and make code more readable ☐ QoS Provider allows to “externalize” the QoS configuration
  • 24. Java Shapes -- Reader package  org.omg.demo.dds.shapes; import  ...; Copyright  2011,  PrismTech  –    All  Rights  Reserved. /**  *  This  class  provides  a  simple  example  of  a  DDS  data  reader  using  the  new  Java  API.  */ public  class  ShapesReader  {        public  static  void  main(String  args[])  throws  Exception  {                if  (args.length  <  1)  {                        System.out.println("USAGE:ntShapesWriter  <topic>");                        System.out.println("nttopic  =  [Circle,  Square,  Triangle]"); OpenSplice DDS                        System.exit(1);                }                final  String  shape  =                                args[1].substring(0,1).toUpperCase()  +   args[1].substring(1,args[1].length()).toLowerCase();                final  ServiceEnvironment  env  =                                ServiceEnvironment.createInstance(ShapesWriter.class.getClassLoader());
  • 25. Java Shapes -- Reader                DomainParticipantFactory  factory  =                                DomainParticipantFactory.getInstance(env);                DomainParticipant  dp  =  factory.createParticipant(); Copyright  2011,  PrismTech  –    All  Rights  Reserved.                final  PolicyFactory  pf  =  env.getSPI().getPolicyFactory();                TopicQos  tqos  =  dp.getDefaultTopicQos();                tqos.withPolicies(pf.Durability().withTransient(),                                                        pf.Reliability().withReliable());                Topic<ShapeType>  topic  =  dp.createTopic(shape,  ShapeType.class);                Subscriber  sub  =  dp.createSubscriber(); OpenSplice DDS                DataReaderQos  drqos  =                                sub.getDefaultDataReaderQos().withPolicies(                                                pf.Reliability().withBestEffort(),                                                pf.Durability().withTransient()                                );                DataReader<ShapeType>  dr  =                                sub.createDataReader(topic,  drqos,  new  ShapeTypeListener(),  Status.allStatuses(env));                Thread.currentThread().join();        } }
  • 26. Java Shapes -- Writer public  class  ShapesWriter  {        public  static  void  main(String  args[])  throws  Exception  {                if  (args.length  <  4)  { Copyright  2011,  PrismTech  –    All  Rights  Reserved.                        System.out.println("USAGE:ntShapesWriter  <topic>  <circle>  <samples>  <period  ms>");                        System.out.println("nttopic  =  [Circle,  Square,  Triangle]");                        System.out.println("tcolor  =  [Red,  Blue,  Green,  Magenta,  Cyan]");                        System.exit(1);                }                final  String  shape  =                                args[1].substring(0,1).toUpperCase()  +  args[1].substring(1,args[1].length()).toLowerCase();                final  String  color  =  args[1].toUpperCase(); OpenSplice DDS                final  int  samples  =  Integer.parseInt(args[2]);                final  int  period  =  Integer.parseInt(args[3]);                final  int  bound  =  100;                final  ServiceEnvironment  env  =                                ServiceEnvironment.createInstance(ShapesWriter.class.getClassLoader());
  • 27. Java Shapes -- Writer                final  PolicyFactory  pf  =  env.getSPI().getPolicyFactory();                DomainParticipantFactory  factory  =                                DomainParticipantFactory.getInstance(env);                DomainParticipant  dp  =  factory.createParticipant(); Copyright  2011,  PrismTech  –    All  Rights  Reserved.                Topic<ShapeType>  topic  =  dp.createTopic(shape,  ShapeType.class);                Publisher  pub  =dp.createPublisher();                DataWriterQos  dwqos  =                                pub.getDefaultDataWriterQos().withPolicies(                                                pf.Reliability().withBestEffort(),                                                pf.Durability().withTransient());                DataWriter<ShapeType>  dw  =  pub.createDataWriter(topic); OpenSplice DDS                final  ShapeType  sample  =  new  ShapeType(color,  0,  0,  0);                for  (int  i  =  0;  i  <  samples;  ++i)  {                        sample                                .setX(((int)Math.random()%bound))                                .setY(((int)Math.random()%bound))                                .setShapesize(((int)Math.random()%bound));                        dw.write(sample);                        Thread.sleep(period);                }        } }
  • 28. Performance Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ OpenSplice Mobile v1.0 beta features already very good performance ☐ Latency is low and pretty OpenSplice DDS stable ~3usec of difference from 32 to 1024 bytes
  • 29. OpenSplice Gateway JMS Integration technology providing Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ XM connectivity from DDS to over 80 ST PP RE OpenSplice technologies, including WebSockets Gateway P and REST Cu AMQ sto m ☐ Java-based and easily deployable OpenSplice DDS DDSI-RTPS on the cloud Supported Connectors Include: ☐ Key building block for OpenSplice - JMS - HTTP - REST - AMQP Based Cloud Messaging Solutions - CometD - XMPP - CFX - Hibernate -WebSockets -HBase - TCP, UDP Sockets - Custom
  • 30. 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
  • 31. 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
  • 33. Key Highlights OpenSplice OpenSplice Copyright  2011,  PrismTech  –    All  Rights  Reserved. Cloud Community ☐ The OpenSplice Embedded Product family brings DDS OpenSplice connectivity to devices and OpenSplice OpenSplice DDS resource constrained real- OpenSplice OpenSplice Integrator time embedded systems Enterprise Embedded OpenSplice Lite OpenSplice RTE
  • 34. FPGA Integrator GIOP/DDSI DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved. Data Bridge Reader FPGA Data Writer GIOP Data Reader Data TopicD ICO GIOP DDSI Writer TopicA Data TopicB Reader Data Writer TopicC ... Data Data Writer Reader OpenSplice DDS DDS Global Data Space ☐ ‘Out-of-the-box’ solution for integrating FPGA’s withDDS based systems ☐ Bridges the device-data (via GIOP) to the DDS-based system using a software ‘gateway’ providing full DDS QoS support to maintain & distribute the device-data ☐ Bridge-technology is be based either: ☐ OpenSplice Gateway (if a Java platform is available) or ☐ A small OpenSplice bridge application or pluggable-service
  • 35. OpenSplice Lite ISO C++ API ☐ Bring software-based DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved. implementation to a range of resource constrained devices Native C API ☐ Allow for variability on functionalities, transport and support of underlying OS/ DDSI / DDSI-E BSP OS Transport OpenSplice DDS ☐ Provides very low footprint and very high Abstraction Abstraction performance ☐ Footprint as low as 100/200 KB RTOS DSP Latency as low as 35-45 usec (on Gigabit uController ☐ GPP network)
  • 36. OpenSplice RTE ☐ Bring the full power of DDS to real- Copyright  2011,  PrismTech  –    All  Rights  Reserved. time embedded systems DCPS API (C/C++/RT-Java) ☐ Provides low footprint, superlative DDSI-E / RT-NET scalability and and high performance OS OpenSplice DDS Abstraction ☐ Footprint 2MB RTOS ☐ Latency 75/80 usec (on Gigabit network) GPP
  • 37. Putting it all Together OpenSplice DDS
  • 38. DDS Everywhere! OpenSplice Mobile OpenSplice Mobile Embedded JVM OpenSplice DDS Enterprise OpenSplice DDS OpenSplice Enterprise OS MQTT, AMQP, Gateway JMS, REST, .... OpenSplice OpenSplice RTE Lite RTOS Embedded OS
  • 39. OpenSplice DDS Final Remarks
  • 40. Concluding Remarks Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ With the DDS Everywhere platform we are making DDS available on any device ☐ That means that: ☐ You can get DDS data from your system to anywhere OpenSplice DDS ☐ You can exploit the power of DDS across devices and technologies ☐ You have a single technology end-to-end that provides optimal efficiency, scalability, performance and more importantly data-centricity!
  • 42. :: 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