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: "... (more)
Every aircraft can take off, fly straight, and land, but few are capable of
the dazzling rolls and loops displayed at air shows. When judged on
aerobatics, some airplanes are superior to others.
Every BPM process language, analogously, can implement basic sequential
control flow, but most languages struggle to support the most advanced
splits, joins, loops, and synchronizations. These pro... (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... (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 applicatio... (more)
The state machine is one of the most successful ideas in the history of
computing. Alan Turing built a model of computability around the concept, and
in doing so became the father of computer science. Mealy, Moore, Harel, and
other theorists expanded the idea, influencing engineers of digital logic,
real-time, and embedded systems whose designs are peppered with state
machines and diagra... (more)