Wednesday Oct 06, 2010

Migrating Java CAPS 5/6 Assets to Oracle SOA Suite 11g - HL7 JCD to Spring Component Migration

This article is of potential interest to these Sun/SeeBeyond customers who have an investment in moderate and large Java Collaboration Definition-based transformation and mapping rules, and who are looking for ways to reuse as much as possible of the Java code involved, when migrating to the Oracle SOA Suite. The example developed in this article comes from the healthcare domain and uses the HL7 OTDs (Object Type Definitions). This is a deliberate choice because all but the most trivial HL7 transformations will involve hundreds of lines of Java code, therefore are a good candidates for migrating to the SOA Suite Spring Component as means of preserving the code and the effort invested in developing it. This does not make the method domain-specific. On the contrary, the method is applicable to all other domains where JCDs with significant transformation and mapping rules content are used.

Discussion in this article addresses a subset of technologies available in the Java CAPS and in the SOA Suite. Specifically, the Java Collaboration Definitions supported in Java CAPS 5.x and in Java CAPS 6/Repository, and the Spring Component supported in the SOA Suite 11g R1 PS2. Both use the Java programming language and related runtime environment to implement processing logic.  There is no discussion pertaining to JBI-based technologies or Java CAPS BPEL-based technologies. There is no discussion about other ways in which Java logic can be deployed as part of a Oracle SOA Suite solution.

The HL7 eWay and JCD based Java CAPS solution will be ported to the Oracle SOA Suite 11g B2B and Mediator-based environment. HL7 Adapters will be replaced with the Oracle “Healthcare Adapters”, provided by the SOA Suite B2B HL7 support infrastructure. Routing will be provided by the Mediator component and transformation logic will be ported to the Spring Component.

This article walks through the process of “extracting” JCD source and related archives from Java CAPS, developing a stand-alone Java application which uses the JCD source, encapsulating JCD source in a Spring component and finally reproducing Java CAPS HL7 solution functionality in an equivalent SOA Suite solution.

The complete article is available through the original blog at http://blogs.czapski.id.au/2010/10/migrating-java-caps-56-assets-to-oracle-soa-suite-11g-hl7-jcd-to-spring-component-migration

Tuesday Aug 31, 2010

Oracle SOA Suite 11g R2 B2B - Receiving a Stream of Multiple HL7 v2 Message Types

In this article I discuss and illustrate a “SOA-less” solution in which the Oracle SOA Suite 11g R2 B2B receives a stream of different HL7 v2 delimited messages types (A01 and A03) using a single inbound adapter. The messages are converted into their “equivalent” HL7 v2 XML messages. I say “SOA-less” because all the work is done entirely within the B2B part of the SOA Suite – no OSB or SOA Composites are involved.

The complete text of the article is availabloe at http://blogs.czapski.id.au/wp-content/uploads/2010/08/07_Oracle_SOA_Suite_B2B_Receiving_Stream_of_

Monday Aug 30, 2010

Oracle SOA Suite 11g R2 B2B Quick HL7 v2 Delimited to HL7 v2 XML Conversion

In this article I discuss and illustrate a “SOA-less” solution which uses the Oracle SOA Suite 11g R2 B2B functionality to convert HL7 v2 delimited messages into their equivalent HL7 v2 XML messages. I say “SOA-less” because all the work is done entirely within the B2B part of the SOA Suite – no OSB or SOA Composites are involved.

The article text is available at http://blogs.czapski.id.au/wp-content/uploads/2010/08/06_Oracle_SOA_Suite_B2B_Quick_HL7v2_Delimited_to_HL7v2_XML_Conversion_v1.0.0.pdf

Sunday Jun 27, 2010

Oracle SOA Suite 11g HL7 Inbound Example - Back End-constructed Functional ACK Addendum

This article is a follow on to the “Oracle SOA Suite 11g HL7 Inbound Example – Functional ACK Addendum” article and the “Oracle SOA Suite 11g HL7 Inbound – Customized HL7 Message Structure and Data Validation” article. In these articles the B2B infrastructure was configured to return the “Functional ACK” when it validated each message. The ACK was a positive or a negative ACK depending on whether the message passed validation. The ACK was generated by the B2B Layer before the message was passed on to the SOA Layer.

In this article I expand on the previous posts by configuring the B2B Layer to pass the message to the SOA Layer and pass the Functional ACK, generated by the SOA Layer on to the requester. To process a message and produce the ACK we will build and deploy a new SOA Composite.

The original article, Oracle SOA Suite 11g HL7 Inbound Example – Back End-constructed Functional ACK Addendum, is to be found at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-inbound-example-back-end-constructed-functional-ack-addendum

Saturday Jun 26, 2010

Oracle SOA Suite 11g HL7 Inbound - Customized HL7 Message Structure and Data Validation

Messages we used in previous articles dealing with HL7 Inbound (Oracle SOA Suite 11g HL7 Inbound Example – Functional ACK Addendum, Oracle SOA Suite 11g HL7 Inbound Example) were not strictly speaking valid according to the default HL7 V2 ADT A01 message specification produced by the Oracle B2b Document Editor. Both the message structure was not quite right and the data was not quite right. To allow such messages in, we disabled Validation property in the B2B Trading Partnership Agreement.

In this article we will alalyze the data and  create a customized HL7 v2 ADT A01 structure which will allow us to successfully validate incoming messages. We will then modify the document definition and Partnership Agreements to use this custom structure and validate messages as they come in.

The customization discussed in this article only scratches the surface of what is possible with the Oracle B2B Document Editor.

The original article is available at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-inbound-customized-hl7-message-structure-and-data-validation

Friday Jun 25, 2010

Oracle SOA Suite 11g HL7 Outbound Example

In this article I develop and exercise a simple Oracle SOA Suite 11g B2B infrastructure-based HL7 v2 Sender (outbound) project for an ADT A01 message and use Message tracker to view messages.

This article complements previous articles in the series, Oracle SOA Suite 11g HL7 Inbound Example and Oracle SOA Suite 11g HL7 Inbound Example – Functional ACK Addendum.

The original article is available at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-outbound-example

Wednesday Jun 23, 2010

Oracle SOA Suite 11g HL7 Inbound Example - Functional ACK Addendum

This article is a follow on to the “Oracle SOA Suite 11g HL7 Inbound Example”, at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-inbound-example. In that article the B2B infrastructure was configured to return the “immediate ack” as soon as it received each message. The ACK was always a positive ACK, regardless of whether the message was valid or not and whether it was successfully processed.

In this article I expand on the previous post by adding the Functional ACK, an explicit ACK message, which is returned after a message is parsed and validated, if validation is required. This means that rather than always returning an ACK the receiver will return a NAK if the message is invalid.

The original article is available at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-inbound-example-functional-ack-addendum

Saturday Jun 19, 2010

Oracle SOA Suite 11g HL7 Inbound Example

As Sun Microsystems, and SeeBeyond before it, Oracle provides support for integration of systems which use HL7 v2.x messaging. Unlike Sun, and SeeBeyond before it, Oracle treats HL7 messaging as Business to Business exchanges (B2B) and uses the B2B part of the Oracle SOA Suite to accomplish the task [1].

In this article I develop and exercise a simple Oracle SOA Suite 11g B2B infrastructure-based HL7 v2 Receiver project for an ADT A01 message and use Message tracker to view messages, message states and messaging performance.

The original article can be found at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-inbound-example

Installing Oracle SOA Suite 11g for HL7 Exploration

As Sun Microsystems, and SeeBeyond before it, Oracle provides support for integration of systems which use HL7 v2.x messaging. Unlike Sun, and SeeBeyond before it, Oracle treats HL7 messaging as Business to Business exchanges (B2B) and uses the B2B part of the Oracle SOA Suite to accomplish the task [1].

There are numerous articles on Oracle SOA Suite and on Oracle B2B. To wade through this material to get to a concise set of steps needed to get started with HL7 messaging is a chore precisely because there is so much material about the SOA Suite and so little on how to deal with HL7 suing it. I set off to work out what it takes to do HL7 messaging and to document it for myself and others.

This article walks through the installation and configuration of all Oracle software necessary to implement HL7 v2.x messaging as development / experimentation environment. It assumes a single machine with limited resources.

I expect that there will be subsequent articles in this series which will use this infrastructure to implement specific HL7 v2.x examples.

The original post can be found at http://blogs.czapski.id.au/2010/06/installing-oracle-soa-suite-11g-for-hl7-exploration

Sunday Apr 25, 2010

Exercising a Resilient Java CAPS 6 HL7 v2 Repository Solution

From time to time prospective clients ask for a proof that Java CAPS will not loose HL7 messages in the event of machine or network failure.

In this Note a heterogeneous, non-clustered collection of hosts will be used to implement and exercise Java CAPS 6/Repository HL7 v2 based solutions. The environment consists of two independent “machines”, which are not a part of an Operating System Cluster. Each “machine” hosts a GlassFish Application Server, which is the Java CAPS 6 runtime. Application Servers are independent of one another and are not clustered. This is to demonstrate that HL7 processing components, and solutions based on these components and other standard components in the Java CAPS infrastructure, can be designed and implemented in such a way that message loss in the event of typical failure and disruption scenarios is avoided.

This note discusses an exercise involving an example healthcare environment processing HL7 v2 messages. Discussion includes customization of a generic Java CAPS 6.2 VMware Virtual Appliance for a specific HL7 exercise and deploying ready-made Java CAPS 6/Repository-based solutions. The exercise for HL7 eWay and HL7 Inbound and Outbound projects, processing HL7 v2.3.1 messages, will be conducted and discussed.

