Though most Java developers think of the Java Native Interface (JNI) as a
framework for developing native libraries that can be called from Java,
relatively few know that JNI also supports communication in the reverse
direction: it provides native programs written in C with the ability to call
Java objects. However, the coding is thorny; logic that can be coded readily
in a few lines of Java requires several times more lines of C, thanks to
JNI's granular programming model and peculiar approaches to exception
handling and garbage collection. This article explores the nature and typical
use of the C-to-Java JNI interface and presents the design of a framework
that eases the programming effort.
The JNI Architecture
As Figure 1 illustrates, JNI is actually a pair of APIs: "JNI Proper"
supports the manipulation of Java objects and classes, such as the ability to
call o... (more)
In most software topics, the boundary between theory and practice in software
is clearly demarcated: theory is for academics who seldom descend from the
ivory tower, practice is for industry professionals who have long forgotten
the concepts and application of theory. In concurrency, for example, most
developers either know or have programmed semaphores, but few remember the
conceptual underpinnings devised by Dijkstra. But Business Process Management
(BPM) - a key Web services technology with close ties to Web services
choreography - belongs to a rarer category, in which theory ... (more)
The natural visualization of a business process is of boxes and arrows
arranged in a tree-like formation. A large process with numerous conditional
paths forms a rather expansive tree that can't fir on a computer screen or
printed page. If the process has loops, these are often represented as arrows
pointing back to earlier boxes, resulting in an untidy graph structure.
Although BPEL isn't a visual process language, its XML representation can
form code trees that are no less cumbersome. A receive inside a sequence
inside a flow inside a switch inside a pick, even if properly inde... (more)
Developers of workflow-based applications with the Business Process Modeler
(BPM) component of BEA WebLogic Integration Version 7 use a powerful,
feature-rich, graphical editor, called Studio, to design workflow templates
and to monitor the progress and state of runtime instances of templates.
As Figure 1 shows, Studio is an online tool: it calls the WebLogic
Integration server application to retrieve information about workflows or to
commit changes. This information is ultimately stored in a database;
internally, much of what the WLI application does is converse with the
databa... (more)
Choreography is the dark continent of Web services: few onlookers have
traveled there, and many question whether there are any riches to be brought
home from the trip. In the first place, choreographies bear such a striking
resemblance to business processes that the novice might think that the two
types of artifacts are indistinguishable.
After all, isn't choreography just a way to describe what a business process
does (i.e., it choreographs the actions of its participants)? And then there
is the dearth of choreography tools; until recently choreography was a topic
learned by re... (more)