Need for Java Business Integration and Service Engines in NetBeans

Exclusive offer: get 50% off this eBook here
Building SOA-Based Composite Applications Using NetBeans IDE 6

Building SOA-Based Composite Applications Using NetBeans IDE 6 — Save 50%

Design, build, test, and debug service-oriented applications with ease using XML, BPEL, and Java web services with this SOA book and eBook

$29.99    $15.00
by David Salter Frank Jennings | February 2008 | Architecture & Analysis BPEL SOA Web Services Java Open Source

To gain a greater understanding of concept of SOA applications, BPEL processes and JBI applications, and to enable us to develop enterprise level SOA applications, we need to understand JBI in further depth, and how JBI components can be linked together. This article by Frank Jennings and David Salter will show the JBI Service Engine is supported within the NetBeans Enterprise Pack.

In this article, we will discuss the following topics:

  • Need for Java Business Integration (JBI)
  • Enterprise Service Bus
  • Normalized Message Router
  • Service Engines in NetBeans

Need for Java Business Integration (JBI)

To have a good understanding of Service Engines (a specific type of JBI component), we need to first understand the reason for Java Business Integration.

In the business world, not all systems talk the same language. They use different protocols and different forms of communications. Legacy systems in particular can use proprietary protocols for external communication. The advent and acceptance of XML has been greatly beneficial in allowing systems to be easily integrated, but XML itself is not the complete solution.

When some systems were first developed, they were not envisioned to be able to communicate with many other systems; they were developed with closed interfaces using closed protocols. This, of course, is fine for the system developer, but makes system integration very difficult. This closed and proprietary nature of enterprise systems makes integration between enterprise applications very difficult. To allow enterprise systems to effectively communicate between each other, system integrators would use vendor-supplied APIs and data formats or agree on common exchange mechanisms between their systems. This is fine for small short term integration, but quickly becomes unproductive as the number of enterprise applications to integrate gets larger. The following figure shows the problems with traditional integration.

Need for Java Business Integration and Service Engines in NetBeans

As we can see in the figure, each third party system that we want to integrate with uses a different protocol. As a system integrator, we potentially have to learn new technologies and new APIs for each system we wish to integrate with. If there are only two or three systems to integrate with, this is not really too much of a problem. However, the more systems we wish to integrate with, the more proprietary code we have to learn and integration with other systems quickly becomes a large problem.

To try and overcome these problems, the Enterprise Application Integration (EAI) server was introduced. This concept has an integration server acting as a central hub. The EAI server traditionally has proprietary links to third party systems, so the application integrator only has to learn one API (the EAI server vendors). With this architecture however, there are still several drawbacks. The central hub can quickly become a bottleneck, and because of the hub-and-spoke architecture, any problems at the hub are rapidly manifested at all the clients.

Enterprise Service Bus

