Simple OSLC Reference Implementation
DOCUMENT UNDER CONSTRUCTION
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. 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.
SORI architecture
The bullets below give a summary of the SORI architecture:
- Written in Java as standard Java EE web application
- Major dependencies:
- Java Servlet API
- Java Server Pages (JSP)
- Open RDF / Sesame RDF parser and triple-store
- ANTLR parser generator
- Maven build system
- Organized into two Web Applications that both share common components
- Organized into these modules
- sori-core: Core implementation Java classes (packaged as JAR)
- sori-am: Architecture Management Java classes (packaged as JAR)
- sori-cm: Change Management Java classes (packaged as JAR)
- sori-template-webapp: Common parts of OSLC web application (packaged as WAR)
- sori-am-webapp: The SORI-AM Web Application (packaged as WAR)
- sori-cm-webapp: The SORI-CM Web Application (packaged as WAR)
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 revision: r5 - 31 Jan 2011 - 16:53:51 -
DaveJohnson