Java MetaData Interface (JMI)
by Benoy Jose
Introduction:
With almost all of the major companies moving into to the
computerized era we have most if not all data on computers. That
sounds good as systems are now automated, fast and reliable. One
of the biggest challenges the industry faces today is the
integration of these systems, making different systems from
different companies to talk to each other. All the data is
already in machine-readable format, so what’s the problem? The
problem is that the machine readable data exists in varying
formats on different systems. This mismatch between the data
formats prohibits companies from talking to each other
electronically.
Imagine a bank, which receives thousands of electronic transfer
requests from different banks. Each bank it does business with
would send in the data in a different format while the recipient
bank would be storing the same data in a completely different
format. Either the recipient bank has to do this process
manually (Which could be very tedious) or have a Data extraction
tool, which can do this job. Currently companies employ data
extraction tools like DataJunction, Informatica etc that convert
data from one format to another based on a set of defined rules.
However these rules are some times so rigid that small
deviations in the data can corrupt large sets of data. Moreover
these tools are more of a fix and do not solve problems in the
long run.
The main reason for this problem is the absence of a
common standard to define the data, which can be used by all
these companies. The common standard could be through the use of
the same standardized data types or by defining the way the data
is defined in a system. The result of defining the data about
the data is Metadata. A common example of metadata is the
database schema. The schema does not show the actual data but
shows the definition of the data and how the different entities
are related.
Another example of metadata could be an XML Document
type Definition (DTD). The DTD defines the data about the
different data elements within an XML document. The industry
needs a long-term solution, which provides a common standard for
Metadata. The OMG already defines a standard specification
called the Meta Object Facility (MOF - discussed later),
which defines rules for metadata driven systems.
MOF defines abstract language to describe meta-models and define
metadata. The language is closely related to UML, borrowing the
best parts of UML and then extending it to include the
principles of metadata modeling. This makes it easy for people
with working knowledge of UML to start off with a meta-model
design without any trouble. But unfortunately for us MOF does
not provide a Java abstraction or a Java based API for defining
metadata. MOF provides platform neutral CORBA and IDL interfaces
to do modeling tasks. The Java Metadata Interface JMI is the
Java version of the MOF. It is based on the MOF specification
but provides Java specific interfaces for meta modeling and
provides a unified API that can be used by independent vendors
to provide access to the proprietary data structures they have.
What happened to XML:
XML was touted as the alternative for any two disparate systems
that cannot talk to each other normally. XML can act as glue
between the data of two different systems. XML also provides a
common standards based
Consider an example where we have a Product list which has a
list of sub products within it. Now each product has a generic
price and price associated with a location. To add more
complexity to it, the location is defined in a similar
hierarchical structure of continents, countries, regions etc.
Added to this the product is defined for a particular location
in the location structure. There is a derived relation between
the locations, there is aggregation relation between products
and there are association relationships between products and
regions. XML can model this scenario but with a lot of
limitations. XML does not have inherent capabilities to model
complex relationships like inheritance, association and
aggregations. Moreover an XML model designed to reflect this
scenario might not be flexible enough to be used by other
applications.
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.
|