Adapter 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 Sodius OSLC Adapter for PTC Windchill 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 Specifications for OSLC CM REST Protocols
Eclipse Lyo OSLC4J Libraries
Apache Tomcat Tomcat Web Server Manager
IBM WebSphere Application Server IBM Web Server Manager
AngularJS Client-side Browser User Interfaces
Restangular Client-side REST Broker
ParseUri Javascript URI Parsing
LoDash Functional Javascript
Bootstrap Client-side Responsive CSS
OWASP HTML Policy Server-side Java HTML Filtering
OWASP CSRF Filtering 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 Sodius OSLC Adapter for PTC Windchill’s OSGi engine.

The following table illustrates the OSGi bundles of the Sodius OSLC Adapter for PTC Windchill.

OSGi bundle Description Google Guava Collections, Fluent Iterables, and Functional Predicates 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 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 OSLC Resources for the Product Management Domain 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 An OSGi module to help bootstrap other OSGi modules 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 Servlets for the OSLC Architecture Management Domain 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 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.extension 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 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