Center for Open Middleware
Center for Open Middleware
Application integration with the W3C Linked Data standards
Nandana Mihindukulasooriya
Universidad Politécnica de Madrid
@nandanamihindu
Día W3C en EspañaDecember 18th, 2013
Center for Open Middleware
2
Evolution of Application Integration
http://www.immortalhumans.com/wp-content/uploads/Evolution-11.jpg
Center for Open Middleware
3
Linked Data
• Connecting data distributed across the Web• Similar to how documents are connected using hyperlinks to set up an
hypertext web
• Based on four rules defined by Tim Berners Lee [1]:1. Use URIs as names for things
2. Use HTTP URIs so that people can look up those names.
3. When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)
4. Include links to other URIs, so that they can discover more things
[1] http://www.w3.org/DesignIssues/LinkedData.html
[2] Linking Open Data cloud diagram, by Richard Cyganiak
and Anja Jentzsch. http://lod-cloud.net/
Center for Open Middleware
4
Why Linked Data ?
• Global identifiers that are dereferenceable • Easily accessible data using HTTP• Reconciliation of duplicate data• Avoid data silos
• Use of standards • Interoperability
• Flexible graph based RDF data model • Easy to merge data from different sources • Multiple schemas can live together • Easy to evolve
• Typed links between data from different sources • Ability to traverse through data to find more information and context
• Richer knowledge representation and modeling• Mappings without complex transformations
• By adding more information rather than converting data
No silver bullets
Center for Open Middleware
5
Linked Data specifications
• Advanced modeling• OWL
Domain Specification
Protocol HTTP
Data model RDF(S)
Serializations RDF/XMLTurtleTriGRDFaJSON-LD
Query SPARQL
W3C Linked Data Platform
Center for Open Middleware
6
Linked Data Platformhttp://www.w3.org/2012/ldp/
• RESTful protocol for Read / Write Linked Data
• Extensions to HTTP protocol • Pagination, ordering, partial updates, introspection, creation factories, collections
• Standardization focused of interoperability
• Developed by W3C Linked Data Platform Working Group• 54 participants from 32 organizations
• Industry: IBM, Oracle, EMC, Fujitsu, OpenLink Software, Base22, …• Academia: Universidad Politécnica de Madrid, University of Oxford, DERI, Université de Lyon, INRIA,
…
• Progress:• Several public working drafts are available • On its way to a Candidate Recommendation
• Current and potential implementations: • OpenLink Virtuoso, Eclipse Lyo, ALM iStack middleware, Apache Marmotta, Callimachus,
Tabulator, rdflib.js, RWW.IO, …
Center for Open Middleware
7
An example: BugLinks An LDP-enabled bug tracker
OPTIONS
OPTIONS
Center for Open Middleware
8
Looking up for the projectGET /bug-tracker/alm-istack HTTP/1.1
Host: example.org
Accept: text/turtle; charset=UTF-8
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp/Container>; rel="type"
ETag: W/"123456789"
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
@prefix bt: <http://www.example.org/vocab#>.
</bug-tracker/alm-istack> a ldp:SimpleContainer, bt:ProductDescription;
dcterms:title "A collection of bug reports on ALM iStack project";
bt:developer </user/johndoe>;
ldp:contains </bug-tracker/alm-istack/bug3>;
ldp:contains </bug-tracker/alm-istack/bug4> .
Center for Open Middleware
9
Looking up for the project with many bugs (Paging)
GET /bug-tracker/buggy-product HTTP/1.1
Host: example.org
Accept: text/turtle; charset=UTF-8
HTTP/1.1 303 See Other
Location: /bug-tracker/buggy-product?firstpage
Link: <http://www.w3.org/ns/ldp/Container>; rel="type"
Center for Open Middleware
10
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp/Resource>; rel="type“
Link: </bug-tracker/buggy-product?secondpage>; rel='next'
ETag: W/"123456789“
@prefix ldp: <http://www.w3.org/ns/ldp#>.
@prefix bt: <http://www.example.org/vocab#>.
<bug-tracker/buggy-product> a ldp:SimpleContainer,bt:ProductDescription;
ldp:contains </bug-tracker/alm-istack/bug1>;
…
ldp:contains </bug-tracker/alm-istack/bug200> .
Looking up for the project with many bugs (Paging) II
GET /bug-tracker/buggy-product?firstpage HTTP/1.1
Host: example.org
Accept: text/turtle; charset=UTF-8
Under discussion
Center for Open Middleware
11
Creating a new bug reportPOST /bug-tracker/alm-istack HTTP/1.1
Host: example.org
Content-Type: text/turtle
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix bt: <http://www.example.org/vocab#>.
<> a bt:BugReport;
dcterms:title "Server crashed";
dcterms:creator </user/janedoe> .
HTTP/1.1 201 Created
Location: /bug-tracker/alm-istack/bug5
Link: <http://www.w3.org/ns/ldp/Resource>; rel="type"
ETag: W/"123456789"
Content-Length: 0
Center for Open Middleware
12
Looking up for a project (again)GET /bug-tracker/alm-istack HTTP/1.1
Host: example.org
Accept: text/turtle; charset=UTF-8
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp/Container>; rel="type"
ETag: W/“223456789"
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
@prefix bt: <http://www.example.org/vocab#>.
</bug-tracker/alm-istack> a ldp:SimpleContainer, bt:ProductDescription;
dcterms:title "A collection of bug reports on ALM iStack project";
ldp:contains </bug-tracker/alm-istack/bug3> ;
ldp:contains </bug-tracker/alm-istack/bug4> ;
ldp:contains </bug-tracker/alm-istack/bug5> .
Center for Open Middleware
13
Looking up for a bug reportGET /bug-tracker/alm-istack/bug5 HTTP/1.1
Host: example.org
Accept: text/turtle; charset=UTF-8
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp/Resource>; rel="type"
ETag: W/"123456789"
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
@prefix bt: <http://www.example.org/vocab#>.
</bug-tracker/alm-istack/bug5> a bt:BugReport;
dcterms:title "Server crashed";
dcterms:creator </user/janedoe>;
dcterms:created "2013-05-05T10:00"^^xsd:dateTime;
bt:state bt:New .
.
Center for Open Middleware
14
ALM iStack Project
Objective:
To evaluate and foster the adoption of Linked Data technologies as the means for facilitating real-time Application Lifecycle Management tool integration in enterprise-grade environments.
Center for Open Middleware
Center for Open Middleware
15
Architecture of the Proof-of-Concept
Center for Open Middleware
16
Enterprise readiness
VALIDATION
TRANSACTIONS
SECURITY
DESIGN PATTERNS &
ANTI-PATTERNS
APPLICATION MODELS
DISCOVERY & INTROSPECTI
ON
VOCABULARY
MANAGEMENT
VERSIONING
PROVENANCE
IDENTITY MANAGEME
NT
PERFORMANCE
OPTIMIZATION
TESTING
PARTIAL RETRIEVALS & UPDATES
Center for Open Middleware
17
Final remarks • Linked Data can be a good approach when the
integrations are data intensive• Service orientation vs. Data / Resource orientation
• Linked Data Platform as a standard RESTful protocol for read/write Linked Data
• Supported by the industry• OSLC / IBM Rational Jazz• EU projects (PPP/FP7): CESAR, iFEST, CRYSTAL
• Some work to be done on enterprise Quality of Service requirements
Center for Open Middleware
Center for Open Middleware
Thank You !Application integration with
the W3C Linked Data standards
Raúl García Castro,
Miguel Esteban Gutiérrez,
Nandana Mihindukulasooriya