NIH | National Cancer Institute | NCI Wiki  

WIKI USER NOTICE

Our team has made changes to the base user permissions for Wiki. We expect no impact to users' ability to use Wiki; however, if you find that you no longer can login today where you could previously, please email our team directly and we can assist you. Otherwise, you may ignore this message.

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Wiki Markup
{scrollbar:icons=false}

Page info
title
title

Panel
titleContents of this Page
Table of Contents
minLevel2
Panel
titleDocument Information

Author: Craig Stancl, Scott Bauer, Kevin Peterson
Email: stancl.craig@mayo.edu, bauer.scott@mayo.edu, peterson.kevin@mayo.edu
Team: LexEVS
Contract: CBITT BOA Subcontract# ST121106
Client: NCI CBIIT
National Institutes of Heath
US Department of Health and Human Services

Revision History

Version

Date

Description of Changes

Author

1.0

2013/02/21

Initial Version

---

CTS2 REST Services

1       Architecture Design

The CTS2 Development Framework is a development kit for rapidly creating CTS2 compliant applications. The Development Framework allows for users to create plugins which may be loaded into the Development Framework to provide REST Web Services that use CTS2 compliant paths and model objects. Because the Development Framework is plugin based, users are required only to implement the functionality that is exclusive to their environment. For example, in any REST service, a large portion of code must be written to accept HTTP requests, handle errors, accept parameters, etc. The Development Framework provides all of this infrastructure, as well as utilities to help create plugins. The developer then is left to create the implementation plugin, which is the code specific to the individual environment. For example, this code may retrieve data from a database, read data from a file system, aggregate two more other services, etc.

 

CTS2 is modeled abstractly (the Platform Independent Model or ‘PIM’) and for specific platforms (the Platform Specific Model or ‘PSM’). The CTS2 Development Framework attempts to transform these ideas into the MVC architecture style. Much like a traditional MVC implementation, multiple ‘Views’ expose the ‘Model’ with the help of the ‘Controller’. If we think of a ‘PSM’ as a ‘View’, and the CTS2 Development Framework acting as the ‘Controller’, a developer needs only to produce the ‘PIM’ based ‘Model’. Going further:

Model View Architecture (MVC)

Model

Transforms View (CTS2 PIM) structures into state (aka “backing store”)
Enforces post-conditions
May also enforce some invariants

View

Implements the static portion of the CTS2 model
(Indirectly) enforces some invariants

Controller

Implements the behavioral portion of the CTS2 model
Accepts events
Validates invariants
Enforces preconditions

1.1 Logical View

1.2 Software Architecture

1.2.1 High Level Structure

1.2.2 Basic Request Sequence

More

Wiki Markup
{scrollbar:icons=false}