[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Savannah-hackers] savannah.gnu.org: submission of Ruby Object Database
From: |
imarsman |
Subject: |
[Savannah-hackers] savannah.gnu.org: submission of Ruby Object Database |
Date: |
Thu, 25 Oct 2001 13:01:33 -0400 |
A package was submitted to savannah.gnu.org.
This mail was sent to address@hidden, address@hidden
Ian A. Marsman <address@hidden> described the package as follows:
License: lgpl
Other License:
Package: Ruby Object Database
System name: robdb
This package does NOT want to apply for inclusion in the GNU project
I have been asked to re-submit my application for the \"robdb\" project in more
detail.
I build server-based applications that frequently use relational databases.
Although this works, it frequently takes up a considerable amount of project
time to break down the data entities to fit the relational model, then build
saving and loading interfaces to allow the application to interact with the
database.
I like the structure of xml, but building a database that allows arbitrary xml
to be loaded, saved, searched, and validated is a lot of work, and more
importantly, is not really what I want. I want to be able to save and load my
class objects without having to worry about how it happens. Essentially, I want
my objects to be persistant on disk in the least obtrusive way.
I think that what I am hoping to do is reasonably novel in the Free Software
world. I know that there are commercial object databases from companies like
Object Design, but I am not aware of any free ones. Even if there were, I would
probably still write the software I am proposing :)
What I propose is an object database that operates by breaking down classes
into parts that can be represented as single strings. These serialized objects
would be saved and retrieved from disk using the Berkely Database libraries.
The Berkeley Database libraries handle pure database tasks such as caching,
transactions, and locking well. Using such a set of libraries frees me up to
focus on the object abstraction layer. Just as importantly, however, the
Berkeley Database is just large enough to do what it needs to do without adding
extra overhead that is not needed, as would happen with a relational database.
I plan to implement the interface in the Ruby language, which I like, and more
importantly, has good support for object-oriented functions. I could also use
other languages like Java or Python or [insert the name of your favourite
language], I know, but I like Ruby and am reasonably proficient in its use.
What I\'d like to do is have my software be able to communicate with other
languages using an rpc protocol like XML-RPC. Although I like Ruby, I think it
would be good to be able to interact with my database tool using any language.
What I am striving for is an object access method that is language-neutral and
easy to use.
I like dealing with data as a programmer. I enjoy it very much when a language
or library allows data manipulation to be done cleanly and easily. I want to
write the proposed software to allow people to access their data in a natural
way using simple and universal protocols (like xml-rpc).
Software Model
--------------
Language-specific proxy layer
||
XML-RPC Server
||
Direct Ruby access <OR> XML-RPC abstraction layer
|| ||
Ruby language object serialization layer
||
Berkeley Database libraries