This wiki is locked. Future workgroup activity and specification development must take place at our new wiki. For more information, see this blog post about the new governance model and this post about changes to the website.
TWiki> Main Web>SimpleOslcRi (revision 7)

Simple OSLC Reference Implementation

sori-screenshot-sm.jpg This document gives you a quick overview of the Simple OSLC Reference Implementation (SORI), explain how SORI is organized and how to build and run the code.

What is SORI?

SORI is a simple, bare-bones reference implementation of the OSLC specifications. It is written in Java as a standard Java EE web applications with minimal dependencies. It is intended to help those who are adopting OSLC by providing a functioning system that can be explored via a simple UI and REST services, or by taking a look at the source code.

  • A Simple OSLC Reference Implementation
  • Written in Java EE web application with minimal dependencies
  • Open Source under the Apache Software License v2
  • Home is http://sf.net/projects/oslc-tools

Why is SORI?

The goals of SORI are:

  • Provide minimal reference implementation of the OSLC specifications
  • Provide tool for provider and consumer implementations to reference and experiment with

SORI is not intended to be:

  • A full implementation of OSLC
  • A full featured ALM tool
  • A performance benchmark
  • A framework or SDK

SORI architecture

SORI is a standard Java EE web applications with minimal dependencies and it organized into four modules.

Modules and Dependencies

The diagram below shows the modules and dependencies of SORI:

sori.graffle,jpg

SORI is organized into the following modules:

  • SORI Core JAR - base classes for services, RDF triple store and query syntax parser
  • SORI Core Webapp - common JSP pages and static resources used by SORI web applications
  • SORI CM Webapp WAR - the SORI CM web application
  • SORI AM Webapp WAR - the SORI AM web application

The major dependencies of SORI are:

  • Java Servlet API
  • Java Server Pages (JSP)
  • Open RDF / Sesame RDF parser and triple-store
  • ANTLR parser generator
  • Maven build system

We choose to use a very minimal set of dependencies for SORI because we want it to be really simple. The web parts of SORI are implemented with only the Servlet API and JSP pages. For simplicity's sake, there is no webapp framework, no Dojo and no OSGI.

  • For RDF, we choose to use OpenRDF / Sesame over Jena because it seemed easier to work with.
  • For the build, we choose Maven for these reasons:
    • Allows developers to very easily build and run SORI with any IDE or no IDE at all, i.e. via command-line
    • Allows us to pull in dependencies at build-time and we do not have to store or distribute any 3rd party jars
    • Maven is very well known and supported, it is the de facto standard build system for Java based open source software

Areas for improvement

We've discussed the following ideas for SORI development in 2011:

  • Support for all OSLC domains
  • Complete support of OSLC Query Syntax
  • Make SORI a consumer as well as an OSLC provider
  • User management
  • Better UI via CSS, Javascript, etc.
  • Hosting SORI on a public site, data wiped clean nightly
  • Binary releases, with bundled Jetty so its unzip and run to get going

How to build and run SORI

See these two guide to building and running SORI:

Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg sori-screenshot-sm.jpg manage 46.4 K 01 Feb 2011 - 20:22 DaveJohnson  
jpgjpg sori.graffle.jpg manage 34.9 K 01 Feb 2011 - 20:24 DaveJohnson  
Edit | Attach | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r7 - 02 Feb 2011 - 17:13:27 - DaveJohnson
 
This site is powered by the TWiki collaboration platform Copyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback