J2EE application server

Download Report

Transcript J2EE application server

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.
Client
http request
Web server
Embedded with AJAX
web browser
J2EE application server:
Tomcat / Jboss / Weblogic
http response
Html as result from JSP
forward http request
process the request
or
delegate to an abstract model object
DICOM
files
When business logic finished
decide which view for client
HL7
files
generate
Forward to corresponding view page
View: JSP / html etc.
delegate
Model: an interface
specify operations,
No concrete implementation
JAX-RPC using SOAP
SAAJ: Soap with Attch.
Middleware: Java Object
business logic
Persist data
Process xml, XSLT
Invoke services like RMI,
Web services, JMS
Define at deploy
Like a plug n play
DB
An implementation
For File System
…
Collection of
Implementation
Methods
An implementation
for postgres
JAXP
dom4j
xml
New implementation
For Oracle
DB
Transform XSLT
Web Services
call
Java Object
JAX_RPC using SOAP
Web services
Execute command
DVTK
RMI
RMI
RMI
Notes:
1. If clunnie on Gazelle server box,
it just direct java call, so does
Joela HL7 app.
JNI
Joela HL7
Java
Clunie Tool
C
Client
http request
Web server
Embedded with AJAX
web browser
J2EE application server:
Tomcat / Jboss / Weblogic
http response
Html as result from JSP
forward http request
DICOM
files
HL7
files
process the request
or
delegate to an abstract model object
When business logic finished
decide which view for client
Validation Manager
Forward to
corresponding
view page
View: JSP / html etc.
Joela HL7
Java
JNI
Clunie Tool
C
Option 1:
JNI
JAX-RPC using SOAP
SAAJ: SOAP with Attch.
Web Services
Gazelle main
Linux computer
Separate Windows computer
with Web server and DVTK
call
Java Object
Windows
computer for
DVTK
Execute command
DVTK
generate
JVM Encompassing
Web Server
JVM Encompassing
Web Server
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
Client
http request
Web server
Embedded with AJAX
web browser
J2EE application server:
Tomcat / Jboss / Weblogic
http response
Html as result from JSP
forward http request
DICOM
files
HL7
files
process the request
or
delegate to an abstract model object
When business logic finished
decide which view for client
Validation Manager
View: JSP / html etc.
Joela HL7
Java
JVM Encompassing
Web Server
Option 2:
No JNI
“system”
JAX-RPC using SOAP
SAAJ: SOAP with Attch.
Web Services
Gazelle main
Linux computer
Separate Windows computer
with Web server and DVTK
call
Java Object
Windows
computer for
DVTK
generate
Forward to
corresponding
view page
Execute command
DVTK
JVM Encompassing
Web Server
Clunie Tool
C
JVM Option 2: No JNI
• Same as Option 1 except that legacy code
is not integrated using JNI but is executed
through “system” commands
Client
http request
Web server
Embedded with AJAX
web browser
J2EE application server:
Tomcat / Jboss / Weblogic
http response
Html as result from JSP
forward http request
DICOM
files
HL7
files
process the request
or
delegate to an abstract model object
When business logic finished
decide which view for client
Validation Manager
generate
Forward to
corresponding
view page
View: JSP / html etc.
Joela HL7
Java
JVM Encompassing
Web Server
Option 3:
RMI
RMI
RMI
Separate Windows computer
with DVTK
Gazelle main
Linux computer
Java Object
Java Object
Windows
computer for
DVTK
Execute command
DVTK
JVM / No
Web Server Needed
Clunie Tool
C
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
Client
http request
Web server
Embedded with AJAX
web browser
J2EE application server:
Tomcat / Jboss / Weblogic
http response
Html as result from JSP
forward http request
DICOM
files
HL7
files
process the request
or
delegate to an abstract model object
When business logic finished
decide which view for client
Validation Manager
generate
Forward to
corresponding
view page
View: JSP / html etc.
Joela HL7
Java
JVM Encompassing
Web Server
Option 4:
Message
Queue
Message Queue
Message Queue
Separate Windows computer
with DVTK
Gazelle main
Linux computer
Java Object
Java Object
Windows
computer for
DVTK
Execute command
DVTK
JVM / No
Web Server Needed
Clunie Tool
C
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