From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a1d416675812a4c9 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-11-16 01:42:00 PST Newsgroups: comp.lang.ada Path: nntp.gmd.de!xlink.net!news.acotec.de!cs.tu-berlin.de!zrz.TU-Berlin.DE!netmbx.de!Germany.EU.net!news.dfn.de!scsing.switch.ch!swidir.switch.ch!univ-lyon1.fr!jussieu.fr!oleane!pipex!uunet!ois!beckwb From: beckwb@ois.com (R. William Beckwith) Subject: Re: Persistence for Ada-9X? Message-ID: Organization: Objective Interface Systems, Inc. X-Newsreader: TIN version 1.2 PL2 References: <3a4cqd$ibo@salyko.cube.net> Date: Sun, 13 Nov 1994 20:13:33 GMT Date: 1994-11-13T20:13:33+00:00 List-Id: 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