Tutorial overview

This tutorial explains how to integrate tools with OSLC. The tutorial uses examples, starting with simple ones and building to more advanced topics such as implementing an OSLC Provider. It is organized into three parts:

  • OSLC consumer topics
  • OSLC provider implementation topics
  • Advanced topics

It's intended for software developers with knowledge of the basics of web architecture, HTTP, RDF, and associated topics.

Organization

We start with a quick tour, showing OSLC in a nutshell, then present the story of how Nina improves her company's ALM process by integrating tools via OSLC.

  • In Part 1, we start with the basic topics on the consumer side, explaining how Nina integrates her existing home-grown CRM web application with an OSLC Change Management (CM) provider. We'll explore UI Preview, HTTP operations on resources, and Delegated UI.
  • In Part 2, we see how Nina enhanced her company's home-grown Defect Tracking system to support just enough of the OSLC CM specification to support the integrations developed in Part 1.

Audience

This tutorial is written for those who will be working directly with OSLC specifications, at the code level and implementing OSLC consumers and providers. If you are part of this audience, then you:

  • Understand basics of software development
  • Understand basics of web architecture and HTTP
  • Understand basics of Linked Data and RDF
  • Are abie to follow examples in XML, JSON, HTML, and JavaScript
  • Are eager to learn more about those topics and OSLC

We try hard to keep this tutorial programming language agnostic; when we do have to show server-side logic we use Java and JSP to do so. Later versions of this document might expand to other languages and platforms. OSLC is a community effort and we'd love your help in adding examples in different programming languages to this tutorial, or new tutorials, to help those on other platforms such as Perl, PHP, Python, Ruby, and the .Net languages.

Introduction

Welcome to the OSLC Tutorial. The goal of this document is to explain how to implement OSLC consumers and providers by examining realistic use cases and showing how to implement each in detail with lots of examples and working code.

We'll start simple, explaining how to interact and integrate with an OSLC-CM v2 provider. Then, we will progressively introduce more advanced features and build your knowledge to the point where you'll be able to build a complete OSLC provider implementation. As we progress, we will help you to follow along by looking at code for an OSLC consumer and OSLC provider and by exploring OSLC resources using the Firefox or Chrome Poster plugin.

To bring our examples to life, we'll tell the story of Nina, a developer and sysadmin who handles development infrastructure and uses OSLC specifications to integrate systems and put in place more efficient and effective work-flows for her team.

Following along

One of the best ways to learn a new technology is to experiment with it. In that spirit, you can follow along with the OSLC Tutorial by using the following software:

  • NinaCRM: A fictional Customer Relationship Management (CRM) system that hosts OSLC UI Preview and OSLC Delegated UI examples, implemented as a Java EE web application. Get it from the OSLC Tools project on SourceForge. In the examples we assume that NinaCRM is installed at http://localhost:8181/ninacrm.
  • OSLC Bugzilla Adapter: This is the adapter that Nina develops in Part 2, an OSLC Adapter for Bugzilla that implements the OSLC-CM specification. You can get it from the OSLC Tools project on SourceForge. In the examples, we assume this is installed at http://localhost:8282/bugz.
  • Firefox or Chrome Poster plugin: This plugin makes it easy to issue HTTP requests supporting GET, PUT, POST and DELETE and setting headers. Examples show how to use Poster to manipulate OSLC resources.

The Appendix explains how to install and run the above software. Now let's quickly introduce OSLC so we can get started with the story.