Thursday January 15, 2009
A Tangled Web
- All
- Motorcycle Mania
- Open ESB
- Personal
Scheduler Binding Component
The new Scheduler Binding Component is in incubator status and is available for download. It works in both the OpenESB v2 and Fuji environments. For more information, check out these links to Ed Wong's blog:
- Ed's blog entry on new Scheduler BC
- Ed's blog entry on Cron Trigger for Scheduler BC
- Ed's blog entry on Systemic Qualities in Scheduler BC
- Ed's blog entry on Fuji-enabled Scheduler BC
- Ed's blog entry on adding Scheduler BC to your Fuji environment
For you Fuji fans, the Scheduler BC archetype is now integrated into Fuji and the Scheduler BC bundle can be downloaded from the Maven repository on dev.java.net. Note that you still need to download and install the Spring libraries referred to in Ed's blog entry on adding the Scheduler BC to a Fuji environment. Do this in whatever OSGi runtime you are using for your Fuji work.
For even more information, see the Scheduler BC wiki page.
Posted at 02:32PM Jan 15, 2009 by mwhite in Open ESB |
Fuji Milestone 3 is here!
Hot on the heels of the recently-released GlassFish ESB Release Candidate 1, we continue to move forward on Project Fuji, our exciting new OSGi-based technology which will form the foundation for the next-generation SOA integration platform, GlassFish ESB.next. This project has two sides: one is evolutionary, meaning Adapters (binding components) and Containers (service engines) from the current v2 offerings will run in Fuji, as will applications built using the v2 tooling. The other side is revolutionary, in that lots of innovation is happening in the area of productivity.
Milestone 3 of Project Fuji introduces a cool new lightweight web-based tooling option for composing applications.
From this page you can watch the Fuji Milestone 3 Screencast showing how a simple drag and drop browser interface is used to easily build the same demo that was built in Miletone 2. It is worth noting here that the browser interface creates the same IFL that was written in the IDE for Milestone 2, and that you can checkout the IFL created by the web-based tooling and import the project into your IDE if you wish.
All of this ties right into the goal of Fuji: productivity through flexibility, agility, and ease of use. Here's what this milestone provides in those areas:
- Flexibilty: the tooling choices are expanded with the availability of a browser-based UI
- Agility: there is the new "automatically save and deploy" option in the tooling, which is one step towards our goal of making it very easy to develop, test and correct your application as you go along
- Ease of use: the web-based tooling provides simple visual modeling of enterprise integration patterns with simple properties dialogs to configure them
As always, we welcome feedback on Project Fuji!
Posted at 05:48PM Nov 26, 2008 by mwhite in Open ESB | Comments[0]
Open ESB Logging
Extensive logging capabilities are available in Open ESB v2 to help diagnose runtime problems and to help a component developer diagnose problems within a component. This discussion describes what logging facilities are available in the JBI runtime and how to control the levels of the various loggers. For a detailed look at the logging support for JBI components, please see my blog entry here.
JBI Runtime Logging
The JBI runtime has separately controllable loggers for its various sub-components to allow diagnosis at a fine-grained level without generating excessive amounts of logging output. There is also a top-level logger, com.sun.jbi, which is the parent of all of the sub-component loggers. The first time the runtime is initialized, the top-level logger defaults to a level of INFO, and all sub-component loggers have their levels set to null so that they inherit their levels from the top-level logger. Any logger levels that are set thereafter are always persisted so that they are restored after a restart of the runtime. There is a special logger level, DEFAULT, recognized by the runtime, that resets a logger level to null so that it reverts to inheriting its level from its parent logger. This is supported by the admin console, asadmin, and asant.
Here is a list of the main runtime loggers:
- com.sun.jbi - the top-level logger for the entire runtime
- com.sun.jbi.framework - core runtime, includes the startup and shutdown processing, all interactions directly with the JBI SPIs implemented by installed Binding Components and Service Engines, and all class loading management in the runtime
- com.sun.jbi.management - all management processing
- com.sun.jbi.management.AdminService - the administrative service responsible for bootstrapping the management system for all other system services, starting and stopping the the rmanagement services, and providing information that remote clients use to access system services and components
- com.sun.jbi.management.ConfigurationService - the configuration service which provides configuration support for the runtime and for all Binding Components and Service Engines
- com.sun.jbi.management.DeploymentService - the deployment service which provides support for deployment of Service Assemblies into the runtime
- com.sun.jbi.management.InstallationService - the installation service which provides support for installation of Binding Components, Service Engines, and Shared Libraries
- com.sun.jbi.management.LoggingService - the logging service which provides a lookup mechanism for logger MBeans
- com.sun.jbi.messaging - the Normalized Message Router where all message exchange processing is performed
Controlling Runtime Loggers
Every runtime logger has a logger MBean which provides all of the operations necessary to manage the logger level. The administrative clients use these MBeans to perform all logger level setting. Here are examples showing how to manage runtime logger levels using asadmin. The following command is used to list the levels of all of the runtime loggers:
open1[66]% asadmin show-jbi-runtime-loggers
com.sun.jbi = INFO
com.sun.jbi.framework = INFO
com.sun.jbi.management = INFO
com.sun.jbi.management.AdminService = INFO
com.sun.jbi.management.ConfigurationService = INFO
com.sun.jbi.management.DeploymentService = INFO
com.sun.jbi.management.InstallationService = INFO
com.sun.jbi.management.LoggingService = INFO
com.sun.jbi.messaging = INFO
Command show-jbi-runtime-loggers executed successfully.
Suppose you want to change the the framework logger level to WARNING. The following command will do that:
open1[67]% asadmin set-jbi-runtime-logger "com.sun.jbi.framework=WARNING"
Command set-jbi-runtime-logger executed successfully.
Listing the loggers again you can see the framework logger level has changed:
open1[68]% asadmin show-jbi-runtime-loggers
com.sun.jbi = INFO
com.sun.jbi.framework = WARNING
com.sun.jbi.management = INFO
com.sun.jbi.management.AdminService = INFO
com.sun.jbi.management.ConfigurationService = INFO
com.sun.jbi.management.DeploymentService = INFO
com.sun.jbi.management.InstallationService = INFO
com.sun.jbi.management.LoggingService = INFO
com.sun.jbi.messaging = INFO
Command show-jbi-runtime-loggers executed successfully.
Now let's see how the logger level inheritance works. The following command will set the top-level logger level to FINE:
open1[69]% asadmin set-jbi-runtime-logger "com.sun.jbi=FINE"
Command set-jbi-runtime-logger executed successfully.
Note that the framework logger level has already been explicitly set, but all other loggers are still inheriting from the top-level logger:
open1[70]% asadmin show-jbi-runtime-loggers
com.sun.jbi = FINE
com.sun.jbi.framework = WARNING
com.sun.jbi.management = FINE
com.sun.jbi.management.AdminService = FINE
com.sun.jbi.management.ConfigurationService = FINE
com.sun.jbi.management.DeploymentService = FINE
com.sun.jbi.management.InstallationService = FINE
com.sun.jbi.management.LoggingService = FINE
com.sun.jbi.messaging = FINE
Command show-jbi-runtime-loggers executed successfully.
Suppose you want to change the framework logger to once again inherit its level from the top-level logger. Simply set its logger level back to DEFAULT:
open1[71]% asadmin set-jbi-runtime-logger "com.sun.jbi.framework=DEFAULT"
Command set-jbi-runtime-logger executed successfully.
Now the framework logger level is inheriting the last level set on its parent, the top-level runtime logger:
open1[72]% asadmin show-jbi-runtime-loggers
com.sun.jbi = FINE
com.sun.jbi.framework = FINE
com.sun.jbi.management = FINE
com.sun.jbi.management.AdminService = FINE
com.sun.jbi.management.ConfigurationService = FINE
com.sun.jbi.management.DeploymentService = FINE
com.sun.jbi.management.InstallationService = FINE
com.sun.jbi.management.LoggingService = FINE
com.sun.jbi.messaging = FINE
Command show-jbi-runtime-loggers executed successfully.
Now here's an example using the GlassFish admin console. The screen shots are of only the frame that is relevant, not the entire browser window, just to cut down on the size. This is the display of the runtime loggers and their levels:

