際際滷

際際滷Share a Scribd company logo
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
Model-Driven Analytics  for Open Data APIs
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 (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)
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 2022
StreamNative
SQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsightSQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsight
Eduardo 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 2009
Aduci
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 Hero
TechWell
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
VARUN 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 Future
VARUN SAXENA
Meet with Meteor
Meet with MeteorMeet with Meteor
Meet with Meteor
Tahmina Khatoon
Mesoscon 2015
Mesoscon 2015Mesoscon 2015
Mesoscon 2015
Skand Gupta
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 Interface
Seculert
World Wide Web(WWW)
World Wide Web(WWW)World Wide Web(WWW)
World Wide Web(WWW)
Pratik Tambekar
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationLisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Steve Michael Fernandes
Tracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptxTracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptx
Hai Nguyen Duy
Kurento cpmx
Kurento cpmxKurento cpmx
Kurento cpmx
Ivan Gracia
1 basis technical-overview
1 basis technical-overview1 basis technical-overview
1 basis technical-overview
hassan010
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
Pivorak MeetUp
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Soroosh Khodami
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 2022
StreamNative
SQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsightSQL Server 2008 R2 StreamInsight
SQL Server 2008 R2 StreamInsight
Eduardo 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 2009
Aduci
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 Hero
TechWell
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
VARUN 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 Future
VARUN SAXENA
Mesoscon 2015
Mesoscon 2015Mesoscon 2015
Mesoscon 2015
Skand Gupta
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 Interface
Seculert
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & VisualizationLisbon Mulesoft Meetup - Logging Aggregation & Visualization
Lisbon Mulesoft Meetup - Logging Aggregation & Visualization
Steve Michael Fernandes
Tracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptxTracing-for-fun-and-profit.pptx
Tracing-for-fun-and-profit.pptx
Hai Nguyen Duy
1 basis technical-overview
1 basis technical-overview1 basis technical-overview
1 basis technical-overview
hassan010
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
Pivorak MeetUp
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
Soroosh Khodami

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
Elena 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 Models
Elena 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
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
Elena 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 Models
Elena 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

Recently uploaded (20)

