I am close to uploading release 0.02 of my framework, now called "Rosetta" (pending 
registration).  There were numerous significant updates.  Following is a copy of my 
new "Abstract" documentation, which tries to explain what the framework does in as 
concise a way as possible.  It will appear just beneath "Name" in my POD.  Hopefully 
this will give you a better idea where I am heading than my previous summaries did, 
and what is more unique about my offering.  Thank you in advance for any feedback you 
can provide. -- Darren Duncan

P.S. I am still doing design and documentation of the framework.  I do not know yet 
how much of its functionality can be done by existing CPAN modules that I can "use" 
(SQL parsers or generators come to mind, or extractors of schema from existing 
databases); note that I am already committed to DBI/DBD* for implementing the binary 
database connections, where possible.  I welcome any suggestions for good modules to 
use; in particular, any SQL parsers need to handle recursive SQL like complex selects 
that use subqueries, unions, derived tables, and so forth, or I would have to do that 
myself.

----------------------------------

The Rosetta framework is intended to support complex (or simple) database-using
Perl 5 applications that are easily portable across databases because all
common product-specific details are abstracted away.  Rosetta is designed to
natively handle (interface to or implement) a superset of generic RDBMS product
features, so that you can do any action that you could before, including
standard data manipulation (including complex multi-table selects or updates
with subqueries or stored procedure calls), and schema manipulation (tables,
views, procedures).  At the same time, it is designed to do its work quickly
and efficiently.  The native interface of Rosetta (RNI) is unique to itself and
verbose, being designed to use non-ambiguous structured definitions of all
tasks; all input is multi-dimensional data structures (or objects) having
atomic values, rather than strings to be parsed.  It is intended primarily for
a data-driven application programming model, where an application uses a "data
dictionary" to control what work it is doing (whose composite values map
directly).  For cases where you don't already have a data dictionary, Rosetta
can scan your existing database to create one.  That said, Rosetta also
includes emulators (which sit on RNI) for common existing database interfaces,
so that most Perl applications can simply use Rosetta as a hot-swappable
replacement for them; you do not have to "learn yet another language" or
re-code your application in order for it to just work with more databases. 
Add-on utilities are also available for the likes of copying or backing up a
database, or editing one through a web interface (like PHPMyAdmin but for Perl
and any RDBMS).

Reply via email to