|
What is JMI?
As described in the introduction JMI is the Java version of the
MOF. It provides a common Java API for accessing metadata. The
JMI specification provides a framework to create a Java
programming model for accessing metadata. Instead of defining a
new standard, JMI leverages on the experience of MOF and
provides a Java API that is based on the MOF specification.
Features:
- JMI provides the metadata framework to capture system specific semantics.
- The JMI specification also provides rules for generating Java APIs for any MOF compliant model, which can be used to work with the information contained in the model.
- JMI can be used to model disparate systems, applications and services into a common model. This common model can now be used to integrate these disparate systems.
- Like EJBs, which mask the complexities of a system and allow the user to concentrate on the business logic, JMI can provide high level models of systems and business domains and hide the complexities of the systems.
- JMI can provide a common programming model, which is in the form of APIs automatically generated from the meta model.
- They can provide a common XML based interchange format.
- JMI provide APIs for stream-based exchanges between JMI services. These APIs use XML Metadata Interchange (XMI).
- JMI brings the OMG Model Driven Architecture (MDA) to J2EE.
- It also provides integration with the OMG modeling and metadata architecture.
MOF to Java Mapping:
JMI defines templates for generating Java APIs. These APIs are
used for accessing and modifying metadata. The APIs are
generated for a given MOF model.
There are four kinds of metadata level metaobjects that JMI uses
for mapping MOF to Java. They are package objects, class proxy
objects, instance objects and association objects.
A package object is like a directory, which gives access to the
collection of other metaobjects. A package can roughly translate
to a root object, which in turn contains all the other
metaobjects like class proxy, instance, sub packages etc.
A class proxy object provides factory methods for producing
instance objects within a package and also acts as a container
to store all these created objects. It also holds the classifier
scoped attributes for a class and provides operations for the
classifier scoped operations.
An instance holds the state of the attributes and any other
hidden states implied by the class specification. A package can
contain multiple instance objects. The class proxy has factory
methods to create instance objects and it stores these instance
objects within the class proxy container when they are created.
The instance object interface provides operations to modify and
access classifier scoped and instance scoped attributes. It also
provides operations to modify and access associations that are
defined between the objects.
An association object holds a collection of links. When two
instances of classes are linked with an association a link
instance is produced. The association interface provides
operations to query the link set and return an entire link set
or links within the link set. It also provides operations to
add, modify and remove links from a set.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|