Clicking on the drop-down list of logger levels for the Framework logger gives this:

Clicking on the FINE level in the drop-down results in this output. However, the actual logger level is not changed until the Save button is clicked:

After clicking on the Save button, the Framework logger level is changed:

Posted at 09:36PM Nov 15, 2008 by mwhite in Open ESB | Comments[0]
GlassFish ESB Release Candidate 1 available for download
We've reached a major milestone in our work on GlassFish
ESB. The first release candidate, RC1, is now available for download.
RC1 includes a lot of improvements and bug fixes compared with Milestone 2.
A list of these improvements will be posted shortly in the release
notes.
Unless major issues are found in this release candidate, the next drop will
be the GA release itself. This is planned for December 5.
A word of thanks to everyone involved, including those who downloaded
Milestone 2 and provided feedback. Please download RC1, and see if issues that
you may have reported earlier indeed have been fixed. If there are new issues,
please indicate if you think if they are show stoppers for the GA release.
Feedback can be posted on the users
mailing list.
Posted at 09:06AM Nov 15, 2008 by mwhite in Open ESB | Comments[0]
Fuji Milestone 2 is here!
Project Fuji is our exciting new OSGi-based technology which will form the foundation for the next-generation SOA integration platform, OpenESB v3. In Fuji Milestone 1, which we unveiled at JavaOne 2008, a simple yet powerful way to define services and link them together was introduced, including the option for web-based tooling. The demo we built for Milestone 1 was based on technologies like RSS and XMPP. As cool as this was, it left some people wondering how this would apply to more classic integration scenarios.
Well now it's time for Fuji Milestone 2, and we have chosen a classic integration scenario to demonstrate how easily and quickly it can be solved using the powerful but simple to use capabilities of Fuji. On the Fuji Milestone 2 page, you will find a summary of all the slick new features, including:
- support for additional Enterprise Integration Patterns
- enhanced interceptor support
- lots of new NetBeans tooling features
- new support for distributed JBI
- a reactive runtime which automatically refreshes updated applications
- new service types (database, FTP, SMTP, HL7)
- IFL enhancements
From this page you can also watch a screencast of the demo in action, download the Milestone 2 distribution, and get a complete picture of the demo application, including step-by-step instructions for creating and running the demo yourself.
Also have a look at Andi's entry on Fuji Milestone 2, which includes further background info, and for you IFL fans, check out Chikkala's entry on the new IFL editor features.
And, as always, we welcome feedback on Project Fuji!
Posted at 07:40PM Oct 23, 2008 by mwhite in Open ESB | Comments[0]
GlassFish ESB Milestone 2 available for download
Good news! GlassFish
ESB Milestone 2 is now available for download.
Milestone 2 includes a lot of improvements and bug fixes compared with
Milestone 1. A list of improvements can be found in the release
notes.
The next milestone will be the release candidate, and should be available in
four weeks.
Please download Milestone 2, give it a spin, and please, please provide feedback! Issues found in this phase of the release can be solved easily. After the release, it will be a more difficult to get changes into the download. Feedback can be posted on the users mailing list.
Posted at 12:02PM Oct 08, 2008 by mwhite in Open ESB | Comments[0]
Commercial Support for OpenESB: GlassFish ESB
Big news in the OpenESB world was announced today. Sun has finally announced a commercially-supported version of OpenESB in the form of GlassFish ESB. This is a binary distribution of OpenESB, consisting of a subset of the components in OpenESB. There has been strong demand for a fully-supported version of OpenESB for some time now, so this is very exciting news!
Check out the updated web site! There’s a lot of new content, including an introductory video and a guided tour of all the features in GlassFish ESB.
Sun will support GlassFish ESB just like any other product, meaning it will not support just the latest version, but also older versions, just as we currently do with CAPS, supporting CAPS 5.0.5, 5.1.3, and 6.0.
GlassFish ESB will be released on December 5th. There is a free milestone build available for download, and there will be two more milestone builds before the release date. You can download the milestone build now to begin exploring the features. Just go to the updated web site and follow the download link. Note that the GlassFish ESB downloads will remain on the OpenESB site because the code base is there, all in open source.
Here is a list of the components that are included in GlassFish ESB:
There will be additional separate component releases next to GlassFish ESB. For example, IEP will be released soon as a separate component. Such components can be used with GlassFish ESB.
This new product does not change anything for the ESB Suite, MDM, and CAPS products; they will continue to be developed and improved. There is a value differentiation between GlassFish ESB and the other products, and consequently also a price differentiation.
Posted at 02:08PM Sep 15, 2008 by mwhite in Open ESB | Comments[0]
Project Keychain: SPML Gateway for User Provisioning
A new SPML v2.0 and JBI compliant Gateway (Project Keychain) is now at Technology Preview Release Stage 1 and is available for download. Check it out here, where you will find details on how to install and use it. This SPML Gateway uses Open ESB and its components to allow management of user access provisioning to multiple types of external systems such as LDAP, SalesForce.com and RACF. It provides these features using standard JBI components available in Open ESB, without the need to do additional programming. More solutions for additional external systems are being developed. Join Project Keychain and become part of the growing community of solution developers!
Posted at 02:00AM Sep 10, 2008 by mwhite in Open ESB |
OpenESB partners with ComplexEvents.com
We have joined ComplexEvents.com as a partner. This site is hosted by Professor David Luckham from Stanford University - considered by some to be the father of modern Complex Event Processing (CEP). You can find us in the Partner section on the site and also soon in the Event Processing Blogs section in the lower right of the main page. Check out the OpenESB Partner page.
ComplexEvents.com is a site dedicated to Complex Event Processing applications, products, research, and latest developments. This site contains many articles written by numerous well-known CEP authorities.
Posted at 05:54PM Sep 09, 2008 by mwhite in Open ESB |
Database BC to replace SQL SE and JDBC BC
Introducing the new Database BC
A new Open ESB component, the Database BC, will soon replace two existing components, the SQL SE and the JDBC BC. Until now,
database access in Open ESB was accomplished through the use of both the SQL SE
and the JDBC BC. The JDBC BC was used for simple select and insert operations on database tables. The SQL SE was used for more advanced database manipulations through the SQL language.
Why make this change?
Through
various user feedback, it became evident that having two different database access components confused many users. In order to alleviate the confusion, we decided to combine the features of both
into a new Database BC. Both the SQL SE and the JDBC BC will be deprecated in
November 2008.
What are
some of the features in the Database BC?
The Database BC will have all the
features of both the JDBC BC and the SQL SE. The full feature list will be
published to the Database BC Wiki Page.
What about existing applications using SQL SE and JDBC BC?
We will be introducing a
procedure to convert existing SQL SE projects to the new Database BC. This
procedure will be a well-defined set of steps to migrate SQL SE
artifacts to Database BC artifacts. The JDBC BC artifacts are
functionally equivalent, so any projects using WSDL with JDBC extensions will
work without any changes.
When will the Database BC be
available?
A community version of the Database BC
is available now from Project Open ESB. It will be officially released as part of
GlassFish ESB in November 2008 and made available to customers of
CAPS R6, ESB Suite R6 and MDM Suite R6 at the same time.
How is the Database BC packaged?
The runtime component is
available as sun-database-binding. The design-time components still
use the org-netbeans-modules-wsdlextensions-jdbc.nbm and org-netbeans-modules-sql-wizard.nbm
NetBeans modules to create artifacts for the Database BC. Artifacts generated by the new versions of these design-time components
will now be deployed to the Database BC instead of the JDBC
BC or the SQL SE.
Posted at 11:28AM Sep 09, 2008 by mwhite in Open ESB |
Event-Driven Architectures in Open ESB
Most people associate Open ESB with enabling Service Oriented Architecture (SOA). While this is true, what many folks do not know is that Open ESB also enables Event- Driven Architecture (EDA). The Intelligent Event Processor, or IEP Service Engine, is the
component that provides this support. The IEP SE is an open source Complex Event Processing
(CEP) and Event Stream Processing (ESP) engine that is part of the large set of components available in Open ESB. You can check it out here. For more information on how EDA, CEP, and ESP are related to an ESB, see this blog entry by Prashant Bhagat.
Posted at 07:07PM Aug 14, 2008 by mwhite in Open ESB | Comments[0]
Apache Camel Service Engine
A new service engine that supports Apache Camel applications is now in incubator status and is available for download. This SE supports running Camel applications and also allows Camel applications using Camel endpoints to exchange messages with service providers and consumers deployed to other JBI components. Check it out here where you will find links for downloading it, videos on how to install it and how to use it, links to examples and source code, and instructions on how to build it from the source.
Posted at 01:02PM Aug 07, 2008 by mwhite in Open ESB |
Adding new platform support
In light of a couple of recent requests about supporting Open ESB on the WebLogic application server I thought it would be nice to provide some background information on how we have implemented support
for various
platforms in Open ESB. Last year I wrote a blog entry about our platform support:
http://blogs.sun.com/mwhite/entry/application_server_platform_independence_in
There are some wiki pages for the ports that have been done to other platforms:
http://wiki.open-esb.java.net/Wiki.jsp?page=OpenESBJavaSE
http://wiki.open-esb.java.net/Wiki.jsp?page=OpenESBJBoss
http://wiki.open-esb.java.net/Wiki.jsp?page=OpenESBWebSphere
Now here is some information about the organization of the actual source code. I've used links to the FishEye view of the source files and directories here.
There is an enumerator of platforms (called JBI providers in the code) here:
Here is where we keep the interfaces that we provide for platform support:
In this directory, PlatformContext.java is the interface that is implemented for each platform. PlatformEventListener.java file is an optional interface that can provide event support for things like creation of a new instance, creation of a cluster, etc. This is currently used only in the GlassFish implementation.
This is the basic setup / life cycle class for the JBI runtime:
runtime/framework/src/com/sun/jbi/framework/JBIFramework.java
Look in the following directories to see the various platform support code:
GlassFish: runtime/framework/src/com/sun/jbi/framework/sun
JBoss: runtime/framework/src/com/sun/jbi/framework/jboss
WebSphere: runtime/framework/src/com/sun/jbi/framework/websphere
In each of the above directories, there is an implementation of
PlatformContext and a subclass of the JBIFramework class, along with any other classes
that are
specific to a particular platform. Also, there is a JBIBootstrap class
in each of these directories, which sets up the required class loader hierarchy.
For creating the actual artifacts that comprise the support for a platform, there are Maven poms for each platform here:
Note that for GlassFish there is not a separate directory here as that is our primary platform.
From some minimal research I did on WebLogic a some time ago, it
appeared that WebLogic had a concept of a life cycle module, similar to what GlassFish has. If
that is still the case it is probably the most straightforward way to implement an Open ESB
environment for WebLogic. JBoss uses a similar approach, with the concept of a life cycle module. However, rather than the life cycle module implementing an interface that is invoked by Java method calls, the life cycle is provided by implementing an MBean interface that has the life cycle operations. For this the JBIFramework class is wrapped inside the MBean that provides the life cycle. In WebSphere, there was no life
cycle module support so the Open ESB runtime is wrapped in a servlet - a little funky, but it works.
Posted at 04:14PM Jul 09, 2008 by mwhite in Open ESB | Comments[0]
Sessions of interest at JavaOne 2008
For JavaOne 2008, there is a lot of activity planned in the SOA and Enterprise Integration space. There are 7 technical sessions, 4 hands-on labs, and 4 BOFs planned. One of the hands-on labs is a "Bring Your Own Laptop" (BYOL) session where you will to build and run the lab exercise on your own laptop.
You can find information about all of the sessions, labs, and BOFs here
Of particular interest to me is TS-6385, "Integration Profile for GlassFishTM Project v3". This will introduce the leading-edge work we're doing in the area of providing a robust but lightweight SOA platform using GlassFish v3 and JBI technologies.
Be sure to stop by our table at CommunityOne day on Monday May 5. We will have two demo stations going, one for Project Mural and one for Project Open ESB
Throughout the rest of the conference, you can come by our pavilion pods, Java CAPS (pod 170), Open ESB (pod 171), Event Driven SOA (pod 179), and Project Mural (pod 180). We would love to chat with you about how our technology could help you.
Posted at 03:21PM Apr 25, 2008 by mwhite in Open ESB | Comments[0]
JBoss support in Open ESB
Thanks to the work of a number of people at both Sun and Gestalt LLC, there is now a working JBoss version of Open ESB available for download from our nightly builds. Just go to our Downloads page, and click on the "Latest Nightly Build" link under "Open ESB Runtime". The download page will list both a .zip and a .tar version of the bundle for running under JBoss.
Chad Gallemore (Gestalt LLC) and I have created pages on our wiki describing the Open ESB for JBoss work, providing instructions on how to install and run it, and documenting future work that is planned for Open ESB for JBoss. You can start with the OpenESBJBoss page and learn all about it.
Posted at 12:15AM Nov 21, 2007 by mwhite in Open ESB | Comments[7]