This week, new specifications providing Java with business process integration and workflow API's were proposed along with a proposal for the next generation of the Java API's for XML Processing. In addition, the Executive committee for the Java Mobile Edition platform approved the final specification release for the J2ME CLDC (Connected, Limited Device Configuration) that defines a standard platform for small, resource-constrained, connected devices.
Two related, yet complimentary specifications encompassing workflow programming, business process interaction and process co-operation were proposed.
A business process is a set of operations that implement a particular business function. For example, Order fulfillment could be viewed as a business process. For a Java programmer to implement an "Order fulfillment" business process, the programmer would have to loosely couple various classes and objects into a logical process. There is currently no way of abstracting a series of cooperating objects and interfaces into a single "process entity" at the source code level. This JSR intends to provide a Java syntax to define and describe business processes at the source code level. It intends to address integral issues faced by Java developers developing such processes such as asynchronous conversations, request/response sequences, and message correlation. In order to achieve the description of business processes at the source code level, it will leverage on JSR-175, (Metadata Facility for Java) which intends to provide language level support for annotating source code.
This JSR will be under public review until 17th March 2003. To contribute, send an email to email@example.com.
In order for business processes to interact with each other a well-specified execution environment must exist. This execution environment should have support for various business process interaction protocols, business process component models and process integration metadata. This JSR intends to define the operating environment for business process components. The JBI framework consists of 3 specific components. The Environment defines a standard internal representation for business protocol messages based on standard business protocol metadata. JBI Machines are responsible for supporting the lifecycle of a particular class of JBI Components. In some sense, JBI machines and JBI Components are analogous to EJB components and EJB containers. The Environment provides the base business protocol communication infrastructure that allows Components (through their Machines) to communicate with each other and with external services. The Environment also defines a standard Machine packaging model and a standard Machine deployment and instantiation lifecycle. Finally, JBI Bindings are used by the Environment to communicate with external services via specific business protocol bindings. The role of a Binding is to implement a specific communications binding for the Environment's standard internal representation of business protocol messages. The Environment also defines a standard Binding packaging model and a standard Binding deployment and instantiation lifecycle. This JSR will be under public review until 17th March 2003. To contribute, send an email to firstname.lastname@example.org.
Along with the recent developments, maturity of the programming model and advent of design patterns for XML development, a specification to update the existing core Java XML Processing API's was proposed.
This JSR is an update to JAXP 1.2 (JSR-63 Java API for XML Processing 1.2) to support the current evolving XML processing standards. The revised XML standards incorporate changes based on several years of growing implementation experience. In particular this update will address the following revisions of core XML standards such as DOM Level 3 Specifications, XML 1.1 and related Namespaces specifications and SAX 2.0.1. This update will also focus on improving performance of XML processing, allowing better client control over the characteristics of the XML processor, XInclude support and support for future revisions to XPath and XSLT
This JSR will be under public review until 17th March 2003. To contribute, send an email to email@example.com
This JSR is to define a standard set of APIs for XML digital signatures services. The XML Digital Signature specification is defined by the W3C. XML Signatures can be applied to any digital content (data object), including XML. An XML Signature may be applied to the content of one or more resources. Enveloped or enveloping signatures are over data within the same XML document as the signature; detached signatures are over data external to the signature element. More specifically, the XML Digital Signature specification defines an XML signature element type and an XML signature application; conformance requirements for each are specified by way of schema definitions and prose respectively. The XML Digital Signature specification also includes other useful types that identify methods for referencing collections of resources, algorithms, and keying and management information.
The Community review closes on 7th April 2003. JCP members may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr105/index.html.
Public Review Specifications
Typically web applications created in Java use Java Server Pages or Java Servlet technology. These programming models allow for the creation of complex server side processing logic but completely ignore client side interface to the application beyond custom HTML that is output from the server side execution. The goal of this specification is to provide server side support for modeling and interacting with user interface components implemented as Java Standard Tags for JSP and class libraries for servlets. It will create a standard way to define and reuse complex HTML forms and other common GUI elements by providing familiar APIs for GUI components, component state, rendering and input processing. To oversimplify, this JSR will provide standard tags and objects for HTML elements and define the associated event mechanisms, state management, validation support and other GUI component lifecycle support.
The Public review closes on 17th April 2003. You may access the public review and early access release at http://jcp.org/aboutJava/communityprocess/review/jsr127/index.html.
Proposed Final Draft Specificationshttp://jcp.org/en/jsr/detail?id=75
This JSR will produce optional packages for features that are commonly found on PDAs and other mobile devices in the J2ME space. One package for Personal Information Management (PIM) that gives J2ME devices access to personal information management data that resides natively on mobile devices such as address books, calendars, and to-do lists. One package for access to file systems residing on mobile devices to allow access to removable storage devices, such as external memory cards that many of today's devices support.http://jcp.org/en/jsr/detail?id=124
The term provisioning refers to the activities of advertising client services to a client device, and to the process of delivering the service to the device. The physical form of a client service that isdelivered to a client device could take the form of an archive file containing Java byte code and the resources it uses, a file containing a screen saver, other media or other executable. This specification defines an extension to the Java 2, Enterprise Edition (J2EE) platform that is targeted at enabling J2EE application servers with facilities for building provisioning applications. The server running provisioning applications is known as a provisioning server. A provisioning server allows a variety of client devices to discover services and to have them delivered to the device. This specification defines the programming API that developers use to write provisioning applications, and a packaging format to enable seamless addition of services that the provisioning server will provision.
Java servlets are small Java programs that run when invoked from a web server. They are usually responsible for producing dynamic web pages or performing some business logic on the server side. This JSR is an update the to Servlet specification 2.3 (JSR-53 http://jcp.org/en/jsr/detail?id=53) with additions and enhancements in the area of Servlet deployment, security and programming model.
JSR Final Ballot Approvals
The final specifications were approved via ballot voting by the Executive Committee members. (http://jcp.org/en/participation/committee). At this stage, the complete final specification is available for download along with documentation and reference implementations of the specification.
This specification will define a revised version of the J2ME Connected, Limited Device Configuration (CLDC). It intends to improve and extend the 1.0 specification, (JSR-30 J2ME Connected, Limited Device Configuration) in the areas of Java language and virtual machine specification adherence, provide overall optimization and refactoring.You may download the final specification from http://jcp.org/aboutJava/communityprocess/first/jsr139/index.html
JSR Final Release
The final specifications for the XML Data Binding Specification (http://jcp.org/en/jsr/detail?id=31) were released by it's expert group.
This specification was covered in a previous column. You may download the final specification from http://jcp.org/aboutJava/communityprocess/final/jsr031/index.html.
- JSR-175 A Metadata Facility for the Java: http://jcp.org/en/jsr/detail?id=175
- Business Process Execution Language For Web Services (BPEL4WS):http://dev2dev.bea.com/techtrack/BPEL4WS.jsp
- Web Service Choreography Interface (WSCI): http://wwws.sun.com/software/xml/developers/wsci/wsci-spec-10.pdf
- W3C Choreography: http://www.w3.org/2002/ws/chor/
- Business Process Markup Language (BPML): http://www.bpmi.org/bpml-spec.esp
- World Wide Web Consortium, where you will find all the XML specifications: http://w3c.org
- JSR-63 Java API for XML Processing 1.2: http://jcp.org/en/jsr/detail?id=63
- Simple API for XML (SAX): http://www.saxproject.org/
- Apache XML Project, where you will find implementations of the Java API for XML Processing: http://xml.apache.org
- W3C/IETF XML Signature specification: http://www.w3.org/2000/09/xmldsig#
- Java Server Faces homepage and reference implementation: http://java.sun.com/j2ee/javaserverfaces/
- Java Servlet Technology: http://java.sun.com/products/servlet/index.html
- Connected, Limited Device Configuration (CLDC): http://java.sun.com/products/cldc/
What do you think of the JCP? What do you think of the current JSR's? Do you have any suggestions for this column? Feel free to write to me at apu at jcpwatch.org.