SlideShare a Scribd company logo
1 of 17
Download to read offline
OpenSpliceDDS
Angelo CORSARO, Ph.D.
Chief Technology Officer
OMG DDS Sig Co-Chair
PrismTech
angelo.corsaro@prismtech.com
DDS Web Programming
with dscript
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Motivation
☐ WebSockets have made it possible to efficiently push data to the
browser, yet provide a low level abstraction
☐ More and more “Real-Time Web” Applications need to produce as
well as consume real-time data streams
☐ Wouldn’t it be nice to have a DDS-like abstraction in JavaScript?
☐ i.e. to do pub/sub from JavaScript Applications
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Motivation
☐ WebSockets have made it possible to efficiently push data to the
browser, yet provide a low level abstraction
☐ More and more “Real-Time Web” Applications need to produce as
well as consume real-time data streams
☐ Wouldn’t be nice to have a DDS-like abstraction in JavaScript to
feed Real-Time Web Applications with data coming from a DDS
System?
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Motivation
☐ WebSockets have made it possible to efficiently push data to the
browser, yet provide a low level abstraction
☐ More and more “Real-Time Web” Applications need to display
real-time data streams
☐ In a sense, wouldn’t it be nice to be able to do Pub/Sub with a DDS-
like abstraction between Web Applications and DDS Applications
w/o any barriers???
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
dscript
JavaScript/CoffeeScript framework
that extends the DDS abstraction
to the WebBrowser/Node.js
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Architecture
dscript is composed by two elements:
☐ Client Side (dscript.js): JavaScript/CoffeeScript framework that provides DDS-
like abstractions
☐ Server Side(dscript.play): A Router that transparently bridges data between
matching DDS entities, e.g. Browser-2-Browser, DDS-2-Browser and Browser-2-DDS
TopicA
TopicB
TopicC
TopicD
QoS
QoS
QoS
QoS
Data
Reader
Data
Reader
Data
Writer
Data
Writer
dscript.play
dscript
dscript.js
dscript.js
dscript.js
dscript.play
dscript
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
dscript.js
☐ dscript.js reduces the DDS concepts to Topics, DataReaders,
DataWriters and QoS. DomainParticipant and Publishers are
managed for you
☐ The API is reactive and considers DataReaders as the source for a
stream of data. This data can be handled by the application or
bound to a cache (notice the cache is not part of the
DataReader)
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Topic
circleTopic = new dds.Topic(0, 'Circle', 'org.omg.dds.demo.ShapeType')
squareTopic = new dds.Topic(0, 'Square', 'org.omg.dds.demo.ShapeType')
triangleTopic = new dds.Topic(0, 'Triangle', 'org.omg.dds.demo.ShapeType')
var myTopic = new dds.Topic(domainID, topicName, topicType);
myTopic = new dds.Topic(domainID, topicName, topicType)
JavaScript
CoffeeScript
var circleTopic = new dds.Topic(0, 'Circle', 'org.omg.dds.demo.ShapeType');
var squareTopic = new dds.Topic(0, 'Square', 'org.omg.dds.demo.ShapeType');
var triangleTopic = new dds.Topic(0, 'Triangle', 'org.omg.dds.demo.ShapeType');
Example:
Example:
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
DataWriter
dwqos = new dds.DataReaderQos(
dds.History.KeepLast(10),
dds.Reliability.Reliable,
dds.TimeFilter(250))
cdw = new dds.DataWriter(circleTopic,dwqos)
shape = {}
shape.color = ’RED’
shape.x = 10
shape.y = 20
shape.shapesize = 30
cdw.write(shape)
dr = new dds.DataWriter(topic, qos)
CoffeeScript
Example:
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
DataReader
drqos = new dds.DataReaderQos(
dds.History.KeepLast(10),
dds.Reliability.Reliable,
dds.TimeFilter(250))
cdr = new dds.DataReader(circleTopic,drqos)
dr = new dds.DataReader(topic, qos)
CoffeeScript
Example:
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Binding a DataReader
☐ A DataReader can be bound to a user provided function that will
handle incoming data or to a cache
☐ Notice, that as you are in control of how data-readers are bound
to cache you can be very creative
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Binding to User Function
cdr.addListener((s) -> console.log(JSON.stringify(s)))
dr.addListener(f)
CoffeeScript
Example:
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS
Binding to a Cache
// Binding
bindShape = dds.bind((s) -> s.color)
ccache = new DataCache(historyDepth)
bindShape(cache, cdr)
// Working with the Cache
ccache.forEach(displayOnMyHTMLCanvas)
someCircles = ccache.takeWhile((s) -> s.x < s.y)
cache = new DataCache(historyDepth)
bind(keyMapper)(dr, cache)
CoffeeScript
Example:
OpenSpliceDDS
Demo!
OpenSpliceDDS
WebApp
Publish: Circle
Subscribe: Square
JavaFX native DDS App
Publish: Square
Subscribe: Circle
WebApp
Subscribe: Circle
Subscribe: Square
OpenSpliceDDS
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
Code
☐ https://github.com/nuvo-io/dscript.js
☐ https://github.com/nuvo-io/dscript.play
The demo is under dscript.js/demo/jshapes
Copyright	
  2013,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.
OpenSpliceDDS

More Related Content

What's hot

Kazoup Solution Overview
Kazoup Solution OverviewKazoup Solution Overview
Kazoup Solution OverviewKazoup
 
An overview of BigQuery
An overview of BigQuery An overview of BigQuery
An overview of BigQuery GirdhareeSaran
 
Improving Site Performace Using Css Sprite
Improving Site Performace Using Css SpriteImproving Site Performace Using Css Sprite
Improving Site Performace Using Css SpriteShyamala Prayaga
 
Connecta Event: Big Query och dataanalys med Google Cloud Platform
Connecta Event: Big Query och dataanalys med Google Cloud PlatformConnecta Event: Big Query och dataanalys med Google Cloud Platform
Connecta Event: Big Query och dataanalys med Google Cloud PlatformConnectaDigital
 
How Banks Manage Risk with MongoDB
How Banks Manage Risk with MongoDBHow Banks Manage Risk with MongoDB
How Banks Manage Risk with MongoDBMongoDB
 
AWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanAWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanMichael J Geiser
 

What's hot (6)

Kazoup Solution Overview
Kazoup Solution OverviewKazoup Solution Overview
Kazoup Solution Overview
 
An overview of BigQuery
An overview of BigQuery An overview of BigQuery
An overview of BigQuery
 
Improving Site Performace Using Css Sprite
Improving Site Performace Using Css SpriteImproving Site Performace Using Css Sprite
Improving Site Performace Using Css Sprite
 
Connecta Event: Big Query och dataanalys med Google Cloud Platform
Connecta Event: Big Query och dataanalys med Google Cloud PlatformConnecta Event: Big Query och dataanalys med Google Cloud Platform
Connecta Event: Big Query och dataanalys med Google Cloud Platform
 
How Banks Manage Risk with MongoDB
How Banks Manage Risk with MongoDBHow Banks Manage Risk with MongoDB
How Banks Manage Risk with MongoDB
 
AWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanAWS Cost Reduction and Management Plan
AWS Cost Reduction and Management Plan
 

Viewers also liked

Play My Music
Play My MusicPlay My Music
Play My MusicC FM
 
Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008
Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008
Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008Solange_Gagnebin
 
Coquitlam burnaby pns.jan2013
Coquitlam burnaby pns.jan2013Coquitlam burnaby pns.jan2013
Coquitlam burnaby pns.jan2013Faye Brownlie
 
Cbi Revenue Recognition Panel Slides 031709 Final
Cbi Revenue Recognition Panel Slides 031709 FinalCbi Revenue Recognition Panel Slides 031709 Final
Cbi Revenue Recognition Panel Slides 031709 Finalthess1121
 
Portfolio Daniel Pedrosa
Portfolio Daniel PedrosaPortfolio Daniel Pedrosa
Portfolio Daniel Pedrosaguest90db5e
 
Varney Family Photos
Varney Family PhotosVarney Family Photos
Varney Family PhotosRhonda Osburn
 
Orange Language Travel Hero
Orange Language Travel   HeroOrange Language Travel   Hero
Orange Language Travel HeroOrange BG
 
The Ugly Duckling
The Ugly DucklingThe Ugly Duckling
The Ugly DucklingRuthEA
 
Finlandia 2009 [Autoguardado]
Finlandia 2009 [Autoguardado]Finlandia 2009 [Autoguardado]
Finlandia 2009 [Autoguardado]guestd4e08
 
Planetario 2º ciclo 2013
Planetario 2º ciclo 2013Planetario 2º ciclo 2013
Planetario 2º ciclo 2013XXX XXX
 
CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert Faye Brownlie
 
Neev Info Tech
Neev Info TechNeev Info Tech
Neev Info Techihirani
 
Borderland.Reading Is Thinking.Sept2015
Borderland.Reading Is Thinking.Sept2015Borderland.Reading Is Thinking.Sept2015
Borderland.Reading Is Thinking.Sept2015Faye Brownlie
 
Belinda Love Photography
Belinda Love PhotographyBelinda Love Photography
Belinda Love PhotographyBelinda Love
 

Viewers also liked (20)

Play My Music
Play My MusicPlay My Music
Play My Music
 
Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008
Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008
Absolute Dosimetry for Proton Beams-Doktorandenseminar 11 Sept 2008
 
isd312-09-summarization
isd312-09-summarizationisd312-09-summarization
isd312-09-summarization
 
ikp213-07-stl
ikp213-07-stlikp213-07-stl
ikp213-07-stl
 
Coquitlam burnaby pns.jan2013
Coquitlam burnaby pns.jan2013Coquitlam burnaby pns.jan2013
Coquitlam burnaby pns.jan2013
 
Cbi Revenue Recognition Panel Slides 031709 Final
Cbi Revenue Recognition Panel Slides 031709 FinalCbi Revenue Recognition Panel Slides 031709 Final
Cbi Revenue Recognition Panel Slides 031709 Final
 
Portfolio Daniel Pedrosa
Portfolio Daniel PedrosaPortfolio Daniel Pedrosa
Portfolio Daniel Pedrosa
 
ikp213-05-prolog
ikp213-05-prologikp213-05-prolog
ikp213-05-prolog
 
Wfwpeuropedignity 2011
Wfwpeuropedignity 2011Wfwpeuropedignity 2011
Wfwpeuropedignity 2011
 
Varney Family Photos
Varney Family PhotosVarney Family Photos
Varney Family Photos
 
Orange Language Travel Hero
Orange Language Travel   HeroOrange Language Travel   Hero
Orange Language Travel Hero
 
The Ugly Duckling
The Ugly DucklingThe Ugly Duckling
The Ugly Duckling
 
Sph 106 Ch 10
Sph 106 Ch 10Sph 106 Ch 10
Sph 106 Ch 10
 
Finlandia 2009 [Autoguardado]
Finlandia 2009 [Autoguardado]Finlandia 2009 [Autoguardado]
Finlandia 2009 [Autoguardado]
 
Planetario 2º ciclo 2013
Planetario 2º ciclo 2013Planetario 2º ciclo 2013
Planetario 2º ciclo 2013
 
CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert CR4YR collaboration.Aug 2013, Oct Prince Rupert
CR4YR collaboration.Aug 2013, Oct Prince Rupert
 
coisas boas
coisas boascoisas boas
coisas boas
 
Neev Info Tech
Neev Info TechNeev Info Tech
Neev Info Tech
 
Borderland.Reading Is Thinking.Sept2015
Borderland.Reading Is Thinking.Sept2015Borderland.Reading Is Thinking.Sept2015
Borderland.Reading Is Thinking.Sept2015
 
Belinda Love Photography
Belinda Love PhotographyBelinda Love Photography
Belinda Love Photography
 

Similar to DDS Web Programming with dscript

Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
Big Data on Azure Tutorial
Big Data on Azure TutorialBig Data on Azure Tutorial
Big Data on Azure Tutorialrustd
 
Demystifying Data Warehousing as a Service - DFW
Demystifying Data Warehousing as a Service - DFWDemystifying Data Warehousing as a Service - DFW
Demystifying Data Warehousing as a Service - DFWKent Graziano
 
Digibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David WalkerDigibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David WalkerLizzie Hodgson
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileAngelo Corsaro
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance Dave Olsen
 
Get to know the browser better and write faster web apps
Get to know the browser better   and write faster web appsGet to know the browser better   and write faster web apps
Get to know the browser better and write faster web appsLior Bar-On
 
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | EdurekaWhat Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | EdurekaEdureka!
 
implementation of a big data architecture for real-time analytics with data s...
implementation of a big data architecture for real-time analytics with data s...implementation of a big data architecture for real-time analytics with data s...
implementation of a big data architecture for real-time analytics with data s...Joseph Arriola
 
Springone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and GrailsSpringone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and GrailsJeff Beck
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
Web Enabled DDS - London Connext DDS Conference
Web Enabled DDS - London Connext DDS ConferenceWeb Enabled DDS - London Connext DDS Conference
Web Enabled DDS - London Connext DDS ConferenceGerardo Pardo-Castellote
 
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...Denodo
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeADLINK Technology IoT
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféAngelo Corsaro
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1Luca Garulli
 

Similar to DDS Web Programming with dscript (20)

Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
Responsive design
Responsive designResponsive design
Responsive design
 
Big Data on Azure Tutorial
Big Data on Azure TutorialBig Data on Azure Tutorial
Big Data on Azure Tutorial
 
What is the Oracle Cloud?
What is the Oracle Cloud?What is the Oracle Cloud?
What is the Oracle Cloud?
 
Demystifying Data Warehousing as a Service - DFW
Demystifying Data Warehousing as a Service - DFWDemystifying Data Warehousing as a Service - DFW
Demystifying Data Warehousing as a Service - DFW
 
Digibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David WalkerDigibury: Getting your web presence mobile ready - David Walker
Digibury: Getting your web presence mobile ready - David Walker
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice Mobile
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance
 
Get to know the browser better and write faster web apps
Get to know the browser better   and write faster web appsGet to know the browser better   and write faster web apps
Get to know the browser better and write faster web apps
 
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | EdurekaWhat Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
 
implementation of a big data architecture for real-time analytics with data s...
implementation of a big data architecture for real-time analytics with data s...implementation of a big data architecture for real-time analytics with data s...
implementation of a big data architecture for real-time analytics with data s...
 
Springone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and GrailsSpringone2gx 2015 Cassandra and Grails
Springone2gx 2015 Cassandra and Grails
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Web Enabled DDS - London Connext DDS Conference
Web Enabled DDS - London Connext DDS ConferenceWeb Enabled DDS - London Connext DDS Conference
Web Enabled DDS - London Connext DDS Conference
 
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1
 

More from Angelo Corsaro

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

More from Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
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
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

DDS Web Programming with dscript

  • 1. OpenSpliceDDS Angelo CORSARO, Ph.D. Chief Technology Officer OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com DDS Web Programming with dscript
  • 2. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Motivation ☐ WebSockets have made it possible to efficiently push data to the browser, yet provide a low level abstraction ☐ More and more “Real-Time Web” Applications need to produce as well as consume real-time data streams ☐ Wouldn’t it be nice to have a DDS-like abstraction in JavaScript? ☐ i.e. to do pub/sub from JavaScript Applications
  • 3. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Motivation ☐ WebSockets have made it possible to efficiently push data to the browser, yet provide a low level abstraction ☐ More and more “Real-Time Web” Applications need to produce as well as consume real-time data streams ☐ Wouldn’t be nice to have a DDS-like abstraction in JavaScript to feed Real-Time Web Applications with data coming from a DDS System?
  • 4. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Motivation ☐ WebSockets have made it possible to efficiently push data to the browser, yet provide a low level abstraction ☐ More and more “Real-Time Web” Applications need to display real-time data streams ☐ In a sense, wouldn’t it be nice to be able to do Pub/Sub with a DDS- like abstraction between Web Applications and DDS Applications w/o any barriers???
  • 5. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS dscript JavaScript/CoffeeScript framework that extends the DDS abstraction to the WebBrowser/Node.js
  • 6. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Architecture dscript is composed by two elements: ☐ Client Side (dscript.js): JavaScript/CoffeeScript framework that provides DDS- like abstractions ☐ Server Side(dscript.play): A Router that transparently bridges data between matching DDS entities, e.g. Browser-2-Browser, DDS-2-Browser and Browser-2-DDS TopicA TopicB TopicC TopicD QoS QoS QoS QoS Data Reader Data Reader Data Writer Data Writer dscript.play dscript dscript.js dscript.js dscript.js dscript.play dscript
  • 7. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS dscript.js ☐ dscript.js reduces the DDS concepts to Topics, DataReaders, DataWriters and QoS. DomainParticipant and Publishers are managed for you ☐ The API is reactive and considers DataReaders as the source for a stream of data. This data can be handled by the application or bound to a cache (notice the cache is not part of the DataReader)
  • 8. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Topic circleTopic = new dds.Topic(0, 'Circle', 'org.omg.dds.demo.ShapeType') squareTopic = new dds.Topic(0, 'Square', 'org.omg.dds.demo.ShapeType') triangleTopic = new dds.Topic(0, 'Triangle', 'org.omg.dds.demo.ShapeType') var myTopic = new dds.Topic(domainID, topicName, topicType); myTopic = new dds.Topic(domainID, topicName, topicType) JavaScript CoffeeScript var circleTopic = new dds.Topic(0, 'Circle', 'org.omg.dds.demo.ShapeType'); var squareTopic = new dds.Topic(0, 'Square', 'org.omg.dds.demo.ShapeType'); var triangleTopic = new dds.Topic(0, 'Triangle', 'org.omg.dds.demo.ShapeType'); Example: Example:
  • 9. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS DataWriter dwqos = new dds.DataReaderQos( dds.History.KeepLast(10), dds.Reliability.Reliable, dds.TimeFilter(250)) cdw = new dds.DataWriter(circleTopic,dwqos) shape = {} shape.color = ’RED’ shape.x = 10 shape.y = 20 shape.shapesize = 30 cdw.write(shape) dr = new dds.DataWriter(topic, qos) CoffeeScript Example:
  • 10. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS DataReader drqos = new dds.DataReaderQos( dds.History.KeepLast(10), dds.Reliability.Reliable, dds.TimeFilter(250)) cdr = new dds.DataReader(circleTopic,drqos) dr = new dds.DataReader(topic, qos) CoffeeScript Example:
  • 11. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Binding a DataReader ☐ A DataReader can be bound to a user provided function that will handle incoming data or to a cache ☐ Notice, that as you are in control of how data-readers are bound to cache you can be very creative
  • 12. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Binding to User Function cdr.addListener((s) -> console.log(JSON.stringify(s))) dr.addListener(f) CoffeeScript Example:
  • 13. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS Binding to a Cache // Binding bindShape = dds.bind((s) -> s.color) ccache = new DataCache(historyDepth) bindShape(cache, cdr) // Working with the Cache ccache.forEach(displayOnMyHTMLCanvas) someCircles = ccache.takeWhile((s) -> s.x < s.y) cache = new DataCache(historyDepth) bind(keyMapper)(dr, cache) CoffeeScript Example:
  • 15. OpenSpliceDDS WebApp Publish: Circle Subscribe: Square JavaFX native DDS App Publish: Square Subscribe: Circle WebApp Subscribe: Circle Subscribe: Square
  • 16. OpenSpliceDDS Copyright  2013,  PrismTech  –    All  Rights  Reserved. Code ☐ https://github.com/nuvo-io/dscript.js ☐ https://github.com/nuvo-io/dscript.play The demo is under dscript.js/demo/jshapes
  • 17. Copyright  2013,  PrismTech  –    All  Rights  Reserved. OpenSpliceDDS