SlideShare a Scribd company logo
1 of 57
Elena Planas
eplanash@uoc.edu
Open University of Catalonia
Model-Driven Analytics
for Open Data APIs
David Baneres
dbaneres@uoc.edu
Open University of Catalonia
International Workshop on Engineering Open Data (WEOD)
Held in conjunction with 18th International Conference on Web Engineering (ICWE 2018)
Cáceres, Spain - 5th June 2018
goal of the open data movement:
empower end-users
to
exploit and benefit
from
open-data
Citizens ask:
How can we access and
manipulate open data?
Citizens ask:
How can we access and
manipulate open data?
Data providers ask:
How our data is used
by end-users?
Data providers ask:
How our data is used
by end-users?
Citizens ask:
How can we access and
manipulate open data?
we provide a
Model-Driven Analytical tool for Open Data APIs
we provide a
Model-Driven Analytical tool for Open Data APIs
our goal is to
visualize
how
end-users interact
with
open data
sources
regarding several
metrics
we provide a
Model-Driven Analytical tool for Open Data APIs
we provide a
Model-Driven Analytical tool for Open Data APIs
Log gathering
Log
Transformation
Computing &
Visualizing
metrics
Step 1 Step 2 Step 3
Step 1: Log gathering
Record all the
REQUESTS
made by users to the different API end-points
in a
LOG FILE
Record all the
REQUESTS
made by users to the different API end-points
in a
LOG FILE
general
REST
request
specific
REST
sub-request
specific
REST
sub-request
specific
REST
sub-request
* Hamza Ed-Douibi, Javier Luis Canovas Izquierdo and Jordi Cabot.
OpenAPItoUML: A tool to generate UML models from OpenAPI definitions
ICWE 2018 Demo: 6th Wednesday. 09.00 - 10.30
API1 API2 API3
http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
http://restcountries.eu/rest/v2/all http://battuta.medunes.net/api
/country/all?key=be8135f3cddb0
277a4c67711f8c0cd29
general
REST
request
specific
REST
sub-requests
Record all the
REQUESTS
made by users to the different API end-points
in a
LOG FILE
LOG structure
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
Example
LOG structure
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
Example
LOG structure
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
Example
LOG structure
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
LOG structure LOG information
Example
Time
Requested APIs
Server response
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
LOG structure LOG information
Example
Time
Requested APIs
Server response
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
LOG structure LOG information
Example
Time
Requested APIs
Server response
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
#1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries
#2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208
#3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076
#4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes
LOG structure LOG information
Opening: general request
specific sub request 1
…
specific sub request n
Closing: general request
Example
Time
Requested APIs
Server response
Step 2: Log Transformation
TRANSFORM
the initial
LOG FILE
to enrich its information
TRANSFORMED LOGINITIAL LOG
TRANSFORMED LOGINITIAL LOG
Input timestamp
general / for sub-query
Output timestamp
general / for sub-query
Response time
for each request and sub-request
Total time
for resolving a request
Time
TRANSFORMED LOGINITIAL LOG
Input timestamp
general / for sub-query
Output timestamp
general / for sub-query
Response time
for each request and sub-request
Total time
for resolving a request
Time
General request
Specific sub-requests
Number of sub-requests
for each general request
Number of requested APIs
in each general request
Requested
APIs
TRANSFORMED LOGINITIAL LOG
Input timestamp
general / for sub-query
Output timestamp
general / for sub-query
Response time
for each request and sub-request
Total time
for resolving a request
Time
General request
Specific sub-requests
Number of sub-requests
for each general request
Number of requested APIs
in each general request
Requested
APIs
Reliability
of each request and sub-request
Server
response
Reliability
of each request and sub-request
Step 3: Computing &
Visualizing metrics
COMPUTE
and
VISUALIZE
several
USAGE METRICS
COMPUTE
and
VISUALIZE
several
USAGE METRICS
COMPUTE
and
VISUALIZE
several
USAGE METRICS
PERFORMANCE
METRICS
SEMANTIC
METRICS
the aim of the
is to
measure and report
performance and volumes
of manipulated APIs
PERFORMANCE METRICS
API RELIABILITY
Average RESPONSE TIME
- by API
- by request / sub-requests
Average number of
ACCESSED APIs
for each request
Average number of
GENERATED SUB-REQUESTS
for each request
QUERY HISTORY
PERFORMANCE
METRICS
Response time by API:
Response time by request / sub-request:
%
%
%
%
%
%
API1
API2
API3
Request1
Sub-request1.1
Sub-request1.2
%
API RELIABILITY
Average RESPONSE TIME
- by API
- by request / sub-requests
Average number of
ACCESSED APIs
for each request
Average number of
GENERATED SUB-REQUESTS
for each request
QUERY HISTORY
PERFORMANCE
METRICS
Accessed APIs for each request:
%
%
Request1
Request2
Request3
%
API RELIABILITY
Average RESPONSE TIME
- by API
- by request / sub-requests
Average number of
ACCESSED APIs
for each request
Average number of
GENERATED SUB-REQUESTS
for each request
QUERY HISTORY
PERFORMANCE
METRICS
Generated sub-requests for each request:
%
%
Request1
Request2
Request3
%
API RELIABILITY
Average RESPONSE TIME
- by API
- by request / sub-requests
Average number of
ACCESSED APIs
for each request
Average number of
GENERATED SUB-REQUESTS
for each request
QUERY HISTORY
PERFORMANCE
METRICS
Collecting response codes of each sub-request:
Successfully served
Error: Bad request
Error: not found
API RELIABILITY
Average RESPONSE TIME
- by API
- by request / sub-requests
Average number of
ACCESSED APIs
for each request
Average number of
GENERATED SUB-REQUESTS
for each request
QUERY HISTORY
PERFORMANCE
METRICS
Performance metrics can be filtered by
several criteria:
API RELIABILITY
Average RESPONSE TIME
- by API
- by request / sub-requests
Average number of
ACCESSED APIs
for each request
Average number of
GENERATED SUB-REQUESTS
for each request
QUERY HISTORY
PERFORMANCE
METRICS
the aim of the
is to
analyze the consumed data
in the context of the
UML model
representing the requested APIs
SEMANTIC METRICS
HEAT UML MODEL
ENTITY/FIELD CONSUMPTION
QUERY DIAGRAM
SEMANTIC METRICS
Entities consumption is highlighted
using different colours:
High
demand
Low
demand
HEAT UML MODEL
ENTITY/FIELD CONSUMPTION
QUERY DIAGRAM
SEMANTIC METRICS
Show the number of requests to an
specific entity / field: HEAT UML MODEL
ENTITY/FIELD CONSUMPTION
QUERY DIAGRAM
SEMANTIC METRICS
Show the navigability to resolve the performed query:
HEAT UML MODEL
ENTITY/FIELD CONSUMPTION
QUERY DIAGRAM
SEMANTIC METRICS
COMPUTE
and
VISUALIZE
several
USAGE METRICS
Search Processing Language (SPL)
based on SQL
index = TransformedLog | stats avg(timeForRequest)
Example
COMPUTE
and
VISUALIZE
several
USAGE METRICS
dashboard (I)
Average response time by API
dashboard (II)
Average response time by request
dashboard (III)
Reliability
dashboard (IV)
Query history
dashboard (V)
Heat Map & Consumption
Conclusions
we provide a
Model-Driven Analytical tool for Open Data APIs
the monitoring and visualization of the open data consumption report
highly valuable information to data providers
Improve data
- Data precision
- Avoiding overlapping
- Removing non-accessed-data
Infer new knowledge
- New content to be published
- Potential partnerships
Elena Planas
eplanash@uoc.edu
Open University of Catalonia
Model-Driven Analytics
for Open Data APIs
David Baneres
dbaneres@uoc.edu
Open University of Catalonia
Questions?
* All the images of this presentation have been acquired from http://pixabay.com

