RegisterLog In to Jazz.net dW

The people, places, history, and ideas behind Jazz

Platform

Open, collaborative, extensible by design.

Jazz products embody an innovative approach to integration based on open, flexible services and Internet architecture. Unlike the monolithic, closed products of the past, Jazz is an open platform designed to support any industry participant who wants to improve the software lifecycle and break down walls between tools.

Organizations need to flexibly assemble their software delivery environment, using their preferred tools and vendors. Since this environment is not static, organizations need to evolve their environment as their needs change at their own pace.

The Jazz platform provides the technical foundation for several types of lifecycle tool integration. This platform consists of an architecture and a set of application frameworks and toolkits, as seen in the figure below:

The Jazz Platform

The Jazz architecture

Jazz is built on architectural principles that represent a key departure from approaches taken in the past. Together, these approaches allow teams to "surf the collaborative Web" to seamlessly access teams, processes and artifacts.

Here are some key ideas behind the Jazz architecture:

  • Jazz separates the implementation of tools from the definition of and access to the data. Data semantics do not rely on "secret knowledge" embedded in product code.
  • Jazz federates data across independent databases using Internet protocols. Jazz does not assume that all the data is in a single database.
  • Jazz can access and integrate data where it resides - Jazz does not need to import and export data between tools or repositories
  • Jazz assumes an open, flexible, distributed data model. Jazz does not assume that there is a single data model that is centrally managed, nor that each tool needs to understand the entire data model in order to participate.
  • Jazz allows tools to be implemented in any Internet-aware programming language or platform. Jazz does not impose an implementation framework tied to a particular language or technology platform
  • Jazz supports multiple client technologies. While web user interfaces are the choice for many Jazz tools, Jazz also supports Eclipse-based clients and Microsoft Visual Studio-based clients, and other client platforms could easily be implemented based on demand

There are two principal facets of the Jazz architecture:

  1. Linked Lifecycle Data, applying the W3C "Linked Data" standards to the realm of lifecycle data (e.g., requirements, change requests, test plans, code, etc.), and
  2. Integration services, providing cross-cutting capability for any lifecycle tool (e.g., user admin, project admin, lifecycle query) to enable the "system" of tools to work well together.

Linked Lifecycle Data

Customers use tools from multiple vendors to capture and manage data across the software lifecycle. These data are typically accessed by using the tool that created the data or by accessing a database used for storage by the tool. The lack of common protocols across resources makes it difficult for other tools to gain such access.

The Jazz architecture addresses this problem by providing standard interfaces and methods for tools to establish links to data housed and managed by other tools, possibly those built on widely varying technologies. Jazz embraces the linked data approach as implemented in the Open Services for Lifecycle Collaboration (OSLC) initiative. Linked data is the fundamental architectural principle of OSLC, making it "the community and specifications for Linked Lifecycle Data."

OSLC supports the notions of Providers and Consumers. An OSLC Provider is a tool that "owns" lifecycle data and exposes those data to other tools as described in corresponding OSLC specifications. And OSLC Consumer is a tool that accesses another tool's data through its corresponding OSLC specified interface. Architecting lifecycle tools to interact in this manner enables interoperability between tools and resources spanning across vendors.

OSLC shifts the emphasis from tools and their widely varying APIs to the lifecycle resources (the data) and the relationships between resources. By doing so, one tool can access and link to another tool's resources where the data live, as opposed to a more classical copy and synchronize approach. By exposing data through OSLC-defined RESTful interfaces, tools contribute to a web of data that can be traced, indexed, and analyzed from a cross-lifecycle perspective.

More information on the OSLC initiative, including an initial set of descriptions of resources and protocols, can be found at open-services.net.

Integration services

The Jazz architecture embraces Linked Lifecycle Data through the specifications established at OSLC. The other key aspect of the architecture, integration services, further strengthens the way tools work together. Integration services are general purpose cross-tool capabilities that enable the whole (a set of Jazz products) to be greater than the sum of its parts.

Some integration services (e.g., user identity management) provide a capability that all tools can use, delivering a predictable in-tool experience, and simplifying cross-tool interactions. Other integration services (e.g., dashboards or lifecycle project admin) are implemented by several tools, and knit together to provide a coherent overall integrated capability.

Application frameworks and toolkits

For Rational Jazz products today, including Rational Team Concert, Rational Quality Manager, and Rational Requirements Composer, application frameworks and toolkits are used to simplify and harmonize their implementations. In addition to aiding the tool implementation effort, the application frameworks include libraries that make it easier to leverage existing integration services.

The Jazz Team Server provides an implementation of integration services, and is delivered with Rational's Jazz products to support their integration needs. Today, application frameworks and toolkits are primarily used by IBM developers. Over time, new application frameworks and toolkits will support more integration services in more programming languages, increasing the effectiveness of more developers building more tools.