The reader will be convinced that a resilient Java CAPS solution can be configured and that it will process messages in the face of typical failure and disruption scenarios without message loss or duplication.

Note that this article is not introductory in nature. It assumes that the reader has a fairly good working knowledge of the Java CAPS 5 or Java CAPS 6/Repository product and a good working knowledge of related areas, such as HL7 messaging, virtualisation and suchlike. These matters are not explained in this article.

The original article is available as a blog entry "Exercising a Resilient Java CAPS 6 HL7 v2 Repository Solution" at http://blogs.czapski.id.au/2010/04/exercising-a-resilient-java-caps-6-hl7-v2-repository-solution

Saturday Apr 24, 2010

Installing Java CAPS 6.2 Runtime on the Basic JeOS Appliance for HL7 Resilience Testing

From time to time prospective clients ask for a proof that Java CAPS will not loose HL7 messages in the event of machine or network failure.

This note walks through the process of installing a Java CAPS 6.2 runtime on the Base OpenSolaris-based VMware Virtual Appliance, discussed in the Blog Entry “GlassFish ESB v2.x Field Notes - Preparing Basic JeOS Appliance for GlassFish ESB LB and HA Testing” at http://blogs.czapski.id.au/?p=15.

At the end of the Note we will have a Java CAPS 6.2 VMware Appliance with Java CAPS 6.2 Runtime infrastructure, ready to use for reliability testing, or any other purpose for which a Java CAPS 6.2 runtime appliance might be appropriate.

The blog article is at my personal blog site - "Installing Java CAPS 6.2 Runtime on the Basic JeOS Appliance for HL7 Resilience Testing".

Friday Feb 26, 2010

GlassFish ESB Resilience Options

It is expected that business solutions, whether designed in accordance with the Service Oriented Architecture principles, or designed following any of the other accepted architectural principles, are robust, reliable and available. Robustness, reliability and availability, in this context, means not just that solutions are free of design and implementation defects but are also architected and deployed in such a way that business users can access them when needed, in spite of any failures that may occur.

In an ideal world all applications will always be available for use. In the real world this may not be possible, or may not be possible at a reasonable cost.

The document referenced below discusses resilience options available to the designers of GlassFish ESB solutions and considerations that need to be entered into when designing GlassFish ESB solutions for resilience and high availability.

The original article, GlassFish ESB Resilience Options, is available at http://blogs.czapski.id.au/2010/03/glassfish-esb-resilience-options

Wednesday Feb 24, 2010

HL7 v2.3.1 Standard document is available online?

For these who have a need, the HL7 v 2.3.1 standard document is available online at http://www.medclinic.net/HL7Specs/ as at February 24, 2010. The site does not seems to have been updated for a long time so the standard document may well be available for a while longer.

HL7 v 2.3 document is available at http://www.uhc.com.pl/teksty/HL7/, again, as at February 24, 2010.

IHE Europe has an interesting "interactive" site where HL7 can be "explored" at http://ihe.univ-rennes1.fr/HL7/.


Friday Jan 29, 2010

GFESB v2.x – Using NMProperties in BPEL 2.0 to force the HTTP BC to send the “connection: close” HTTP header

In the major writeup called “GlassFish ESB v2.2 Field Notes - Exercising Load Balanced, Highly Available, Horizontally Scalable HL7 v2 Processing Solutions”, 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 section called “WS Projects”, pages 35-36 , I discuss how NMProeprties in BPEL 2.0 can be used to force the HTTP BC to send the “connection: close” HTTP header, instead of the “connection: keep-alive” HTTP header, which it sends by default. Normally this does not matter but if a load balancer is to be used as a proxy, and a round robin load balancing is desired, the “connection: keep-alive” gets in the way. Rather then closing a connection after each HTTP request/response, as HTTP protocol was designed to do, “connection: keep-alive” HTTP header indicates to the server that connection is not to be closed in anticipation of another request coming form the same source “shortly”. Since the HTTP BC does not seem to have a place where this header can be removed or changed to “connection: close”, NMProperties in BPEL have to be used to force connection closure and enable correct load balancing behavior.

GFESB v2.x - Using WS-Addressing in BPEL 2.0 to implement the “Routing Ticket” EIP Pattern

In the major writeup, now called “CH05_WSSecurityExploration_r0.4.2.pdf”, at http://blogs.czapski.id.au/wp-content/uploads/2010/03/CH05_WSSecurityExploration_r0.4.2.pdf, in section 5.14.3, “Using WS-Addressing for Explicit Routing”, I discuss how WS-Addressing can be used to implement a variant of the “Routing Ticket” EIP Pattern. A one-way web service consumer sends a request to a request/reply web service, indicating, using WS-Addressing, the address of a one-way web service to which to send the response. 
About

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.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today