DICOM / HL7 Verfication / Java Basis Random user with no account justs wants to validate an HL7 message or DICOM object The next diagram shows a number of ways to achieve that. There are alternative solutions shown in this diagram. Four specific options/diagrams are then drawn to show how this would work if you chose certain implementations. There are certainly other options (or combinations of options). The next step is a table of benefits of the different approaches.
web browser DICOM files HL7 files Web server http request process the request or delegate to an abstract model object When business logic finished decide which view for client forward http request J2EE application server: Tomcat / Jboss / Weblogic Client View: JSP / html etc. Forward to corresponding view page Html as result from JSP generate http response Model: an interface specify operations, No concrete implementation An implementation for postgres An implementation For File System … New implementation For Oracle Middleware: Java Object business logic Persist data Process xml, XSLT Invoke services like RMI, Web services, JMS Clunie Tool C Joela HL7 Java DVTK delegate Define at deploy Like a plug n play DB xml DB JAXP dom4j Transform XSLT Web Services Embedded with AJAX Java Object call JAX-RPC using SOAP SAAJ: Soap with Attch. RMI JNI Web services JAX_RPC using SOAP RMI Notes: 1. If clunnie on Gazelle server box, it just direct java call, so does Joela HL7 app. Execute command Collection of Implementation Methods
web browser DICOM files HL7 files Web server http request process the request or delegate to an abstract model object When business logic finished decide which view for client forward http request J2EE application server: Tomcat / Jboss / Weblogic Client View: JSP / html etc. Forward to corresponding view page Html as result from JSP generate http response Validation Manager Clunie Tool C Joela HL7 Java DVTK Web Services Embedded with AJAX Java Object call JAX-RPC using SOAP SAAJ: SOAP with Attch. JNI Execute command JVM Encompassing Web Server Separate Windows computer with Web server and DVTK JVM Encompassing Web Server Gazelle main Linux computer Windows computer for DVTK Option 1: JNI
JVM Option 1: JNI Validate HL7 request received by web server Request passed on to Validation Manager (object within the JVM) Validation Manager invokes method on Joela/HL7 validator directly (part of the JVM) Validate DICOM request received by web server Request passed on to Validation Manager (object within the JVM) Clunie tool has been modified to expose one/more subroutines through a JNI interface Validation Manager invokes method on Clunie/JNI interface DVTK cannot live in the same JVM if Gazelle runs on a Linux box Validate DICOM request received by web server Request passed on to Validation Manager (object with the JVM) Validation Manager invokes Web Services on a separate Windows box that is running the DVTK software. Some Java (or other) glue code on the Windows box bridges the Web Services request to the DVTK evaluation software
Option 1 Assumptions Validation Manager is a Java class that is invoked by the Web Server (probably a Gazelle class before that). Pull as many managers as possible into the JVM that runs the Web Server Some software (DVTK) will have to run elsewhere For things not written natively in Java, use JNI to get to the C libraries or C++ objects
web browser DICOM files HL7 files Web server http request process the request or delegate to an abstract model object When business logic finished decide which view for client forward http request J2EE application server: Tomcat / Jboss / Weblogic Client View: JSP / html etc. Forward to corresponding view page Html as result from JSP generate http response Validation Manager Joela HL7 Java DVTK Web Services Embedded with AJAX Java Object call JAX-RPC using SOAP SAAJ: SOAP with Attch. Execute command JVM Encompassing Web Server Separate Windows computer with Web server and DVTK JVM Encompassing Web Server Gazelle main Linux computer Windows computer for DVTK Clunie Tool C “system” Option 2: No JNI
JVM Option 2: No JNI Same as Option 1 except that legacy code is not integrated using JNI but is executed through “system” commands
web browser DICOM files HL7 files Web server http request process the request or delegate to an abstract model object When business logic finished decide which view for client forward http request J2EE application server: Tomcat / Jboss / Weblogic Client View: JSP / html etc. Forward to corresponding view page Html as result from JSP generate http response Validation Manager Joela HL7 Java DVTK Embedded with AJAX Java Object RMI Execute command JVM Encompassing Web Server Separate Windows computer with DVTK JVM / No Web Server Needed Gazelle main Linux computer Windows computer for DVTK Clunie Tool C Option 3: RMI Java Object RMI
JVM Option 3: RMI Same as Option 2 except that remote applications (DVTK, Clunie) are invoked with RMI and not Web Services or “system” Implies one or more JVMs running on those systems to accept the RMI request
web browser DICOM files HL7 files Web server http request process the request or delegate to an abstract model object When business logic finished decide which view for client forward http request J2EE application server: Tomcat / Jboss / Weblogic Client View: JSP / html etc. Forward to corresponding view page Html as result from JSP generate http response Validation Manager Joela HL7 Java DVTK Embedded with AJAX Java Object Message Queue Execute command JVM Encompassing Web Server Separate Windows computer with DVTK JVM / No Web Server Needed Gazelle main Linux computer Windows computer for DVTK Clunie Tool C Option 4: Message Queue Java Object Message Queue
JVM Option 4: Message Queue Same as Option 3 except that communication from the Evaluation Manager to components outside the JVM is through a Message Queue