To help solve this problem, leading companies in the integration community (led by Sun Microsystems) proposed the Java Business Integration Specification Request (JSR 208) (Full details of the JSR can be found at http://jcp.org/en/jsr/detail?id=208). JSR 208 proposed a standard framework for business integration by providing a standard set of service provider interfaces (SPIs) to help alleviate the problems experienced with Enterprise Application Integration.

The standard framework described in JSR 208 allows pluggable components to be added into a standard architecture and provides a standard common mechanism for each of these components to communicate with each other based upon WSDL. The pluggable nature of the framework described by JSR 208 is depicted in the following figure. It shows us the concept of an Enterprise Service Bus and introduces us to the Service Engine (SE) component:

Need for Java Business Integration and Service Engines in NetBeans

JSR 208 describes a service engine as a component, which provides business logic and transformation services to other components, as well as consuming such services. SEs can integrate Java-based applications (and other resources), or applications with available Java APIs.

Service Engine is a component which provides (and consumes) business logic and transformation services to other components. There are various Service Engines available, such as the BPEL service engine for orchestrating business processes, or the Java EE service engine for consuming Java EE Web Services.

The Normalized Message Router

As we can see from the previous figure, SE's don't communicate directly with each other or with the clients, instead they communicate via the NMR. This is one of the key concepts of JBI, in that it promotes loose coupling of services.

So, what is NMR and what is its purpose? NMR is responsible for taking messages from clients and routing them to the appropriate Service Engines for processing. (This is not strictly true as there is another standard JBI component called the Binding Component responsible for receiving client messages. Again, this further enhances the support for loose coupling within JBI, as Service Engines are decoupled from their transport infrastructure).

NMR is responsible for passing normalized (that is based upon WSDL) messages between JBI components. Messages typically consist of a payload and a message header which contains any other message data required for the Service Engine to understand and process the message (for example, security information). Again, we can see that this provides a loosely coupled model in which Service Engines have no prior knowledge of other Service Engines. This therefore allows the JBI architecture to be flexible, and allows different component vendors to develop standard based components.

Normalized Message Router enables technology for allowing messages to be passed between loosely coupled services such as Service Engines.

The figure below gives an overview of the message routing between a client application and two service engines, in this case the EE and SQL service engines.

Need for Java Business Integration and Service Engines in NetBeans

In this figure, a request is made from the client to the JBI Container. This request is passed via NMR to the EE Service Engine. The EE Service Engine then makes a request to the SQL Service Engine via NMR. The SQL Service Engine returns a message to the EE Service Engine again via NMR. Finally, the message is routed back to the client through NMR and JBI framework. The important concept here is that NMR is a message routing hub not only between clients and service engines, but also for intra-communication between different service engines.

The entire architecture we have discussed is typically referred to as an Enterprise Service Bus.

Enterprise Service Bus (ESB) is a standard-based middleware architecture that allows pluggable components to communicate with each other via a messaging subsystem.


Building SOA-Based Composite Applications Using NetBeans IDE 6 Design, build, test, and debug service-oriented applications with ease using XML, BPEL, and Java web services with this SOA book and eBook
Published: February 2008
eBook Price: $29.99
Book Price: $49.99
See more
Select your format and quantity:

Service Engines in NetBeans

The NetBeans Enterprise Pack provides a version of the Sun Java System Application Server 9.0 which includes several Service Engines from the Open ESB project.

All of these Service Engines can be administered from within the NetBeans IDE from the Services explorer panel. Within this panel, expand the Servers | Sun Java System Application Server 9 | JBI | Service Engines node to get a complete list of Service Engines deployed to the server.

Need for Java Business Integration and Service Engines in NetBeans

The NetBeans Enterprise Pack 5.5 and the NetBeans 6.0 IDE have different Service Engines installed. The following table lists which Service Engines are installed in which version of the NetBeans Enterprise Pack:

Service Engine Name

Description

NetBeans 6.0

NetBeans 5.5

sun-aspect-engine

Aspect Service Engine

Yes

No

sun-bpel-engine

BPEL Service Engine

Yes

Yes

sun-dtel-engine

DTEL Service Engine

Yes

No

sun-etl-engine

ETL (Extract, Transform and Load) Service Engine

Yes

No

sun-iep-engine

IEP (Intelligent Event Processor) Service Engine

No

No

sun-javaee-engine

Java EE Service Engine

Yes

Yes

sun-script-engine

Scripting Service Engine

Yes

No

sun-sql-engine

SQL Service Engine

Yes

No

sun-wlm-engine

WLM (Work List Manager) Service Engine

Yes

No

sun-xslt-engine

XSLT Service Engine

Yes

No

In the previous section, we discussed the life cycle of Service Engines and how this can be managed using the asadmin application. Using the NetBeans IDE, it is easy to manage the state of a Service Engine. Right-clicking on any of the Service Engines within the Services explorer shows a menu allowing the life cycle to be managed as shown in the figure below:

Need for Java Business Integration and Service Engines in NetBeans

To illustrate the different states in a Service Engine life cycle, a different icon is displayed:

Start

Stop

Shutdown

Uninstalled

The service engine is not displayed in the list.

Summary

Now we have a basic understanding of what a Service Engine is, how communication is made between application clients and Service Engines, and between Service Engines themselves, and what support the NetBeans IDE provides.

Building SOA-Based Composite Applications Using NetBeans IDE 6 Design, build, test, and debug service-oriented applications with ease using XML, BPEL, and Java web services with this SOA book and eBook
Published: February 2008
eBook Price: $29.99
Book Price: $49.99
See more
Select your format and quantity:

About the Author :


David Salter

David Salter is an enterprise software architect who has been developing software professionally since 1991. His relationship with Java goes right back to the beginning, using Java 1.0 for writing desktop applications and applets for interactive web sites. David has been developing Enterprise Java Applications using both the J2EE standards and open source solutions for the last five years. David runs the Java community web site Develop In Java, a web site for all levels of Java developers.

Frank Jennings

Frank Jennings works in the Information Products Group of Sun Microsystems Inc. He has more than 9 years of experience in Java, SOA and System Design. He is an Electronics Engineer from Madras University and has worked for several open source projects. Frank has written regular columns for leading Java journals including Java Developer's Journal and Linux Developer's Week. Frank is also the co-author of the book SOA Approach to Integration focusing on SOA design pattern for enterprises. Frank also is involved in the technical publication of Sun Microsystems in the fi elds of Solaris and Developer AMP Stack. His blog can be read at http://blogs.sun.com/phantom and he can be reached at theghost@sun.com. He also holds a Post Graduate Diploma in Computer Science and an Advance Diploma in Computer Integrated Management from University of Indianapolis

Books From Packt

 


Scalix: Linux Administrator’s Guide


Web 2.0 Website Programming with Django


AsteriskNOW


Programming Microsoft Dynamics NAV


SOA and WS-BPEL


Java EE 5 Development using GlassFish Application Server


Mastering OpenLDAP


OSWorkflow

 

 

No votes yet

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
k
x
B
P
7
M
Enter the code without spaces and pay attention to upper/lower case.
Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software