Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
© 2015 IBM Corporation
IBM Open Integrations
OSLC Adoption Lowering barriers for OSLC implementations OMG OSLC Summit 2015
Jim Ruehlin IBM Open Integrations Team Almost an Eclipse Lyo Committer
© 2015 IBM Corporation
IBM Open Integrations
2
Overview
▪ How easy is it to adopt OSLC?
▪ Common OSLC adoption strategies
▪ “First generation” OSLC adoption tools
▪ Emerging “Second generation” OSLC adoption tools
▪ Potential futures
© 2015 IBM Corporation
IBM Open Integrations
3
OSLC Adoption OSLC is important to large organizations but not pervasive
91 organizations are OSLC Members*
34 of those organizations organizations build OSLC-enabled applications or adapters*
Most of these are larger organizations
There’s not a lot of evidence that smaller organizations or products see value on OSLC
Many newer lifecycle products are not OSLC compliant
Open source products don’t adopt OSLC
A standard is only as valuable as the extent of its adoption. Our intent should be to make OSLC the way that all lifecycle tools interact with each other.
No one should have to learn a new API just to talk to a Lifecycle tool. OSLC has already done the thinking necessary to implement your lifecycle product API.
*Source: open-services.net
© 2015 IBM Corporation
IBM Open Integrations
4
OSLC Adoption It’s difficult to know where to start
open-services.netNews, forum, wiki, mailing list Specs (up to 2.0)
Core, CCM, etc. Tutorials
Integrating products Primer
Groups Steering committee ALM-PLM interop Communications Integrations TCs LDP … lots of other areas
Formal development Forum, wiki, mailing list Bug list Code and JARs
OSLC4J Reference implementations Under development (idle) Tests Adapter code generator Environment and deployment
Tutorials OSLC workshop OSCL TRS workshop Adapter code generator workskhop
oslc4net.codeplex.com
oasis-oslc.orgNews, forum, wiki, mailing list Specs (post 2.0)
Core, CCM, etc. Tutorials
Integrating products Primer
Bugs/requests Project management TCs
Core CM … etc
jazz.netNews, forum, wiki, mailing list Product specific articles General OSLC articles Product specific bugs/requests Tutorials
OSLC Workshop
github.comOSLC repo JavaScript source Other assets
IBM BluemixRIO3 EZOslcAdapter JS Client/Server … other experimental projects
© 2015 IBM Corporation
IBM Open Integrations
5
OSLC Adoption It’s difficult to address specific problems
I just want to link data in my proprietary application to data in an OSLC application.
I just want to pull the results of a query of my proprietary application into my OSLC application.
I want to make an OSLC server that just returns a specific item of data based on an ID.
The problem we support the best:
I want to support OSLC across all the lifecycle products
© 2015 IBM Corporation
IBM Open Integrations
6
OSLC Adoption Need to understand a wide range of technologies and specifications
OSLC Core Technologies and Standards
REST, URI, ALM/PLM, RDF, XML, JSON, Turtle, BNF, CSS, Dublin Core, FOAF, HTTP, OAuth, Window Objects, XML Namspaces, XML Base, XSD Datatypes, Semantic Web, web query syntax, HTML and web dialogs, service architecture (e.g. creation factories), Linked Data Platform
OSLC Core Specifications
OSLC Core 2.0
OSLC Core Spec Query
Core Spec Appendix A: Common Properties and Resources
Core Spec Appendix B: Representation Guidance
Core Spec Appendix C: Links and Relationships
… And now I can start on the specification for the domain I’m interested in. Then maybe some coding…
© 2015 IBM Corporation
IBM Open Integrations
7
OSLC Adoption More learning needed for implementationDecide on the client implementation
Java is OK: OSLC4J
.Net is available: OSLC4Net
JavaScript is under development
No support for other languages
Write your own?
OSLC4J
Architecturally significant development considerations: Java, Antlr, Mylin, POM
Lack of API documentation
OSLC
OSL4J
Tutorials (some good ones, some not so good, hard to know before you start)
Wraps the API but doesn’t implement a scenario
© 2015 IBM Corporation
IBM Open Integrations
8
OSLC Adoption Our best sample code can still be difficult to follow
© 2015 IBM Corporation
IBM Open Integrations
9
Common adoption strategiesEnterprise adoption - fully embrace standard in corporate and 3rd party tools
Dedicated resources
Powerful adapters
Agosense, FusionForge, IBM Rational, Jenkins, Kovair, OSLC4J Bugzilla, Prostep, Sodius, Tasktop - see http://open-services.net/software/ for more
Just enough adoption
Make some tool talk to an OSLC interface in a limited way
Questions on forums (Lyo, OSLC, open-services, jazz.net, …)
SSA strategy: Struggle, struggle, abandon
In an ideal world, everyone would do “Just enough adoption” and incrementally expand
© 2015 IBM Corporation
IBM Open Integrations
10
Some observations about OSLC adoption
• It’s easier for developers to learn and implement a point-to-point integration than it is to learn and implement OSLC’s general purpose integration.
• Reuse koan: Don’t build for reuse until you’ve already reused it at least 3 times.
• Larger organizations with significant integration issues get more leverage from OSLC.
• It’s difficult to rapidly or incrementally adopt OSLC.
• If we want OSLC to gain wider adoption, it needs to be almost as easy to learn and implement as a point-to-point integration
• At least at an implementation level - architectural concerns will necessarily be significant.
• OSLC is specification-level reuse. There are other types of reuse we can leverage.
• Object reuse (OSLC4J, OSLC4Net)
• Architectural reuse (jazz.net)
• Copy/paste (github)
• Frameworks (Yeoman, Express)
• Services (Bluemix)
• Knowledge reuse (wide adoption)
© 2015 IBM Corporation
IBM Open Integrations
11
First generation OSLC adoption Rudimentary tools: Roll-your-own OSLC REST API
See: OSLC Workshop at https://jazz.net/library/article/635
© 2015 IBM Corporation
IBM Open Integrations
12
First generation OSLC adoption Off-the-shelf OSLC adapters encourage point-to-point integrations
http://open-services.net/software/
© 2015 IBM Corporation
IBM Open Integrations
13
First generation OSLC adoption Lyo Adapter Code Generator - Understand OSLC metamodel
© 2015 IBM Corporation
IBM Open Integrations
14
First generation OSLC adoption Lyo code requires significant time to set up, learn, understand, reuse
▪ OSLC4J
▪ OSLC4Net (Codeplex)
▪ Reference implementations for OSLC (RIOs)
▪ Dev env setup
▪ Tutorials
▪ Deployment architecture
▪ JAR files available
▪ Legal and tested - low risk
▪ New releases have moderately high overhead
▪ Testing
▪ Legal approvals
▪ Committer reviews
© 2015 IBM Corporation
IBM Open Integrations
15
Second generation OSLC adoption Easier implementation reuse: Lightweight Javascript
OSLC JavaScript client
RIO3 (JavaScript)
EZ OSLC adapter (JavaScript): 1 line need to convert query params from OSLC to Bugz
dcterms:serviceProvider
oslc_cm:status
© 2015 IBM Corporation
IBM Open Integrations
Github repos for hosted and framework OSLC code
Rapid changes, cloning, etc
Faster adoption, higher risk
Lyo for Enterprise support
Clone Github baselines to Lyo
License and legal validation
Testing
Stability for larger/complex organizations
Controlled adoption, lower risk
16
Second generation OSLC adoption Easier implementation reuse: Rapid source development
© 2015 IBM Corporation
IBM Open Integrations
17
Second generation OSLC adoption Easier design reuse: OSLC frameworks
Express frameworks under development
LDP.js
OSLC.js
Yeoman (under consideration)
© 2015 IBM Corporation
IBM Open Integrations
18
Second generation OSLC adoption Easier API reuse: Hosted OSLC
EZ Oslc Adapter
RIO3
Swagger.io API documentation (under consideration) © 2015
© 2015 IBM Corporation
IBM Open Integrations
19
Second generation OSLC adoption Easier specification reuse: OSLC 3 improvements
“Motivation” sections
Linked Data Platform (easier discovery)
Container support
Turtle and JSON-LD (RDF easier to consume)
3
© 2015 IBM Corporation
IBM Open Integrations
20
OSLC adoption: Futures Just some thoughts…▪ OSLC Devops
▪ Toolchain integration setup
▪ Establish OSLC or adapters across sets of tools during deployment
▪ Validate OSLC compliance across the toolchain
▪ Support pipelines by describing tasks and input/output dependencies
▪ OSLC as a service
▪ Sets of REST APIs
▪ “I want to establish a tested-by relationship between requirement 1234 and everything in this query”
▪ Automatic linking (increased semantics and cognitive computing)
▪ Toolkits: Just enough OSLC
▪ Stitching together OSLC and non-OSLC applications as needed
▪ How much OSLC is right for a new project?
▪ Incrementally increase as the project gains maturity
▪ OSLC adoption in non-lifecycle apps
▪ Adaptors for linking to apps that are not formally considered lifecycle apps
▪ Requirements in Google Sheets
▪ Tweets linked to builds
© 2015 IBM Corporation
IBM Open Integrations
21
© 2015 IBM Corporation
IBM Open Integrations
22
© Copyright IBM Corporation 2015. 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, 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.