Architecture Overview

The Adapter is a Java Servlet application that executes with a Servlet Engine Web Application Server and has extensions to the already in-situ PTC ™ Windchill system.

A typical corporate network with the deployed adapter might resemble the architecture shown in the figure below.


Figure: A Typical Architecture

The RLIA integrates modern Internet Web Service components to provide the OSLC capabilities required by its nature as an OSLC consumer and provider of Engineering Lifecycle Management information. The significant components that it integrates are:

Technology Source Purpose
OASIS OSLC http://www.oasis-oslc.org/ Specifications for OSLC CM REST Protocols
Eclipse Lyo https://www.eclipse.org/lyo/ OSLC4J Libraries
Apache Tomcat http://tomcat.apache.org/ Tomcat Web Server Manager
IBM WebSphere Application Server http://www-03.ibm.com IBM Web Server Manager
AngularJS https://angularjs.org/ Client-side Browser User Interfaces
Restangular https://github.com/mgonto/restangular Client-side REST Broker
ParseUri http://stevenlevithan.com Javascript URI Parsing
LoDash http://lodash.com/ Functional Javascript
Fallback.io https://github.com/dolox/fallback CDN Fallback and Lazy Loading
Bootstrap http://getbootstrap.com/css/ Client-side Responsive CSS
OWASP HTML Policy https://www.owasp.org/HTML Server-side Java HTML Filtering
OWASP CSRF Filtering https://www.owasp.org/CSRF Server-side CSRF Management

Software composing the Adapter is provided as OSGi bundles loaded into an OSGi engine that is, itself, provided as a Web Archive that is managed by a web application servlet engine. For example, an organization can choose to use Apache Tomcat or IBM Websphere Application Server as the Servlet Server that hosts the RLIA’s OSGi engine.

The following table illustrates the OSGi bundles of the RLIA adapter.

OSGi bundle Description
com.google.guava.lib Google Guava Collections, Fluent Iterables, and Functional Predicates
com.ibm.services.rlia.licensing Licensed operation using a Rational Token License Server
com.sodius.bridge.servlet.osgi Bridging between Equinox OSGi and Java Servlets
com.sodius.functionals Small methods to perform Functional operations over Collections
com.sodius.interfaces.licensing Interfaces to decouple License implementations
com.sodius.iostream Utilities for handling Java IO Streams
com.sodius.jazz.servlet.oslc.rm Servlet controller to provide service to the Adapter extensions within Windchill
com.sodius.namespace Various OSLC and XML Namespace constants
com.sodius.oslc.constants Various OSLC Constants introduced by Sodius
com.sodius.oslc.error Utilities for reporting errors in OSLC Format
com.sodius.oslc.extended Utilities for manipulating the Extended Properties of OSLC Resources
com.sodius.oslc.mediaproviders.lyo.patch Patched Eclipse Lyo Media Providers
com.sodius.oslc.shape.am OSLC Resources for the Architecture Management Domain
com.sodius.oslc.shape.config OSLC Resources for the Configuration Management Domain
com.sodius.oslc.shape.friend OSLC Resources for the Jazz Friend resource
com.sodius.oslc.shape.person OSLC Resources for the FOAF Domain
com.sodius.oslc.shape.pm OSLC Resources for the Product Management Domain
com.sodius.oslc.shape.pm.wtpart OSLC Resources for the Windchill Part
com.sodius.oslc.shape.projectarea OSLC Resources for Jazz Process ProjectArea resources
com.sodius.oslc.shape.provenanced Abstract OSLC Resource that has Provenance properties
com.sodius.oslc.shape.rdmlink OSLC Resources for the Jazz DM Linktypes
com.sodius.regex.linefeedcarriagereturn Utilities to alter Line endings
com.sodius.rlia.logging.osgi Utilities to support Logging in OSGi modules
com.sodius.services.rlia.autostart.osgi An OSGi module to help bootstrap other OSGi modules
com.sodius.services.rlia.licensing.tolerant.core Implementation for Licensing that is Tolerant
com.sodius.windchill.client.authenticated An HTTP Client for OSLC that using OAuth
com.sodius.windchill.infoengine.constants Constants for InfoEngine Webjects
com.sodius.windchill.schema Constants for the Windchill Schema
com.sodius.windchill.server.configuration Management of the Adapter’s Configuration
com.sodius.windchill.server.filter.credential An HTTP Filter that checks Credentials
com.sodius.windchill.server.filter.jsp An HTTP Filter for processing JSP
com.sodius.windchill.server.filter.nullfilter An HTTP Filter that tolerates Anything
com.sodius.windchill.server.friendstore Management of the Adapter’s Friends
com.sodius.windchill.server.infoengine.task Implementation of the InfoEngine Webject Task runner
com.sodius.windchill.server.infoengine.task.contract Interface for clients of the InfoEngine Task runner
com.sodius.windchill.server.oslc Several Discovery Servlets
com.sodius.windchill.server.oslc.am Servlets for the OSLC Architecture Management Domain
com.sodius.windchill.server.oslc.cm Servlets for the OSLC Change Management Domain
com.sodius.windchill.server.oslc.config Servlets for the OSLC Configuration Management Domain
com.sodius.windchill.server.oslc.core Servlets for the OSLC Core Domain
com.sodius.windchill.server.oslc.doc Runtime Documentation for the Adapter
com.sodius.windchill.server.oslc.person Servlets for the FOAF Domain
com.sodius.windchill.server.oslc.pm Servlets for OSLC Product Management Domain
com.sodius.windchill.server.oslc.query OSLC Query Processing
com.sodius.windchill.server.oslc.trs OSLC Tracked Resource Set Capabilities
com.sodius.windchill.server.owasp OWASP Web Security Filters
com.sodius.windchill.type Windchill Java, JSP, and JS Extension
com.sodius.windchill.webject Constants for Windchill Webjects
com.sodius.wink Repackaged Apache Wink
org.apache.jena.xerces.osgi Apache Jena over Apache Xerces bundled for OSGi
org.eclipse.lyo.client Eclipse Lyo Components
org.eclipse.lyo.cm Eclipse Lyo Components
org.eclipse.lyo.core Eclipse Lyo Components
org.eclipse.lyo.lib Eclipse Lyo Components
org.eclipse.lyo.server Eclipse Lyo Components
org.eclipse.mylyn.wikitext Eclipse Textile to HTML Processing
org.joda.datetime.lib Joda Date Time Library