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

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
Aduci
 
1 basis technical-overview
1 basis technical-overview1 basis technical-overview
1 basis technical-overview
hassan010
 

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 (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

Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
shambhavirathore45
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
amitlee9823
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
amitlee9823
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
Lars Albertsson
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
amitlee9823
 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
shivangimorya083
 

Recently uploaded (20)

Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptx
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
 
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfMarket Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 

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