Released MetaL persistence module
Manuel Lemos, 2002-11-01 09:07:15 GMT
|The first MetaL compiler
was released. It is meant to automate the generation of software components
that interface with persistent storage by the means of an Object Oriented
The goal of this module is to increase the productivity of the software
developers by avoiding the tedious task of implementing classes of objects
from a software project model that map the objects data in persistent
For medium or large sized projects, the use of MetaL persistence model can
increase the productivity of the software developers by more than an order
of magnitude, so they can spend more time on the development of the code
that implements the project business specific rules.
The persistence module generates an API that consists of a set of classes
of objects modeled after a very simple component description in XML created
by the software developers. This component description defines properties
of the classes and the eventual relationships between them.
The generated classes implement only the methods that the developers
specify that they need. For instance, if the developers do not need
methods for deleting persisted objects, the generated API will not have
such methods. This results in more compact code, making more efficient
use of memory and other computer resources.
The generated API takes care of retrieving and storing data of objects
mapped to persistence storage that can be a relational database, an XML
file, a LDAP server, etc.. Currently, only relational databases are
The current implementation uses the
Metabase. This means that
many SQL based relational databases are supported. The generated code is
portable because Metabase API provides a great level of database
independence. The persistence module also generates portable database
schemas defined in an XML format that Metabase API is able to parse and
Since Metabase is currently available in PHP, a port to Java is being
considered by another developer, so the persistence module can also be
useful to Java developers. Generating code that uses other database API is
also possible but is not a current priority.
The current version of the persistence module is in the alpha stage. It
generates a factory class that is responsible for creating the objects of
each of the classes specified in the component definition in XML. It does
not yet persist objects to the database. However, it already creates a
database schema and a class with a method to install that schema.
The development of the rest of the necessary functionality that the
persistence module is meant to implement is expected to be developed
very quickly, thanks to the development resources that were built in the
MetaL compiler and the other modules to support the development of
meta-meta-programming modules like this one.