SlideShare a Scribd company logo
Got Big Data?
                 Get OpenSplice DDS!
OpenSplice DDS




                               Angelo CORSARO, Ph.D.
                                       Chief Technology Officer
                                       OMG DDS Sig Co-Chair
                                                  PrismTech
                               angelo.corsaro@prismtech.com
Defining Big Data
OpenSplice DDS
Big Data 3Vs
                                                                        (pull, k/v, small)                        (push, k/v, small)




                                                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                (pull, k/v, big)                               (push, k/v, big)

                 Big Data is best understood
                 by looking at the 3Vs Cube




                                                                          variety
OpenSplice DDS




                                                                                    velocity
                                                                           e
                                                                     ol um (pull, pk/fk, small)                   (push, pk/fk, small)
                                                                    v




                                               (pull, pk/fk, big)                               (push, pk/fk, big)
OpenSplice DDS


                                                                                                                  Big Data Applications
                                                                   Collect | Store | Organize | Analyze | Share




           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Big Data Applications
                   Collect | Store | Organize | Analyze | Share




                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                   ☐   Collect the data from the cyber-
                       physical world
OpenSplice DDS




                   ☐   Depending on applications this
                       could be:
                       ☐   Sensor data
                       ☐   Market Data
                       ☐   Web page statistics
                       ☐   ...
Big Data Applications
                   Collect |   Store | Organize | Analyze | Share




                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                               ☐   Store the data for on-line and off-line
                                   processing
OpenSplice DDS
Big Data Applications
                   Collect | Store |   Organize | Analyze | Share




                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                       ☐   Validate, Correct and Enrich Data
OpenSplice DDS
Big Data Applications
                   Collect | Store | Organize |   Analyze | Share




                                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                   ☐   Make sense of the data

                                                   ☐   Detect short term / long term trends
OpenSplice DDS




                                                   ☐   ...
Big Data Applications
                   Collect | Store | Organize | Analyze |   Share




                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                            ☐   Distribute Analytics -- or any
                                                                other kind of clues about the
                                                                data -- to applications that
OpenSplice DDS




                                                                are supposed to act, display,
                                                                publish, store, etc.
Big Data Analytics
OpenSplice DDS
What is Big Data Analytics?




                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Big Data Analytics is the process of examining large amounts of
                      data to uncover hidden patterns, unknown correlations and other
                      useful information.
OpenSplice DDS




                  ☐   Such information can provide competitive advantages over rival
                      organizations and result in business benefits, such as more effective
                      marketing and increased revenue.

                                                              [quoted from; Big Data Analytics]
Traditional Big Data Analytics
                          Collect | Store | ... | Analyze | Share




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSplice DDS




                 Messaging /    Big Data Store    Map Reduce        Messaging /
                 Web Svcs        (e.g. HBase)    (e.g. Hadoop)      Web Svcs
In-Memory Analytics
                  ☐   RAM declining costs and widespread availability of 64-bit processors has created




                                                                                                           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      the opportunity for maintaining large sets of data in main memory. [Today 64-bit
                      machines with up to 1TB of RAM can be easily found]

                  ☐   In-Memory Analytics exploits the availability of RAM to maintain some -- or all --
                      the Big Data in memory so to reduce query response times and allow faster
OpenSplice DDS




                      Business Intelligence (BI) and analytics decisions.

                  ☐   In-Memory Analytics can reduce or eliminate the need for data indexing and
                      allows more effective implementation of BI and analytic applications. Analysts
                      anticipate that as BI and analytic applications will embrace in-memory analytics,
                      traditional data stores may eventually be used only for data that is not queried
                      frequently.
In-Memory Big Data Analytics
                           Collect | Store | ... | Analyze | Share




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSplice DDS




                                   Data Window      Real-time Analytics
                                    Big Data           In-Memory
                 Messaging /    In-Memory Store          Analitics             Messaging /
                 Web Svcs          Full Data Set   Mid/Long Term Predictions   Web Svcs
                                 Big Data Store          Map Reduce
                                  (e.g. HBase)          (e.g. Hadoop)
In-Memory Big Data Analytics
                                 Data Window            Real-time Analytics




                                                                                                     Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                   Big Data                In-Memory                   Messaging /
                               In-Memory Store               Analitics                 Web Svcs
OpenSplice DDS




                 Messaging /
                                          Messaging / Web Svcs
                 Web Svcs                                               Model Parameters
                                 Full Data Set                   Mid/Long Term Predictions
                                                                                       etc.
                                Big Data Store            Map Reduce
                                 (e.g. HBase)            (e.g. Hadoop)
How about the Cube?
                                                (pull, k/v, small)                        (push, k/v, small)




                                                                                                                 Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                        (pull, k/v, big)                               (push, k/v, big)




                                                  variety
OpenSplice DDS




                                                            velocity
                                                   e
                                             ol um (pull, pk/fk, small)                   (push, pk/fk, small)
                                            v




                       (pull, pk/fk, big)                               (push, pk/fk, big)
In-Memory Big Data Analytics
                                               Data Window           (_, _ , big)      Real-time Analytics   (push, _ , big)




                                                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                 Big Data                                 In-Memory                        Messaging /
                           (push, _ , big)   In-Memory Store                                Analitics                      Web Svcs
                                                               (push, _ , big)
OpenSplice DDS




                 Messaging /
                                                        Messaging / Web Svcs
                 Web Svcs                                                                             Model Parameters
                                               Full Data Set                                   Mid/Long Term Predictions
                      (push, _ , big)                                                                                etc.
                                              Big Data Store                             Map Reduce
                                               (e.g. HBase)                             (e.g. Hadoop)
                                                                    (pull, k/v, big)
In-Memory Big Data Analytics
                     with OpenSplice DDS
OpenSplice DDS
OpenSplice & Big Data Analytics




                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   OpenSplice DDS can be used to address several Big Data --
                      specifically In-Memory Big Data -- Analytics applications

                  ☐   OpenSplice’s key features of interest are:
OpenSplice DDS




                      ☐   Ultra-High Performance In-Memory Store
                      ☐   Ultra- High Performance Data Distribution
                      ☐   Ultra- High Performance Persistent Store
                      ☐   High Availability
                      ☐   Connectivity (e.g. HBase, CouchDB, REST, WebSockets, etc.)
OpenSplice & Big Data Analytics




                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   OpenSplice DDS can be used to address several Big Data, and
                      more specifically In-Memory Big Data, Analytics applications

                  ☐   The key features OpenSplice can provide are:
OpenSplice DDS




                      ☐   Ultra-High Performance In-Memory Store
                      ☐   Ultra-High Performance Data Distribution
                      ☐   Ultra- High Performance Persistent Store
                      ☐   High Availability
                      ☐   Connectivity (e.g. HBase, CouchDB, REST, WebSockets, etc.)
OpenSplice DDS




       D
       D
     BaS ics
Data Distribution Service
                 For Real-Time Systems


                 DDS provides a Topic-Based Publish/




                                                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                 Subscribe abstraction based on:                                                      Data
                                                                                                     Reader
                                                                    Data
                                                                    Writer
                 ☐   Topics: data distribution subject’s
OpenSplice DDS




                                                                                                               Data
                                                                                                              Reader
                                                           Data                         TopicD
                                                           Writer
                     DataWriters: data producers
                                                                             TopicA
                 ☐
                                                                                                               Data
                                                                                       TopicB                 Reader
                                                           Data
                                                           Writer
                 ☐   DataReaders: data consumers                             TopicC
                                                                                           ...

                                                             Data                                         Data
                                                             Writer                                      Reader

                                                                             DDS Global Data Space
Data Distribution Service
                 For Real-Time Systems




                                                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   DataWriters and DataReaders
                      are automatically and                                                       Data
                                                                                                 Reader
                      dynamically matched by the                Data
                                                                Writer

                      DDS Dynamic Discovery
OpenSplice DDS




                                                                                                           Data
                                                                                                          Reader
                                                       Data                         TopicD
                                                       Writer
                                                                         TopicA
                  ☐   A rich set of QoS allows to                                                          Data
                                                                                                          Reader
                                                                                   TopicB
                      control existential, temporal,
                                                       Data
                                                       Writer
                                                                         TopicC
                                                                                       ...
                      and spatial properties of data     Data                                         Data
                                                         Writer                                      Reader

                                                                         DDS Global Data Space
OpenSplice DDS




                 DDS Entities
Domain Participant
                         Domain (e.g. Domain 123)

                                                                                         Domain
                                                                                        Participant




                                                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                                                        Topic
                                 Partition (e.g. “Telemetry”, “Shapes”, )

                                                    T1                      Publisher
                                                  T1 T3                                               Subscriber
                                 Topic Instances/Samples      Tx
OpenSplice DDS




                                                              Ty
                                                      Tb
                                                 Ta                            DataWrter               DataReader
                                                      Tc

                  ☐   A DomainParticipant provides access to a DDS Domain
                  ☐   DDS Domains are identified by natural numbers, such as 0, 1, 2, ...
                  ☐   Each DDS Domain has associated some unique communication and
                      discovery endpoints, automatically deduced by the Domain ID
OpenSplice DDS




                 Topics
DDS Topics
                                                                  “Circle”, “Square”, “Triangle”, ...
                  ☐   A Topic defines a class of streams,




                                                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      also called topic instances                             Name
                  ☐   A Topic has associated a unique                         Topic
                      name, a user defined extensible




                                                                           Typ



                                                                                        S
OpenSplice DDS




                      type and a set of QoS policies                                            DURABILITY,




                                                                                      Qo
                                                                            e
                                                                                                 DEADLINE,
                                                               ShapeType
                  ☐   QoS Policies capture the Topic                                             PRIORITY,
                                                                                                    …
                      non-functional invariants
                                                            struct ShapeType {
                  ☐   Topics can be discovered or              @Key
                                                               string   color;
                      locally defined                          long   x;
                                                               long   y;
                                                               long   shapesize;
                                                            };
Topic Instances
                  ☐   Each unique key value




                                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                               Instances                                      Instances
                      identifies a unique stream
                      of data                          color =”Green”



                      DDS not only
                                                                                   struct ShapeType {
                  ☐                                  color =”red”                     @Key string    color;
                                                                           Topic
OpenSplice DDS




                                                                                      long   x; long    y;


                      demultiplexes “streams” color = “Blue”
                                                                                      long   shapesize;};




                      but provides also lifecycle
                      information
                  ☐   A DDS DataWriter can
                      write multiple instances
Anatomy of a DDS Application
OpenSplice DDS
Anatomy of a DDS Application
                 [Scala API]

                 Domain
                                                                        Domain




                                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  val dp = DomainParticipant(domainId)
                                                                       Participant



                                                         Publisher
      Topic
       Subscriber
OpenSplice DDS




                                                         DataWriter
                  DataReader
Anatomy of a DDS Application
                  [Scala API]

                 Domain
                                                                                 Domain




                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                   val dp = DomainParticipant(domainId)
                                                                                Participant

                 Session
                   // Create   a Topic
                   val topic   = Topic[ShapeType](dp, “Circle”)   Publisher
      Topic
       Subscriber
OpenSplice DDS




                   // Create   a Publisher / Subscriber
                   val pub =   Publisher(dp)
                   val sub =   Subscriber(dp)


                                                                  DataWriter
                  DataReader
Anatomy of a DDS Application
                  [Scala API]

                 Domain
                                                                                       Domain




                                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                   val dp = DomainParticipant(domainId)
                                                                                      Participant

                 Session
                   // Create   a Topic
                   val topic   = Topic[ShapeType](dp, “Circle”)      Publisher
          Topic
         Subscriber
OpenSplice DDS




                   // Create   a Publisher / Subscriber
                   val pub =   Publisher(dp)
                   val sub =   Subscriber(dp)


                 Reader/Writers for User Defined for Types            DataWriter
                        DataReader
                    // Create a DataWriter/DataWriter
                    val writer = DataWriter[ShapeType](pub, topic)                 Reader/Writer for
                    val reader = DataReader[ShapeType](sub, topic)                 application defined
                                                                                      Topic Types
Anatomy of a DDS Application
                  [Scala API]

                 Domain
                                                                                     Domain




                                                                                                                Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                   val dp = DomainParticipant(domainId)
                                                                                    Participant

                 Session
                   // Create   a Topic
                   val topic   = Topic[ShapeType](dp, “Circle”)    Publisher
          Topic
         Subscriber
OpenSplice DDS




                   // Create   a Publisher / Subscriber
                   val pub =   Publisher(dp)
                   val sub =   Subscriber(dp)


                 Reader/Writers for User Defined for Types          DataWriter
                        DataReader
                   // Write data
                   val data = new ShapeType(“RED”, 131, 107, 75)
                   writer write data
                                                                                 Reader/Writer for
                   // But you can also write like this...                        application defined
                   writer ! data                                                    Topic Types
                   // Read new data and print it on the screen
                   (reader read) foreach (prinln)
Data Reader Caches
                 Your In-Memory Big Data Store
OpenSplice DDS
Reader/Writer Caches
                     Application         Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                     write(   )          Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                                  Application       Application              Application




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                  DataWriter       DataReader               DataReader


                                                                    ...
OpenSplice DDS




                              DataWriter Cache   DataReader Cache         DataReader Cache


                 Topic Instance
                                                     Network
Reader/Writer Caches
                     Application         Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                     Application                       Application                    Application




                                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter                        DataReader                     DataReader


                                                                        ...
OpenSplice DDS




                   DataWriter Cache               DataReader Cache               DataReader Cache

                                      Topic Instance                 Topic Instance

                                                        Network
Reader/Writer Caches
                     write(   )          Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                                  Application      Application              Application




                                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                  DataWriter      DataReader               DataReader


                                                                   ...
OpenSplice DDS




                             DataWriter Cache   DataReader Cache         DataReader Cache

                 Writer History

                                                    Network
Reader/Writer Caches
                     Application         Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                     Application                       Application                    Application




                                                                                                    Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter                        DataReader                     DataReader


                                                                        ...
OpenSplice DDS




                   DataWriter Cache              DataReader Cache                DataReader Cache

                                      Reader History                 Reader History

                                                        Network
Reader/Writer Caches
                     write(   )          Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                     Application         Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                     Application         Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                     Application         Application              Application




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                     DataWriter         DataReader               DataReader


                                                         ...
OpenSplice DDS




                   DataWriter Cache   DataReader Cache         DataReader Cache



                                          Network
Reader/Writer Caches
                                       Application                  Application                         Application




                                                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                       DataWriter                  DataReader                          DataReader


                                                                                               ...
OpenSplice DDS




                                  DataWriter Cache             DataReader Cache                      DataReader Cache

                    QoS Policies
                 ‣ History
                 ‣ Destination Order                                  Network
                 ‣ Presentation
                 ‣ Partition                                       QoS Policies
                 ‣ Time Based Filter                 ‣ Reliability      ‣ Durability
                 ‣ Ownership                         ‣ History          ‣ Transport Priority
                                                     ‣ Latency Budget ‣ Time Based Filter
Reader Cache Properties
                  ☐   An entry for each topic instance




                                                                                               Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Each cache entry might contain one or
                      more samples, the number of samples is
                      controlled by the History QoS Policy                    DataReader
                      ☐   History.KeepLast(n) keeps the last n samples
OpenSplice DDS




                          per instance
                                                                                     ...
                      ☐   History.KeepAll maintains all the samples,
                          modulo resource constraints

                  ☐   For a given instance:                                 DataReader Cache
                      ☐   Samples from the same writer are inserted in
                          write-order
                      ☐   Samples from multiple-writers are ordered using
                          time-stamps (source or reception depending
                          on configurable a QoS Policy)
Understanding History
OpenSplice DDS
Reader/Writer Caches
                       Application              Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                       DataWriter              DataReader               DataReader


                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                 Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                        write(   1   )          Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                       DataWriter              DataReader               DataReader


                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                 Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application            Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter            DataReader               DataReader

                     1
                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                 Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application            Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter            DataReader               DataReader

                     1
                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                      1          Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     1                       1                        1
                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         write(   2   )          Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     1                       1                        1
                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     2                       1                        1
                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     2                       1                        1
                                                                ...
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                       2          Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     2                       1                        1
                                             2                  ...   2
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         write(   3   )          Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     2                       1                        1
                                             2                  ...   2
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     3                       1                        1
                                             2                  ...   2
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     3                       1                        1
                                             2                  ...   2
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                       3          Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Reader/Writer Caches
                         Application             Application              Application




                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         DataWriter              DataReader               DataReader

                     3                       2                        2
                                             3                  ...   3
OpenSplice DDS




                     DataWriter Cache        DataReader Cache         DataReader Cache



                                                  Network

                  Assumptions: DataReader configured with history depth of 2 and
                  DataWriter with default history depth of 1
Interacting with the
                  DataReader Cache
OpenSplice DDS
Reading Data Samples
                  ☐   Samples can be read from the Data Reader History Cache




                                                                                       Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The action of reading a sample is non-destructive. Samples are
                      not removed from the cache
OpenSplice DDS




                           DataReader                          DataReader


                                  ...         read                    ...

                         DataReader Cache                    DataReader Cache
Taking Data Samples
                  ☐   Samples can be taken from the Data Reader History Cache




                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The action of taking a sample is destructive. Samples are
                      removed from the cache
OpenSplice DDS




                           DataReader                           DataReader


                                  ...         take                     ...

                         DataReader Cache                     DataReader Cache
Read vs. Take




                                                                                              Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The read operation should always be access the latest know value
                      for topics that represent distributed state
OpenSplice DDS




                  ☐   The take operation should be used to get the last notification from a
                      topic that represent an event
Data Selectors
OpenSplice DDS
Cherry Picking in DDS




                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   DDS provides some very flexible mechanisms for selecting the data
                      to be read:
OpenSplice DDS




                      ☐   Data Content
                      ☐   Data Status

                  ☐   These mechanisms are composable
Content-Based Data Selection
OpenSplice DDS
Filters and Queries                                Application


                  ☐   DDS Filters allow to control what gets
                      into a DataReader cache




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                                      Query
                  ☐   DDS Queries allow to control what gets
                      out of a DataReader cache                    DataReader

                      Filters are defined by means of
OpenSplice DDS




                  ☐
                                                                           ...
                      ContentFilteredTopics




                                                                 ...
                                                                 ...



                                                                                  ...
                  ☐   Queries operate in conjunction with        DataReader Cache
                      read operations
                                                                       Filter
                  ☐   Filters and Queries are expressed as SQL
                      where clauses
State-Based Selection
OpenSplice DDS
Sample, Instance, and View State
                  ☐   The samples included in the DataReader cache have associated




                                                                                            Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      some meta-information which, among other things, describes the
                      status of the sample and its associated stream/instance
                  ☐   The Sample State (READ, NOT_READ) allows to distinguish between
OpenSplice DDS




                      new samples and samples that have already been read
                  ☐   The View State (NEW, NOT_NEW) allows to distinguish a new
                      instance from an existing one
                  ☐   The Intance State (ALIVE, NOT_ALIVE_DISPOSED,
                      NOT_ALIVE_NO_WRITERS) allows to track the life-cycle transitions of
                      the instance to which a sample belongs
List Comprehension
OpenSplice DDS
List Comprehension in DDS




                                                                                      Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   When using the Scala API, the DDS readers expose data as
                      LinearSeqOptimized thus making possible list comprehension to
                      address quite a few task
OpenSplice DDS




                  ☐   Example
                      ☐   dr read foreach (println)
                      ☐   dr read map (transformer)
                      ☐   ...
Examples
                      Compute the average shape and write it as a Square sample:




                                                                                   Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐

                          val data = dr history
                          val s0 = new ShapeType(“GRAY”, 0, 0 ,0)

                          dw ! scaleShape((data : s0) (sumShape), data.size)
OpenSplice DDS




                  ☐   Filter samples:

                         (dr read) filter (_.x <= 100 && _.y <= 200)
High Performance
                  Persistent Store
                  with OpenSplice
OpenSplice DDS
OpenSplice Durability
                  ☐   OpenSplice DDS provides a highly available high-performance




                                                                                             Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      persistent store optimized for storing DDS data

                  ☐   This store can be queries to retrieve data using, content as well as
                      temporal filters
OpenSplice DDS




                  ☐   Ex:       val topic = Topic[ShapeType](dp, “Circle”)
                                val dr = DataReader[ShapeType](topic)
                                // ...
                                val query = Query(“x < %0 AND y < %1”, List(“200”, “300”))
                                val t0 = new Time(...)
                                val t1 = new Time(...)

                                // Retrieve all data for the Circle Topic that matches
                                // the query and has timestamp within [t0, t1]
                                dr waitForHistoricalData(query, t0, t1)
OpenSplice DDS




                 Connectivity
OpenSplice Gateway




                                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   The OpenSplice Gateway supports Apache Camel Connectors for
                      Big Data Stores thus making it very simple to stream data to/from
                      HBase, CouchDB, etc.
OpenSplice DDS




                  ☐   Example:
                      val circleURI = "ddsi:Circle:0/org.opensplice.demo.ShapeType”
                      val hbaseURI = "hbase:ishapes?mappingStrategyName=body&operation=CamelHBasePut"

                      // ...

                      // Put incoming circles into an HBase Table
                      circleURI unmarshal(cdrData) process { e2d (_, "circle") } to(hbaseURI)
Putting it All Together
OpenSplice DDS
iShapes
                 In-Memory Analytics                                                                                       Real-time Analytics Display




                                                   Data Window         (_, _ , big)                  Real-time Analytics




                                                                                                                                                         Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                                                    OpenSplice                                         In-Memory
                                                   Reader Cache                                         Analitics

                                                                 (push, _ , big)
OpenSplice DDS




                                                                               OpenSplice
                               JMS




                                                                                                          Full Data Set
                                         XM
                       ST




                                            PP
                      RE




                               OpenSplice

                            Gateway
                                               P
                      Cu




                                            AMQ
                      sto
                       m




                                                                                 JMS
                             DDSI-RTPS




                                                                                           XM
                                                                        ST




                                                                                              PP
                                                                        RE




                                                                                 OpenSplice

                                                                              Gateway
                                                                                                 P
                                                                       Cu




                                                                                              AMQ
                                                                        sto
                                                                         m




                                                                               DDSI-RTPS
Shapes to HBase Tables
                      struct ShapeType {




                                                                                                                  Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                         @Key
                         string   color;
                         long   x;
                                                                  create 'ishapes', 'color'
                         long   y;
                         long   shapesize;
                      };
OpenSplice DDS




                  ☐ Shapes are mapped into the HBase ‘ishapes’
                  ☐ The row key is the topic name, e.g ‘circle’, ‘square’, etc.
                  ☐ The ‘color” column family is used to distinguish about different instances of a given shape
                  ☐ Different samples for a given instance are distinguished using HBase versions
OpenSplice DDS


                                                                                    Shapes to HBase




           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSplice DDS


                                                                                    Versions in HBase




           Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Scale Out Techniques




                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  ☐   Scale out in OpenSplice DDS is achieved through data partitioning

                  ☐   OpenSplice DDS provides two orthogonal mechanisms for data
OpenSplice DDS




                      partitioning
                      ☐   Data Partitions
                      ☐   Content Filters
OpenSplice DDS




                 Live Demo
Concluding Remarks
                  ☐   OpenSplice DDS provide Big Data Applications with
                      ☐   Ultra-High Performance In-Memory Big Data Store




                                                                                        Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                      ☐   Ultra-High Performance Data Distribution
                      ☐   High Performance Persistent Store
                      ☐   Connectivity to Big Data Stores
OpenSplice DDS




                  ☐   OpenSplice DDS is an ideal fit for In-Memory Big Data Analytics
                      Applications

                 OpenSplice DDS
                      Collect Store | Organize | Analyze Share
                                                               OpenSplice DDS
OpenSplice DDS
References




                                                                                                                          Copyright	
  2011,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
                  OpenSplice | DDS                                                    Escalier
                  ¥ #1 OMG DDS Implementation   ¥ Fastest growing JVM Language      ¥ Scala API for OpenSplice DDS
                  ¥ Open Source                 ¥ Open Source                       ¥ Open Source
                  ¥ www.opensplice.org          ¥ www.scala-lang.org                ¥ github.com/kydos/escalier
OpenSplice DDS




                 ¥ Simple C++ API for DDS       ¥ DDS-PSM-Java for OpenSplice DDS   ¥ DDS-based Advanced Distributed
                 ¥ Open Source                  ¥ Open Source                          Algorithms Toolkit
                 ¥ github.com/kydos/simd-cxx    ¥ github.com/kydos/simd-java        ¥ Open Source
                                                                                      ¥ github.com/kydos/dada
:: 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

Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...
Gautier Poupeau
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
Angelo Corsaro
 
2014 feb 5_what_ishadoop_mda
2014 feb 5_what_ishadoop_mda2014 feb 5_what_ishadoop_mda
2014 feb 5_what_ishadoop_mda
Adam Muise
 
2013 Dec 9 Data Marketing 2013 - Hadoop
2013 Dec 9 Data Marketing 2013 - Hadoop2013 Dec 9 Data Marketing 2013 - Hadoop
2013 Dec 9 Data Marketing 2013 - Hadoop
Adam Muise
 
Academic Workflows with iRODS FINAL
Academic Workflows with iRODS FINALAcademic Workflows with iRODS FINAL
Academic Workflows with iRODS FINALRandy Splinter
 
What is Hadoop? Oct 17 2013
What is Hadoop? Oct 17 2013What is Hadoop? Oct 17 2013
What is Hadoop? Oct 17 2013
Adam Muise
 
The Data Distribution Service: The Communication Middleware Fabric for Scala...
The Data Distribution Service: The Communication  Middleware Fabric for Scala...The Data Distribution Service: The Communication  Middleware Fabric for Scala...
The Data Distribution Service: The Communication Middleware Fabric for Scala...
Angelo Corsaro
 
HiTIME project
HiTIME projectHiTIME project
HiTIME projectvty
 
Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...
Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...
Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...Microsoft Private Cloud
 
The Object Storage Chart - A to Z
The Object Storage Chart - A to Z The Object Storage Chart - A to Z
The Object Storage Chart - A to Z
Western Digital
 
Big Data to SMART Data : Process Scenario
Big Data to SMART Data : Process ScenarioBig Data to SMART Data : Process Scenario
Big Data to SMART Data : Process Scenario
CHAKER ALLAOUI
 
NGC records management - SP2010 RM Features
NGC records management - SP2010 RM FeaturesNGC records management - SP2010 RM Features
NGC records management - SP2010 RM Features
Mike Brannon
 

What's hot (14)

Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
2014 feb 5_what_ishadoop_mda
2014 feb 5_what_ishadoop_mda2014 feb 5_what_ishadoop_mda
2014 feb 5_what_ishadoop_mda
 
2013 Dec 9 Data Marketing 2013 - Hadoop
2013 Dec 9 Data Marketing 2013 - Hadoop2013 Dec 9 Data Marketing 2013 - Hadoop
2013 Dec 9 Data Marketing 2013 - Hadoop
 
Academic Workflows with iRODS FINAL
Academic Workflows with iRODS FINALAcademic Workflows with iRODS FINAL
Academic Workflows with iRODS FINAL
 
What is Hadoop? Oct 17 2013
What is Hadoop? Oct 17 2013What is Hadoop? Oct 17 2013
What is Hadoop? Oct 17 2013
 
The Data Distribution Service: The Communication Middleware Fabric for Scala...
The Data Distribution Service: The Communication  Middleware Fabric for Scala...The Data Distribution Service: The Communication  Middleware Fabric for Scala...
The Data Distribution Service: The Communication Middleware Fabric for Scala...
 
HiTIME project
HiTIME projectHiTIME project
HiTIME project
 
What is SDMX-RDF?
What is SDMX-RDF?What is SDMX-RDF?
What is SDMX-RDF?
 
Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...
Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...
Microsoft Windows Azure - istore Boost Efficiency With Software Plus Services...
 
The Object Storage Chart - A to Z
The Object Storage Chart - A to Z The Object Storage Chart - A to Z
The Object Storage Chart - A to Z
 
Big Data to SMART Data : Process Scenario
Big Data to SMART Data : Process ScenarioBig Data to SMART Data : Process Scenario
Big Data to SMART Data : Process Scenario
 
paper
paperpaper
paper
 
NGC records management - SP2010 RM Features
NGC records management - SP2010 RM FeaturesNGC records management - SP2010 RM Features
NGC records management - SP2010 RM Features
 

Viewers also liked

Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
Angelo Corsaro
 
Vortex Tutorial Part II
Vortex Tutorial Part IIVortex Tutorial Part II
Vortex Tutorial Part II
Angelo Corsaro
 
Sql Server Optimizer Screenshots
Sql Server Optimizer ScreenshotsSql Server Optimizer Screenshots
Sql Server Optimizer Screenshots
Arthur Graus
 
Week 6 cyberpolitics
Week 6 cyberpoliticsWeek 6 cyberpolitics
Week 6 cyberpoliticsoiwan
 
BJF.Delta.Nov Redesigned ELA Curriculum K-3
BJF.Delta.Nov Redesigned ELA Curriculum K-3BJF.Delta.Nov Redesigned ELA Curriculum K-3
BJF.Delta.Nov Redesigned ELA Curriculum K-3
Faye Brownlie
 
Navidad2011 jc
Navidad2011 jcNavidad2011 jc
Navidad2011 jc
Pepe Jara Cueva
 
Planetario 2º ciclo 2013
Planetario 2º ciclo 2013Planetario 2º ciclo 2013
Planetario 2º ciclo 2013XXX XXX
 
CIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print SubstratesCIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print Substrates
nmoroney
 
Conflict Resolution (Part I)
Conflict Resolution (Part I)Conflict Resolution (Part I)
Conflict Resolution (Part I)
Jahad Farahmand
 
Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)
Wictor Wilén
 
Career Avenues in HR field
Career Avenues in HR fieldCareer Avenues in HR field
Career Avenues in HR field
Rajendra Sabnis
 
Oral language Primary Delta BJF
Oral language Primary Delta BJFOral language Primary Delta BJF
Oral language Primary Delta BJF
Faye Brownlie
 
Digiprompresentasjon2009
Digiprompresentasjon2009Digiprompresentasjon2009
Digiprompresentasjon2009
guest83a7f
 
Valentine's day
Valentine's dayValentine's day
Valentine's day
XXX XXX
 
PM Services
PM ServicesPM Services
PM Services
Jeff Hendrick
 
Test 2 Polymer Notes
Test 2 Polymer NotesTest 2 Polymer Notes
Test 2 Polymer Notessad asad
 
Retaining & motivating employees
Retaining & motivating employeesRetaining & motivating employees
Retaining & motivating employeesRajendra Sabnis
 

Viewers also liked (20)

Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
Vortex Tutorial Part II
Vortex Tutorial Part IIVortex Tutorial Part II
Vortex Tutorial Part II
 
Sql Server Optimizer Screenshots
Sql Server Optimizer ScreenshotsSql Server Optimizer Screenshots
Sql Server Optimizer Screenshots
 
ikh311-02
ikh311-02ikh311-02
ikh311-02
 
Week 6 cyberpolitics
Week 6 cyberpoliticsWeek 6 cyberpolitics
Week 6 cyberpolitics
 
BJF.Delta.Nov Redesigned ELA Curriculum K-3
BJF.Delta.Nov Redesigned ELA Curriculum K-3BJF.Delta.Nov Redesigned ELA Curriculum K-3
BJF.Delta.Nov Redesigned ELA Curriculum K-3
 
Navidad2011 jc
Navidad2011 jcNavidad2011 jc
Navidad2011 jc
 
Planetario 2º ciclo 2013
Planetario 2º ciclo 2013Planetario 2º ciclo 2013
Planetario 2º ciclo 2013
 
CIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print SubstratesCIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print Substrates
 
Conflict Resolution (Part I)
Conflict Resolution (Part I)Conflict Resolution (Part I)
Conflict Resolution (Part I)
 
Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)
 
Career Avenues in HR field
Career Avenues in HR fieldCareer Avenues in HR field
Career Avenues in HR field
 
Oral language Primary Delta BJF
Oral language Primary Delta BJFOral language Primary Delta BJF
Oral language Primary Delta BJF
 
Digiprompresentasjon2009
Digiprompresentasjon2009Digiprompresentasjon2009
Digiprompresentasjon2009
 
Valentine's day
Valentine's dayValentine's day
Valentine's day
 
PM Services
PM ServicesPM Services
PM Services
 
HC Vrchlabí
HC VrchlabíHC Vrchlabí
HC Vrchlabí
 
Test 2 Polymer Notes
Test 2 Polymer NotesTest 2 Polymer Notes
Test 2 Polymer Notes
 
Sph 107 Ch16
Sph 107 Ch16Sph 107 Ch16
Sph 107 Ch16
 
Retaining & motivating employees
Retaining & motivating employeesRetaining & motivating employees
Retaining & motivating employees
 

Similar to Got Big Data? Get OpenSplice!

DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
Angelo Corsaro
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part I
Angelo Corsaro
 
Big Data in small words
Big Data in small wordsBig Data in small words
Big Data in small words
Yogesh Tomar
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsAngelo 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
 
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
Angelo Corsaro
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDS
Angelo Corsaro
 
Unit 1
Unit 1Unit 1
Big Data - A Real Life Revolution
Big Data - A Real Life RevolutionBig Data - A Real Life Revolution
Big Data - A Real Life Revolution
Capgemini
 
Expand a Data warehouse with Hadoop and Big Data
Expand a Data warehouse with Hadoop and Big DataExpand a Data warehouse with Hadoop and Big Data
Expand a Data warehouse with Hadoop and Big Data
jdijcks
 
Big data présentation
Big data présentationBig data présentation
Big data présentation
Abdo Bim
 
Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios
Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios
Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios
SpagoWorld
 
Data lake ppt
Data lake pptData lake ppt
Data lake ppt
SwarnaLatha177
 
Introduction to Big Data An analogy between Sugar Cane & Big Data
Introduction to Big Data An analogy  between Sugar Cane & Big DataIntroduction to Big Data An analogy  between Sugar Cane & Big Data
Introduction to Big Data An analogy between Sugar Cane & Big DataJean-Marc Desvaux
 
Big Data Performance and Capacity Management
Big Data Performance and Capacity ManagementBig Data Performance and Capacity Management
Big Data Performance and Capacity Management
rightsize
 
Big Data Mining Keynote presentation Sept 2013 09012013
Big Data Mining Keynote presentation Sept 2013 09012013Big Data Mining Keynote presentation Sept 2013 09012013
Big Data Mining Keynote presentation Sept 2013 09012013Julio Da Silva
 
Data Pioneers - Roland Haeve (Atos Nederland) - Big data in organisaties
Data Pioneers - Roland Haeve (Atos Nederland) - Big data in organisatiesData Pioneers - Roland Haeve (Atos Nederland) - Big data in organisaties
Data Pioneers - Roland Haeve (Atos Nederland) - Big data in organisaties
Multiscope
 
Big Data PPT by Rohit Dubey
Big Data PPT by Rohit DubeyBig Data PPT by Rohit Dubey
Big Data PPT by Rohit DubeyRohit Dubey
 
Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...
Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...
Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...
DataStax
 

Similar to Got Big Data? Get OpenSplice! (20)

DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
 
Advanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part IAdvanced OpenSplice Programming - Part I
Advanced OpenSplice Programming - Part I
 
Big Data in small words
Big Data in small wordsBig Data in small words
Big Data in small words
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS Applications
 
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
 
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
 
Classical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDSClassical Distributed Algorithms with DDS
Classical Distributed Algorithms with DDS
 
Unit 1
Unit 1Unit 1
Unit 1
 
Big Data - A Real Life Revolution
Big Data - A Real Life RevolutionBig Data - A Real Life Revolution
Big Data - A Real Life Revolution
 
Expand a Data warehouse with Hadoop and Big Data
Expand a Data warehouse with Hadoop and Big DataExpand a Data warehouse with Hadoop and Big Data
Expand a Data warehouse with Hadoop and Big Data
 
Big data présentation
Big data présentationBig data présentation
Big data présentation
 
Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios
Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios
Solutions Linux 2013: SpagoBI and Talend jointly support Big Data scenarios
 
Data lake ppt
Data lake pptData lake ppt
Data lake ppt
 
Introduction to Big Data An analogy between Sugar Cane & Big Data
Introduction to Big Data An analogy  between Sugar Cane & Big DataIntroduction to Big Data An analogy  between Sugar Cane & Big Data
Introduction to Big Data An analogy between Sugar Cane & Big Data
 
Big Data Performance and Capacity Management
Big Data Performance and Capacity ManagementBig Data Performance and Capacity Management
Big Data Performance and Capacity Management
 
Big Data Mining Keynote presentation Sept 2013 09012013
Big Data Mining Keynote presentation Sept 2013 09012013Big Data Mining Keynote presentation Sept 2013 09012013
Big Data Mining Keynote presentation Sept 2013 09012013
 
Data Pioneers - Roland Haeve (Atos Nederland) - Big data in organisaties
Data Pioneers - Roland Haeve (Atos Nederland) - Big data in organisatiesData Pioneers - Roland Haeve (Atos Nederland) - Big data in organisaties
Data Pioneers - Roland Haeve (Atos Nederland) - Big data in organisaties
 
Big Data PPT by Rohit Dubey
Big Data PPT by Rohit DubeyBig Data PPT by Rohit Dubey
Big Data PPT by Rohit Dubey
 
Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...
Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...
Webinar - The Agility Challenge - Powering Cloud Apps with Multi-Model & Mixe...
 

More from Angelo Corsaro

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
Angelo Corsaro
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
Angelo 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 Monetisation
Angelo 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 compute
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Angelo 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 Computing
Angelo Corsaro
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
Angelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
Angelo 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 Age
Angelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
Angelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
Angelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
Angelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
Angelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
Angelo 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 Envionrments
Angelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
Angelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
Angelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
Angelo 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 Standard
Angelo Corsaro
 

More from Angelo Corsaro (20)

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

