Overview

This all volunteer team has been formed to advance the REST Implementation proposal to a concrete implementation. This is in the context of the process driven by the Concrete Implementation Workgroup. For those volunteering for this effort (and anyone else interested), please set your wiki notification configuration for the following two pages so that you see changes/discussions via email or RSS (or set your wiki-wide configuration to see all changes/discussions):

http://nhindirect.org/REST+Implementation+Development+Team
http://nhindirect.org/REST+Specification

The REST Implementation Capabilities Worksheet provides a detailed analysis of the REST approach.

Three implementations of the REST interfaces have been created. Two of the reference implementations are written in Java (one using Spring MVC 3.0 and other Jersey) and the third one written using Ruby on Rails.

Deprecated REST spec: http://nhindirect.org/REST+Implementation

Volunteers - Java Implementations

Name
Affiliation
Brett Peterson/Bill Becker
VisionShare
Paul Saxman
Google
David Kibbe
Clinical Groupware Collaborative
Mark Stine/Chris Moyer
MedPlus/Quest Diagnostics
Ravi Madduri
Argonne National Labs/University of Chicago

Volunteers - Ruby on Rails Implementation

Name
Affiliation
Arien Malec
Private (not representing NHIN Direct in this effort)

Approach

This project has implemented two prototype HISP implementations (one in Java and one in Ruby) based on the Software Map described below.

Software Map

Conceptually, REST is not necessarily tied to HTTP; however, this reference implementation will assume HTTP and build upon it. As currently specified in the REST implementation, URL query parameters will not be used. Resources are addressed by URL paths only with non-standard HTTP headers used as little as possible. OpenSSL was used to create a test CA that is used to generate certificates as needed for test implementation.

The concepts from the NHIN Direct Abstract Model are mapped to the following software.

NHIN Direct Message: The MIME-based guidelines provided by the Content Container Specification are mapped to HTTP headers (as necessary) and (mostly) the HTTP request body.

NHIN Direct Address: This follows the Addressing Specification with the To address being expressed as a path element in the URI.

NHIN Direct HISP Address Directory: This is DNS.

HISP: This component has been written as a Spring MVC 3.0-based web application deployed in a Jetty container and as a Ruby on Rails implementation.

Task List

This list is intended to allow team members to pick off specific pieces of work that can be done and integrated into the project as a whole. If you are working on an item, put your name in front of it and an expected completion date.

Name
Expected Completion Date
Task


Agree on how HISP-to-HISP authentication and authorization will work. Either extract a username from the HISPs Subject CN or insert the originating user's username in the Basic HTTP "Authoriization" header. Implement in Java and Ruby of Rails HISPs.

Details about the implementation using Jersey can be found here: