Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Lyo/LyoRIO"

< Lyo
(Initial version)
 
(added a note at the top indicating that this page is accurate for the original RIOs and pointing to the OSLC4J-based RIOs)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Lyo Reference Implementation for OSLC =
+
= Lyo Reference Implementation for OSLC =
  
This document gives you a quick overview of the Reference Implementation for OSLC (RIO), explain how RIO is organized and how to build and run the code.
+
This document gives you a quick overview of the original Reference Implementation for OSLC (RIO), explain how RIO is organized and how to build and run the code. There are newer RIOs that leverage OSLC4J to which some of the information below applies, but not all.
  
== What is Lyo RIO? ==
+
It is recommended to use the RIOs based on OSLC4J. For example the [http://wiki.eclipse.org/Lyo/BuildingOSLC4J#Run_the_Change_Management_sample_provider running OSLC4J-based RIO for Chanage Management] is discussed on the [[Lyo/BuildingOSLC4J]] page.
  
RIO 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.
+
== What is Lyo RIO?  ==
  
* A Simple OSLC Reference Implementation
+
RIO 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.  
* Written in Java EE web application with minimal dependencies
+
* Open Source under the [http://www.eclipse.org/org/documents/edl-v10.php Eclipse Distribution License 1.0] and the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License 1.0]
+
* Home is http://eclipse.org/lyo
+
  
== Goals of RIO ==
+
*A Simple OSLC Reference Implementation
 +
*Written in Java EE web application with minimal dependencies
 +
*Open Source under the [http://www.eclipse.org/org/documents/edl-v10.php Eclipse Distribution License 1.0] and the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License 1.0]
 +
*Home is http://eclipse.org/lyo
  
The goals of RIO are:
+
== Goals of RIO ==
* Provide minimal reference implementation of the OSLC specifications
+
* Provide a tool for provider and consumer implementations to reference and experiment with
+
* Provide a framework to prototype proposed additions to the OSLC specifications
+
  
RIO is *not* intended to be:
+
The goals of RIO are:  
* A full implementation of OSLC
+
* A full featured ALM tool
+
* A performance benchmark
+
* A framework or SDK
+
  
== RIO architecture ==
+
*Provide minimal reference implementation of the OSLC specifications
 +
*Provide a tool for provider and consumer implementations to reference and experiment with
 +
*Provide a framework to prototype proposed additions to the OSLC specifications
  
RIO is a standard Java EE web applications with minimal dependencies and it organized into four modules.
+
RIO is *not* intended to be:
  
=== Modules and Dependencies ===
+
*A full implementation of OSLC
 +
*A full featured ALM tool
 +
*A performance benchmark
 +
*A framework or SDK
  
 +
== RIO architecture  ==
  
RIO is organized into the following components:
+
RIO is a standard Java EE web applications with minimal dependencies and it organized into four modules.
* RIO Core JAR - base classes for services, RDF triple store and query syntax parser
+
* RIO Core Webapp - common JSP pages and static resources used by RIO web applications
+
* RIO CM Webapp WAR - the RIO Change Management web application
+
* RIO AM Webapp WAR - the RIO Architecture Management web application
+
* RIO RM Webapp WAR - the RIO Requirements Management web application
+
  
The major dependencies of RIO are:
+
=== Modules and Dependencies  ===
* 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 RIO because we want it to be really simple. The web parts of RIO are implemented with only the Servlet API and JSP pages. For simplicity's sake, there is no webapp framework, no Dojo and no OSGI.
+
RIO is organized into the following components:
  
* For RDF, we choose to use !OpenRDF / Sesame over Jena because it seemed easier to work with.
+
*RIO Core JAR - base classes for services, RDF triple store and query syntax parser
* For the build, we chose Maven for these reasons:
+
*RIO Core Webapp - common JSP pages and static resources used by RIO web applications
** Allows developers to very easily *build and run RIO with any IDE or no IDE at all*, i.e. via command-line
+
*RIO CM Webapp WAR - the RIO Change Management web application
** Allows us to pull in dependencies at build-time and we *do not have to store or distribute any 3rd party jars*
+
*RIO AM Webapp WAR - the RIO Architecture Management web application
** Maven is very well known and supported, it is the de facto standard build system for Java based open source software
+
*RIO RM Webapp WAR - the RIO Requirements Management web application
  
 +
The major dependencies of RIO are:
  
=== Areas for improvement ===
+
*Java Servlet API
 +
*Java Server Pages (JSP)
 +
*Open RDF / Sesame RDF parser and triple-store
 +
*ANTLR parser generator
 +
*Maven build system
  
Areas we are looking at improving:
+
We choose to use a very minimal set of dependencies for RIO because we want it to be really simple. The web parts of RIO are implemented with only the Servlet API and JSP pages. For simplicity's sake, there is no webapp framework, no Dojo and no OSGI.
  
* Support for all OSLC domains
+
*For RDF, we choose to use&nbsp;!OpenRDF / Sesame over Jena because it seemed easier to work with.
* Complete support of OSLC Query Syntax
+
*For the build, we chose Maven for these reasons:
* Make RIO a consumer as well as an OSLC provider
+
**Allows developers to very easily *build and run RIO with any IDE or no IDE at all*, i.e. via command-line
* User management and Oauth base authentication.
+
**Allows us to pull in dependencies at build-time and we *do not have to store or distribute any 3rd party jars*
* Better UI via CSS, Javascript, etc.
+
**Maven is very well known and supported, it is the de facto standard build system for Java based open source software
* Hosting RIO on a public site, data wiped clean nightly
+
* Binary releases, with bundled Jetty so its easy to unzip and run
+
* Experiment with alternate backend technologies (e.g. Jena, ARQ, JAX-RS, etc).
+
  
To track enhancements and bugs, search on product Lyo in [http://bugs.eclipse.org Bugzilla].
+
<br>
  
== How to build and run RIO ==
+
=== Areas for improvement  ===
  
See these two guide to building and running RIO:
+
Areas we are looking at improving:
* Link 1
+
 
* Link 2
+
*Support for all OSLC domains
 +
*Complete support of OSLC Query Syntax
 +
*Make RIO a consumer as well as an OSLC provider
 +
*User management and Oauth base authentication.
 +
*Better UI via CSS, Javascript, etc.
 +
*Hosting RIO on a public site, data wiped clean nightly
 +
*Binary releases, with bundled Jetty so its easy to unzip and run
 +
*Experiment with alternate backend technologies (e.g. Jena, ARQ, JAX-RS, etc).
 +
 
 +
To track enhancements and bugs, search on product Lyo in [http://bugs.eclipse.org Bugzilla].
 +
 
 +
RIO architecture [[Lyo/RioDesign|design discussions]]
 +
 
 +
== How to build and run RIO  ==
 +
 
 +
See [[Lyo/BuildRIO|Building and Running reference implementations]]

Latest revision as of 14:41, 15 August 2013

Lyo Reference Implementation for OSLC

This document gives you a quick overview of the original Reference Implementation for OSLC (RIO), explain how RIO is organized and how to build and run the code. There are newer RIOs that leverage OSLC4J to which some of the information below applies, but not all.

It is recommended to use the RIOs based on OSLC4J. For example the running OSLC4J-based RIO for Chanage Management is discussed on the Lyo/BuildingOSLC4J page.

What is Lyo RIO?

RIO 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.

Goals of RIO

The goals of RIO are:

  • Provide minimal reference implementation of the OSLC specifications
  • Provide a tool for provider and consumer implementations to reference and experiment with
  • Provide a framework to prototype proposed additions to the OSLC specifications

RIO is *not* intended to be:

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

RIO architecture

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

Modules and Dependencies

RIO is organized into the following components:

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

The major dependencies of RIO 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 RIO because we want it to be really simple. The web parts of RIO 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 chose Maven for these reasons:
    • Allows developers to very easily *build and run RIO 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

Areas we are looking at improving:

  • Support for all OSLC domains
  • Complete support of OSLC Query Syntax
  • Make RIO a consumer as well as an OSLC provider
  • User management and Oauth base authentication.
  • Better UI via CSS, Javascript, etc.
  • Hosting RIO on a public site, data wiped clean nightly
  • Binary releases, with bundled Jetty so its easy to unzip and run
  • Experiment with alternate backend technologies (e.g. Jena, ARQ, JAX-RS, etc).

To track enhancements and bugs, search on product Lyo in Bugzilla.

RIO architecture design discussions

How to build and run RIO

See Building and Running reference implementations

Back to the top