Skip to content

Project Structure

Bill Majurski edited this page Sep 15, 2019 · 4 revisions

The project structure is evolving during initial development. Here is a snapshot.

Asbestos uses a micro-service architecture with the parts assembled in a Servlet container. We develop with Tomcat. The key services are:

XDS Toolkit - Since MHD can be a front end for XDS we need a full set of XDS services. The XDS Toolkit WAR is included.

HAPI FHIR - underlying FHIR server installed as a WAR.

Modules maintained as part of the asbestos project:

Asbestos Proxy - a traffic switch between services. What it actually does depends on the channel used. All traffic through any channel is logged. A channel has a type (see below) and a target system. The target system determines where the output messages go. The channel determines how the messages are transformed. Regarding logging, a single transaction is actually two messages: one input and one output. But, because of the content of the input it might be necessary to have one or more secondary requests where the transform reaches out to other system to retrieve content. All these transactions are logged. Asbestos Proxy produces a WAR.

Asbestos Proxy - Pass-through Channel - this channel passes messages through unaltered except for the target URL.

Asbestos Proxy - MHD Channel - this channel expects to be configured as a front end to an XDS infrastructure. MHD inputs are translated to XDS outputs.

Asbestos MHD - the definition of the MHD Channel. Produces a JAR which is linked into the Asbestos Proxy WAR.

Asbestos Test Engine - our implementation of the FHIR Test Engine which processes TestScript resources and produces TestReport resources. This is a JAR which will later be linked into our base system.

Asbestos Adapter - resource definitions used to communicate between system components.

Asbestos Proxy War - for now just a holder of Integration Tests.

Asbestos View - future UI.

Relationship to XDS Toolkit

Asbestos depends on XDS Toolkit for XDS services and for structure. The External Cache is shared between the two tools. Each directory in the External Cache is owned by only one project and only that project writes to that directory. The other project may read.

For now the only Asbestos-centric directory is psimdb. This is where channel definitions and logs are held. It is similar to simdb in XDS Toolkit but is focused on FHIR.

New areas in the External Cache

Asbestos adds two directories to the External Cache.

psimdb - similar to simdb (simulators) but instead for proxy channels.

TestCollections - holder of tests