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

Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
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: 8448380779Delhi Call girls
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Delhi Call girls
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
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.pptxolyaivanovalion
 
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Onlineanilsa9823
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfMarinCaroMartnezBerg
 
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.pptxolyaivanovalion
 
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.pptxolyaivanovalion
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxMohammedJunaid861692
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130Suhani Kapoor
 
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.pdfRachmat Ramadhan H
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Callshivangimorya083
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 
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..pdfLars Albertsson
 

Recently uploaded (20)

Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
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
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL 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
 
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Chinhat Lucknow best sexual service Online
 
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
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
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
 
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
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
 
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
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
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
 
꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...
꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...
꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...
 

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