More Related Content

Similar to Model-Driven Analytics for Open Data APIs

Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)Tim Burks
 
Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022StreamNative
 
SQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsightSQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsightEduardo Castro
 
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009Aduci
 
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics HeroTechWell
 
Application Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureApplication Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureVARUN SAXENA
 
Application Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureApplication Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureVARUN SAXENA
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaborationJulien Pivotto
 
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...HostedbyConfluent
 
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...WSO2
 
Application Programming Interface
Application Programming InterfaceApplication Programming Interface
Application Programming InterfaceSeculert
 
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationLisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationSteve Michael Fernandes
 
Tracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptxTracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptxHai Nguyen Duy
 
1 basis technical-overview
1 basis technical-overview1 basis technical-overview
1 basis technical-overviewhassan010
 
Business-friendly library for inter-service communication
Business-friendly library for inter-service communicationBusiness-friendly library for inter-service communication
Business-friendly library for inter-service communicationPivorak MeetUp
 

Similar to Model-Driven Analytics for Open Data APIs (20)

Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)
 
Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022Event-Driven Applications Done Right - Pulsar Summit SF 2022
Event-Driven Applications Done Right - Pulsar Summit SF 2022
 
SQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsightSQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsight
 
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
 
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
 
Application Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureApplication Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and Future
 
Application Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureApplication Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and Future
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
Meet with Meteor
Meet with MeteorMeet with Meteor
Meet with Meteor
 
Mesoscon 2015
Mesoscon 2015Mesoscon 2015
Mesoscon 2015
 
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...A Practical Deep Dive into Observability of Streaming Applications with Kosta...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
 
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
 
Application Programming Interface
Application Programming InterfaceApplication Programming Interface
Application Programming Interface
 
World Wide Web(WWW)
World Wide Web(WWW)World Wide Web(WWW)
World Wide Web(WWW)
 
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationLisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
 
Tracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptxTracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptx
 
Kurento cpmx
Kurento cpmxKurento cpmx
Kurento cpmx
 
1 basis technical-overview
1 basis technical-overview1 basis technical-overview
1 basis technical-overview
 
Business-friendly library for inter-service communication
Business-friendly library for inter-service communicationBusiness-friendly library for inter-service communication
Business-friendly library for inter-service communication
 

More from Elena Planas

PhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable ModelsPhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable ModelsElena Planas
 
Lightweight Static Verification of [UML] Executable Models (An overview)
Lightweight Static Verification of [UML] Executable Models (An overview)Lightweight Static Verification of [UML] Executable Models (An overview)
Lightweight Static Verification of [UML] Executable Models (An overview)Elena Planas
 
Lightweight Verification of Executable Models
Lightweight Verification of Executable ModelsLightweight Verification of Executable Models
Lightweight Verification of Executable ModelsElena Planas
 
Two Basic Correctness Properties for ATL Transformations: Executability and C...
Two Basic Correctness Properties for ATL Transformations: Executability and C...Two Basic Correctness Properties for ATL Transformations: Executability and C...
Two Basic Correctness Properties for ATL Transformations: Executability and C...Elena Planas
 
Executability Analysis of Graph Transformation Rules (VL/HCC 2011)
Executability Analysis of Graph Transformation Rules (VL/HCC 2011)Executability Analysis of Graph Transformation Rules (VL/HCC 2011)
Executability Analysis of Graph Transformation Rules (VL/HCC 2011)Elena Planas
 
A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)
A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)
A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)Elena Planas
 
Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)
Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)
Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)Elena Planas
 

More from Elena Planas (7)

PhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable ModelsPhD Thesis defense: Lightweight and Static verification of UML Executable Models
PhD Thesis defense: Lightweight and Static verification of UML Executable Models
 
Lightweight Static Verification of [UML] Executable Models (An overview)
Lightweight Static Verification of [UML] Executable Models (An overview)Lightweight Static Verification of [UML] Executable Models (An overview)
Lightweight Static Verification of [UML] Executable Models (An overview)
 
Lightweight Verification of Executable Models
Lightweight Verification of Executable ModelsLightweight Verification of Executable Models
Lightweight Verification of Executable Models
 
Two Basic Correctness Properties for ATL Transformations: Executability and C...
Two Basic Correctness Properties for ATL Transformations: Executability and C...Two Basic Correctness Properties for ATL Transformations: Executability and C...
Two Basic Correctness Properties for ATL Transformations: Executability and C...
 
Executability Analysis of Graph Transformation Rules (VL/HCC 2011)
Executability Analysis of Graph Transformation Rules (VL/HCC 2011)Executability Analysis of Graph Transformation Rules (VL/HCC 2011)
Executability Analysis of Graph Transformation Rules (VL/HCC 2011)
 
A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)
A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)
A Framework for Verifying UML Behavioral Models (CAiSE Doctoral Consortium 2009)
 
Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)
Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)
Verifying Action Semantics Specifications in UML Behavioral Models (CAiSE 2009)
 

