Leveraging W3C Linked Data, OSLC, and Open Source for Loosely Coupled Application Integrations
description
Transcript of Leveraging W3C Linked Data, OSLC, and Open Source for Loosely Coupled Application Integrations
© 2013 IBM Corporation
Steve Speicher OSLC Core LeadW3C Linked Data Platform WorkgroupIBM Rational @sspeiche
Leveraging W3C Linked Data, OSLC, and Open Source for Loosely Coupled Application Integrations
Michael FiedlerOSLC Automation LeadEclipse Lyo Project Lead and CommitterIBM Rational @mffielder
© 2013 IBM Corporation
Software Development Tools : Year 2000 - point products
User complaints–Need tools to work better
–Need tools to work together
Software Configuration Management
Work item & bug tracking
Build automation & management
Test automation & management
Requirements management
© 2013 IBM Corporation
Year 2005 – ALM V1
• Developer complaints– Clumsy integrations– Want best-of-breed choice
• Management complaints– Need governance, metrics,
reports, …
• Mixed Tool Environments– Open-source offerings with
DIY integration– 3rd party ALM suites
Software Configuration Management
Work item & bug tracking
Build automation & management
Test automation & management
Requirements management
ALM Solution
© 2013 IBM Corporation
Year 2010 – Linked Data and OSLC – A major breakthrough
Learned to integrate with open REST-based protocols instead of glue
Software Configuration Management
Work item & bug tracking
Build automation & management
Test automation & management Requirements
management
© 2013 IBM Corporation
Linked Data – Defined by Tim Berners-Lee
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.
He concludes this with: “Simple.”
Reference: “Linked Data”, Tim Berners-Lee, 2006-07-27
© 2013 IBM Corporation
Linked Data – What is it?
TestCase 14 is blocked by Issue 973http://srv/qm/tc/14 qm:blockedBy http://apache.org/jira/HTTPCLIENT-973
Issue 973 depends on Bug 318 http://apache.org/jira/HTTPCLIENT-973 cm:dependsOn http://bugs.sun.com/? id=7172318
Joe is a committer for Apachehttp://joecoder.me doap:committer http://apache.org
Issue 973 is owned by Joe http://apache.org/jira/HTTPCLIENT-973 dc:contributor http://joecoder.me
© 2013 IBM Corporation
Lifecycle ToolLifecycle ToolChange Change ManagementManagement
Lifecycle ToolLifecycle ToolQuality ManagementQuality Management
Lifecycle ToolLifecycle ToolRequirements Requirements ManagementManagement
Service ManagementService ManagementHelp DeskHelp Desk
Service ManagementService ManagementDeploymentDeployment
OSLC – Based on Linked Data
<http://cm/bugs/2314> a oslc_cm:ChangeRequest ; dcterms:relation <http://cm/bugs/1235>; oslc_cm:implementsRequirement <http://rm/req/56> .
<http://rm/req/56> a oslc_rm:Requirement ; dcterms:title “Online shopping cart”; oslc_rm:validatedBy <http://qm/tc/17> .
Common Resource Definitions
Link Preview
Delegated Dialogs
http://open-services.net
© 2013 IBM Corporation
REST W3C Linked Data
OSLC Specifications: Layered Cake and Independently Adoptable
OSLC Core
Change Management Quality ManagementDom
ains
Com
mon
Performance Monitoring Automation
Provides common and core needs
New domains as needed
Keep scope simple, learn and iterate
© 2013 IBM Corporation
Evolution of W3C Linked Data
2006: Tim Berners-Lee introduced Linked Data as four design principles in an article
May 2011: IBM and W3C agreed that standardization is necessary to accelerate industry adoption and enhance interoperability
Dec 2011: IBM Sponsored W3C Workshop on Linked Enterprise Data Patterns– Participating organizations included EMC, Elsevier, IBM, Nokia, Oracle– Workshop recommended W3C produce a standard “which defines a Linked Data
Platform”, leveraging RDF
March 2012: IBM Submitted Linked Data Basic Profile 1.0 proposal to W3C– Base the Linked Data Platform foundation on OSLC Core technology and experience– Co-submitters:
– Supporters:
June 2012: W3C launched the Linked Data Platform (LDP) Working Group– Membership spans over 50 participants from 30 organizations– Arnaud J Le Hors (IBM) and Erik Wilde (EMC) as co-chairs
© 2013 IBM Corporation
W3C Linked Data Platform (LDP)
WG is chartered to produce a W3C Recommendation:– For HTTP-based (RESTful) application integration patterns using read/write Linked Data– It will complement SPARQL and will be compatible with standards for publishing Linked
Data, bringing the data integration features of RDF to RESTful, data-oriented software development.
■ LDP defines a set of rules that clarify and extends Tim Berners-Lee's four basic rules focusing on the following concepts:
– LDP Resources (LDPR)– HTTP and RDF techniques to read and write linked data
– LDP Containers (LDPC)– A LDPR to which you POST to create new things, GET to find existing things– Similar to what AtomPub does for XML
– Paging– A mechanism to get the content of a LDPC in chunks
– Ordering– A mechanism to specify the order in which the content of a LDPC is sorted
WG currently on target to deliver a W3C Candidate Recommendation by the end of 2013.
Details @ http://www.w3.org/2012/ldp
© 2013 IBM Corporation
W3C Linked Data Platform (LDP)
■ Published 1st Public Working Draft of Use Case and Requirements on January 31
■ Published 2nd Public Working Draft of Linked Data Platform 1.0 spec on March 7
■ 2nd Face-to-Face meeting March 13-15 Cambridge, MA■ 14 in attendance in all (out of 50 members)■Worked on key issues (IBM's issues identified via SWGAB Linked Data WG and OSLC)■Covered topics of required deliverables: specification, use case and requirements, test
suite, and access control requirements.
■ Key issues■Binary resources and metadata – agreed on direction in line with IBM's preference.■Partial update of resources – agreed on direction in line with OSLC's approach.■Composition and aggregation models for containers – working on a new proposal to
address various concerns with the status quo.
Last Call specification most likely to slip from May to June.
3rd Face-to-Face meeting scheduled for June to address any remaining issues.
WG still on target to deliver a W3C Candidate Recommendation by the end of 2013.
Ashok Malhotra of Oracle to become co-editor of the specification.
Details @ http://www.w3.org/2012/ldp 11
© 2013 IBM Corporation
Linked Data Platform - Resource
• What resource formats should be used?
• What literal value types should be used?
• Are there some typical vocabularies that should be reused?
• How is optimistic collision detection handled for updates?
• What should client expectations be for changes to linked-to resources, such as type changes?
• What can servers do to ease the burden of constraints for resource creation?
© 2013 IBM Corporation
http://example.org
LDP Resource – GET a simple example
Removed HTTP headers to save some space
@prefix dcterms: <http://purl.org/dc/terms/>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix ldp: <http://w3.org/ns/ldp#>.
<http://example.org/container1/member1> a o:Cash; dcterms:title “ACME Bank savings account”; o:value 45.00.
GET /container1/member1 HTTP/1.1Host: example.orgAccept: text/turtle
Req
uest
Res
pons
e
container1
member1
member2
member3
© 2013 IBM Corporation
Linked Data Platform - Container
• To which URLs can I POST to create new resources?
• Where can I GET a list of existing resources?
• How is the order of the container entries expressed?
• How do I get information about the members along with the container?
• How do I GET the entries of a large container broken up into pages?
• How can I ensure the resource data is easy to query?
© 2013 IBM Corporation
http://example.org
ldp:Container – GET a simple example
Removed HTTP headers to save some space
@prefix dcterms: <http://purl.org/dc/terms/>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix ldp: <http://w3c.org/ns/ldp#>.
<http://example.org/container1> a ldp:Container; dcterms:title "A very simple container"; rdfs:member <http://example.org/container1/member1>, <http://example.org/container1/member2>, <http://example.org/container1/member3>.
GET /container1 HTTP/1.1Host: example.orgAccept: text/turtle
Req
uest
Res
pons
e
container1
member1
member2
member3
© 2013 IBM Corporation
OSLC’s Big Picture
Open Services for Lifecycle CollaborationLifecycle integration inspired by the web
LINKED DATA PLATFORM WORKING GROUP
Future Home of OSLC Spec Dev
The Resource for OSLC
Implementers
Inspired by the web
ProvenFree to use and share
OpenChanging the industry
InnovativeOSLC:
Tests, Libraries, Samples, Examples,Reference Implementations
Scenario-driven & Solution-oriented
Generally applicable: specs available for many domains covering ALM, DevOps, ISM, and PLM
Leading choice for strategic integration technology
© 2013 IBM Corporation
Open Source Linked Data projects
Simple yet solid framework for building RESTful Web services based on JAX-RS
RDF Java API and Fuseki provides REST-style SPARQL HTTP interface
Easily develop semantic web apps by providing tools to manipulate RDF data, create RESTful Web Services
SDK and supporting tools to help the community to adopt OSLC specifications and build compliant tools
OSLC SDKs and tools for the .NET development community
OSLC4Net
Impl of LDP that can be extended and deployed easily by orgs who want to publish data or build custom apps
© 2013 IBM Corporation
Eclipse Lyo
• Provide tools to enable adoption of OSLC and Linked Data specifications
• SDKs
– OSLC4J, OAuth, Lyo::OSLC for Perl
– OSLC provider and consumer development
• Test Suites
– Assessment reports OSLC implementations
– Coverage for Core + Change, Requirements, Quality, Asset and Automation. Performance Management tests under development.
• Sample implementations, workshops, tutorials
– Provider and consumer samples.
– Updated tutorial: http://open-services.net/resources/tutorials/integrating-products-with-oslc/
• Project update
– 1.1 available in February (Client SDK, OAuth libraries, other enhancements)
– 2.0 planned for June (new spec support, new samples, non-Java libs)
© 2013 IBM Corporation
OSLC – http://open-services.net
Eclipse Lyo – http://eclipse.org/lyo
W3C Linked Data Platform – http://LinkedDataPlatform.org