Some reader favorites:
EJB fundamentals and session beans
Create a scrollable virtual desktop in Swing
Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API
Much like Electronic Data Interchange (EDI), electronic business XML (ebXML) was developed to enable business to be conducted electronically over the Internet. Custom protocols and proprietary messaging formats between trading partners created a deterrent to the widespread adoption of EDI. ebXML, on the other hand, provides an open and flexible alternative, allowing enterprises anywhere, anyplace, and anytime to engage in meaningful collaborations.
ebXML supports the following tenets of a typical B2B infrastructure:
ebXML is a joint sponsorship effort by the United Nations Centre for Trade Facilitation and Electronic Business (UN/CEFACT) and the Organization for the Advancement of Structured Information Standards (OASIS), with additional support from a multitude of industry leaders.
In this column, I briefly explore the ebXML Registry standard, its architecture, maturity, industry adoption, and how an ebXML registry can use a service-oriented architecture (SOA) repository.
Like its predecessor, Universal Description, Discovery, and Integration (UDDI), ebXML Registry also facilitates seamless and automatic inter-enterprise collaborations. This feature lends itself well to enabling true integration between trading partners and supports the overall goal and vision of an SOA in which applications communicate and share functionality without human interaction. Specifically, both these standards enable enterprises to discover each other, exchange XML-based messages, and engage in meaningful collaborations based on their individual trading-partner agreements and public business processes.
As depicted in the figure below, an ebXML registry can have a persistence mechanism for enterprises to share and store information as registered content. Per the ebXML Registry Services Specification, there are "a set of services that enable sharing of information between interested parties for the purpose of enabling business process integration between such parties based on the ebXML specifications."
An architectural approach for an ebXML registry. Click on thumbnail to view full-sized image.
ebXML Registry's Registry Information Model (RIM) describes entities that store information in an ebXML registry, such as
the RegistryEntry entity, which contains an ebXML object, and the ClassificationNode entity, which is used to create classifications or ontologies for these objects.
As one would guess, to be of any use, this registered content needs interaction. Hence, ebXML Registry also provides two interfaces,
ObjectManager and ObjectQueryManager, that enable interaction with the registry.
To get a comprehensive understanding of inter-registry cooperation, security, and content management with respect to ebXML Registry, I encourage readers to reference information available in the ebXML Registry Technical Committee's subcommittees (SC) such as:
An SOA repository is a persistence mechanism that stores information published to an SOA registry. An SOA registry is a resource that enterprises share to publish, discover, and consume Web services, thus enabling dynamic and loosely-coupled B2B collaboration. Content such as XML Schemas, Document Type Definitions (DTDs), and Web Services Description Language (WSDL) documents, can be persisted in an SOA repository, which is then used in an SOA registry to enable a subscribe/publish model for persisted services. Per the Registry Information Model specification, the RIM or SOA repository may be implemented within an ebXML registry in the form of a relational database schema, object database schema, or some other physical schema. It may also be implemented as interfaces and classes within a registry implementation. I recommend the use of an XML database as the persistence mechanism since the artifacts to be stored are primarily XML-based.
An ebXML registry provides the following benefits:
As of April 2005, the technical committee released a committee-approved specification dated March 12, 2005 for version 3.0 of ebXML Registry.
As documented in Resources, ebXML Registry enjoys adoption by numerous industry leaders in varying degrees. For example, by linking to an ebXML registry, Adobe LiveCycle Form Manager enables the management and access of enterprise forms via a Web-based portal.
JAXR, the Java API for XML Registries, provides a standard API for publication and discovery of Web services through underlying registries such as ebXML Registry.
JAXR performs registry operations over ebXML Registry and defines a unified information model for describing a registry's contents. JAXR allows any JAXR client to access and interoperate with any ebXML registry that is accessible via a JAXR provider. In this sense, JAXR provides a Write Once, Run Anywhere (WORA) API for registry operations, simplifying Web services development, integration, and portability.
The development lifecycle of a JAXR-based application requires the developer to do the following steps:
...
// define configuration properties
String publishURL = "https://aplaceholderurl/publish";
String queryURL = "http://aplaceholderurl/inquiry";
Properties props = new Properties();
props.setProperty("javax.xml.Registry.lifeCycleManagerURL", publishUrl);
props.setProperty("javax.xml.Registry.queryManagerURL",queryUrl);
props.setProperty("javax.xml.Registry.factoryClass", "com.sun.xml.Registry.uddi.ConnectionFactoryImpl");
try {
// Create the connection, passing it the
// configuration properties
ConnectionFactory factory =
ConnectionFactory.newInstance();
factory.setProperties(props);
connection = factory.createConnection();
System.out.println("Created connection to Registry");
} catch (Exception e) {
e.printStackTrace();
if (connection != null) {
try {
connection.close();
} catch (JAXRException je) {}
}
}
...
ebXML Registry provides a set of services that allow interested parties to share information to enable business process integration. The shared information may be persisted as objects in a repository. The submitted content may be in the form of XML Schemas and documents, process descriptions, and/or information about trading partners. Though registries may provide an index for these information artifacts, the persistence of the same could be in repositories. Such information artifacts could be used to facilitate ebXML-based B2B partnerships and transactions.
With an ebXML registry, you may register your business process and also store the same. The focus of the repository, however, is for the developer at design time to be able to download and reengineer the schema for a business process.
I encourage readers to get current information on the specification from the ebXML Registry Technical Committe page.
I would like to thank Robert Smik, lead architect with the Enterprise Applications Group at Raining Data Corporation, and Vivek Kondur, senior developer with Source-N for their contributions to this article. I would also like to thank Frank Cohen, director of solutions engineering who heads the developer community XQster.com, for technically reviewing this article.
| Subject | Replies |
Last post
|
|
By JavaWorld
|
2 |
11/19/06 05:32 PM
by Anonymous |
Free Download - 5 Minute Product Review. When slow equals Off: Manage the complexity of Web applications - Symphoniq
![]()
Free Download - 5 Minute Product Review. Realize the benefits of real user monitoring in less than an hour. - Symphoniq