Recently uploaded

Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...nirzagarg
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...HyderabadDolls
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...HyderabadDolls
 
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptxRESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptxronsairoathenadugay
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Klinik kandungan
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...gajnagarg
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Kings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themKings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themeitharjee
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...gajnagarg
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1ranjankumarbehera14
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...gajnagarg
 
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...Health
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样wsppdmt
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareGraham Ware
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangeThinkInnovation
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...nirzagarg
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfSayantanBiswas37
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...HyderabadDolls
 

Recently uploaded (20)

Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
 
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptxRESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
RESEARCH-FINAL-DEFENSE-PPT-TEMPLATE.pptx
 
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
Jual obat aborsi Bandung ( 085657271886 ) Cytote pil telat bulan penggugur ka...
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
Kings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about themKings of Saudi Arabia, information about them
Kings of Saudi Arabia, information about them
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
 
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
+97470301568>>weed for sale in qatar ,weed for sale in dubai,weed for sale in...
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
 
Computer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdfComputer science Sql cheat sheet.pdf.pdf
Computer science Sql cheat sheet.pdf.pdf
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
 

Model-Driven Analytics for Open Data APIs

  • 1. Elena Planas eplanash@uoc.edu Open University of Catalonia Model-Driven Analytics for Open Data APIs David Baneres dbaneres@uoc.edu Open University of Catalonia International Workshop on Engineering Open Data (WEOD) Held in conjunction with 18th International Conference on Web Engineering (ICWE 2018) Cáceres, Spain - 5th June 2018
  • 2.
  • 3. goal of the open data movement: empower end-users to exploit and benefit from open-data
  • 4. Citizens ask: How can we access and manipulate open data?
  • 5. Citizens ask: How can we access and manipulate open data? Data providers ask: How our data is used by end-users?
  • 6. Data providers ask: How our data is used by end-users? Citizens ask: How can we access and manipulate open data?
  • 7. we provide a Model-Driven Analytical tool for Open Data APIs
  • 8. we provide a Model-Driven Analytical tool for Open Data APIs our goal is to visualize how end-users interact with open data sources regarding several metrics
  • 9. we provide a Model-Driven Analytical tool for Open Data APIs
  • 10. we provide a Model-Driven Analytical tool for Open Data APIs Log gathering Log Transformation Computing & Visualizing metrics Step 1 Step 2 Step 3
  • 11. Step 1: Log gathering
  • 12. Record all the REQUESTS made by users to the different API end-points in a LOG FILE
  • 13. Record all the REQUESTS made by users to the different API end-points in a LOG FILE
  • 14. general REST request specific REST sub-request specific REST sub-request specific REST sub-request * Hamza Ed-Douibi, Javier Luis Canovas Izquierdo and Jordi Cabot. OpenAPItoUML: A tool to generate UML models from OpenAPI definitions ICWE 2018 Demo: 6th Wednesday. 09.00 - 10.30 API1 API2 API3
  • 16. Record all the REQUESTS made by users to the different API end-points in a LOG FILE
  • 17. LOG structure Opening: general request specific sub request 1 … specific sub request n Closing: general request
  • 18. Opening: general request specific sub request 1 … specific sub request n Closing: general request #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes Example LOG structure
  • 19. Opening: general request specific sub request 1 … specific sub request n Closing: general request #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes Example LOG structure
  • 20. Opening: general request specific sub request 1 … specific sub request n Closing: general request #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes Example LOG structure
  • 21. #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes LOG structure LOG information Example Time Requested APIs Server response Opening: general request specific sub request 1 … specific sub request n Closing: general request
  • 22. #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes LOG structure LOG information Example Time Requested APIs Server response Opening: general request specific sub request 1 … specific sub request n Closing: general request
  • 23. #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes LOG structure LOG information Example Time Requested APIs Server response Opening: general request specific sub request 1 … specific sub request n Closing: general request
  • 24. #1 2017-11-10 11:02:20 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries #2 2017-11-10 11:02:23 - 200 http://restcountries.eu/rest/v2/all 2208 #3 2017-11-10 11:02:24 - 200 http://battuta.medunes.net/api/country/all?key=... 1076 #4 2017-11-10 11:02:24 - http://localhost:8080/OpenDataForAll/ODataService.svc/Countries yes LOG structure LOG information Opening: general request specific sub request 1 … specific sub request n Closing: general request Example Time Requested APIs Server response
  • 25. Step 2: Log Transformation
  • 26. TRANSFORM the initial LOG FILE to enrich its information
  • 28. TRANSFORMED LOGINITIAL LOG Input timestamp general / for sub-query Output timestamp general / for sub-query Response time for each request and sub-request Total time for resolving a request Time
  • 29. TRANSFORMED LOGINITIAL LOG Input timestamp general / for sub-query Output timestamp general / for sub-query Response time for each request and sub-request Total time for resolving a request Time General request Specific sub-requests Number of sub-requests for each general request Number of requested APIs in each general request Requested APIs
  • 30. TRANSFORMED LOGINITIAL LOG Input timestamp general / for sub-query Output timestamp general / for sub-query Response time for each request and sub-request Total time for resolving a request Time General request Specific sub-requests Number of sub-requests for each general request Number of requested APIs in each general request Requested APIs Reliability of each request and sub-request Server response Reliability of each request and sub-request
  • 31. Step 3: Computing & Visualizing metrics
  • 35. the aim of the is to measure and report performance and volumes of manipulated APIs PERFORMANCE METRICS
  • 36. API RELIABILITY Average RESPONSE TIME - by API - by request / sub-requests Average number of ACCESSED APIs for each request Average number of GENERATED SUB-REQUESTS for each request QUERY HISTORY PERFORMANCE METRICS
  • 37. Response time by API: Response time by request / sub-request: % % % % % % API1 API2 API3 Request1 Sub-request1.1 Sub-request1.2 % API RELIABILITY Average RESPONSE TIME - by API - by request / sub-requests Average number of ACCESSED APIs for each request Average number of GENERATED SUB-REQUESTS for each request QUERY HISTORY PERFORMANCE METRICS
  • 38. Accessed APIs for each request: % % Request1 Request2 Request3 % API RELIABILITY Average RESPONSE TIME - by API - by request / sub-requests Average number of ACCESSED APIs for each request Average number of GENERATED SUB-REQUESTS for each request QUERY HISTORY PERFORMANCE METRICS
  • 39. Generated sub-requests for each request: % % Request1 Request2 Request3 % API RELIABILITY Average RESPONSE TIME - by API - by request / sub-requests Average number of ACCESSED APIs for each request Average number of GENERATED SUB-REQUESTS for each request QUERY HISTORY PERFORMANCE METRICS
  • 40. Collecting response codes of each sub-request: Successfully served Error: Bad request Error: not found API RELIABILITY Average RESPONSE TIME - by API - by request / sub-requests Average number of ACCESSED APIs for each request Average number of GENERATED SUB-REQUESTS for each request QUERY HISTORY PERFORMANCE METRICS
  • 41. Performance metrics can be filtered by several criteria: API RELIABILITY Average RESPONSE TIME - by API - by request / sub-requests Average number of ACCESSED APIs for each request Average number of GENERATED SUB-REQUESTS for each request QUERY HISTORY PERFORMANCE METRICS
  • 42. the aim of the is to analyze the consumed data in the context of the UML model representing the requested APIs SEMANTIC METRICS
  • 43. HEAT UML MODEL ENTITY/FIELD CONSUMPTION QUERY DIAGRAM SEMANTIC METRICS
  • 44. Entities consumption is highlighted using different colours: High demand Low demand HEAT UML MODEL ENTITY/FIELD CONSUMPTION QUERY DIAGRAM SEMANTIC METRICS
  • 45. Show the number of requests to an specific entity / field: HEAT UML MODEL ENTITY/FIELD CONSUMPTION QUERY DIAGRAM SEMANTIC METRICS
  • 46. Show the navigability to resolve the performed query: HEAT UML MODEL ENTITY/FIELD CONSUMPTION QUERY DIAGRAM SEMANTIC METRICS
  • 48. Search Processing Language (SPL) based on SQL index = TransformedLog | stats avg(timeForRequest) Example
  • 54. dashboard (V) Heat Map & Consumption
  • 56. we provide a Model-Driven Analytical tool for Open Data APIs the monitoring and visualization of the open data consumption report highly valuable information to data providers Improve data - Data precision - Avoiding overlapping - Removing non-accessed-data Infer new knowledge - New content to be published - Potential partnerships
  • 57. Elena Planas eplanash@uoc.edu Open University of Catalonia Model-Driven Analytics for Open Data APIs David Baneres dbaneres@uoc.edu Open University of Catalonia Questions? * All the images of this presentation have been acquired from http://pixabay.com

Editor's Notes

  1. Step 1: Log gathering process
  2. Step 2: Filtering process
  3. Step 3: Visualization