Week_2_Neural_Networks_Basichhhhhhhs.pdf
Week_2_Neural_Networks_Basichhhhhhhs.pdfWeek_2_Neural_Networks_Basichhhhhhhs.pdf
Week_2_Neural_Networks_Basichhhhhhhs.pdf
Aliker5
Unit 6 principlr 嘆 mkt of mr thac you know.pdf
Unit 6 principlr 嘆 mkt of mr thac you know.pdfUnit 6 principlr 嘆 mkt of mr thac you know.pdf
Unit 6 principlr 嘆 mkt of mr thac you know.pdf
khuenguyen3124102833
Cognitive Chasms - A Grounded Theory of GenAI Adoption
Cognitive Chasms - A Grounded Theory of GenAI AdoptionCognitive Chasms - A Grounded Theory of GenAI Adoption
Cognitive Chasms - A Grounded Theory of GenAI Adoption
Dr. Tathagat Varma
JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...
JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...
JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...
fcoccetti
bigdata notes engineering unit-02 notes.pdf
bigdata notes engineering   unit-02 notes.pdfbigdata notes engineering   unit-02 notes.pdf
bigdata notes engineering unit-02 notes.pdf
shaquibrizwan66
IDM 2025 Crack Latest Downloader Full 6.42 Build 26 Patch
IDM 2025 Crack Latest Downloader Full 6.42 Build 26 PatchIDM 2025 Crack Latest Downloader Full 6.42 Build 26 Patch
IDM 2025 Crack Latest Downloader Full 6.42 Build 26 Patch
leshy875
computerprogrammingggggggggggggggggg.pdf
computerprogrammingggggggggggggggggg.pdfcomputerprogrammingggggggggggggggggg.pdf
computerprogrammingggggggggggggggggg.pdf
MahnoorMushtaque
Batteray and fuel cell Lesson 1 (2).pptx
Batteray and fuel cell Lesson 1 (2).pptxBatteray and fuel cell Lesson 1 (2).pptx
Batteray and fuel cell Lesson 1 (2).pptx
alexajohn101913
JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...
JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...
JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...
fcoccetti
Just The Facts - Data Modeling Zone 2025
Just The Facts - Data Modeling Zone 2025Just The Facts - Data Modeling Zone 2025
Just The Facts - Data Modeling Zone 2025
Marco Wobben
Winner Analytix - Democratizing Data [Autosaved].pptx
Winner Analytix - Democratizing Data [Autosaved].pptxWinner Analytix - Democratizing Data [Autosaved].pptx
Winner Analytix - Democratizing Data [Autosaved].pptx
SANJIV VERMA - (Big Data & Data Scientist)
data-snooping-pipeline-made-easy-for-analytics
data-snooping-pipeline-made-easy-for-analyticsdata-snooping-pipeline-made-easy-for-analytics
data-snooping-pipeline-made-easy-for-analytics
Md. Golam Hossain
Gen AI for Beginners: How to Start immediately
Gen AI for Beginners: How to Start immediatelyGen AI for Beginners: How to Start immediately
Gen AI for Beginners: How to Start immediately
SANJIV VERMA - (Big Data & Data Scientist)
Data-The-Digital-Ages-Primary-Resource.pptx
Data-The-Digital-Ages-Primary-Resource.pptxData-The-Digital-Ages-Primary-Resource.pptx
Data-The-Digital-Ages-Primary-Resource.pptx
gdeadiwidyautama
Decided to go to the 65 and the value of the number
Decided to go to the 65 and the value of the numberDecided to go to the 65 and the value of the number
Decided to go to the 65 and the value of the number
harshoberoi2050
Internet Download Manager (IDM) 6.42.27 Crack Latest 2025
Internet Download Manager (IDM) 6.42.27 Crack Latest 2025Internet Download Manager (IDM) 6.42.27 Crack Latest 2025
Internet Download Manager (IDM) 6.42.27 Crack Latest 2025
umnazadiwe
My JOURNAL CLUB PRESENTATION part of research.pptx
My JOURNAL CLUB PRESENTATION part of research.pptxMy JOURNAL CLUB PRESENTATION part of research.pptx
My JOURNAL CLUB PRESENTATION part of research.pptx
AnushaAkhil1
BIOINFORMATICS what it is, explained .pptx
BIOINFORMATICS what it is, explained .pptxBIOINFORMATICS what it is, explained .pptx
BIOINFORMATICS what it is, explained .pptx
RajeshRamnath2
Latest one pager of Gupte Education '25
Latest one pager of Gupte Education  '25Latest one pager of Gupte Education  '25
Latest one pager of Gupte Education '25
Dr. Manish Gupte
How_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptx
How_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptxHow_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptx
How_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptx
irasnet
Week_2_Neural_Networks_Basichhhhhhhs.pdf
Week_2_Neural_Networks_Basichhhhhhhs.pdfWeek_2_Neural_Networks_Basichhhhhhhs.pdf
Week_2_Neural_Networks_Basichhhhhhhs.pdf
Aliker5
Unit 6 principlr 嘆 mkt of mr thac you know.pdf
Unit 6 principlr 嘆 mkt of mr thac you know.pdfUnit 6 principlr 嘆 mkt of mr thac you know.pdf
Unit 6 principlr 嘆 mkt of mr thac you know.pdf
khuenguyen3124102833
Cognitive Chasms - A Grounded Theory of GenAI Adoption
Cognitive Chasms - A Grounded Theory of GenAI AdoptionCognitive Chasms - A Grounded Theory of GenAI Adoption
Cognitive Chasms - A Grounded Theory of GenAI Adoption
Dr. Tathagat Varma
JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...
JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...
JRC_Al Watch Road to the Adoption of Artificial Intelligence by the Public Se...
fcoccetti
bigdata notes engineering unit-02 notes.pdf
bigdata notes engineering   unit-02 notes.pdfbigdata notes engineering   unit-02 notes.pdf
bigdata notes engineering unit-02 notes.pdf
shaquibrizwan66
IDM 2025 Crack Latest Downloader Full 6.42 Build 26 Patch
IDM 2025 Crack Latest Downloader Full 6.42 Build 26 PatchIDM 2025 Crack Latest Downloader Full 6.42 Build 26 Patch
IDM 2025 Crack Latest Downloader Full 6.42 Build 26 Patch
leshy875
computerprogrammingggggggggggggggggg.pdf
computerprogrammingggggggggggggggggg.pdfcomputerprogrammingggggggggggggggggg.pdf
computerprogrammingggggggggggggggggg.pdf
MahnoorMushtaque
Batteray and fuel cell Lesson 1 (2).pptx
Batteray and fuel cell Lesson 1 (2).pptxBatteray and fuel cell Lesson 1 (2).pptx
Batteray and fuel cell Lesson 1 (2).pptx
alexajohn101913
JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...
JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...
JRC_AI Watch. European landscape on the use of Artificial Intelligence by the...
fcoccetti
Just The Facts - Data Modeling Zone 2025
Just The Facts - Data Modeling Zone 2025Just The Facts - Data Modeling Zone 2025
Just The Facts - Data Modeling Zone 2025
Marco Wobben
data-snooping-pipeline-made-easy-for-analytics
data-snooping-pipeline-made-easy-for-analyticsdata-snooping-pipeline-made-easy-for-analytics
data-snooping-pipeline-made-easy-for-analytics
Md. Golam Hossain
Data-The-Digital-Ages-Primary-Resource.pptx
Data-The-Digital-Ages-Primary-Resource.pptxData-The-Digital-Ages-Primary-Resource.pptx
Data-The-Digital-Ages-Primary-Resource.pptx
gdeadiwidyautama
Decided to go to the 65 and the value of the number
Decided to go to the 65 and the value of the numberDecided to go to the 65 and the value of the number
Decided to go to the 65 and the value of the number
harshoberoi2050
Internet Download Manager (IDM) 6.42.27 Crack Latest 2025
Internet Download Manager (IDM) 6.42.27 Crack Latest 2025Internet Download Manager (IDM) 6.42.27 Crack Latest 2025
Internet Download Manager (IDM) 6.42.27 Crack Latest 2025
umnazadiwe
My JOURNAL CLUB PRESENTATION part of research.pptx
My JOURNAL CLUB PRESENTATION part of research.pptxMy JOURNAL CLUB PRESENTATION part of research.pptx
My JOURNAL CLUB PRESENTATION part of research.pptx
AnushaAkhil1
BIOINFORMATICS what it is, explained .pptx
BIOINFORMATICS what it is, explained .pptxBIOINFORMATICS what it is, explained .pptx
BIOINFORMATICS what it is, explained .pptx
RajeshRamnath2
Latest one pager of Gupte Education '25
Latest one pager of Gupte Education  '25Latest one pager of Gupte Education  '25
Latest one pager of Gupte Education '25
Dr. Manish Gupte
How_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptx
How_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptxHow_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptx
How_to_improve_SQL_Performance_with_new_SQL_Health_Check_Tool.pptx
irasnet

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

  • #12: Step 1: Log gathering process
  • #26: Step 2: Filtering process
  • #32: Step 3: Visualization