Open Services for Life-cycle Collaboration or OSLC defines a set of standard capabilities enabling loosely coupled, open and scalable point-to-point integration between heterogeneous software development tools. OSLC allows users to work seamlessly across their preferred tools and does not require complex interchange of data between tools that may result in information redundancy and maintenance issues.
OSLC allows tools to be developed independently, and on their preferred technical architectures so they can manage their resources and governance processes as needed. Then OSLC capabilities can be used to integrate tools in order to provide end users with additional capabilities. For example, Figure 1 shows that OSLC can be used to integrate requirements, design, change and quality management tools supporting application life-cycle management (ALM) activities. OSLC enables the integration of these tools in order to support a lean value stream that facilitates efficient and effective continuous delivery and continuous entineering.
Figure 1: OSLC supports integration of life-cycle and other tools
OSLC builds on the architecture of the World Wide Web (WWW) as shown in Figure 2.
Figure 2: OSLC Architecture
HTTP provides the foundation of the WWW through Hypertext As The Engine Of Application State (HATEOAS). RESTful HTTP resources represent the state of some entity. Link elements within the resources that are part of that state, represent actions that might lead to possible future states, or are simply interesting related resources. This helps address complexity through HTTP methods and REST as the standard mechanism for distributed, loosely coupled, scalable APIs. See the IETF HTTP 1.1 Specification for further details. See Justice Will Take Us Millions Of Intricate Moves by Leonard Richardson for a very informative discussion on the WWW architecture.
The W3C Linked Data Platform Specification 1.0 (LDP) reduces variability in the representation of Web resources by providing an architecture for self-describing, semantically rich, linked data resources on the Web. LDP uses Turtle and JSON-LD content types for RDF resources, and defines containers, container membership relationships and REST services for organizing resources. LDP leverages and and enhances HATEOAS by providing a standard representation of resources, how links in the resources can be discovered, and what the links mean.
LDP addresses common linked data problems while making REST more usable.
- Establishes linked data best practices
- Specifically addresses authentication
- Helps find existing resources and where to POST to create new resources
- Uses consistent and convenient RDF media types such as Turtle and JSON-LD
- Supports pagination of large resources (in progress)
- Deals with binary and other non-RDF resources
- Helps enable the right scopes: Internet-wide, Site-wide, Application-wide, User-wide or Other
OSLC Core builds on LDP to provide capabilities that use linked data to integrate data consumers and providers. OSLC Core adds discoverability to LDP through minimal, discoverable capabilities that enable application integration. These capabilities are described in the next section. OSLC Core 3.0 is an emerging new OASIS standard that builds on OSLC Core 2.0 specification that was developed at open-services.net by building on the LDP foundation.
OSLC domains are built on the OSLC Core common services and vocabulary. An OSLC domain is a vocabulary of terms and shape constraints that define a set of classes and properties that address some logical, cohesive domain of interest. There are a number of OSLC domain specifications, and new ones are being developed at OASIS.
In order to enable tool integration, OSLC Core provides a minimal set of capabilities that provide just enough integration while minimizing coupling and without creating undue implementation overhead. Figure 3 shows the OSLC Core capabilities. These capabilities build on W3C Linked Data Platform, and provide the common capabilities that are used by all OSLC domains.
Figure 3: OSLC Core and Domain Capabilities
Authentication: Determines how a user of an OSLC client application identifies themselves to a server to ensure the user has sufficient privileges to access resources from the server, and standard mechanisms for servers to control access to resources.
Discovery: How OSLC servers publish the REST APIs for their provided services, and how clients discover and use them.
Resource Operations: Defines OSLC resource representations and how OSLC client applications create, read, update and delete resource managed by OSLC servers through HTTP methods.
Resource Preview: A service for providing and using a minimal HTML representation of a resource including a possibly state specific icon, label and small and/or large preview dialogs provided by a server and displayed by clients.
Delegated Dialogs: A service that allows a server to provide dialogs that can be embedded in client applications for the creation of new resources and/or the selection of existing resources.
Attachments: A service supporting the attachment of non-RDF or binary resources to RDF resources.
Query: An implementation independent means of specifying HTTP query parameters supporting selection of matching elements, filtering of desired properties and ordering of resources from OSLC servers.
Common Vocabulary: Specifies the common vocabulary terms (classes and properties) and shape constraints that are typically used by OSLC domains.
As shown in Figure 4, OSLC resources and activities are involved in collaborations across the industry. This collaboration includes the development of the OSLC service specifications, tools and SDKs that implement and support the use of the OSLC services, and organizations that leverage these capabilities to support data sharing and integration across lifecycle domains.
OASIS, and the OSLC Member Section led by the OSLC Steering Committee is the governing body for all OSLC specifications. The existing OSLC 2.0 specifications that were developed on open-services.net will be incrementally migrated to OASIS where they will become OASIS Standards. The OSLC Steering Committee is also the governing body of open-services.net were there are user groups dedicated to exploring new OSLC capabilities and domains, and/or collaborating on best practices and guidance for using the existing OSLC services.
W3C is the governing body for the WWW “architecture of the web”. OSLC builds on the W3C Linked Data Platform Specification. W3C also has a working group developing the Shapes Constraint Language (SHACL) that may eventually complement OSLC Core Resource Shape specification for defining usage constraints on OSLC domain and other RDF vocabularies.
Eclipse Lyo provide a Java SDK for OSLC v2.0 to support the creation of OSLC client and server applications. Lyo provides a reference implementations of most of the existing OSLC domains, and provides test suites to simplify the validation of OSLC servers and to enable test-driven development of new servers.
Figure 4: OSLC: Collaborating across the industry
OSLC services are the basis for the CRYSTAL Interoperability Specification to support interoperability needs. CRYSTAL, CRitical sYSTem engineering AcceLeration, is an ARTEMIS Joint Undertaking project to develop an interoperability specification and Reference Technology Platform as a European standard for safety-critical systems. The Interoperability specification allows loosely coupled tools to share and link their data based on open standards in order to enable interoperability among development lifecycle domains.
The INCOSE Tools Integration and Interoperability Working Group (TIIWG) mission is to capture, develop and publish the best practices and guidelines for sharing data between tools and processes in an integration systems engineering environment. The TIIWG OSLC Liaison Project is a collaborative alliance with OSLC to explore the use of OSLC services in Systems Engineering.
Similarly the Object Management Group (OMG) OSLC4MBSE Working Group is a collaborative effort between members of the OMG Systems Engineering Domain Special Interest Group (SE DSIG) and OSLC communities. The aim of this working group is to investigate and develop an approach for multidisciplinary lifecycle integration in systems engineering, in order to support interoperability between the domains and their data.
Increasingly software runs the world as business perform digital transformations in order to leverage cognitive data and predictive analytics for competitive advantage. But software systems are generally heterogeneous and disjoint because they are developed by different organizations, at different times, for different purposes and on different technical architectures. To realize the full potential of digital transformation, business need to be able to integrate applications that operate on shared information. Traditional approaches to software integration require often brittle, expensive, and difficult to maintain custom software that limits flexibility and choice. Open standards such as OSLC are key enablers for broad, large-scale and loosely coupled integration.
OSLC standards simplify lifecycle integration leading to cost savings and increased flexibility. Specifically, the business value of OSLC can be summarized as follows.
- Tool Makers: create software using reusable and open assets that will interoperate with other tools both inside and outside your influence providing time and cost savings
- Tool Managers: reduce the complexity and risk of increasingly complex software infrastructures and supporting tool chains, and improve the value of software across a broader set of internal and external stakeholders
- Tool Users: choose the best tools for your job and have them interact seamlessly to achieve traceability and visibility with the rest of your organization
- Systems Integrators: focus energy and resources on higher-value customizations, deliver more business value to your clients, and increase client satisfaction
- Solution Deliver Teams: allow team members to use optimal tools for creating and using work products in each lifecycle phase, without sacrificing global optimization of the process as a whole, through a lean value stream that minimizes waste caused by poorly integrated tools or the inability to leverage shared information across tools
OSLC streamlines and simplifies the creation and management of software, whether the context is traditional IT, smarter infrastructure and devices, mobile, Cloud, Systems and Software Engineering, etc. OSLC’s approach to integration solves the decades old problem of federated information sharing so that users can mix and match their tools with confidence. This proven approach is now standardized with support from across the industry, including vendors, enterprise end users, integrators, and academia.
Integration provides an ecosystem of connectable applications where the whole is greater than the sum of the parts. Use of common services minimizes development costs due to consistency and reuse between applications. Using open standards maximizes effective delivery due to implementation of common best practices, avoiding mistakes or accidentally taking different, incompatible approaches. OSLC enables:
- Tool integration through open REST-based protocols
- Direct access to trusted, multi-vendor data from any source
- Visualization of trusted, multi-vendor data from any source
- Easy plug in or swap out of multi-vendor tools
- Integration of multi-vendor tools at a fraction of the time/cost
- Development of integrations once, and reusing them many times
- Reduction of rework on integrations with every point release
- Ability to leverage common services to speed multi-vendor integration
OSLC has proven its value though broad adoption by industries in the areas of: DevOps, Cloud, IoT, ALM, Project Management, Government, HealthCare, etc., and by many organizations including: PTC, AirBus, Boeing, Dassault, Fujitsu, Oracle, IBM, Siemens, and many more. The OASIS OSLC Core 3.0 Specifications represent the continued evolution of OSLC through collaborating organizations to provide the standards, APIs and tools that support integrated product, system and application lifecycle management.