dicom / hl7 verfication / java basis random user with no account justs wants to validate an hl7...
TRANSCRIPT
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
DICOMfiles
HL7files
Web serverhttp request
process the requestor
delegate to an abstract model object
When business logic finisheddecide 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 interfacespecify operations,
No concrete implementation
An implementation for postgres
An implementationFor File System
…
New implementationFor Oracle
Middleware: Java Objectbusiness logicPersist data
Process xml, XSLTInvoke services like RMI,
Web services, JMS
Clunie ToolC
Joela HL7JavaDVTK
delegate
Define at deployLike a plug n play
DB
xmlDB
JAXPdom4j
Transform XSLT
Web Services
Embedded with AJAX
Java Object
call
JAX-RPC using SOAPSAAJ: Soap with Attch.
RMI
JNI
Web
services
JAX_RPC using SOAP
RMIRMINotes: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
DICOMfiles
HL7files
Web serverhttp request
process the requestor
delegate to an abstract model object
When business logic finisheddecide 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 ToolC
Joela HL7Java
DVTK
Web Services
Embedded with AJAX
Java Object
call
JAX-RPC using SOAPSAAJ: SOAP with Attch.
JNI
Execute command
JVM Encompassing Web Server
Separate Windows computerwith 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
DICOMfiles
HL7files
Web serverhttp request
process the requestor
delegate to an abstract model object
When business logic finisheddecide 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 HL7Java
DVTK
Web Services
Embedded with AJAX
Java Object
call
JAX-RPC using SOAPSAAJ: SOAP with Attch.
Execute command
JVM Encompassing Web Server
Separate Windows computerwith Web server and DVTK
JVM Encompassing Web Server
Gazelle main Linux computer
Windows computer for
DVTK
Clunie ToolC
“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
DICOMfiles
HL7files
Web serverhttp request
process the requestor
delegate to an abstract model object
When business logic finisheddecide 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 HL7Java
DVTK
Embedded with AJAX
Java Object
RMI
Execute command
JVM Encompassing Web Server
Separate Windows computerwith DVTK
JVM / No Web Server Needed
Gazelle main Linux computer
Windows computer for
DVTK
Clunie ToolC
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
DICOMfiles
HL7files
Web serverhttp request
process the requestor
delegate to an abstract model object
When business logic finisheddecide 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 HL7Java
DVTK
Embedded with AJAX
Java Object
Message Queue
Execute command
JVM Encompassing Web Server
Separate Windows computerwith DVTK
JVM / No Web Server Needed
Gazelle main Linux computer
Windows computer for
DVTK
Clunie ToolC
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