comp.lang.ada
 help / color / mirror / Atom feed
From: beckwb@ois.com (R. William Beckwith)
Subject: Re: Persistence for Ada-9X?
Date: Sun, 13 Nov 1994 20:13:33 GMT
Date: 1994-11-13T20:13:33+00:00	[thread overview]
Message-ID: <Cz82uL.47q@ois.com> (raw)
In-Reply-To: 3a4cqd$ibo@salyko.cube.net

Oliver Kellogg (okellogg@cube.net) wrote:
: Is anyone developing persistent object support for Ada 9X?

    We are, sort of.  Persistence is made easier with CORBA
    and we're working on a CORBA product.  I'll explain below.

: If not, who'd be interested joining me doing it (as GPLed freeware) ?

My view of persistance involves (at least) these four elements:

    1.	represent arbitrarily complex types into byte streams

    2.  determine the link separation scheme and support the
	resulting paradymn  (in simpler terms: determine if
	objects that point to other objects must all go together
	or if they are allowed to be separately stored to and
	retrieved from disk)

    3.	provide an access mechanism in an extensible fashion to
	store the objects to and retrieve the objects from various
	forms (ISAM, flat files, Direct_IO, SQL DBMS, etc.)

    4.	determine and implement the paradymn for sharing objects
	by different processes (locking, transaction control, and
	security)

CORBA allows the authors of a server to implement persistance.
CORBA and Ada 9X help each of the above as follows:

    1.	Ada 9X's 'READ and 'WRITE do this nicely.

    2.	CORBA helps by not forcing you into a particular link
	separation scheme via CORBA's portable, persistant
	object references.  This allows you to write an object
	with its pointers to disk without writing all of the 
	the `pointed to' objects to disk.

    3.	Ada 9X's stream interfaces are nicely suited to this task.
	In addition, you may want to inherit an object
	create_from_store type of function for construction.

    4.	In traditional persistance mechanisms you create
	multiple object instances in separate processes from
	the same data and then worry about coordination.
	CORBA simplifies the sharing issue because only one
	object instance is created and the other processes
	have remote references to that one object.

It seems to me that if you pick an all or nothing strategy for (2)
and you assert that only one process will use the same persistance
data (4), then it should be fairly easy to set up (1) and (3).

Hope this helps a little.  Sounds like a fun project.

... Bill

-- 
e-mail: Bill.Beckwith@ois.com       |    Team Ada
Objective Interface Systems, Inc.   | dist, full O-O
1895 Preston White Drive, Suite 250 | multithreading
Reston, VA  22091-5448  U.S.A.      |    built in



  reply	other threads:[~1994-11-13 20:13 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-11-13  6:47 Persistence for Ada-9X? Oliver Kellogg
1994-11-13 20:13 ` R. William Beckwith [this message]
1994-11-15  4:32   ` R. William Beckwith
1994-11-18  8:06     ` Stephen Crawley
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox