SlideShare a Scribd company logo
1 of 59
Download to read offline
Vortex Tutorial 
Part II 
Angelo 
Corsaro, 
PhD 
Chief 
Technology 
Officer 
angelo.corsaro@prismtech.com
Recap
Copyright PrismTech, 2014 
The Vortex Platform 
Vortex enables seamless, 
ubiquitous, efficient and 
timely data sharing across 
mobile, embedded, desktop, 
cloud and web applications 
Vortex is based on the OMG 
DDS standard 
Vortex Device 
Tools 
Integration 
MaaS 
Vortex Cloud
Building ChirpIt
Copyright PrismTech, 2014 
ChirpIt Requirements 
To explore the various features provided by the Vortex platform we will be designing and 
implementing a micro-blogging platform called ChirpIt. Specifically, we want to support the 
following features: 
ChirpIt users should be able to “chirp”, “re-chirp”, “like” and “dislike” trills as well as get 
detailed statistics 
The ChirpIt platform should provide information on trending topics — identified by hashtags — 
as well as trending users 
Third party services should be able to flexibly access slices of produced trills to perform their 
own trend analysis 
ChirpIt should scale to millions of users 
ChirpIt should be based on a Lambda Architecture
Copyright PrismTech, 2014 
ChirpIt Architecture 
stats 
analytics 
data centre 
chirp 
stats 
emotions 
batch 
layer 
chirpit 
apps 
Cloud Messaging 
serving 
layer 
chirp 
emotions 
master 
dataset 
view view view 
3rd 
party 
svcs 
chirp 
stats 
emotions 
Speed 
layer
Next Step
Trendy #hashtags
Copyright PrismTech, 2014 
Calculating Trendy #hashtags 
As an example of how VORTEX can be used to compute analytics we’ll 
see how to compute trending topics, as identified by their #hashtag
Copyright PrismTech, 2014 
ChirpIt Architecture 
stats 
analytics 
data centre 
chirp 
stats 
emotions 
batch 
layer 
chirpit 
apps 
Cloud Messaging 
serving 
layer 
chirp 
emotions 
Chirps chirp 
3rd 
party 
svcs 
chirp 
stats 
emotions 
Speed 
layer 
Chirps 
trend …
Copyright PrismTech, 2014 
To fully exploit the features provided by VORTEX in our ChirpIt application there 
are a few more things we need to learn
Quality of Service
Copyright PrismTech, 2014 
QoS Policies 
VORTEX provides a rich set of QoS-Policies 
to control local as well as 
end-to-end properties of data 
sharing 
Some QoS-Policies are matched 
based on a Request vs. Offered 
(RxO) Model 
DURABILITY 
HISTORY 
LIFESPAN 
LIVELINESS 
DEADLINE 
LATENCY BUDGET 
TRANSPORT PRIO 
TIME-BASED FILTER 
RESOURCE LIMITS 
USER DATA 
TOPIC DATA 
GROUP DATA 
OWENERSHIP 
OWN. STRENGTH 
DW LIFECYCLE 
DR LIFECYCLE 
ENTITY FACTORY 
DEST. ORDER 
PARTITION 
PRESENTATION 
RELIABILITY 
RxO QoS Local QoS
Copyright PrismTech, 2014 
Data Delivery 
Data Delivery QoS Policies provide 
control over: 
who delivers data 
where data is delivered, and 
how data is delivered 
Reliability 
Ownership Ownership 
Presentation 
Destination 
Partition Order 
Strength 
Data Delivery
Copyright PrismTech, 2014 
Data Delivery 
Data Delivery QoS Policies provide 
control over: 
who delivers data 
where data is delivered, and 
how data is delivered 
Reliability 
Ownership Ownership 
Presentation 
Destination 
Partition Order 
Strength 
Data Delivery
Copyright PrismTech, 2014 
Data Delivery 
Data Delivery QoS Policies provide 
control over: 
who delivers data 
where data is delivered, and 
how data is delivered 
Reliability 
Ownership Ownership 
Presentation 
Destination 
Partition Order 
Strength 
Data Delivery
Copyright PrismTech, 2014 
Data Delivery 
Data Delivery QoS Policies provide 
control over: 
who delivers data 
where data is delivered, and 
how data is delivered 
Reliability 
Ownership Ownership 
Presentation 
Destination 
Partition Order 
Strength 
Data Delivery
Copyright PrismTech, 2014 
Data Availability 
Data Availability QoS Policies provide 
control over data availability with 
respect to: 
Temporal Decoupling (late Joiners) 
Temporal Validity 
History 
Lifespan Data Availability Durability
Copyright PrismTech, 2014 
Data Availability 
Data Availability QoS Policies provide 
control over data availability with 
respect to: 
Temporal Decoupling (late Joiners) 
Temporal Validity 
History 
Lifespan Data Availability Durability
Copyright PrismTech, 2014 
Data Availability 
Data Availability QoS Policies provide 
control over data availability with 
respect to: 
Temporal Decoupling (late Joiners) 
Temporal Validity 
History 
Lifespan Data Availability Durability
Copyright PrismTech, 2014 
Temporal Properties 
Several policies provide control over 
temporal properties, specifically: 
Outbound Throughput 
Inbound Throughput 
Latency 
TimeBasedFilter 
[Inbound] 
Throughput 
[Outbound] 
Deadline 
Latency 
TransportPriority 
LatencyBudget
Copyright PrismTech, 2014 
Temporal Properties 
Several policies provide control over 
temporal properties, specifically: 
Outbound Throughput 
Inbound Throughput 
Latency 
TimeBasedFilter 
[Inbound] 
Throughput 
[Outbound] 
Deadline 
Latency 
TransportPriority 
LatencyBudget
Copyright PrismTech, 2014 
Temporal Properties 
Several policies provide control over 
temporal properties, specifically: 
Outbound Throughput 
Inbound Throughput 
Latency 
TimeBasedFilter 
[Inbound] 
Throughput 
[Outbound] 
Deadline 
Latency 
TransportPriority 
LatencyBudget
Copyright PrismTech, 2014 
Temporal Properties 
Several policies provide control over 
temporal properties, specifically: 
Outbound Throughput 
Inbound Throughput 
Latency 
TimeBasedFilter 
[Inbound] 
Throughput 
[Outbound] 
Deadline 
Latency 
TransportPriority 
LatencyBudget
Copyright PrismTech, 2014 
QoS Model 
For data to flow from a DataWriter (DW) to 
one or many DataReader (DR) a few 
conditions have to apply: 
The DR and DW domain participants have 
to be in the same domain 
The partition expression of the DR’s 
Subscriber and the DW’s Publisher should 
match (in terms of regular expression 
match) 
The QoS Policies offered by the DW should 
exceed or match those requested by the DR 
Domain 
Participant 
joins joins 
Domain Id 
produces-in consumes-from 
RxO QoS Policies 
DURABILITY 
DEST. ORDER 
RELIABILITY 
LATENCY BUDGET 
DEADLINE 
OWENERSHIP 
LIVELINESS 
Publisher 
DataWriter 
PARTITION 
Domain 
Participant 
Subscriber 
DataReader 
offered 
QoS 
writes reads 
Topic 
requested 
QoS
Useful QoS for ChirpIt
Copyright PrismTech, 2014 
History QoS Policy 
The DataWriter HISTORY QoS Policy controls 
the amount of data that can be made available 
to late joining DataReaders under 
TRANSIENT_LOCAL Durability 
The DataReader HISTORY QoS Policy controls 
how many samples will be kept on the reader 
cache 
- Keep Last. DDS will keep the most recent 
“depth” samples of each instance of data 
identified by its key 
- Keep All. The DDS keep all the samples of each 
instance of data identified by its key -- up to 
reaching some configurable resource limits 
0 1 2 3 
Pressure 
KeepLast(1) 
time 
Pressure 
time 
Pressure 
time 
KeepLast(3) 
KeepAll
Copyright PrismTech, 2014 
Exploiting the History Policy in ChirpIt 
The HISTORY QoS can be leveraged to automatically provide Chirps to late 
joiners 
In other terms, depending on applications settings, VORTEX can be leveraged to 
automatically provide an application with the last n chirps produced 
Notice that HISTORY can be “DURABLE” thus making it possible to completely 
decouple in time the availability of history
Copyright PrismTech, 2014 
Durability QoS Policy 
The DURABILITY QoS controls the data availability w.r.t. late joiners, specifically the 
DDS provides the following variants: 
Volatile. No need to keep data instances for late joining data readers 
Transient Local. Data instance availability for late joining data reader is tied to 
the data writer availability 
Transient. Data instance availability outlives the data writer 
Persistent. Data instance availability outlives system restarts
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Volatile Durability 
Data 
Writer 
Data 
Reader 
QoS 
TopicA 
1 
• No Time Decoupling 
• Readers get only data produced after they joined the Global Data Space
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Volatile Durability 
Data 
Writer 
QoS 
• No Time Decoupling 
• Readers get only data produced after they joined the Global Data Space 
Late Joiner 
Data 
Reader 
TopicA 
Data 
Reader 
1
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Volatile Durability 
Data 
Writer 
QoS 
Late Joiner 
• No Time Decoupling 
• Readers get only data produced after they joined the Global Data Space 
Data 
Reader 
TopicA 
Data 
Reader 
1 
2
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Local Durability 
Data 
Writer 
Data 
Reader 
QoS 
TopicA 
1 
• Some Time Decoupling 
• Data availability is tied to the availability of the data writer and the history settings
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Local Durability 
Data 
Writer 
Late Joiner 
Data 
Reader 
Data 
Reader 
QoS 
TopicA 
1 
1 
• Some Time Decoupling 
• Data availability is tied to the availability of the data writer and the history settings
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient-Local Durability 
Data 
Writer 
Data 
Reader 
QoS 
TopicA 
Data 
Reader 
2 
1 
1 
1 
• Some Time Decoupling 
• Data availability is tied to the availability of the data writer and the history settings
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Durability 
Data 
Writer 
Data 
Reader 
QoS 
TopicA 
1 
1 
• Time Decoupling 
• Data availability is tied to the availability of the durability service
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Durability 
Data 
Writer 
Late Joiner 
Data 
Reader 
QoS 
TopicA 
Data 
Reader 
1 
1 
• Time Decoupling 
• Data availability is tied to the availability of the durability service
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Durability 
Data 
Writer 
Data 
Reader 
QoS 
TopicA 
Data 
Reader 
2 
1 
1 
1 
2 
• Time Decoupling 
• Data availability is tied to the availability of the durability service
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Durability 
Data 
Reader 
QoS 
TopicA 
Data 
Reader 
1 
1 
2 
2 
2 1
Copyright PrismTech, 2014 Copyright 
2013, 
PrismTech 
– 
All 
Rights 
Reserved. 
Transient Durability 
1 
1 
Data 
Reader 
2 
Late Joiner 
QoS 
TopicA 
Data 
Reader 
Data 
Reader 
2 
22 11 
• Time Decoupling 
• Data availability is tied to the availability of the durability service
Copyright PrismTech, 2014 
Durability Service Configuration 
Beside the service specific configuration — that we won’t discuss here — it is important 
to understand that the amount of data that the durability service will maintain for a 
given topic is configured using the DurabilityService Policy 
The DurabilityService Policy, defined for topics, can be used to store: 
- The last n samples for each topic instance 
- All samples ever produced for a given Topic (across all its instances) 
Resource constraints can also be specified to limit the maximum amount of data taken 
by a topic 
NOTE: beware that when you dispose an instance its data is removed from the 
Durability Service
Copyright PrismTech, 2014 
Getting Data From the Durability Service 
Data can be retrieved from the Durability Service in two ways 
Automatic Retrieval: Non VOLATILES DataReaders automatically receive a set of 
historical data. How much data is received depends on the DR HISTORY setting and the 
Durability Service (or DW for TRANSIENT_LOCAL) historical settings 
Query-Based Retrieval: Any applications can create a “special” data reader to query the 
Durability Service. Query can predicate on content, as well as time 
- Get all Chirps made by @wolverine in the last 2 days: 
• dr.getHistoricalData(“uid = ‘@wolverine’”, now() - 2 days, now()) 
- Get all Chirps containing the #hashtag “#xmen” in the last day: 
• dr.getHistoricalData(“msg like ‘*#xmen*’”, now() - 1 day, now())
Copyright PrismTech, 2014 
Exploiting VORTEX Durability in ChirpIt 
VORTEX’s Durability can be leveraged to address several different use cases in 
ChirpIt 
Batch Layer: VORTEX durability can be used to persist all the chirps ever 
received by our application. Scalability can be easily achieved by partitioning 
(more later) 
Speed Layer: Views on the data-set can be efficiently created using the 
Durability Service Query API 
Historical Data: Any analytics application as well as end-user application can 
access historical data through either the Automatic or Query-based delivery
Copyright PrismTech, 2014 
ChirpIt Architecture 
Durability 
Service 
stats 
analytics 
data centre 
chirp 
stats 
emotions 
batch 
layer 
chirpit 
apps 
Cloud Messaging 
serving 
layer 
chirp 
emotions 
Chirps chirp 
3rd 
party 
svcs 
chirp 
stats 
emotions 
Speed 
layer 
Chirps 
trend … 
Historical 
Data
Copyright PrismTech, 2014 
Batch Layer Observations 
Beside the Durability Service, you may implement the batch layer via: 
VORTEX Record and Reply (RnR) Service 
3rd Party Big Data Store 
Depending on the specific system requirements one solution may be more 
appropriate than another. Notice however, that the back-ends for both VORTEX 
Durability and RnR are pluggable, thus a big-data store back-end could be easily 
plugged
Copyright PrismTech, 2014 
Big-Data Store Integration 
It is trivial to push Chirps into a big data store such as HBase by using VORTEX 
Gateway 
Just define the following route: 
val chirpURI = "ddsi:ChirpAction:0/com.chirpIt.ChirpAction” 
val hbaseURI = "hbase:chirpit?mappingStrategyName=body&operation=CamelHBasePut" 
// ... 
// Put incoming chirps into an HBase Table 
chirpURI unmarshal(cdrData) process { e2d (_, "chirp") } to(hbaseURI)
Computing Trending 
#hastags
Copyright PrismTech, 2014 
Be Stateless 
A good approach to deal with failures is 
to ensure that applications are stateless 
The application state is maintained 
externally (in our case on VORTEX 
Durability)
Copyright PrismTech, 2014 
#hashtag ranking function 
ChirpIt #hashtag ranking function will be 
stateless 
The latest rankings will be maintained by 
the VORTEX durability service. This allows 
to restore the state after a failure as well 
as easily do aggregations (more later) 
#hashtag 
ranking function 
Ranking 
Chirps 
latest 
ranking 
Ranking 
last 
ranking 
real-­‐time 
data 
As such, the ranking function will consume the latest ranking along with live chirps 
and produce the new ranking for the basic interval (say the shortest interval that 
will define our granularity and from which aggregation will be created)
Copyright PrismTech, 2014 
Trendy #hashtags 
#hashtag 
ranking function 
Durability 
Service 
Ranking 
chirp 
stats 
emotions 
batch 
layer 
chirpit 
apps 
Cloud Messaging 
serving 
layer 
Chirps chirp 
3rd 
party 
svcs 
chirp 
stats 
emotions 
trend … 
Chirps 
latest 
ranking 
Ranking 
last 
ranking 
real-­‐time 
data
Copyright PrismTech, 2014 
Scaling out the #hashtag ranking 
Wait a moment… Do we have a single 
instance of the ranking function? 
How do we scale out? 
How can we partition the load?
Copyright PrismTech, 2014 
Divide et Impera 
@magneto 
It would be a good idea to add more 
structure to our partition to include 
some geographical information 
We take advantage of information 
concerning the continent, country, 
region, and city of the registrant 
@wolverine 
ChirpAction 
@drx 
ChirpAction 
chirp:wolverine 
ChirpAction 
chirp:magneto
Copyright PrismTech, 2014 
Divide et Impera 
@archimede 
By encoding origins in the partitions 
associated with users we can easily and 
efficiently do regional aggregation 
Thus all the chirps in EU would be in 
EU*:chirp:*, while all chirps in 
Siracusa would be 
EU:IT:Siracusa:chirp:* 
@william 
ChirpAction 
@joe 
ChirpAction 
EU:UK:London:chirp:william 
ChirpAction 
NA:CA:Pasadina:chirp:joe 
EU:IT:Siracusa:chirp:archimede 
@antonio 
ChirpAction 
SA:AR:Rosario:chirp:antonio
Copyright PrismTech, 2014 
Scaling out the #hashtag ranking 
With the new partition organisation it is now trivial to scale out the ranking function 
In addition, the application could easily support on-line reconfiguration since we 
may want to consolidate or further distribute the load as the system goes
Copyright PrismTech, 2014 
EU:*:chirp 
EU:*:stats 
NA:*:chirp 
NA:*:stats 
SA:*:chirp 
SA:*:stats 
… 
#hashtag 
ranking 
aggregation 
latest 
aggregated 
ranking 
Ranking 
Ranking 
new 
aggregated 
ranking 
last 
ranking 
*:stats 
global:stats 
Ranking 
global:stats
Copyright PrismTech, 2014 
Some Observations 
The processing pipeline can be easily 
reconfigured at runtime by simply 
changing the partitions expressions on 
which every process operates 
Every single stage in the processing 
pipeline is stateless, its state is 
maintained on the Durability Service 
Hierarchical aggregation can be 
introduced easily too
Copyright PrismTech, 2014 
Ranking Topic 
Notice that the Ranking topic is 
keyless 
The durability service will be 
configured with KeepAll 
struct HashtagScore { 
string hashtag; 
float score; 
}; 
typedef sequence <HashtagScore> HashtagScores; 
struct HashtagRanking { 
long startTS; 
long endTS; 
HashtagScores htscores; 
}; 
#pragma keylist HashtagRanking
Copyright PrismTech, 2014 
Summary 
In this presentation we have seen how the vortex platform can be used to 
implement not only data sharing and distribution but also analytics 
We have seen how VORTEX provide solution for both the batch as well as the 
speed layer thus making it quite easy to implement lambda architectures
Copyright PrismTech, 2014 
Online Resources

More Related Content

What's hot

Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)
Gerardo Pardo-Castellote
 
Openstack_administration
Openstack_administrationOpenstack_administration
Openstack_administration
Ashish Sharma
 

What's hot (20)

Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
ISO C++ DDS PSM
ISO C++ DDS PSMISO C++ DDS PSM
ISO C++ DDS PSM
 
cisco 7200
cisco 7200 cisco 7200
cisco 7200
 
Looking at SDN with DDS Glasses
Looking at SDN with DDS GlassesLooking at SDN with DDS Glasses
Looking at SDN with DDS Glasses
 
Building Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-WebBuilding Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-Web
 
Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)Introduction to OMG DDS (1 hour, 45 slides)
Introduction to OMG DDS (1 hour, 45 slides)
 
Connected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with VortexConnected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with Vortex
 
Kerberos, Token and Hadoop
Kerberos, Token and HadoopKerberos, Token and Hadoop
Kerberos, Token and Hadoop
 
HDF Data in the Cloud
HDF Data in the CloudHDF Data in the Cloud
HDF Data in the Cloud
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDS
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part I
 
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
 
Openstack_administration
Openstack_administrationOpenstack_administration
Openstack_administration
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
HBaseCon 2013: Multi-tenant Apache HBase at Yahoo!
HBaseCon 2013: Multi-tenant Apache HBase at Yahoo! HBaseCon 2013: Multi-tenant Apache HBase at Yahoo!
HBaseCon 2013: Multi-tenant Apache HBase at Yahoo!
 

Viewers also liked

Diagrama Visio Agosto/2013 - Proceso Brainstorming
Diagrama Visio Agosto/2013 - Proceso BrainstormingDiagrama Visio Agosto/2013 - Proceso Brainstorming
Diagrama Visio Agosto/2013 - Proceso Brainstorming
Nicolas Lopez Cisneros
 
Open splicedds espercep-webinar
Open splicedds espercep-webinarOpen splicedds espercep-webinar
Open splicedds espercep-webinar
Tomasz Waszczyk
 
Ningbo Focus 2011
Ningbo Focus 2011Ningbo Focus 2011
Ningbo Focus 2011
Helge1967
 
Sub Saharan Africa Vocab GEN
Sub Saharan Africa Vocab GENSub Saharan Africa Vocab GEN
Sub Saharan Africa Vocab GEN
ordovensky
 

Viewers also liked (20)

BECARIOS MAESTRÍA EN CIENCIAS DE LA EDUCACIÓN 2014
BECARIOS MAESTRÍA EN CIENCIAS DE LA EDUCACIÓN 2014BECARIOS MAESTRÍA EN CIENCIAS DE LA EDUCACIÓN 2014
BECARIOS MAESTRÍA EN CIENCIAS DE LA EDUCACIÓN 2014
 
Diagrama Visio Agosto/2013 - Proceso Brainstorming
Diagrama Visio Agosto/2013 - Proceso BrainstormingDiagrama Visio Agosto/2013 - Proceso Brainstorming
Diagrama Visio Agosto/2013 - Proceso Brainstorming
 
