IBM Open IntegrationsOSLC AdoptionLowering barriers for OSLC implementationsOMG OSLC Summit 2015Jim RuehlinIBM Open Integrations TeamAlmost an Eclipse Lyo [email protected] 2015 IBM Corporation

IBM Open IntegrationsOverview How easy is it to adopt OSLC? Common OSLC adoption strategies “First generation” OSLC adoption tools Emerging “Second generation” OSLC adoption tools Potential futures2 2015 IBM Corporation

IBM Open IntegrationsOSLC AdoptionOSLC is important to large organizations but not pervasive91 organizations are OSLC Members*34 of those organizations organizations build OSLC-enabled applications or adapters*Most of these are larger organizationsThere’s not a lot of evidence that smaller organizations or products see value on OSLCMany newer lifecycle products are not OSLC compliantOpen source products don’t adopt OSLCA standard is only as valuable as the extent of its adoption. Our intent should be to make OSLCthe 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 donethe thinking necessary to implement your lifecycle product API.*Source: open-services.net3 2015 IBM Corporation

IBM Open IntegrationsOSLC AdoptionIt’s difficult to know where to startoasis-oslc.orgopen-services.netNews, forum, wiki, mailing listSpecs (up to 2.0)Core, CCM, etc.TutorialsIntegrating productsPrimerGroupsSteering committeeALM-PLM interopCommunicationsIntegrationsTCsLDP lots of other areasjazz.netNews, forum, wiki, mailing listNews, forum, wiki, mailing list Product specific articlesSpecs (post 2.0)General OSLC articlesCore, CCM, etc.Product specific bugs/requestsTutorialsTutorialsIntegrating productsOSLC WorkshopPrimerBugs/requestsProject managementTCsCoreCM etcFormal developmentForum, wiki, mailing listBug listCode and JARsOSLC4JReference implementationsUnder development (idle)TestsAdapter code generatorEnvironment and deploymentTutorialsOSLC workshopOSCL TRS workshopAdapter code generator workskhopgithub.comOSLC repoJavaScript sourceOther assetsoslc4net.codeplex.comIBM BluemixRIO3EZOslcAdapterJS Client/Server other experimental projects4 2015 IBM Corporation

IBM Open IntegrationsOSLC AdoptionIt’s difficult to address specific problemsI 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 products5 2015 IBM Corporation

IBM Open IntegrationsOSLC AdoptionNeed to understand a wide range of technologies and specificationsOSLC Core Technologies and StandardsREST, URI, ALM/PLM, RDF, XML, JSON, Turtle, BNF, CSS, Dublin Core, FOAF, HTTP,OAuth, Window Objects, XML Namspaces, XML Base, XSD Datatypes, SemanticWeb, web query syntax, HTML and web dialogs, service architecture (e.g. creationfactories), Linked Data PlatformOSLC Core SpecificationsOSLC Core 2.0OSLC Core Spec QueryCore Spec Appendix A: Common Properties and ResourcesCore Spec Appendix B: Representation GuidanceCore Spec Appendix C: Links and Relationships And now I can start on the specification for the domain I’m interested in. Then maybe somecoding 6 2015 IBM Corporation

IBM Open IntegrationsOSLC AdoptionMore learning needed for implementationDecide on the client implementationJava is OK: OSLC4J.Net is available: OSLC4NetJavaScript is under developmentNo support for other languagesWrite your own?OSLC4JArchitecturally significant development considerations: Java, Antlr, Mylin, POMLack of API documentationOSLCOSL4JTutorials (some good ones, some not so good, hard to know before you start)Wraps the API but doesn’t implement a scenario7 2015 IBM Corporation

IBM Open IntegrationsOSLC AdoptionOur best sample code can still be difficult to follow8 2015 IBM Corporation

IBM Open IntegrationsCommon adoption strategiesEnterprise adoption - fully embrace standard in corporate and 3rd party toolsDedicated resourcesPowerful adaptersAgosense, FusionForge, IBM Rational, Jenkins, Kovair, OSLC4J Bugzilla, Prostep,Sodius, Tasktop - see for moreJust enough adoptionMake some tool talk to an OSLC interface in a limited wayQuestions on forums (Lyo, OSLC, open-services,, )SSA strategy: Struggle, struggle, abandonIn an ideal world, everyone would do “Just enough adoption” and incrementally expand9 2015 IBM Corporation

IBM Open IntegrationsSome observations about OSLC adoption It’s easier for developers to learn and implement a point-to-point integration than it is to learnand 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 andimplement 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 ( Copy/paste (github) Frameworks (Yeoman, Express) Services (Bluemix) Knowledge reuse (wide adoption)10 2015 IBM Corporation

IBM Open IntegrationsFirst generation OSLC adoptionRudimentary tools: Roll-your-own OSLC REST APISee: OSLC Workshop at 2015 IBM Corporation

IBM Open IntegrationsFirst generation OSLC adoptionOff-the-shelf OSLC adapters encourage point-to-point integrations12 2015 IBM Corporation

IBM Open IntegrationsFirst generation OSLC adoptionLyo Adapter Code Generator - Understand OSLC metamodel13 2015 IBM Corporation

IBM Open IntegrationsFirst generation OSLC adoptionLyo 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 reviews14 2015 IBM Corporation

IBM Open IntegrationsSecond generation OSLC adoptionEasier implementation reuse: Lightweight JavascriptOSLC JavaScript clientRIO3 (JavaScript)EZ OSLC adapter (JavaScript): 1 line need to convert query params from OSLC to Bugzdcterms:serviceProvideroslc cm:status15 2015 IBM Corporation

IBM Open IntegrationsSecond generation OSLC adoptionEasier implementation reuse: Rapid source developmentGithub repos for hosted and framework OSLC codeRapid changes, cloning, etcFaster adoption, higher riskLyo for Enterprise supportClone Github baselines to LyoLicense and legal validationTestingStability for larger/complex organizationsControlled adoption, lower risk16 2015 IBM Corporation

IBM Open IntegrationsSecond generation OSLC adoptionEasier design reuse: OSLC frameworksExpress frameworks under developmentLDP.jsOSLC.jsYeoman (under consideration)17 2015 IBM Corporation

IBM Open IntegrationsSecond generation OSLC adoptionEasier API reuse: Hosted OSLCEZ Oslc API documentation (under consideration) 201518 2015 IBM Corporation

IBM Open IntegrationsSecond generation OSLC adoptionEasier specification reuse: OSLC 3 improvements“Motivation” sectionsLinked Data Platform (easier discovery)3Container supportTurtle and JSON-LD (RDF easier to consume)19 2015 IBM Corporation

IBM Open IntegrationsOSLC adoption: FuturesJust 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 builds20 2015 IBM Corporation

IBM Open Integrations21 2015 IBM Corporation

IBM Open Integrations Copyright IBM Corporation 2015. All rights reserved.The information contained in these materials is provided forinformational purposes only, and is provided AS IS withoutwarranty of any kind, express or implied. IBM shall not beresponsible for any damages arising out of the use of, orotherwise related to, these materials. Nothing contained inthese materials is intended to, nor shall have the effect of,creating any warranties or representations from IBM or itssuppliers or licensors, or altering the terms and conditions ofthe applicable license agreement governing the use of IBMsoftware. References in these materials to IBM products,programs, or services do not imply that they will be availablein all countries in which IBM operates. Product release datesand/or capabilities referenced in these materials may changeat any time at IBM’s sole discretion based on marketopportunities or other factors, and are not intended to be acommitment to future product or feature availability in any way.IBM, the IBM logo, Rational, and other IBM products andservices are trademarks of the International BusinessMachines Corporation, in the United States, other countries orboth. Other company, product, or service names may betrademarks or service marks of others.22 2015 IBM Corporation

2015 IBM Corporation IBM Open Integrations 9 Common adoption strategies Enterprise adoption