Wednesday Jan 27, 2010
Tuesday Jan 05, 2010
GlassFish ESB v2.2 Field Notes - Exercising Load Balanced, Highly Available, Horizontally Scalable HL7 v2 Processing Solutions
By Michael.Czapski on Jan 05, 2010
In this Note a heterogeneous, non-clustered collection of hosts will be used to implement and exercise three load balanced, highly available GlassFish ESB-based solutions. The environment consists of a number of independent “machines”, which are not a part of an Operating System Cluster. Each “machine” hosts a GlassFish Application Server. Application Servers are independent of one another and are not clustered. This is to demonstrate that load balanced, highly available, horizontally scalable solutions, based on the GlassFish ESB software alone, can be designed and implemented.
The specific class of solutions to which this discussion applies is the class of solutions which:
1. are exposed as request/reply services
a. HL7 messaging with explicit Application Acknowledgment2. implement business logic as short lived processes
b. Request/Reply Web Services
c. JMS in Request/Reply mode
a. atomicClasses of solutions with characteristics different from these named above require different approaches to high availability and horizontal scalability, and are not discussed here.
b. are idempotent
c. tolerant of duplicate messages
In this Note only high availability and scalability of receiver solutions is addressed. This aspect is the focus because a failure to process a message by a receiver may result in message loss –generally a bad thing.
Paradoxical as it may sound; senders are special cases of receivers. Just as a receiver is triggered by arrival of a message so too is a sender. Making sure that the sender trigger message does not get lost is much the same as making sure the message a receiver receives does not get lost. This means that the same considerations apply to senders and to receivers.
This note discusses an exercise involving an example load balanced, highly available, horizontally scalable healthcare environment, processing HL7 v2 messages. Discussion includes customization of generic GlassFish ESB v2.2 VMware Virtual Appliances for a specific Load Balancing and High Availability exercise and deploying ready-made GlassFish ESB solutions. The exercise for HL7 BC-based, Web Service-based and JMS-based highly available, load balanced, and horizontally scalable receivers, processing HL7 v2.3.1 messages, will be conducted and discussed.
At the end of the Note we will have three GlassFish ESB VMware Appliances with GlassFish ESB v2.2 Runtime infrastructure, ready to use for further GlassFish ESB Load Balancing and High Availability exercises.
The reader will be convinced, one hopes, that for the applicable class of GlassFish ESB-based solutions, load balancing and dynamic failover without message loss work. For that class of solutions this provides for high availability and horizontal scalability without resorting to Application Server or Operating System clustering.
The article is available at http://blogs.czapski.id.au/2010/01/glassfish-esb-v2-2-field-notes-exercising-load-balanced-highly-available-horizontally-scalable-hl7-v2-processing-solutions
In this Blog I post abstracts of articles / writeups / notes on various aspects of Java CAPS and SOA Suite including solutions, discussions and screencasts. The links to the referenced material are included in the bodies of the abstracts.
- Using QBrowser v2 with WebLogic JMS for 10.3
- Oracle SOA Suite 11g B2B HL7 v2 Inbound to WebLogic JMS Queue
- Healthcare Enterprise – IT Architecture Building Blocks - Canonical Message Model for a HL7 Enterprise
- Migrating Java CAPS 5/6 Assets to Oracle SOA Suite 11g - HL7 JCD to Spring Component Migration
- Oracle SOA Suite 11g R2 B2B - Receiving a Stream of Multiple HL7 v2 Message Types
- Oracle SOA Suite 11g R2 B2B Quick HL7 v2 Delimited to HL7 v2 XML Conversion
- Oracle SOA Suite 11g HL7 Inbound Example - Back End-constructed Functional ACK Addendum
- Oracle SOA Suite 11g HL7 Inbound - Customized HL7 Message Structure and Data Validation
- Oracle SOA Suite 11g HL7 Outbound Example
- Oracle SOA Suite 11g HL7 Inbound Example - Functional ACK Addendum