UgCS for Professionals
UgCS for ProfessionalsUgCS for Professionals
UgCS for Professionals
 
Mundo transas
Mundo transasMundo transas
Mundo transas
 
UPSTART Live Spring Summit - Keynote: Operation Cloud Cover
UPSTART Live Spring Summit - Keynote: Operation Cloud CoverUPSTART Live Spring Summit - Keynote: Operation Cloud Cover
UPSTART Live Spring Summit - Keynote: Operation Cloud Cover
 
Pi fs 2012 2013
Pi fs 2012 2013Pi fs 2012 2013
Pi fs 2012 2013
 
ADEX - Boletin COMERCIO 06-14
ADEX - Boletin COMERCIO 06-14ADEX - Boletin COMERCIO 06-14
ADEX - Boletin COMERCIO 06-14
 
Вестник Союза франчайзинга
Вестник Союза франчайзингаВестник Союза франчайзинга
Вестник Союза франчайзинга
 
Asus eee-pc-1101 ha-netbook-manual
Asus eee-pc-1101 ha-netbook-manualAsus eee-pc-1101 ha-netbook-manual
Asus eee-pc-1101 ha-netbook-manual
 
Content Analytics for Media Agencies
Content Analytics for Media AgenciesContent Analytics for Media Agencies
Content Analytics for Media Agencies
 
Enc séminaire collèges juin 2013
Enc séminaire collèges juin 2013Enc séminaire collèges juin 2013
Enc séminaire collèges juin 2013
 
Open splicedds espercep-webinar
Open splicedds espercep-webinarOpen splicedds espercep-webinar
Open splicedds espercep-webinar
 
Ningbo Focus 2011
Ningbo Focus 2011Ningbo Focus 2011
Ningbo Focus 2011
 
Bc hc
Bc hcBc hc
Bc hc
 
Chordspeller 2.0
Chordspeller 2.0Chordspeller 2.0
Chordspeller 2.0
 
Session 3 Les AppAwards 2016
Session 3 Les AppAwards 2016Session 3 Les AppAwards 2016
Session 3 Les AppAwards 2016
 
Top 25 Toxic VA Air Zips.2015.b
Top 25 Toxic VA Air Zips.2015.bTop 25 Toxic VA Air Zips.2015.b
Top 25 Toxic VA Air Zips.2015.b
 
Sub Saharan Africa Vocab GEN
Sub Saharan Africa Vocab GENSub Saharan Africa Vocab GEN
Sub Saharan Africa Vocab GEN
 
Pavillon France @SLUSH 2015
Pavillon France @SLUSH 2015Pavillon France @SLUSH 2015
Pavillon France @SLUSH 2015
 
Villanueva descendants
Villanueva   descendantsVillanueva   descendants
Villanueva descendants
 

Similar to Vortex Tutorial Part 2

Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDS
kerush
 

Similar to Vortex Tutorial Part 2 (20)

PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
 
Reactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDSReactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDS
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
Smart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoTSmart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoT
 
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricEclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
 
Fiware: Connecting to robots
Fiware: Connecting to robotsFiware: Connecting to robots
Fiware: Connecting to robots
 
Two Approaches You Must Consider when Architecting Radar Systems
Two Approaches You Must Consider when Architecting Radar SystemsTwo Approaches You Must Consider when Architecting Radar Systems
Two Approaches You Must Consider when Architecting Radar Systems
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDS
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 
DDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoDDS 2010 Interoperability Demo
DDS 2010 Interoperability Demo
 
Introduction to CloudFront
Introduction to CloudFrontIntroduction to CloudFront
Introduction to CloudFront
 
652.ppt
652.ppt652.ppt
652.ppt
 
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
 
Cisco Connect Halifax 2018 Application insight and zero trust policies with...
Cisco Connect Halifax 2018   Application insight and zero trust policies with...Cisco Connect Halifax 2018   Application insight and zero trust policies with...
Cisco Connect Halifax 2018 Application insight and zero trust policies with...
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
 
Keynote Presentation: Hybrid Deployment for RTC PaaS
Keynote Presentation: Hybrid Deployment for RTC PaaSKeynote Presentation: Hybrid Deployment for RTC PaaS
Keynote Presentation: Hybrid Deployment for RTC PaaS
 

More from ADLINK Technology IoT

Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
ADLINK Technology IoT
 
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
ADLINK Technology IoT
 

More from ADLINK Technology IoT (20)

Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
 
Vortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud MessagingVortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud Messaging
 
Harnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare SystemsHarnessing DDS in Next Generation Healthcare Systems
Harnessing DDS in Next Generation Healthcare Systems
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
 
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
 
Real-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex WebReal-Time Web Programming with PrismTech Vortex Web
Real-Time Web Programming with PrismTech Vortex Web
 
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
 
PrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingPrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems Modeling
 
PrismTech Reflective Language for Communication Systems
PrismTech Reflective Language for Communication SystemsPrismTech Reflective Language for Communication Systems
PrismTech Reflective Language for Communication Systems
 
Model_Driven_Development_SDR
Model_Driven_Development_SDRModel_Driven_Development_SDR
Model_Driven_Development_SDR
 
SCA_4_adoption_may2013
SCA_4_adoption_may2013SCA_4_adoption_may2013
SCA_4_adoption_may2013
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...
 
Sca 4 0 _may16_2012_final
Sca 4 0 _may16_2012_finalSca 4 0 _may16_2012_final
Sca 4 0 _may16_2012_final
 
Spectra dtp4700h march2012_final
Spectra dtp4700h march2012_finalSpectra dtp4700h march2012_final
Spectra dtp4700h march2012_final
 
Spectra CX 3.4 Launch Webcast
Spectra CX 3.4 Launch WebcastSpectra CX 3.4 Launch Webcast
Spectra CX 3.4 Launch Webcast
 
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
Spectra DTP4700 Linux Based Development for Software Defined Radio (SDR) Soft...
 
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
 
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
 
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
Spectra IP Core ORB - high-performance, low-latency solution for FPGA-GPP com...
 
Automating Software Communications Architecture (SCA) Testing with Spectra CX
Automating Software Communications Architecture (SCA) Testing with Spectra CXAutomating Software Communications Architecture (SCA) Testing with Spectra CX
Automating Software Communications Architecture (SCA) Testing with Spectra CX
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Recently uploaded (20)

%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

Vortex Tutorial Part 2

  • 1. Vortex Tutorial Part II Angelo Corsaro, PhD Chief Technology Officer angelo.corsaro@prismtech.com
  • 3. Copyright PrismTech, 2014 The Vortex Platform Vortex enables seamless, ubiquitous, efficient and timely data sharing across mobile, embedded, desktop, cloud and web applications Vortex is based on the OMG DDS standard Vortex Device Tools Integration MaaS Vortex Cloud
  • 5. Copyright PrismTech, 2014 ChirpIt Requirements To explore the various features provided by the Vortex platform we will be designing and implementing a micro-blogging platform called ChirpIt. Specifically, we want to support the following features: ChirpIt users should be able to “chirp”, “re-chirp”, “like” and “dislike” trills as well as get detailed statistics The ChirpIt platform should provide information on trending topics — identified by hashtags — as well as trending users Third party services should be able to flexibly access slices of produced trills to perform their own trend analysis ChirpIt should scale to millions of users ChirpIt should be based on a Lambda Architecture
  • 6. Copyright PrismTech, 2014 ChirpIt Architecture stats analytics data centre chirp stats emotions batch layer chirpit apps Cloud Messaging serving layer chirp emotions master dataset view view view 3rd party svcs chirp stats emotions Speed layer
  • 9. Copyright PrismTech, 2014 Calculating Trendy #hashtags As an example of how VORTEX can be used to compute analytics we’ll see how to compute trending topics, as identified by their #hashtag
  • 10. Copyright PrismTech, 2014 ChirpIt Architecture stats analytics data centre chirp stats emotions batch layer chirpit apps Cloud Messaging serving layer chirp emotions Chirps chirp 3rd party svcs chirp stats emotions Speed layer Chirps trend …
  • 11. Copyright PrismTech, 2014 To fully exploit the features provided by VORTEX in our ChirpIt application there are a few more things we need to learn
  • 13. Copyright PrismTech, 2014 QoS Policies VORTEX provides a rich set of QoS-Policies to control local as well as end-to-end properties of data sharing Some QoS-Policies are matched based on a Request vs. Offered (RxO) Model DURABILITY HISTORY LIFESPAN LIVELINESS DEADLINE LATENCY BUDGET TRANSPORT PRIO TIME-BASED FILTER RESOURCE LIMITS USER DATA TOPIC DATA GROUP DATA OWENERSHIP OWN. STRENGTH DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY DEST. ORDER PARTITION PRESENTATION RELIABILITY RxO QoS Local QoS
  • 14. Copyright PrismTech, 2014 Data Delivery Data Delivery QoS Policies provide control over: who delivers data where data is delivered, and how data is delivered Reliability Ownership Ownership Presentation Destination Partition Order Strength Data Delivery
  • 15. Copyright PrismTech, 2014 Data Delivery Data Delivery QoS Policies provide control over: who delivers data where data is delivered, and how data is delivered Reliability Ownership Ownership Presentation Destination Partition Order Strength Data Delivery
  • 16. Copyright PrismTech, 2014 Data Delivery Data Delivery QoS Policies provide control over: who delivers data where data is delivered, and how data is delivered Reliability Ownership Ownership Presentation Destination Partition Order Strength Data Delivery
  • 17. Copyright PrismTech, 2014 Data Delivery Data Delivery QoS Policies provide control over: who delivers data where data is delivered, and how data is delivered Reliability Ownership Ownership Presentation Destination Partition Order Strength Data Delivery
  • 18. Copyright PrismTech, 2014 Data Availability Data Availability QoS Policies provide control over data availability with respect to: Temporal Decoupling (late Joiners) Temporal Validity History Lifespan Data Availability Durability
  • 19. Copyright PrismTech, 2014 Data Availability Data Availability QoS Policies provide control over data availability with respect to: Temporal Decoupling (late Joiners) Temporal Validity History Lifespan Data Availability Durability
  • 20. Copyright PrismTech, 2014 Data Availability Data Availability QoS Policies provide control over data availability with respect to: Temporal Decoupling (late Joiners) Temporal Validity History Lifespan Data Availability Durability
  • 21. Copyright PrismTech, 2014 Temporal Properties Several policies provide control over temporal properties, specifically: Outbound Throughput Inbound Throughput Latency TimeBasedFilter [Inbound] Throughput [Outbound] Deadline Latency TransportPriority LatencyBudget
  • 22. Copyright PrismTech, 2014 Temporal Properties Several policies provide control over temporal properties, specifically: Outbound Throughput Inbound Throughput Latency TimeBasedFilter [Inbound] Throughput [Outbound] Deadline Latency TransportPriority LatencyBudget
  • 23. Copyright PrismTech, 2014 Temporal Properties Several policies provide control over temporal properties, specifically: Outbound Throughput Inbound Throughput Latency TimeBasedFilter [Inbound] Throughput [Outbound] Deadline Latency TransportPriority LatencyBudget
  • 24. Copyright PrismTech, 2014 Temporal Properties Several policies provide control over temporal properties, specifically: Outbound Throughput Inbound Throughput Latency TimeBasedFilter [Inbound] Throughput [Outbound] Deadline Latency TransportPriority LatencyBudget
  • 25. Copyright PrismTech, 2014 QoS Model For data to flow from a DataWriter (DW) to one or many DataReader (DR) a few conditions have to apply: The DR and DW domain participants have to be in the same domain The partition expression of the DR’s Subscriber and the DW’s Publisher should match (in terms of regular expression match) The QoS Policies offered by the DW should exceed or match those requested by the DR Domain Participant joins joins Domain Id produces-in consumes-from RxO QoS Policies DURABILITY DEST. ORDER RELIABILITY LATENCY BUDGET DEADLINE OWENERSHIP LIVELINESS Publisher DataWriter PARTITION Domain Participant Subscriber DataReader offered QoS writes reads Topic requested QoS
  • 26. Useful QoS for ChirpIt
  • 27. Copyright PrismTech, 2014 History QoS Policy The DataWriter HISTORY QoS Policy controls the amount of data that can be made available to late joining DataReaders under TRANSIENT_LOCAL Durability The DataReader HISTORY QoS Policy controls how many samples will be kept on the reader cache - Keep Last. DDS will keep the most recent “depth” samples of each instance of data identified by its key - Keep All. The DDS keep all the samples of each instance of data identified by its key -- up to reaching some configurable resource limits 0 1 2 3 Pressure KeepLast(1) time Pressure time Pressure time KeepLast(3) KeepAll
  • 28. Copyright PrismTech, 2014 Exploiting the History Policy in ChirpIt The HISTORY QoS can be leveraged to automatically provide Chirps to late joiners In other terms, depending on applications settings, VORTEX can be leveraged to automatically provide an application with the last n chirps produced Notice that HISTORY can be “DURABLE” thus making it possible to completely decouple in time the availability of history
  • 29. Copyright PrismTech, 2014 Durability QoS Policy The DURABILITY QoS controls the data availability w.r.t. late joiners, specifically the DDS provides the following variants: Volatile. No need to keep data instances for late joining data readers Transient Local. Data instance availability for late joining data reader is tied to the data writer availability Transient. Data instance availability outlives the data writer Persistent. Data instance availability outlives system restarts
  • 30. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Volatile Durability Data Writer Data Reader QoS TopicA 1 • No Time Decoupling • Readers get only data produced after they joined the Global Data Space
  • 31. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Volatile Durability Data Writer QoS • No Time Decoupling • Readers get only data produced after they joined the Global Data Space Late Joiner Data Reader TopicA Data Reader 1
  • 32. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Volatile Durability Data Writer QoS Late Joiner • No Time Decoupling • Readers get only data produced after they joined the Global Data Space Data Reader TopicA Data Reader 1 2
  • 33. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Local Durability Data Writer Data Reader QoS TopicA 1 • Some Time Decoupling • Data availability is tied to the availability of the data writer and the history settings
  • 34. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Local Durability Data Writer Late Joiner Data Reader Data Reader QoS TopicA 1 1 • Some Time Decoupling • Data availability is tied to the availability of the data writer and the history settings
  • 35. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient-Local Durability Data Writer Data Reader QoS TopicA Data Reader 2 1 1 1 • Some Time Decoupling • Data availability is tied to the availability of the data writer and the history settings
  • 36. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Durability Data Writer Data Reader QoS TopicA 1 1 • Time Decoupling • Data availability is tied to the availability of the durability service
  • 37. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Durability Data Writer Late Joiner Data Reader QoS TopicA Data Reader 1 1 • Time Decoupling • Data availability is tied to the availability of the durability service
  • 38. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Durability Data Writer Data Reader QoS TopicA Data Reader 2 1 1 1 2 • Time Decoupling • Data availability is tied to the availability of the durability service
  • 39. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Durability Data Reader QoS TopicA Data Reader 1 1 2 2 2 1
  • 40. Copyright PrismTech, 2014 Copyright 2013, PrismTech – All Rights Reserved. Transient Durability 1 1 Data Reader 2 Late Joiner QoS TopicA Data Reader Data Reader 2 22 11 • Time Decoupling • Data availability is tied to the availability of the durability service
  • 41. Copyright PrismTech, 2014 Durability Service Configuration Beside the service specific configuration — that we won’t discuss here — it is important to understand that the amount of data that the durability service will maintain for a given topic is configured using the DurabilityService Policy The DurabilityService Policy, defined for topics, can be used to store: - The last n samples for each topic instance - All samples ever produced for a given Topic (across all its instances) Resource constraints can also be specified to limit the maximum amount of data taken by a topic NOTE: beware that when you dispose an instance its data is removed from the Durability Service
  • 42. Copyright PrismTech, 2014 Getting Data From the Durability Service Data can be retrieved from the Durability Service in two ways Automatic Retrieval: Non VOLATILES DataReaders automatically receive a set of historical data. How much data is received depends on the DR HISTORY setting and the Durability Service (or DW for TRANSIENT_LOCAL) historical settings Query-Based Retrieval: Any applications can create a “special” data reader to query the Durability Service. Query can predicate on content, as well as time - Get all Chirps made by @wolverine in the last 2 days: • dr.getHistoricalData(“uid = ‘@wolverine’”, now() - 2 days, now()) - Get all Chirps containing the #hashtag “#xmen” in the last day: • dr.getHistoricalData(“msg like ‘*#xmen*’”, now() - 1 day, now())
  • 43. Copyright PrismTech, 2014 Exploiting VORTEX Durability in ChirpIt VORTEX’s Durability can be leveraged to address several different use cases in ChirpIt Batch Layer: VORTEX durability can be used to persist all the chirps ever received by our application. Scalability can be easily achieved by partitioning (more later) Speed Layer: Views on the data-set can be efficiently created using the Durability Service Query API Historical Data: Any analytics application as well as end-user application can access historical data through either the Automatic or Query-based delivery
  • 44. Copyright PrismTech, 2014 ChirpIt Architecture Durability Service stats analytics data centre chirp stats emotions batch layer chirpit apps Cloud Messaging serving layer chirp emotions Chirps chirp 3rd party svcs chirp stats emotions Speed layer Chirps trend … Historical Data
  • 45. Copyright PrismTech, 2014 Batch Layer Observations Beside the Durability Service, you may implement the batch layer via: VORTEX Record and Reply (RnR) Service 3rd Party Big Data Store Depending on the specific system requirements one solution may be more appropriate than another. Notice however, that the back-ends for both VORTEX Durability and RnR are pluggable, thus a big-data store back-end could be easily plugged
  • 46. Copyright PrismTech, 2014 Big-Data Store Integration It is trivial to push Chirps into a big data store such as HBase by using VORTEX Gateway Just define the following route: val chirpURI = "ddsi:ChirpAction:0/com.chirpIt.ChirpAction” val hbaseURI = "hbase:chirpit?mappingStrategyName=body&operation=CamelHBasePut" // ... // Put incoming chirps into an HBase Table chirpURI unmarshal(cdrData) process { e2d (_, "chirp") } to(hbaseURI)
  • 48. Copyright PrismTech, 2014 Be Stateless A good approach to deal with failures is to ensure that applications are stateless The application state is maintained externally (in our case on VORTEX Durability)
  • 49. Copyright PrismTech, 2014 #hashtag ranking function ChirpIt #hashtag ranking function will be stateless The latest rankings will be maintained by the VORTEX durability service. This allows to restore the state after a failure as well as easily do aggregations (more later) #hashtag ranking function Ranking Chirps latest ranking Ranking last ranking real-­‐time data As such, the ranking function will consume the latest ranking along with live chirps and produce the new ranking for the basic interval (say the shortest interval that will define our granularity and from which aggregation will be created)
  • 50. Copyright PrismTech, 2014 Trendy #hashtags #hashtag ranking function Durability Service Ranking chirp stats emotions batch layer chirpit apps Cloud Messaging serving layer Chirps chirp 3rd party svcs chirp stats emotions trend … Chirps latest ranking Ranking last ranking real-­‐time data
  • 51. Copyright PrismTech, 2014 Scaling out the #hashtag ranking Wait a moment… Do we have a single instance of the ranking function? How do we scale out? How can we partition the load?
  • 52. Copyright PrismTech, 2014 Divide et Impera @magneto It would be a good idea to add more structure to our partition to include some geographical information We take advantage of information concerning the continent, country, region, and city of the registrant @wolverine ChirpAction @drx ChirpAction chirp:wolverine ChirpAction chirp:magneto
  • 53. Copyright PrismTech, 2014 Divide et Impera @archimede By encoding origins in the partitions associated with users we can easily and efficiently do regional aggregation Thus all the chirps in EU would be in EU*:chirp:*, while all chirps in Siracusa would be EU:IT:Siracusa:chirp:* @william ChirpAction @joe ChirpAction EU:UK:London:chirp:william ChirpAction NA:CA:Pasadina:chirp:joe EU:IT:Siracusa:chirp:archimede @antonio ChirpAction SA:AR:Rosario:chirp:antonio
  • 54. Copyright PrismTech, 2014 Scaling out the #hashtag ranking With the new partition organisation it is now trivial to scale out the ranking function In addition, the application could easily support on-line reconfiguration since we may want to consolidate or further distribute the load as the system goes
  • 55. Copyright PrismTech, 2014 EU:*:chirp EU:*:stats NA:*:chirp NA:*:stats SA:*:chirp SA:*:stats … #hashtag ranking aggregation latest aggregated ranking Ranking Ranking new aggregated ranking last ranking *:stats global:stats Ranking global:stats
  • 56. Copyright PrismTech, 2014 Some Observations The processing pipeline can be easily reconfigured at runtime by simply changing the partitions expressions on which every process operates Every single stage in the processing pipeline is stateless, its state is maintained on the Durability Service Hierarchical aggregation can be introduced easily too
  • 57. Copyright PrismTech, 2014 Ranking Topic Notice that the Ranking topic is keyless The durability service will be configured with KeepAll struct HashtagScore { string hashtag; float score; }; typedef sequence <HashtagScore> HashtagScores; struct HashtagRanking { long startTS; long endTS; HashtagScores htscores; }; #pragma keylist HashtagRanking
  • 58. Copyright PrismTech, 2014 Summary In this presentation we have seen how the vortex platform can be used to implement not only data sharing and distribution but also analytics We have seen how VORTEX provide solution for both the batch as well as the speed layer thus making it quite easy to implement lambda architectures
  • 59. Copyright PrismTech, 2014 Online Resources