Got Big Data? Get OpenSplice!

  • 1. Got Big Data? Get OpenSplice DDS! OpenSplice DDS Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com
  • 3. Big Data 3Vs (pull, k/v, small) (push, k/v, small) Copyright  2011,  PrismTech  –    All  Rights  Reserved. (pull, k/v, big) (push, k/v, big) Big Data is best understood by looking at the 3Vs Cube variety OpenSplice DDS velocity e ol um (pull, pk/fk, small) (push, pk/fk, small) v (pull, pk/fk, big) (push, pk/fk, big)
  • 4. OpenSplice DDS Big Data Applications Collect | Store | Organize | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 5. Big Data Applications Collect | Store | Organize | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Collect the data from the cyber- physical world OpenSplice DDS ☐ Depending on applications this could be: ☐ Sensor data ☐ Market Data ☐ Web page statistics ☐ ...
  • 6. Big Data Applications Collect | Store | Organize | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Store the data for on-line and off-line processing OpenSplice DDS
  • 7. Big Data Applications Collect | Store | Organize | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Validate, Correct and Enrich Data OpenSplice DDS
  • 8. Big Data Applications Collect | Store | Organize | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Make sense of the data ☐ Detect short term / long term trends OpenSplice DDS ☐ ...
  • 9. Big Data Applications Collect | Store | Organize | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Distribute Analytics -- or any other kind of clues about the data -- to applications that OpenSplice DDS are supposed to act, display, publish, store, etc.
  • 11. What is Big Data Analytics? Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Big Data Analytics is the process of examining large amounts of data to uncover hidden patterns, unknown correlations and other useful information. OpenSplice DDS ☐ Such information can provide competitive advantages over rival organizations and result in business benefits, such as more effective marketing and increased revenue. [quoted from; Big Data Analytics]
  • 12. Traditional Big Data Analytics Collect | Store | ... | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice DDS Messaging / Big Data Store Map Reduce Messaging / Web Svcs (e.g. HBase) (e.g. Hadoop) Web Svcs
  • 13. In-Memory Analytics ☐ RAM declining costs and widespread availability of 64-bit processors has created Copyright  2011,  PrismTech  –    All  Rights  Reserved. the opportunity for maintaining large sets of data in main memory. [Today 64-bit machines with up to 1TB of RAM can be easily found] ☐ In-Memory Analytics exploits the availability of RAM to maintain some -- or all -- the Big Data in memory so to reduce query response times and allow faster OpenSplice DDS Business Intelligence (BI) and analytics decisions. ☐ In-Memory Analytics can reduce or eliminate the need for data indexing and allows more effective implementation of BI and analytic applications. Analysts anticipate that as BI and analytic applications will embrace in-memory analytics, traditional data stores may eventually be used only for data that is not queried frequently.
  • 14. In-Memory Big Data Analytics Collect | Store | ... | Analyze | Share Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice DDS Data Window Real-time Analytics Big Data In-Memory Messaging / In-Memory Store Analitics Messaging / Web Svcs Full Data Set Mid/Long Term Predictions Web Svcs Big Data Store Map Reduce (e.g. HBase) (e.g. Hadoop)
  • 15. In-Memory Big Data Analytics Data Window Real-time Analytics Copyright  2011,  PrismTech  –    All  Rights  Reserved. Big Data In-Memory Messaging / In-Memory Store Analitics Web Svcs OpenSplice DDS Messaging / Messaging / Web Svcs Web Svcs Model Parameters Full Data Set Mid/Long Term Predictions etc. Big Data Store Map Reduce (e.g. HBase) (e.g. Hadoop)
  • 16. How about the Cube? (pull, k/v, small) (push, k/v, small) Copyright  2011,  PrismTech  –    All  Rights  Reserved. (pull, k/v, big) (push, k/v, big) variety OpenSplice DDS velocity e ol um (pull, pk/fk, small) (push, pk/fk, small) v (pull, pk/fk, big) (push, pk/fk, big)
  • 17. In-Memory Big Data Analytics Data Window (_, _ , big) Real-time Analytics (push, _ , big) Copyright  2011,  PrismTech  –    All  Rights  Reserved. Big Data In-Memory Messaging / (push, _ , big) In-Memory Store Analitics Web Svcs (push, _ , big) OpenSplice DDS Messaging / Messaging / Web Svcs Web Svcs Model Parameters Full Data Set Mid/Long Term Predictions (push, _ , big) etc. Big Data Store Map Reduce (e.g. HBase) (e.g. Hadoop) (pull, k/v, big)
  • 18. In-Memory Big Data Analytics with OpenSplice DDS OpenSplice DDS
  • 19. OpenSplice & Big Data Analytics Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ OpenSplice DDS can be used to address several Big Data -- specifically In-Memory Big Data -- Analytics applications ☐ OpenSplice’s key features of interest are: OpenSplice DDS ☐ Ultra-High Performance In-Memory Store ☐ Ultra- High Performance Data Distribution ☐ Ultra- High Performance Persistent Store ☐ High Availability ☐ Connectivity (e.g. HBase, CouchDB, REST, WebSockets, etc.)
  • 20. OpenSplice & Big Data Analytics Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ OpenSplice DDS can be used to address several Big Data, and more specifically In-Memory Big Data, Analytics applications ☐ The key features OpenSplice can provide are: OpenSplice DDS ☐ Ultra-High Performance In-Memory Store ☐ Ultra-High Performance Data Distribution ☐ Ultra- High Performance Persistent Store ☐ High Availability ☐ Connectivity (e.g. HBase, CouchDB, REST, WebSockets, etc.)
  • 21. OpenSplice DDS D D BaS ics
  • 22. Data Distribution Service For Real-Time Systems DDS provides a Topic-Based Publish/ Copyright  2011,  PrismTech  –    All  Rights  Reserved. Subscribe abstraction based on: Data Reader Data Writer ☐ Topics: data distribution subject’s OpenSplice DDS Data Reader Data TopicD Writer DataWriters: data producers TopicA ☐ Data TopicB Reader Data Writer ☐ DataReaders: data consumers TopicC ... Data Data Writer Reader DDS Global Data Space
  • 23. Data Distribution Service For Real-Time Systems Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ DataWriters and DataReaders are automatically and Data Reader dynamically matched by the Data Writer DDS Dynamic Discovery OpenSplice DDS Data Reader Data TopicD Writer TopicA ☐ A rich set of QoS allows to Data Reader TopicB control existential, temporal, Data Writer TopicC ... and spatial properties of data Data Data Writer Reader DDS Global Data Space
  • 24. OpenSplice DDS DDS Entities
  • 25. Domain Participant Domain (e.g. Domain 123) Domain Participant Copyright  2011,  PrismTech  –    All  Rights  Reserved. Topic Partition (e.g. “Telemetry”, “Shapes”, ) T1 Publisher T1 T3 Subscriber Topic Instances/Samples Tx OpenSplice DDS Ty Tb Ta DataWrter DataReader Tc ☐ A DomainParticipant provides access to a DDS Domain ☐ DDS Domains are identified by natural numbers, such as 0, 1, 2, ... ☐ Each DDS Domain has associated some unique communication and discovery endpoints, automatically deduced by the Domain ID
  • 26. OpenSplice DDS Topics
  • 27. DDS Topics “Circle”, “Square”, “Triangle”, ... ☐ A Topic defines a class of streams, Copyright  2011,  PrismTech  –    All  Rights  Reserved. also called topic instances Name ☐ A Topic has associated a unique Topic name, a user defined extensible Typ S OpenSplice DDS type and a set of QoS policies DURABILITY, Qo e DEADLINE, ShapeType ☐ QoS Policies capture the Topic PRIORITY, … non-functional invariants struct ShapeType { ☐ Topics can be discovered or @Key string color; locally defined long x; long y; long shapesize; };
  • 28. Topic Instances ☐ Each unique key value Copyright  2011,  PrismTech  –    All  Rights  Reserved. Instances Instances identifies a unique stream of data color =”Green” DDS not only struct ShapeType { ☐ color =”red” @Key string color; Topic OpenSplice DDS long x; long y; demultiplexes “streams” color = “Blue” long shapesize;}; but provides also lifecycle information ☐ A DDS DataWriter can write multiple instances
  • 29. Anatomy of a DDS Application OpenSplice DDS
  • 30. Anatomy of a DDS Application [Scala API] Domain Domain Copyright  2011,  PrismTech  –    All  Rights  Reserved. val dp = DomainParticipant(domainId) Participant Publisher Topic Subscriber OpenSplice DDS DataWriter DataReader
  • 31. Anatomy of a DDS Application [Scala API] Domain Domain Copyright  2011,  PrismTech  –    All  Rights  Reserved. val dp = DomainParticipant(domainId) Participant Session // Create a Topic val topic = Topic[ShapeType](dp, “Circle”) Publisher Topic Subscriber OpenSplice DDS // Create a Publisher / Subscriber val pub = Publisher(dp) val sub = Subscriber(dp) DataWriter DataReader
  • 32. Anatomy of a DDS Application [Scala API] Domain Domain Copyright  2011,  PrismTech  –    All  Rights  Reserved. val dp = DomainParticipant(domainId) Participant Session // Create a Topic val topic = Topic[ShapeType](dp, “Circle”) Publisher Topic Subscriber OpenSplice DDS // Create a Publisher / Subscriber val pub = Publisher(dp) val sub = Subscriber(dp) Reader/Writers for User Defined for Types DataWriter DataReader // Create a DataWriter/DataWriter val writer = DataWriter[ShapeType](pub, topic) Reader/Writer for val reader = DataReader[ShapeType](sub, topic) application defined Topic Types
  • 33. Anatomy of a DDS Application [Scala API] Domain Domain Copyright  2011,  PrismTech  –    All  Rights  Reserved. val dp = DomainParticipant(domainId) Participant Session // Create a Topic val topic = Topic[ShapeType](dp, “Circle”) Publisher Topic Subscriber OpenSplice DDS // Create a Publisher / Subscriber val pub = Publisher(dp) val sub = Subscriber(dp) Reader/Writers for User Defined for Types DataWriter DataReader // Write data val data = new ShapeType(“RED”, 131, 107, 75) writer write data Reader/Writer for // But you can also write like this... application defined writer ! data Topic Types // Read new data and print it on the screen (reader read) foreach (prinln)
  • 34. Data Reader Caches Your In-Memory Big Data Store OpenSplice DDS
  • 35. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 36. Reader/Writer Caches write( ) Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 37. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Topic Instance Network
  • 38. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 39. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Topic Instance Topic Instance Network
  • 40. Reader/Writer Caches write( ) Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 41. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Writer History Network
  • 42. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 43. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Reader History Reader History Network
  • 44. Reader/Writer Caches write( ) Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 45. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 46. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 47. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network
  • 48. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache QoS Policies ‣ History ‣ Destination Order Network ‣ Presentation ‣ Partition QoS Policies ‣ Time Based Filter ‣ Reliability ‣ Durability ‣ Ownership ‣ History ‣ Transport Priority ‣ Latency Budget ‣ Time Based Filter
  • 49. Reader Cache Properties ☐ An entry for each topic instance Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Each cache entry might contain one or more samples, the number of samples is controlled by the History QoS Policy DataReader ☐ History.KeepLast(n) keeps the last n samples OpenSplice DDS per instance ... ☐ History.KeepAll maintains all the samples, modulo resource constraints ☐ For a given instance: DataReader Cache ☐ Samples from the same writer are inserted in write-order ☐ Samples from multiple-writers are ordered using time-stamps (source or reception depending on configurable a QoS Policy)
  • 51. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 52. Reader/Writer Caches write( 1 ) Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 53. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 1 ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 54. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 1 ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache 1 Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 55. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 1 1 1 ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 56. Reader/Writer Caches write( 2 ) Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 1 1 1 ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 57. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 2 1 1 ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 58. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 2 1 1 ... OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache 2 Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 59. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 2 1 1 2 ... 2 OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 60. Reader/Writer Caches write( 3 ) Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 2 1 1 2 ... 2 OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 61. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 3 1 1 2 ... 2 OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 62. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 3 1 1 2 ... 2 OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache 3 Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 63. Reader/Writer Caches Application Application Application Copyright  2011,  PrismTech  –    All  Rights  Reserved. DataWriter DataReader DataReader 3 2 2 3 ... 3 OpenSplice DDS DataWriter Cache DataReader Cache DataReader Cache Network Assumptions: DataReader configured with history depth of 2 and DataWriter with default history depth of 1
  • 64. Interacting with the DataReader Cache OpenSplice DDS
  • 65. Reading Data Samples ☐ Samples can be read from the Data Reader History Cache Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The action of reading a sample is non-destructive. Samples are not removed from the cache OpenSplice DDS DataReader DataReader ... read ... DataReader Cache DataReader Cache
  • 66. Taking Data Samples ☐ Samples can be taken from the Data Reader History Cache Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The action of taking a sample is destructive. Samples are removed from the cache OpenSplice DDS DataReader DataReader ... take ... DataReader Cache DataReader Cache
  • 67. Read vs. Take Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The read operation should always be access the latest know value for topics that represent distributed state OpenSplice DDS ☐ The take operation should be used to get the last notification from a topic that represent an event
  • 69. Cherry Picking in DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ DDS provides some very flexible mechanisms for selecting the data to be read: OpenSplice DDS ☐ Data Content ☐ Data Status ☐ These mechanisms are composable
  • 71. Filters and Queries Application ☐ DDS Filters allow to control what gets into a DataReader cache Copyright  2011,  PrismTech  –    All  Rights  Reserved. Query ☐ DDS Queries allow to control what gets out of a DataReader cache DataReader Filters are defined by means of OpenSplice DDS ☐ ... ContentFilteredTopics ... ... ... ☐ Queries operate in conjunction with DataReader Cache read operations Filter ☐ Filters and Queries are expressed as SQL where clauses
  • 73. Sample, Instance, and View State ☐ The samples included in the DataReader cache have associated Copyright  2011,  PrismTech  –    All  Rights  Reserved. some meta-information which, among other things, describes the status of the sample and its associated stream/instance ☐ The Sample State (READ, NOT_READ) allows to distinguish between OpenSplice DDS new samples and samples that have already been read ☐ The View State (NEW, NOT_NEW) allows to distinguish a new instance from an existing one ☐ The Intance State (ALIVE, NOT_ALIVE_DISPOSED, NOT_ALIVE_NO_WRITERS) allows to track the life-cycle transitions of the instance to which a sample belongs
  • 75. List Comprehension in DDS Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ When using the Scala API, the DDS readers expose data as LinearSeqOptimized thus making possible list comprehension to address quite a few task OpenSplice DDS ☐ Example ☐ dr read foreach (println) ☐ dr read map (transformer) ☐ ...
  • 76. Examples Compute the average shape and write it as a Square sample: Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ val data = dr history val s0 = new ShapeType(“GRAY”, 0, 0 ,0) dw ! scaleShape((data : s0) (sumShape), data.size) OpenSplice DDS ☐ Filter samples: (dr read) filter (_.x <= 100 && _.y <= 200)
  • 77. High Performance Persistent Store with OpenSplice OpenSplice DDS
  • 78. OpenSplice Durability ☐ OpenSplice DDS provides a highly available high-performance Copyright  2011,  PrismTech  –    All  Rights  Reserved. persistent store optimized for storing DDS data ☐ This store can be queries to retrieve data using, content as well as temporal filters OpenSplice DDS ☐ Ex: val topic = Topic[ShapeType](dp, “Circle”) val dr = DataReader[ShapeType](topic) // ... val query = Query(“x < %0 AND y < %1”, List(“200”, “300”)) val t0 = new Time(...) val t1 = new Time(...) // Retrieve all data for the Circle Topic that matches // the query and has timestamp within [t0, t1] dr waitForHistoricalData(query, t0, t1)
  • 79. OpenSplice DDS Connectivity
  • 80. OpenSplice Gateway Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ The OpenSplice Gateway supports Apache Camel Connectors for Big Data Stores thus making it very simple to stream data to/from HBase, CouchDB, etc. OpenSplice DDS ☐ Example: val circleURI = "ddsi:Circle:0/org.opensplice.demo.ShapeType” val hbaseURI = "hbase:ishapes?mappingStrategyName=body&operation=CamelHBasePut" // ... // Put incoming circles into an HBase Table circleURI unmarshal(cdrData) process { e2d (_, "circle") } to(hbaseURI)
  • 81. Putting it All Together OpenSplice DDS
  • 82. iShapes In-Memory Analytics Real-time Analytics Display Data Window (_, _ , big) Real-time Analytics Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice In-Memory Reader Cache Analitics (push, _ , big) OpenSplice DDS OpenSplice JMS Full Data Set XM ST PP RE OpenSplice Gateway P Cu AMQ sto m JMS DDSI-RTPS XM ST PP RE OpenSplice Gateway P Cu AMQ sto m DDSI-RTPS
  • 83. Shapes to HBase Tables struct ShapeType { Copyright  2011,  PrismTech  –    All  Rights  Reserved. @Key string color; long x; create 'ishapes', 'color' long y; long shapesize; }; OpenSplice DDS ☐ Shapes are mapped into the HBase ‘ishapes’ ☐ The row key is the topic name, e.g ‘circle’, ‘square’, etc. ☐ The ‘color” column family is used to distinguish about different instances of a given shape ☐ Different samples for a given instance are distinguished using HBase versions
  • 84. OpenSplice DDS Shapes to HBase Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 85. OpenSplice DDS Versions in HBase Copyright  2011,  PrismTech  –    All  Rights  Reserved.
  • 86. Scale Out Techniques Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Scale out in OpenSplice DDS is achieved through data partitioning ☐ OpenSplice DDS provides two orthogonal mechanisms for data OpenSplice DDS partitioning ☐ Data Partitions ☐ Content Filters
  • 87. OpenSplice DDS Live Demo
  • 88. Concluding Remarks ☐ OpenSplice DDS provide Big Data Applications with ☐ Ultra-High Performance In-Memory Big Data Store Copyright  2011,  PrismTech  –    All  Rights  Reserved. ☐ Ultra-High Performance Data Distribution ☐ High Performance Persistent Store ☐ Connectivity to Big Data Stores OpenSplice DDS ☐ OpenSplice DDS is an ideal fit for In-Memory Big Data Analytics Applications OpenSplice DDS Collect Store | Organize | Analyze Share OpenSplice DDS
  • 90. References Copyright  2011,  PrismTech  –    All  Rights  Reserved. OpenSplice | DDS Escalier ¥ #1 OMG DDS Implementation ¥ Fastest growing JVM Language ¥ Scala API for OpenSplice DDS ¥ Open Source ¥ Open Source ¥ Open Source ¥ www.opensplice.org ¥ www.scala-lang.org ¥ github.com/kydos/escalier OpenSplice DDS ¥ Simple C++ API for DDS ¥ DDS-PSM-Java for OpenSplice DDS ¥ DDS-based Advanced Distributed ¥ Open Source ¥ Open Source Algorithms Toolkit ¥ github.com/kydos/simd-cxx ¥ github.com/kydos/simd-java ¥ Open Source ¥ github.com/kydos/dada
  • 91. :: 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