Keys to Building and Consuming Open Services for Lifecycle Collaboration (OSLC) Providers in Support of Open Lifecycle Int...
OSLC Technical Foundation - Linked Lifecycle Data Data Integration for the 21st Century <ul><li>Inspired by Internet princ...
OSLC Community <ul><li>Eleven workgroups operating at open-services.net </li></ul><ul><ul><li>Domain focused workgroups (e...
Key first questions to ask: <ul><li>What scenarios do you want to support? </li></ul><ul><ul><li>Are these well-known scen...
What scenarios do you want to support? <ul><li>Understand existing scenarios their pattens to see how closely they align: ...
Planning our work Project 123 Task 14 Bug 76 Link CR Link SP Link Servers Rational Team Concert Product ABC Product DEF Pr...
www.ibm.com/software/rational
What tools are involved with this scenario? <ul><li>Understand what tools are involved </li></ul><ul><li>What technologies...
Understand what tools you are integrating with
What does your scenario require? <ul><li>What qualities does these scenarios have… </li></ul><ul><ul><li>Read-only? </li><...
What specifications should I support? <ul><li>This would require an analysis of what resources are involved in the scenari...
Providing OSLC-CM Determine what capabilities are needed
Service Description and Discovery <ul><li>oslc:ServiceProvider  – service discovery endpoint, with service definitions wit...
Delegated UI Explained #1  Click to launch delegated UI #2  iframe's src  set to delegated UI's URL #3  Selection made #4 ...
Delegated UI's key points <ul><li>Supports both creation and selection of resources </li></ul><ul><li>Two communication pr...
UI Preview <ul><li>Cache, don’t copy information from the other end of the link </li></ul><ul><li>As a consumer, provide a...
Resource retrieval <ul><li>HTTP GET and standard HTTP content negotiation </li></ul><ul><ul><li>Client uses HTTP Accept re...
Resource representations <ul><li>OSLC providers should be open to any type of resource </li></ul><ul><ul><li>Not just thos...
Resource modification <ul><li>Use HTTP GET to get resource properties to be updated </li></ul><ul><ul><li>You’ll get an ET...
Resource creation <ul><li>Create a resource using HTTP POST and content being resource format of choice </li></ul><ul><ul>...
Resource linking <ul><li>Links are just properties: whose property values are just URIs </li></ul><ul><li>Don't make assum...
Resource representations <ul><li>OSLC services should handle any type of resource </li></ul><ul><ul><li>Not just those def...
Querying for resources <ul><li>Each service may specify one or more Query Capabilities </li></ul><ul><ul><li>Best practice...
Query Syntax Overview <ul><li>Filter results by appending  oslc.where=  with query clause to query base URI </li></ul><ul>...
Query syntax example <ul><li>Find high severity bugs created after April fools day </li></ul><ul><li>Find bugs related to ...
And more... <ul><li>Common property and resource definitions covering </li></ul><ul><ul><li>Resource shapes </li></ul></ul...
What resources are there to help? <ul><li>Tutorials </li></ul><ul><li>Workshop - too late :( </li></ul><ul><li>Reference i...
Consuming OSLC-CM HTTP REST only <ul><li>Determine language library </li></ul><ul><ul><li>For HTTP: </li></ul></ul><ul><ul...
Key take-aways <ul><li>Consumers… </li></ul><ul><ul><li>Don’t assume anything </li></ul></ul><ul><ul><li>Don’t do URI-buil...
Jazz Interoperability Center {  In collaboration with…  } Come see Jazz and OSLC at play integrating IBM, 3rd party, and h...
Resources <ul><li>OSLC Primer </li></ul><ul><ul><li>http://open-services.net </li></ul></ul><ul><li>OSLC Tutorial  </li></...
Summary <ul><li>No single answer, all depends on your scenario </li></ul><ul><li>Use your resources, look to  http://open-...
www.ibm.com/software/rational
Daily iPod Touch giveaway <ul><li>Complete your session surveys online each day  at a conference kiosk or on your Innovate...
© Copyright IBM Corporation 2011.  All rights reserved.  The information contained in these materials is provided for info...
Upcoming SlideShare
Loading in …5
×

Innovate2011 Keys to Building OSLC Integrations

2,283 views
2,183 views

Published on

IBM Innovate 2011 general session on hints and tips to building OSLC-based integrations

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,283
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
67
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Author Notes: This is the PowerPoint template for the Innovate 2011 Track Sessions ALL FINAL FILES MUST BE CONVERTED TO LOTUS SYMPHONY. Learn more here: http://w3.ibm.com/connections/wikis/home?lang=en#/wiki/Rational%27s%20Phased%20Approach%20in%20Migrating%20to%20Lotus%20Symphony Additional IBM Rational presentation resources can be found on Rational’s Managing the Brand W3 Intranet site: https://w3-03.ibm.com/software/marketing/marksite.nsf/AllMarketingPages/Brand-Rational-rt_rtb?opendocument?opendocument Third party material cannot be used in a presentation without written permission (this includes product and Web page screen shots). Images must be acquired from a ‘royalty-free to use’ source such as: Microsoft Clip Art library http://www.freebyte.com/clipart_images_photos_icons/#freevectorgraphics http:// www.freedigitalphotos.net / IBMers can use images from: IBM image library: https://w3-03.ibm.com/software/marketing/marksite.nsf/AllMarketingPages/Brand-Rational-rt_rtb?OpenDocument&amp;ExpandSection=3,2#_Section3 Royalty free images in Marketing Asset Manager database (you will need to register to access this site) : http://217.28.164.25/IBM001/templates/login.html
  • Resources have representations XML encouraged, not required Unprecedented extensibility Extend “web” New [mime-] types Extend representations
  • Open Services for Lifecycle Collaboration Apply the OSLC Architectural Approach to Integrate Design and Delivery starting with the Customer Validated Scenarios 1. Talk about how in Rational we used to have point-to-point integrations 2. Then we moved to OSLC (tell brief OSLC motivational talk) 3. And now we ’re exploring doing the same thing in Tivoli and between Rational and Tivoli (hedge appropriately)
  • 1. Talk about how in Rational we used to have point-to-point integrations (Click) 2. Then we moved to OSLC (tell brief OSLC motivational talk) (Click) 3. And now we’re exploring doing the same thing in Tivoli and between Rational and Tivoli (hedge appropriately)
  • Show RTC consumer Bugzilla Highlight both ends of the integration
  • Configuration context can be: per database, per project grouping, etc. These typically are defined based on the constraints around access and rules for creation/modification, etc
  • Contributed/delegated RTC Work Item search dialog
  • Key message: for getting a resource, it is just HTTP GET. We are not creating anything new or special. We did create ?oslc.properties= to use in cases where partial representations can be requested.
  • Key message: this is just HTTP PUT. Nothing added or complicated. You get a representation from a URI, modify it and PUT back to it.
  • Key point: simply HTTP POST, nothing special. Some additional definition of resource formats that are valid
  • http://open-services.net/bin/view/Main/OslcCoreSpecAppendixLinks
  • Author Note: Optional Rational QUESTIONS slide. Available in English only.
  • Daily iPod Touch giveaway sponsored by Alliance Tech Each time you complete a session survey, your name will be entered to win the daily IPOD touch! Complete your session surveys online each day at a conference kiosk or on your Innovate 2010 Portal! On Wednesday be sure to complete your full conference evaluation to receive your free conference t-shirt!
  • Author Note: Mandatory Rational Closing Slide (includes standard legal disclaimer). Available in English only.
  • Innovate2011 Keys to Building OSLC Integrations

    1. 1. Keys to Building and Consuming Open Services for Lifecycle Collaboration (OSLC) Providers in Support of Open Lifecycle Integrations Steve Speicher STSM, IBM Rational [email_address] TJI-1072
    2. 2. OSLC Technical Foundation - Linked Lifecycle Data Data Integration for the 21st Century <ul><li>Inspired by Internet principles, implemented with Internet technologies : simple interfaces for exchange of resources </li></ul><ul><li>Loosely coupled : everything is a “resource” linked together with URLs </li></ul><ul><li>Technology neutral : treats all implementations equally </li></ul><ul><li>Minimalist : defines no more than necessary for exchange of resources </li></ul><ul><li>Incremental : deliver value now, add more value over time </li></ul><ul><li>Openly published standards : free to implement and irrevocable </li></ul>If the entire Web can connect like this, would the same idea work for ALM?
    3. 3. OSLC Community <ul><li>Eleven workgroups operating at open-services.net </li></ul><ul><ul><li>Domain focused workgroups (e.g. CM, QM, RM) </li></ul></ul><ul><ul><li>Common issues and patterns (Core) </li></ul></ul><ul><ul><li>Solution oriented workgroups (e.g. PLM/ALM) </li></ul></ul><ul><li>Range of interests, expertise, involvement </li></ul><ul><ul><li>400+ registered community members (up from 70 people at RSC 2009) </li></ul></ul><ul><ul><li>Individuals from 34+ different companies have participated in OSLC workgroups (up from 5 companies at RSC 2009) </li></ul></ul><ul><li>Worthy of note </li></ul><ul><ul><li>PLM/ALM Workgroup </li></ul></ul><ul><ul><ul><li>Siemens leadership </li></ul></ul></ul><ul><ul><li>Open source </li></ul></ul><ul><ul><ul><li>Eclipse Lyo Project Proposal </li></ul></ul></ul><ul><ul><ul><li>Eclipse Mylyn project restructuring and positioning of OSLC </li></ul></ul></ul><ul><ul><ul><li>Mantis, Forges </li></ul></ul></ul><ul><ul><li>Customer and integrator involvement </li></ul></ul><ul><ul><ul><li>GM, Northrop Grumman, Tieto, Integrate Systems </li></ul></ul></ul>Accenture APG Black Duck Boeing BSD Group Citigroup EADS Emphasys Group Empulsys Fokus Fraunhofer Galorath General Motors Health Care Services Corp IBM Institut TELECOM Integrate Systems Lender Processing Services Northrop Grumman Oracle QSM Rally Software Ravenflow Shell Siemens Sogeti SourceGear/Teamprise State Street Tasktop (Eclipse Mylyn) Thales Tieto TOPIC Embedded Systems UrbanCode WebLayers
    4. 4. Key first questions to ask: <ul><li>What scenarios do you want to support? </li></ul><ul><ul><li>Are these well-known scenarios at open-services.net? </li></ul></ul><ul><ul><li>Do I need to define new scenarios? </li></ul></ul><ul><li>What tools are involved with this scenario? </li></ul><ul><ul><li>What versions and what level of OSLC do they support? </li></ul></ul><ul><ul><li>Can I leverage their support or will I need to extend/adapt it? </li></ul></ul><ul><li>What specifications should I support? </li></ul><ul><li>Do I need to do both consumers and providers? </li></ul>
    5. 5. What scenarios do you want to support? <ul><li>Understand existing scenarios their pattens to see how closely they align: </li></ul><ul><ul><li>Find and fix a defect </li></ul></ul><ul><ul><li>Related change requests  We’ll dig into this one </li></ul></ul><ul><ul><li>Change Management of Requirements </li></ul></ul><ul><ul><li>Traceability </li></ul></ul><ul><ul><li>Requirements are implemented, delivered and validated </li></ul></ul><ul><ul><li>.... </li></ul></ul><ul><li>Where to find these? </li></ul><ul><ul><li>Each domain WG publishes their scenarios </li></ul></ul>
    6. 6. Planning our work Project 123 Task 14 Bug 76 Link CR Link SP Link Servers Rational Team Concert Product ABC Product DEF Product GHI Project 789
    7. 7. www.ibm.com/software/rational
    8. 8. What tools are involved with this scenario? <ul><li>Understand what tools are involved </li></ul><ul><li>What technologies are these based on? </li></ul><ul><li>Do you have access to the source code? </li></ul><ul><li>Can you influence the tool owner support OSLC directly? </li></ul><ul><li>Does the tool already have a REST or SOAP API? </li></ul><ul><li>Does the tool have a Web UI? </li></ul>
    9. 9. Understand what tools you are integrating with
    10. 10. What does your scenario require? <ul><li>What qualities does these scenarios have… </li></ul><ul><ul><li>Read-only? </li></ul></ul><ul><ul><li>UI-only? </li></ul></ul><ul><ul><li>Query-dependent? </li></ul></ul><ul><ul><li>Create and update? </li></ul></ul><ul><ul><li>One direction, consuming or providing services only? </li></ul></ul><ul><ul><li>Reporting and/or query across multiple tool repositories? </li></ul></ul>
    11. 11. What specifications should I support? <ul><li>This would require an analysis of what resources are involved in the scenarios </li></ul><ul><li>Let's say you decide consume and provide CM is what you need (Connecting to IBM Rational Team Concert and Rational Quality Manager) </li></ul>Domain Workgroup Resources Change Management Change Request (work item, defect, task, …) Quality Management Test Plan, Test Case, Test Script, Test Execution Record, Test Result Requirements Management Requirement, RequirementCollection Asset Management Asset, Artifact Architecture Management AM Resource (UML class, business process diagram, use case) Software Configuration Management Change Set, Baseline, Configuration, Directory/File/Symlink Version Estimation and Metrics Baseline, Measurement, Project, Scenario PLM/ALM TBD – Product?, Context?, Baseline? Automation TBD – AutomationResult? Core ServiceProvider , ResourceShape, Discussion , ...
    12. 12. Providing OSLC-CM Determine what capabilities are needed
    13. 13. Service Description and Discovery <ul><li>oslc:ServiceProvider – service discovery endpoint, with service definitions within a given context </li></ul><ul><ul><li>oslc:publisher – basic information about the supplier of the service provider implementation </li></ul></ul><ul><ul><li>oslc:service – definition of a service provided within the configuration context, a oslc:Service </li></ul></ul><ul><ul><ul><li>oslc:domain – the specification that this service supports </li></ul></ul></ul><ul><ul><ul><li>oslc:creationFactory – the resource creation service </li></ul></ul></ul><ul><ul><ul><li>oslc:queryCapability – the entry point for simple query syntax based queries </li></ul></ul></ul><ul><ul><ul><li>oslc:selectionDialog – dialog URL and sizing information </li></ul></ul></ul><ul><ul><ul><li>oslc:creationDialog – dialog URL and sizing information </li></ul></ul></ul><ul><li>oslc:ServiceProviderCatalog – contain either more catalogs or service providers. These are optional </li></ul><ul><li>Creation and query capabilities have optional support for resource descriptions (shapes) </li></ul>
    14. 14. Delegated UI Explained #1 Click to launch delegated UI #2 iframe's src set to delegated UI's URL #3 Selection made #4 OK pressed – sends message (link+label) to parent window
    15. 15. Delegated UI's key points <ul><li>Supports both creation and selection of resources </li></ul><ul><li>Two communication protocols are supported for iframes: </li></ul><ul><ul><li>Best practice : Use HTML5 postMessage() whenever possible </li></ul></ul><ul><ul><ul><li>Supported in most modern browers </li></ul></ul></ul><ul><ul><li>Window object's window.name </li></ul></ul><ul><ul><ul><li>Supported in older browsers and Eclipse embedded web widget </li></ul></ul></ul><ul><ul><li>Consumer selects which protocol to use, informs provider via fragment identifier </li></ul></ul><ul><li>Tremendous value for resource creation </li></ul><ul><ul><li>Traditionally most service logic was communicated to client and new dialog built </li></ul></ul><ul><ul><li>Now the rules for creation and dialog change as needed </li></ul></ul><ul><li>Prefilling of creation dialog done by “creating” a dialog resource </li></ul><ul><ul><li>HTTP POST of resource format to creation dialog URL, response is URL of dialog prefilled </li></ul></ul><ul><ul><li>This does NOT require a provider to store this draft, it can respond with a URL with query parameters that the dialog can understand </li></ul></ul>
    16. 16. UI Preview <ul><li>Cache, don’t copy information from the other end of the link </li></ul><ul><li>As a consumer, provide a direct link to the resource <a href=“…” /> </li></ul><ul><li>As a consumer, be prepared for delayed loading </li></ul>
    17. 17. Resource retrieval <ul><li>HTTP GET and standard HTTP content negotiation </li></ul><ul><ul><li>Client uses HTTP Accept request header to specify desired resource formats </li></ul></ul><ul><ul><li>Be sure to handle full definition of Accept header RFC2616 </li></ul></ul><ul><li>Use standard content(MIME) types </li></ul><ul><ul><li>Well, we did create just one for UI preview format </li></ul></ul><ul><li>Partial representations via HTTP URL key=value pair as ?oslc.properties= </li></ul><ul><ul><li>Allows for minimal retrieval of properties </li></ul></ul><ul><ul><li>Get Defect 123 (all properties) </li></ul></ul><ul><ul><li>Get Defect 123 (just title and status) </li></ul></ul>Accept: application/json, application/xml GET http://bugs/123 GET http://bugs/123?oslc.properties=dcterms:title,oslc_cm:status Accept: application/json, application/xml;q=0.8
    18. 18. Resource representations <ul><li>OSLC providers should be open to any type of resource </li></ul><ul><ul><li>Not just those defined by OSLC </li></ul></ul><ul><li>Resources defined by OSLC use RDF data model </li></ul><ul><ul><li>therefore are simply defined by their set of properties </li></ul></ul><ul><li>OSLC services MUST produce and consume RDF/XML representations </li></ul><ul><ul><li>Clients and services MUST NOT assume any subset of RDF/XML </li></ul></ul><ul><li>Other representations are allowed such as: </li></ul><ul><ul><li>XML: OSLC defined format that allows for consistent formats and is RDF/XML valid </li></ul></ul><ul><ul><li>JSON: Rules for representing namespaces and QName properties </li></ul></ul><ul><ul><li>Turtle: No constraints, use as-is </li></ul></ul><ul><ul><li>Atom Syndication Format: <atom:content> SHOULD be RDF/XML </li></ul></ul>
    19. 19. Resource modification <ul><li>Use HTTP GET to get resource properties to be updated </li></ul><ul><ul><li>You’ll get an ETag back </li></ul></ul><ul><li>Change only the property values you need to change </li></ul><ul><ul><li>Clients must preserve unknown content </li></ul></ul><ul><li>Use HTTP PUT to send updated resource </li></ul><ul><ul><li>Use If-Match HTTP request header with ETag, services may reject your request without it </li></ul></ul><ul><ul><li>HTTP PUT will completely replace the resource representation </li></ul></ul><ul><ul><li>We are moving towards PATCH – new HTTP verb http://tools.ietf.org/html/rfc5789 </li></ul></ul><ul><li>Possible to update only selected properties </li></ul>
    20. 20. Resource creation <ul><li>Create a resource using HTTP POST and content being resource format of choice </li></ul><ul><ul><li>URI for doing the POST is defined in the oslc:ServiceProvider in the oslc:creationFactory service </li></ul></ul><ul><li>Response is a 201-Created with Location HTTP header indicating URI for resource </li></ul><ul><ul><li>Don’t forget to send eTag </li></ul></ul><ul><ul><li>Sending a response content is optional (per HTTP) </li></ul></ul><ul><li>Request may be rejected for any number of reasons </li></ul><ul><ul><li>Insufficient permissions </li></ul></ul><ul><ul><li>Missing required values </li></ul></ul><ul><ul><li>Invalid data choices </li></ul></ul><ul><ul><li>...and … and ... </li></ul></ul><ul><li>Valid resource formats for creation are defined by: </li></ul><ul><ul><li>domain specifications </li></ul></ul><ul><ul><li>service provider may define its own resources and formats </li></ul></ul><ul><ul><li>optionally, by resource shape associated with creation factory </li></ul></ul>
    21. 21. Resource linking <ul><li>Links are just properties: whose property values are just URIs </li></ul><ul><li>Don't make assumptions about the target of links </li></ul><ul><ul><li>OSLC supports an open model </li></ul></ul><ul><ul><li>Needed to achieve goal of “loosely coupled” integrations </li></ul></ul><ul><ul><li>Clients need to be flexible and expect anything </li></ul></ul><ul><li>Sometimes we need to provide additional data about links: label, owners, etc. </li></ul><ul><li>Special cases where links need more representation </li></ul>Turtle format for a bug resource (abbrev) <http://example.com/bugs/2314> a oslc_cm:ChangeRequest ; dcterms:relation < http://server/app/bugs/1235 > ;
    22. 22. Resource representations <ul><li>OSLC services should handle any type of resource </li></ul><ul><ul><li>Not just those defined by OSLC </li></ul></ul><ul><li>Resources defined by OSLC use RDF data model </li></ul><ul><ul><li>therefore are simply defined by their set of properties </li></ul></ul><ul><li>OSLC services MUST produce and consume RDF/XML representations </li></ul><ul><ul><li>Clients and services MUST NOT assume any subset of RDF/XML </li></ul></ul><ul><li>Other representations are allowed such as: </li></ul><ul><ul><li>XML: OSLC defined format that allows for consistent formats and is RDF/XML valid </li></ul></ul><ul><ul><li>JSON: Rules for representing namespaces and QName properties </li></ul></ul><ul><ul><li>Turtle: No constraints, use as-is </li></ul></ul><ul><ul><li>Atom Syndication Format: <atom:content> SHOULD be RDF/XML </li></ul></ul>
    23. 23. Querying for resources <ul><li>Each service may specify one or more Query Capabilities </li></ul><ul><ul><li>Best practice : Recommend to only supply one </li></ul></ul><ul><li>Query Capability has base URI </li></ul><ul><ul><li>Best practice : Make this URI the same as the Creation Factory </li></ul></ul><ul><li>Clients form query URI and HTTP GET the results </li></ul><ul><li>OSLC services MAY support OSLC Query Syntax </li></ul><ul><ul><li>http://open-services.net/bin/view/Main/OSLCCoreSpecQuery </li></ul></ul>
    24. 24. Query Syntax Overview <ul><li>Filter results by appending oslc.where= with query clause to query base URI </li></ul><ul><li>Only boolean operation allowed is and which represents conjunction </li></ul><ul><ul><li>&quot;or&quot; for disjunction is not defined in the interests of keeping the syntax simple. </li></ul></ul><ul><li>Retrieve just what you want with oslc.select= </li></ul><ul><li>Defined ordering using oslc.orderBy= </li></ul><ul><li>Full-text search via oslc.searchTerms= </li></ul>Comparison Operators = test for equality != test for inequality < test less-than > test greater-than <= test less-than or equal >= test greater-than or equal ' in ' operator: Test for equality to any of the values in a list. The list is a comma-separated sequence of values, enclosed in square brackets: in [“high”,”critical”]
    25. 25. Query syntax example <ul><li>Find high severity bugs created after April fools day </li></ul><ul><li>Find bugs related to test case 31459 </li></ul><ul><li>Find all bugs created by John Smith </li></ul>http://example.com/bugs ?oslc.where = cm:severity=&quot;high&quot; and dcterms:created>&quot;2010-04-01&quot; http://example.com/bugs ?oslc.where= dcterms:creator{foaf:givenName=&quot;John&quot; and foaf:familyName=&quot;Smith&quot;} http://example.com/bugs ?oslc.prefix=qm=<http://qm.example.com/ns>& oslc.where=qm:testcase=<http://example.com/tests/31459>
    26. 26. And more... <ul><li>Common property and resource definitions covering </li></ul><ul><ul><li>Resource shapes </li></ul></ul><ul><ul><li>Resource typical properties: title, description, identification, … </li></ul></ul><ul><ul><li>Leveraging Dublin Core and FOAF </li></ul></ul><ul><ul><li>Discussion/comments </li></ul></ul><ul><li>OSLC services MAY offer OAuth 1.0a </li></ul><ul><ul><li>Best practice : Support three legged OAuth for webapp to webapp authentication </li></ul></ul><ul><ul><li>Two legged OAuth for client to webapp authentication </li></ul></ul>
    27. 27. What resources are there to help? <ul><li>Tutorials </li></ul><ul><li>Workshop - too late :( </li></ul><ul><li>Reference implementation </li></ul><ul><li>Sample code </li></ul><ul><li>Where to find these things? </li></ul><ul><ul><li>Start at http://open-services.net </li></ul></ul><ul><ul><li>SourceForge oslc-tools project </li></ul></ul><ul><ul><ul><li>finding a new home….Eclipse Lyo project proposal </li></ul></ul></ul>
    28. 28. Consuming OSLC-CM HTTP REST only <ul><li>Determine language library </li></ul><ul><ul><li>For HTTP: </li></ul></ul><ul><ul><ul><li>Java - Apache HTTP Client and/or Wink </li></ul></ul></ul><ul><ul><li>For content formats: </li></ul></ul><ul><ul><ul><li>Java – Jena RDF API (RDF/XML) </li></ul></ul></ul><ul><ul><ul><li>Java – Apache Wink JSON4J </li></ul></ul></ul><ul><ul><li>For OAuth: </li></ul></ul><ul><ul><ul><li>Java - http:// oauth.net /code </li></ul></ul></ul><ul><li>Find some samples </li></ul><ul><ul><li>SourceForge oslc -tools </li></ul></ul><ul><ul><li>Coming “Eclipse Lyo” project proposal phase </li></ul></ul>
    29. 29. Key take-aways <ul><li>Consumers… </li></ul><ul><ul><li>Don’t assume anything </li></ul></ul><ul><ul><li>Don’t do URI-building </li></ul></ul><ul><ul><li>Do leverage sample service provider </li></ul></ul><ul><ul><li>Do test against > 1 implementations </li></ul></ul><ul><li>Providers… </li></ul><ul><ul><li>Have a common URI strategy </li></ul></ul><ul><ul><li>Leverage test suite </li></ul></ul><ul><ul><li>Provide sample code with scenarios supported </li></ul></ul><ul><ul><li>Validate (during development) your response formats </li></ul></ul><ul><ul><li>Keep things simple -- minimalist </li></ul></ul>
    30. 30. Jazz Interoperability Center { In collaboration with… } Come see Jazz and OSLC at play integrating IBM, 3rd party, and home-grown tools across the lifecycle! Go there now!!! Exhibit Hall June 6: 5 - 8 PM June 7: 11 AM - 2 PM & 4:30 - 7:30 PM June 8: 11 AM - 2 PM
    31. 31. Resources <ul><li>OSLC Primer </li></ul><ul><ul><li>http://open-services.net </li></ul></ul><ul><li>OSLC Tutorial </li></ul><ul><ul><li>http://open-services.net </li></ul></ul><ul><li>Open source - Eclipse Lyo Project & SourceForge OSLC-Tools </li></ul><ul><ul><li>http://sourceforge.net/projects/oslc-tools/ </li></ul></ul><ul><li>RTC Work Item REST API </li></ul><ul><ul><li>https://jazz.net/wiki/bin/view/Main/ResourceOrientedWorkItemAPIv2 </li></ul></ul><ul><li>Getting to know OSLC-CM </li></ul><ul><ul><li>http://tinyurl.com/knowoslc </li></ul></ul>
    32. 32. Summary <ul><li>No single answer, all depends on your scenario </li></ul><ul><li>Use your resources, look to http://open-services.net </li></ul><ul><ul><li>Open source projects </li></ul></ul><ul><ul><li>Reference implementations </li></ul></ul><ul><ul><li>Samples </li></ul></ul><ul><li>Software Services for Rational can help as well </li></ul><ul><li>Check out OSLC-based integrations in the Exhibit Hall </li></ul>
    33. 33. www.ibm.com/software/rational
    34. 34. Daily iPod Touch giveaway <ul><li>Complete your session surveys online each day at a conference kiosk or on your Innovate 2011 Portal! </li></ul><ul><li>Each day that you complete all of that day’s session surveys, your name will be entered to win the daily IPOD touch! </li></ul><ul><li>On Wednesday be sure to complete your full conference evaluation to receive your free conference t-shirt! </li></ul>SPONSORED BY
    35. 35. © Copyright IBM Corporation 2011. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others. www.ibm.com/software/rational

    ×