ITK Testbench v3.0.25 Open Source Damian Murphy (damian.murphy@hscic.gov.uk) Richard Robinson (rrobinson@hscic.gov.uk) 30th October 2013 This package contains the first open source release of the "ITK Testbench" (TKW). TKW is used for a number of purposes around ITK and programmes or initiatives which use ITK technologies: - Along with its configuration packs it provides technical support for the accreditation processes: message validation and simulated endpoints for sending and receiving messages. - With the configuration packs it provides a reference implementation for the ITK and other interface specifications via endpoint simulation. - It is available to any development project to support testing without reference to DHID. - It provides a "home" for experimental implementations in support of specification development. Examples included are routing, the interface between ITK and XDR messages demonstrated at EHI Live 2011, and an upcoming mechanism for transporting ITK messages over Spine. A copy of the TKW binary is bundled with the accreditation packs. Packs released from April 2012 will be bundled with a binary based on this and subsequent open source code. The code is licenced under the Apache Licence, version 2.0: Copyright 2011 Damian Murphy Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. What is in the pack: Sources and Javadoc for TKW-v3.0.25-Open. For supporting libraries and test cases, see the released ITK and other programme accreditation packs at http://systems.hscic.gov.uk/sa/tools using the download link under "Interoperability Toolkit (ITK) Testbench". The accreditation packs also contain a copy of the user configuration guide. The dependencies are: - Java JDK 1.6 or later (it should build with 1.5, but nothing earlier due to extensive use of generics) - Safehaus' "JUG" UUID generator, Apache licence version: jug-asl-2.0.0.jar - Apache Commons codec: commons-codec-1.3.jar - Apache XercesJ 2.8.0: xercesImpl.jar - Saxon v9 "HE": saxon9he.jar What is implemented: - ITK SOAP message transmission including WS-Security header signing - ITK SOAP message receipt and rules-based simulated or processed synchronous and asynchronous responses for both XML messages and delimited HL7v2, including optional checking of received WS-Security headers. - Clear-text and mutually-authenticated TLS communications - Non-persistent implementation of the queue collection interface - Partial implementation of the ITK routing specification - Conversion between delimited- and XML presentations of HL7v2 messages, for handling messages. Source code for the standalone form of the converter bundled with the TKW accreditation packs will be opened in due course (although it is simply a standalone version of the code included here). - Message validation processing engine for ITK and Spine messages. - Implementation of the ITK DTS transport specification. This is subject to the caveats that the interface concentrates on writing the relevant DTS "data" and "control" files only, and is not an implmementation of the DTS client software. Also, TKW currently implements use of DTS as a routing transport, as opposed to one for general point-to-point messaging. - Implementation of the draft ITK <--> XDR interoperability specification, this subject to the caveat that full usability of the specification is dependent on work ongoing between IHE and DHID on document metadata. - Test automation. Engine to execute multiple test messages/conditions in sequence and generate a report, using tst format files which describe each test and the environment in which it should be executed. Experimental components: Some components are included in this release which are "experimental", and their use is not recommended at present: - "ITK-over-Spine" message forwarding. This was originally part of a proof-of-concept and whilst it remains to support the forthcoming ITK Trunk message, the actual message used is not the one which will be in the specification when it is published. The underlying principle remains unchanged.