home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / object-faq / part8 < prev    next >
Text File  |  1996-04-03  |  52KB  |  1,317 lines

  1. Newsgroups: comp.object,comp.answers,news.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!gatech!swrinde!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!news
  3. From: Bob Hathaway <rjh@geodesic.com>
  4. Subject: Comp.Object FAQ Version 1.0.9 (04-02) Part 8/13
  5. X-Nntp-Posting-Host: ford.uchicago.edu
  6. Message-ID: <Dp9qJ9.AtC@midway.uchicago.edu>
  7. Followup-To: comp.object
  8. Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology
  9. Sender: news@midway.uchicago.edu (News Administrator)
  10. Organization: Geodesic Systems
  11. References: <Dp9prv.92t@midway.uchicago.edu>
  12. Date: Wed, 3 Apr 1996 04:16:20 GMT
  13. Approved: news-answers-request@MIT.Edu
  14. Lines: 1300
  15. Xref: senator-bedfellow.mit.edu comp.object:46839 comp.answers:17913 news.answers:68445
  16.  
  17. Archive-name: object-faq/part8
  18. Last-Modified: 04/02/96
  19. Version: 1.0.9
  20.  
  21. Platforms
  22. Available for MS-DOS / MS-Windows (Borland C++, Microsoft), OS/2
  23. (Borland C++), Novell, Macintosh MPW, and various Unix systems, including
  24. NeXT (NeXTStep) and Sun OS (Sun C++).  See web site for details.
  25.  
  26.  
  27. POET Software Corporation
  28. 999 Baker Way
  29. Suite 100
  30. San Mateo, CA 94404
  31. U.S.A.
  32.  
  33. Toll Free:  1-800-950-8845
  34. Direct:     (415) 286-4640
  35. Fax:        (415) 286-4630
  36. Email:      info@poet.com
  37.  
  38. Web:        http://www.poet.com
  39. Compuserve: GO POETSW
  40.  
  41.  
  42. POET Software, GmbH
  43. Fossredder 12
  44. D 22359 Hamburg
  45. Germany
  46.  
  47. Voice: +49 (0)40 / 60990 0
  48. Fax:   +49 (0)40 / 60398 51
  49. Email: info@poet.de
  50.  
  51.  
  52. > Statice (Symbolics)
  53.  
  54. >From: fischerm@darmstadt.gmd.de (Markus Fischer)
  55. Newsgroups: comp.databases.object,comp.lang.lisp
  56. Subject: Statice now runs on Unix
  57. Date: 15 Jun 93 14:55:48 GMT
  58.  
  59. Hi there,
  60.  
  61. since I've never seen 'Symbolics' or 'Statice' in
  62. comp.database.object, this might be interesting:
  63.  
  64. A few days ago, Symbolics announced the availability of a beta-
  65. release of their ODBMS 'Statice' on Unix platforms. It is quite
  66. powerful and tightly integrated within Common Lisp.
  67. Currently, Symbolics and LUCID are supported.
  68. People (like me) used to Symbolics' Genera development environment 
  69. can continue to use Statice there (where it has been already
  70. successfully employed in 'real world' applications)
  71. and now also use it on Unix Workstations.  (Those are the cheaper
  72. boxes, I guess). Both kinds of platforms can be freely intermixed
  73. in a network.
  74.  
  75. Statice is based on standards of Lisp: CLOS and CLIM 
  76. (Common Lisp Object System, resp. Common Lisp Interface Manager)
  77.  
  78. Here's the address of Symbolics in Germany; they're mostly 
  79. responsible for Statice on Unix:
  80.  
  81. Symbolics Systemhaus GmbH
  82. Mergenthalerallee 77
  83. 6236 Eschborn (til June 31)
  84. 65760 Eschborn (from July 1)
  85. Tel. (49) 6196-47220, Fax (49) 6196-481116
  86.  
  87. Contact person is Dr. Thomas Neumann (TN@symbolics.de).
  88.  
  89. Also:
  90.  
  91. "Update Database Schema" brings an existing database into conformance
  92. with a modified schema.  Changes are classified as either compatible
  93. (lossless, i.e., completely information-preserving) or incompatible
  94. (i.e., potentially information-losing in the current implementation).
  95. Basically, any change is compatible except for the following:
  96.  
  97.     -- If an attribute's type changes, all such attributes extant
  98.     are re-initialized (nulled out).  Note that Statice permits
  99.     an attribute to be of type T, the universal type.  Such an
  100.     attribute can then take on any value without schema
  101.     modification or information loss.
  102.  
  103.     -- If a type's inheritance (list of parents) changes, the
  104.     type must be deleted and re-created, losing all extant
  105.     instances of that type. This is Statice's most serious
  106.     current limitation.  The simplest workaround is to employ a
  107.     database dumper/loader (either the one supplied by Symbolics
  108.     or a customized one) to save the information elements and
  109.     then reload them into the modified schema.
  110.  
  111. [Lawrence G Mayka <lgm@IExist.ATT.COM>]
  112.  
  113.  
  114. > UniSQL
  115.  
  116. UniSQL, Inc. produce a unified object-relational database systems that let
  117. users move to an object-oriented paradigm while perserving existing investments in SQL-based applications.  Supports a while range of languages, databases
  118. and platforms.  Prices start at $3,995.
  119.  
  120. UniSQL offers a state-of-the-art suite of integrated object-oriented database
  121. systems and application development products which can be used separately or
  122. together to support complex development projects which use object-oriented
  123. development techniques, integrate sophisticated multimedia data, and require
  124. true multidatabase access to relational and object-oriented databases. The
  125. UniSQL product suite includes:
  126.  
  127.         UniSQL/X Database Management System;
  128.         UniSQL/M Multidatabase System; and
  129.         UniSQL/4GE Application Development Environment
  130.         User interfaces include: C++, C, Object SQL, SmallTalk, and ODBC
  131.         Database interfaces include: Ingres, Oracle, Sybase, UniSQL/X, and EDA/SQL
  132.  
  133. UniSQL offers:
  134.  
  135. - A wide selection of user interfaces including C++, SmallTalk, C, Microsoft's
  136.   ODBC, both embedded (static and dynamic) and interactive Object SQL, and UniSQL
  137.   and 3rd-party development tools.
  138.  
  139. - Mission-critical database features such as a high-level query language
  140.   (SQL/X), cost-based query optimization, automatic transaction management,
  141.   automatic concurrency control, dynamic schema evolution, dynamic authorization,
  142.   physical disk structuring options, and installation tuning parameters.
  143.  
  144. - The UniSQL Multimedia Framework which provides natural and uniform database
  145.   system support for all types of large unstructured data objects. The Multimedia
  146.   Framework also provides for seamless integration of multimedia devices such as
  147.   fax machines, CD jukeboxes, satellite feeds, image compression boards, etc.
  148.  
  149. - The UniSQL/M Multidatabase System enables developers to manage a collection
  150.   of multi-vendor databases -- Ingres, Oracle, Sybase, DB2, UniSQL/X, and others
  151.   -- as a single federated database system with full object-oriented
  152.   capabilities.
  153.  
  154. The majority of UniSQL customers use UniSQL database products for
  155. mission-critical applications which require object-oriented, multimedia,
  156. post-relational, and heterogeneous database capabilities.
  157.  
  158. A typical UniSQL customer is a Fortune 500 company, a commercial software
  159. developer, or government organization that is using UniSQL database products
  160. to:
  161.  
  162. - support mission-critical application development projects which are being
  163.   developed using object-oriented programming languages and development
  164.   techniques,
  165.  
  166. - support applications which must integrate many different types of corporate
  167.   data -- text and documents, tabular data, images and audio, engineering
  168.   drawings, GIS data, procedural data (programs), etc. -- into a single
  169.   application context.
  170.  
  171. - support the full object-oriented development paradigm using existing
  172.   relational database systems such as Ingres, Oracle, Sybase, and DB2.
  173.  
  174. - logically integrate one or more relational and object-oriented databases to
  175.   form a single, homogenized database server which supports both relational and
  176.   object-oriented facilities.
  177.  
  178. UniSQL was founded in May 1990 by Dr. Won Kim, President and CEO, delivering
  179. the UniSQL/X DBMS in March of 1992. With its world-class database research and
  180. architectural team, UniSQL has perfected what the database industry has sought
  181. since the mid-1980s: a fully object-oriented data model that is a natural
  182. conceptual outgrowth of the popular relational model. Both the UniSQL/X DBMS
  183. and the UniSQL/M Multidatabase System represent the first of a powerful new
  184. generation of client-server database systems that support the full
  185. object-oriented paradigm yet retain all of the strengths and capabilities of
  186. relational database systems including support for ANSI-standard SQL.
  187.  
  188. For more information, contact:
  189.  
  190. UniSQL, Inc.
  191. 8911 N. Capital of Texas Hwy
  192. Suite 2300
  193. Austin, Texas 78759-7200
  194. U.S.A.
  195.  
  196. Voice:  1-800-451-3267
  197.     (512) 343 7297
  198. Fax:    (512) 343 7383
  199. Email:  info@unisql.com
  200.  
  201.  
  202. > Unisys Universal Repository 
  203.  
  204. Unisys Corporation makes available the Unisys Universal Repository, a fully
  205. object-oriented repository for access, concurrent sharing and immediate
  206. updating of all business information for workgroup software development.
  207. Using an open, extensible architecture, the Universal Repository enables
  208. encapsulation of legacy applications and data in addition to use of new
  209. object-oriented information, and allows integration of leading development
  210. tools and objects.
  211.  
  212. Information reuse is achieved through built-in hooks which encourages
  213. data and business rule interchange among popular application development
  214. tools. This enables developers to continue using their preferred tools
  215. and to reuse existing models and data.
  216.  
  217. The Universal Repository uses the object database from Versant Object
  218. Technology Corporation, EXCHANGE bridging technology from leading U.K.
  219. integration and metadata specialist Software One Limited. EXCHANGE allows
  220. use of repository data with a wide range of the most popular front-end
  221. design, analysis and modeling tools including Texas Instruments IEF,
  222. Knowledgeware IEW and ADW, Intersolv Excelerator and Unisys LINC Design
  223. Assistant III.  When integrated with the Universal Repository, information
  224. created by tools can also be stored for reuse. A CASE Data Interchange
  225. Format (CDIF) bridge supports the loading and unloading of business
  226. information to and from the repository.  Users can also access the
  227. Software One Core Model (SOCM), a neutral interoperability model comprised
  228. of the objects required to describe tool models.
  229.  
  230. The Unisys Universal Repository is available now for Sun Solaris
  231. platforms, with support for UNIX and Windows clients. A version for
  232. Windows NT Client and Windows NT Server is also under development.
  233.  
  234. The Unisys Universal Repository is available immediately for independent
  235. software vendors (ISVs) under OEM licensing agreements. Sales to end-users
  236. will be through select resellers.  The introductory stand alone price
  237. ranges from $1,900 ($U.S.) to $9,000 ($U.S.) depending on selected
  238. options.
  239.  
  240. Call for more information and the location of the nearest Unisys
  241. authorized reseller.
  242.  
  243. Contraste Europe S.A.
  244. OSMOS Relational Object Database
  245.  
  246. Voice: (714) 380-6460
  247. Email: Buchanan@SJ.Unisys.Com
  248. Web:   http://osmos.unisys.com
  249.  
  250. Contact: Gordon DeGrandis
  251.      Gordon.DeGrandis@ping.be
  252.  
  253.  
  254. > Versant (Versant Object Technology)
  255.  
  256.   See also: http://www.versant.com
  257.  
  258. Versant is a client/server object database management system (ODBMS) targeted
  259. at distributed, multi-user applications.  Versant runs on UNIX and PC platforms. 
  260. Versant provides transparent language interfaces from object-oriented 
  261. programming languages such as C++ and Smalltalk.  Versant also supports a C API.
  262.  
  263. Versant is built with an object-level architecture, which means that operations 
  264. are generally performed on the object (or group thereof) level.  Key Versant 
  265. features include:
  266.  
  267.  Performance
  268.  -----------
  269.  
  270. *  Object-level locking for fine granularity concurrency control
  271. *  Server-based query processing to reduce network I/O
  272. *  Dual caching to speed warm traversals
  273. *  Dynamic space reclamation and reuse
  274.  
  275.  Distribution
  276.  ------------
  277.  
  278. *  Immutable, logical object identifiers for data integrity
  279. *  Object migration (transparent relocation across nodes)
  280. *  Transparent cross-node references (distributed db)
  281. *  Automatic two-phase commit
  282.  
  283.  Other
  284.  -----
  285.  
  286. *  Schema evolution (online via lazy updates)
  287. *  Standard workgroup features (e.g., versioning, checkin/out)
  288. *  Detachable, personal databases
  289. *  DBA utilities
  290.  
  291. Provide object database management system and development tools for
  292. multi-user, distributed environments.  Supports C++ and Smalltalk
  293. access.
  294.  
  295. Argos is their application development environment product. It's built
  296. on ParcPlace VisualWorks.
  297.  
  298. Versant Object Technology Corporation
  299. 1380 Willow Road
  300. Menlo Park, CA  94025
  301. U.S.A.
  302.  
  303. Voice: (415) 329-7500
  304. Fax:   (415) 325-2380
  305.  
  306. 3872 Larkspur
  307. CourtLoveland, CO 80538
  308. U.S.A.
  309.  
  310. Voice: (303) 593-9871
  311. Fax:   (303) 593-9874
  312.  
  313. Email: info@versant.com
  314. Web:   http://www.versant.com
  315.  
  316.  
  317. > VisualWorks
  318.  
  319. ParcPlace Systems, Inc. produce Smalltalk based development tools including
  320. VisualWorks, a client/server tool that includes a database application
  321. creator for rapid application development.
  322.  
  323. ParcPlace Systems, Inc.
  324. 999 East Arques Avenue
  325. Sunnyvale, CA  94086-4593
  326. U.S.A.
  327.  
  328. Voice: (408) 481-9090
  329.  
  330.  
  331.  
  332. Other Models
  333. ------------
  334.  
  335. Research Systems
  336. ________________
  337.  
  338. > GRAS
  339.  
  340. --------------------------------------------------------------
  341. GRAS - A Graph-Oriented Database System for SE Applications
  342. Copyright (C) 1987-1993  Lehrstuhl Informatik III, RWTH Aachen
  343. --------------------------------------------------------------
  344.  
  345. See the GNU Library General Public License for copyright details.
  346.  
  347. Contact Adresses:
  348.  
  349.     Dr. Andy Schuerr 
  350.     Lehrstuhl fuer Informatik III,
  351.     University of Technology Aachen (RWTH Aachen),
  352.     Ahornstr. 55,
  353.     D-5100 Aachen
  354.  
  355. Email to
  356.  
  357.     andy@i3.informatik.rwth-aachen.de
  358.  
  359. GRAS is a database system which has been designed according
  360. to the requirements resulting from software engineering
  361. applications. Software development environments are composed
  362. of tools which operate on complex, highly structured data.
  363. In order to model such data in a natural way, we have selected
  364. attributed graphs as GRAS' underlying data model.
  365.  
  366. A first prototype of the GRAS (GRAph Storage) system - described
  367. in /BL 85/ - was already realized in 1985. Since this time
  368. gradually improving versions of the system have been used at
  369. different sites within the software engineering projects
  370. IPSEN /Na 90/, Rigi /MK 88/, MERLIN /DG 90/, and CADDY /EHH 89/.
  371. Based on these experiences, almost all parts of the original
  372. prototype have been redesigned and reimplemented.
  373.  
  374. Thus, nowadays a stable and efficiently working single-process
  375. version of the system GRAS with interfaces for the programming
  376. languages Modula-2 and C is available as free software for Sun
  377. workstations (the GRAS system itself is implemented in Modula-2
  378. and consists of many layers which might be reusable for the
  379. implementation of other systems):
  380.  
  381.   Via anonymous ftp from ftp.informatik.rwth-aachen.de
  382.   in directory /pub/unix/GRAS in file gras.<version-no>.tar.Z.
  383.  
  384.   There are several files containing documentation, sources, binaries,
  385.   application examples, and libraries. All binaries are for Sun/4
  386.   machines. Sun/3 binaries are shipped only if explicitly requested.
  387.  
  388.   You have to use the following sequence of operations for installing
  389.   the GRAS system at your site:
  390.  
  391.   1) 'ftp ftp.informatik.rwth-aachen.de' (with login name "anonymous"
  392.      and password equal to your mail address).
  393.   2) 'cd pub/unix/GRAS' (for changing the current directory).
  394.   3) 'binary' (command for changing ftp mode).
  395.   4) 'get gras.<version-no.>' (use 'ls' for finding the currently used
  396.       GRAS version nr.).
  397.   5) 'bye' (for exiting ftp).
  398.   6) 'uncompress gras.<version-no>.tar'.
  399.   7) 'tar xvf gras.<version-no>.tar' (creates a subdirectory GRAS_2 for
  400.      the Modula-2 implementation of GRAS including its C-interface).
  401.   8) Follow the instructions in file GRAS_2/README.
  402.  
  403.  
  404. The current version has programming interfaces for Modula-2 and C
  405. and supports:
  406.  
  407.   - the manipulation of persistent attributed, directed node- and
  408.     edge-labeled graphs (including the creation of very long
  409.     attributes and of attribute indexes).
  410.  
  411.   - the manipulation of temporary/volatile generic sets/relations/lists,
  412.  
  413.   - the coordination of graph accesses by different GRAS applications
  414.     (multiple-read/single-write access with graphs as lock units),
  415.  
  416.   - error recovery based on shadow pages and forward logs,
  417.  
  418.   - nested transactions and linear undo/redo of arbitrarily long
  419.     sequences of already committed graph modifying operations based
  420.     on forward and backward logs,
  421.  
  422.   - event-handling (with certain kinds of graph-modifications
  423.     as events and graph-modifying transactions as event-handlers),
  424.  
  425.   - primitives for version control comprising the capability
  426.     for efficiently storing graphs as forward/backward deltas to
  427.     other graphs,
  428.  
  429.   - and primitives for declaring graph schemes and for incremental
  430.     evaluation of derived attributes.
  431.  
  432. Furthermore, tools for (un-)compressing graphs and a X11R5-based
  433. graph browser are part of this release.
  434.  
  435. A multi-process version of the system GRAS supporting the inter-
  436. action of multiple client and multiple server processes within
  437. one local area network is nearby completion (version 6.0/0).
  438.  
  439. Thus, the GRAS system may be considered to be the core of a graph
  440. oriented DBMS environment. The development of such an environment
  441. based on a very high-level specifications language named PROGRES
  442. is under way (the underlying calculus of this specification language
  443. are so-called PROgrammed GRaph REwriting Systems).
  444.  
  445. This environment will comprise the following tools (a prerelease
  446. of this environment might be made available upon request):
  447.  
  448.   - a syntax-directed editor for graph schemes, graph rewrite rules,
  449.     and sequences of graph rewrite rules,
  450.  
  451.   - an incrementally working consistency checker,
  452.  
  453.   - an incrementally working compiler&interpreter translating
  454.     PROGRES specifications into sequences of GRAS procedure
  455.     calls (for C as well as for Modula-2),
  456.  
  457.   - and an "enhanced" graph (scheme) browser.
  458.  
  459.  
  460. References
  461. ----------
  462.  
  463. Refer to the following publications for further info about GRAS, PROGRES,
  464. and related topics:
  465.  
  466. /BL85/          Brandes, Lewerentz: A Non-Standard Data Base System within
  467.                 a Software Development Environment. In Proc. of the Workshop
  468.                 on Software Engineering Environments for Programming-in-the-
  469.                 Large, pp 113-121, Cape Cod, June 1985
  470.  
  471. /DHKPRS90/      Dewal, Hormann, Kelter, Platz, Roschewski, Schoepe: Evaluation
  472.                 of Object Management Systems. Memorandum 44, University
  473.                 Dortmund, March 1990
  474.  
  475. /Feye92/    Feye A.: Compilation of Path Expressions (in German), Diploma
  476.         Thesis, RWTH Aachen (1992)
  477.  
  478. /Hoefer92/    Hoefer F.: Incremental Attribute Evaluation for Graphs (in
  479.         German), Diploma Thesis, RWTH Aachen (1992)
  480.  
  481. /HPRS90/        Hormann, Platz, Roschweski, Schoepe: The Hypermodel Benchmark,
  482.                 Description, Execution and Results. Memorandum 53, University
  483.                 Dortmund, September 1990
  484.  
  485. /KSW92/ *       Kiesel, Schuerr, Westfechtel: GRAS, A Graph-Oriented Database
  486.                 System for (Software) Engineering Applications. Proc. CASE 93,
  487.         Lee, Reid, Jarzabek (eds.): Proc. CASE '93, 6th Int. Conf. on
  488.         Computer-Aided Software Engineering, IEEE Computer Society
  489.         Press (1993), pp 272-286
  490.         Also:  Technical Report AIB 92-44, 
  491.  
  492. /Klein92/    Klein P.: The PROGRES Graph Code Machine (in German), Diploma
  493.         Thesis, RWTH Aachen (1992)
  494.  
  495. /Kossing92/    Kossing P.: Modelling of Abstract Syntax Graphs for normalized
  496.         EBNFs (in German), Diploma Thesis, RWTH Aachen (1992)
  497.  
  498. /LS88/          Lewerentz, Schuerr: GRAS, a Management System for Graph-
  499.                 Like Documents. In Proceedings of the Third International
  500.                 Conference on Data and Knowledge Bases, Morgan Kaufmann
  501.                 Publ. Inc. (1988), pp 19-31
  502.  
  503. /Nagl89/        Nagl (ed.): Proc. WG'89 Workshop on Graphtheoretic Concepts
  504.                 in Computer Science, LNCS 411, Springer-Verlag (1989)
  505.  
  506. /NS91/          Nagl, Schuerr: A Specification Environment for Graph Grammars,
  507.                 in Proc. 4th Int. Workshop on Graph-Grammars and Their
  508.                 Application to Computer Science, LNCS 532, Springer-
  509.                 Verlag 1991, pp 599-609
  510.  
  511. /Schuerr89/     Schuerr: Introduction to PROGRES, an Attribute Graph Grammar
  512.                 Based Specification Language, in: /Nagl89/, pp 151-165
  513.  
  514. /Schuerr91a/ *  Schuerr: PROGRES: A VHL-Language Based on Graph Grammars,
  515.                 in Proc. 4th Int. Workshop on Graph-Grammars and Their
  516.                 Application to Computer Science, LNCS 532, Springer-
  517.                 Verlag 1991, pp 641-659
  518.         Also:  Technical Report AIB 90-16
  519.  
  520. /Schuerr91b/    Schuerr: Operational Specifications with Programmed Graph
  521.         Rewriting Systems: Theory, Tools, and Applications, 
  522.         Dissertation, Deutscher Universitaetsverlag (1991) (in German)
  523.  
  524. /SZ91/ *        Schuerr, Zuendorf: Nondeterministic Control Structures for
  525.                 Graph Rewriting Systems, in Proc. WG'91 Workshop in Graph-
  526.                 theoretic Concepts in Computer Science, LNCS 570, Springer-
  527.                 Verlag 1992, pp 48-62
  528.         Also: Technical Report AIB 91-17
  529.  
  530. /Westfe89/      Westfechtel: Extension of a Graph Storage for Software
  531.                 Documents with Primitives for Undo/Redo and Revision Control.
  532.                 Technical Report AIB Nr. 89-8, Aachen University of Technology,
  533.                 1989
  534.  
  535. /Westfe91/      Westfechtel: Revisionskontrolle in einer integrierten Soft-
  536.                 wareentwicklungsumgebung, Dissertation, RWTH Aachen, 1991
  537.  
  538. /Zuendorf89/    Zuendorf: Kontrollstrukturen fuer die Spezifikationssprache
  539.                 PROGRES, Diplomarbeit, RWTH Aachen, 1989
  540.  
  541. /Zuendorf92/ *  Zuendorf A.: Implementation of the Imperative/Rule Based
  542.                 Language PROGRES, Technical Report AIB 92-38, RWTH Aachen,
  543.                 Germany (1992)
  544.  
  545. /Zuendorf93/ *  Zuendorf A.: A Heuristic Solution for the (Sub-) Graph
  546.                 Isomorphism Problem in Executing PROGRES, Technical
  547.                 Report AIB 93-5, RWTH Aachen, Germany (1993)
  548.  
  549. * : All reports marked with an asterisk are available via anonymous ftp from
  550.     ftp.informatik.rwth-aachen.de in directory /pub/reports/... .
  551.  
  552. See also PROGRES documentation.
  553.  
  554. [See also APPENDIX E]
  555.  
  556.  
  557. > IRIS (HP Labs)
  558.  
  559. [Iris is a system out of HP Labs that began as a prototype and eventually
  560. became a commercial product.  I believe it was eventually incorporated into
  561. the new HP product, OpenODB. - clamen]
  562.  
  563. Long and short system summaries can be found in:
  564.  
  565. [FISH89] D.H. Fishman et. al. Overview of the Iris DBMS. In Won.
  566.          Kim and Frederick H. Lochovsky, editors,
  567.          Object-Oriented Concepts, Databases and Applications,
  568.          chapter 10, pages 219--250. Addison-Wesley, Reading,
  569.          MA, 1989.
  570.  
  571. [FBC+87] D.H. Fishman, D. Beech, H.P. Cate, E.C. Chow,
  572.          T. Connors, J.W. Davis, N. Derrett, C.G. Hock, W. Kent,
  573.          P. Lyngbaek, B. Mahbod, M.A. Neimat, T.A. Tyan, and
  574.          M.C. Shan. Iris:  An object-oriented database
  575.          management system. ACM Transactions on Office
  576.          Information Systems, 5(1):48--69, January 1987.
  577.  
  578. The abstract of the latter (written early in the project) follows:
  579.  
  580.    The Iris database management system is a research prototype of
  581.    a next-generation database management system intended  to meet
  582.    the needs of new and emerging database applications, including
  583.    office    automation and knowledge-based systems,  engineering
  584.    test and measurement, and hardware  and software design.  Iris
  585.    is exploring a rich set of  new database capabilities required
  586.    by    these   applications,   including  rich    data-modeling
  587.    constructs, direct  database support for inference,  novel and
  588.    extensible data types, for example to  support graphic images,
  589.    voice,    text,   vectors,  and  matrices,    support for long
  590.    transactions   spanning  minutes  to  many  days, and multiple
  591.    versions of data.  These capabilities are, in addition  to the
  592.    usual support for  permanence   of data, controlled   sharing,
  593.    backup and recovery.
  594.  
  595.    The   Iris   DBMS consists   of  (1) a  query   processor that
  596.    implements  the   Iris object-oriented  data    model, (2)   a
  597.    Relational Storage Subsystem (RSS) -like  storage manager that
  598.    provides  access paths and  concurrency  control, backup   and
  599.    recovery, and (3) a collection of programmatic and interactive
  600.    interfaces.  The data   model supports  high-level  structural
  601.    abstractions,  such  as  classification, generalization,   and
  602.    aggregation, as  well  as behavioral    abstractions.      The
  603.    interfaces to  Iris  include an  object-oriented extension  to
  604.    SQL.
  605.  
  606.  
  607. On Schema Evolution (from original survey):
  608. Objects in the Iris system may acquire or lose types dynamically.
  609. Thus, if an object no longer matches a changed definition, the user
  610. can choose to remove the type from the object instead of modifying the
  611. object to match the type.  In general, Iris tends to restrict class
  612. modifications so that object modifications are not necessary.  For
  613. example, a class cannot be removed unless it has no instances and new
  614. supertype-subtype relationships cannot be established.
  615.  
  616.  
  617. Commercial Systems
  618. __________________
  619.  
  620.  
  621. > IDL (Persistent Data Systems)
  622.  
  623. IDL is a schema definition language. Schema modifications are defined
  624. in IDL, requiring ad-hoc offline transformations of the database, in
  625. general.  A simple class of transformations can be handled by
  626. IDL->ASCII and ASCII->IDL translators (i.e., integer format changes,
  627. list->array, attribute addition).
  628.  
  629. [conversation with Ellen Borison of Persistent Data Systems]
  630.  
  631.  
  632. ADDITIONAL REFERENCES:
  633.         John R. Nestor. "IDL: The Language and Its
  634.         Implementation". Prentice Hall. Englewood Cliffs,
  635.         NJ., 1989.
  636.  
  637.  
  638.  
  639. > Kala
  640.                          Kala Technical Brief
  641.  
  642. Summary
  643.  
  644. Kala(tm) is a Persistent Data Server managing distributed, shared,
  645. arbitrarily complex and evolving persistent data. Kala is highly
  646. efficient and secure. Kala manages the visibility of persistent data
  647. elements to its clients, thus supporting any types of transactions,
  648. versions, access control, security, configurations. Kala does not
  649. restrict you to any particular model. Kala provides the mechanism, but
  650. imposes no policy. Usable as either a link library communicating to a
  651. server or as a standalone, Kala is compact and simple.
  652.  
  653. Kala is used for applications such as: kernel of DBMS products,
  654. substrate for extended file systems, implementation of language
  655. persistence, data manager for groupware applications as well as
  656. applications which deal with large, complex, and changing volumes of
  657. data (text databases, financial distributed transaction systems). Our
  658. current customers use Kala in applications ranging from CASE
  659. repositories to CAD systems, from document management for financial
  660. institutions to OODBMS platforms, from real-time applications to
  661. database research.  Kala is a component of broad reuse.
  662.  
  663.  
  664. Motivation
  665.  
  666. The simplest persistent data storage available to you is the file
  667. system on your disk drive. File systems have some attractive
  668. characteristics; their performance is good, they can hold any data,
  669. they're easy to use, and, of course, the price is right. Conversely,
  670. files are unreliable.  They provide no mechanism for in maintaining
  671. data consistency and only primitive data sharing facilities. Few file
  672. systems offer version control and all require that you transform data
  673. between "internal" and "external" forms all the time.
  674.  
  675. Unlike a file system, a true database management system provides
  676. mechanisms for sharing data and for ensuring the integrity of the
  677. data.  It supports transactions and version control, although the
  678. specifics of these functions may not be exactly what your application
  679. needs. Finally, a database system is scalable, and much more robust
  680. than a file when your hardware or software fails.
  681.  
  682. The downside to a database system is that, compared to a file system,
  683. it is slower by an order of magnitude or more. Also, a database system
  684. generally confines you to dealing only with the kind of data that it
  685. can handle. In addition, a database is usually very complicated,
  686. difficult to learn and use, and expensive, both in terms of your cost
  687. of operation and in the amount of system resources they consume.
  688.  
  689. Whether you choose a file system or a database manager, then, you
  690. have to sacrifice either economy or performance. Is there a happy
  691. medium?  Something with the speed and flexibility of files, the
  692. reliability, shareability and robustness of databases, and at a cost
  693. that won't break your wallet or the available hardware? Sure there is!
  694. Kala is a first in a new breed of products, persistent data servers,
  695. aimed squarely at the yawning gap between DBMSs and file systems.
  696.  
  697.  
  698. Overview
  699.  
  700. Kala is *not* a DBMS. Instead, you use Kala whenever the few canned
  701. combinations of DBMS features do not meet the needs of your
  702. application. A DBMS product constrains you to accept *its* choice of
  703. an end-user graphical interface, a query language binding, a specific
  704. high level data or object model, a particular transaction model, a
  705. single versioning scheme, etc. This either compromises your
  706. application's functionality, or forces your to spend substantial
  707. development effort and money to bridge the impedance mismatch to the
  708. application.  Instead, Kala allows *you* to develop no more and no
  709. less than the functionality you need. You build your domain specific
  710. functionality our of a small set of primitives with very little code.
  711. Your gains in productivity, efficiency, and flexibility are
  712. substantial.
  713.  
  714. To sustain this level of flexibility and reuse, Kala manages any data
  715. that you can represent in machine memory out of bits and references.
  716. Examples include records, dynamically linked graphs and lists,
  717. executable code, and object encapsulations.
  718.  
  719. Kala can handle data as small as one bit, and as large as the virtual
  720. memory and more, while being totally unaware of the data's semantics.
  721. Its stores and retrieves data efficiently, and compactly over a
  722. distributed and dynamically reconfigurable set of Stores. Upon
  723. retrieval, Kala dynamically relocates embedded references to retain
  724. the original topological structure of the data, thus preserving
  725. referential integrity. Kala also supports active data, physical store
  726. management, and automatic archiving.
  727.  
  728. Kala repackages the fundamentals and universals of data management in
  729. one reusable data server, separating them from the application domain
  730. specific models and policies. Kala defines a low level interoperabi-
  731. lity point for the data storage domain, just as X does for the display
  732. domain and Postscript does for the printing domain.
  733.  
  734. Kala has matured through four successive versions to its present
  735. industrial strength implementation and stable API. Kala is lean,
  736. compact, and portable. Kala is a high performance, low overhead
  737. system. We call it a Reduced Instruction Set Engine (RISE). Unlike
  738. large, complex, and typically bulky DBMS products, Kala is small,
  739. simple, and suitable for managing anywhere from a single diskette to
  740. terabytes of distributed data.
  741.  
  742.  
  743. Benefits
  744.  
  745. * For those who need functionality traditionally associated with
  746.   databases, but cannot tolerate the overhead and complications DBMS
  747.   products introduce, Kala offers a flexible, compact, performant,
  748.   elegant, and simple alternative.
  749.  
  750. * For those whose application domain requires data models where the
  751.   mapping to those offered by today's DBMS products is cumbersome,
  752.   introduces development and execution overhead, and is not portable
  753.   across multiple linguistic and environmental platforms, Kala offers
  754.   a data model independent interface against any data model
  755.   expressible in terms of bits and pointers can be easily built.
  756.  
  757. * For those who need DBMS functionality or qualities that no single
  758.   DBMS product now has, Kala offers the opportunity to build that
  759.   functionality now with little effort out of a simple set of
  760.   primitives, and not wait for one vendor or another to deliver
  761.   it later.
  762.  
  763. * For those who have determined that the only viable option for their
  764.   application's persistent data needs is the file system, and have
  765.   resined to the idea that they will have to build everything else
  766.   they need from scratch, Kala offers an off-the-shelf implementation
  767.   without loss of any of files' advantages.
  768.  
  769. * For those who need performance, size, portability, storage
  770.   compactness, and industrial strength that no single DBMS product can
  771.   now satisfy, Kala offers all of the above now.
  772.  
  773. * For those who realize that while object-level interoperability is a
  774.   strong desideratum, the likelihood of a single, universal such model
  775.   in the foreseeable future is quite low, Kala offers a solid, long
  776.   term alternative. Data store interoperability that brings us beyond
  777.   file systems is the best practical bet. Kala is the basis for data
  778.   store interoperability now.
  779.  
  780. * Finally, for all of you who are concerned about the economics of
  781.   software, and take the view that there are many elements that
  782.   could contribute negatively to the soundness of your business, such
  783.   as operational costs, software maintenance costs, software licensing
  784.   costs, software development and learning costs, etc., you will find
  785.   Kala an economically sound, sensible, and practical product.
  786.  
  787.  
  788. Features
  789.  
  790. - The execution architecture is that of multiple (communicating)
  791.   servers and multiple clients. Kala can also be configured in a
  792.   standalone (single process) mode. Kala's IPC is built for maximum
  793.   performance, portable to any given datagram protocol.
  794.  
  795. - The managed data elements are made out of uninterpreted bits and
  796.   references. Data elements (named `monads') are universally uniquely
  797.   identified. Bits are stored with no overhead. References,
  798.   represented in memory as native machine pointers, are stored
  799.   very compactly, introducing an average of 2.5 bytes overhead.
  800.  
  801. - Kala is a fully recoverable system, short of media damage. Recovery
  802.   from hardware failures can be supported by the layer beneath Kala.
  803.  
  804. - The Kala primitives support arbitrary transaction models, including
  805.   classic short transactions, long (persistent) transactions, nested
  806.   transactions, shared transactions, pessimistic and optimistic
  807.   policies, etc. Concurrency control is achieved through two locking
  808.   mechanisms (short-term and long-term (persistent, shared) locking),
  809.   with full support for atomicity of operations and two-phase commit.
  810.  
  811. - The Kala primitives support arbitrary versioning models, allowing
  812.   versions to co-exist in split/rejoined networks, various version
  813.   organization strategies (single-thread, tree, DAG, etc.). Kala
  814.   primitives provide mechanisms for arbitrary access and update
  815.   triggers, such as notifications, security checks upon access/update,
  816.   etc. __ with no limitations on what the trigger code does. Kala
  817.   provides protection measures against virus and other intruding
  818.   executions.
  819.  
  820. - The Kala primitives support a wide range of access control, security
  821.   and protection models, including revocable access rights, access
  822.   control without the overhead of ACL management, arbitrary access
  823.   validation routines, etc. Kala does not introduce any more security
  824.   holes than the operating environment already has.
  825.  
  826. - Kala has primitives for physical store allocation and de-allocation
  827.   management, for a wide spectrum of store administrative tasks, as
  828.   well as licensing administration. The latter includes application-
  829.   sensitive time-limited client-connect-based licensing, as well as
  830.   metered (connect/load/store) usage. Kala can be set up to do
  831.   automatic archiving and backup of its physical store.
  832.  
  833. - Kala provides a wide spectrum of licensing schemes, usable by
  834.   platforms and applications built upon Kala to their customer base.
  835.   Kala provides renewable licenses, perpetual licenses, full
  836.   protection against duplication without hardware (hostid) support,
  837.   metered (pay-by-use) usage, etc.
  838.  
  839. - And more ... not fitting on this page-long Technical Brief.
  840.  
  841.  
  842. Availability
  843.  
  844. o Kala is available now on Sun platforms (SunOS / 68K & SPARC), as
  845.   well as on 80x86/MS-DOS (both Microsoft and Borland compilers &
  846.   runtimes supported) platforms. If you are interested in a port to
  847.   your favorite platform, call us to discuss our Development and
  848.   Porting Partnership Programme.
  849.  
  850. o Kala's interface is ANSI C, also callable from C++. If you are
  851.   interested in an interface or a binding to your favorite programming
  852.   language, please call us to discuss out Development Partnership
  853.   Programme.
  854.  
  855. o For pricing and other information, please contact us by phone, fax
  856.   or via e-mail at Info@Kala.com
  857.  
  858.  
  859. On Schema Evolution (from original survey):
  860.  
  861. Kala manages an untyped persistent store, implementing the semantics
  862. of robust, distributed, secure, changing, and shareable persistent
  863. data.  Layers built upon the Kala platform can implement the semantics
  864. of objects with the same properties.
  865.  
  866. As it operates below the schema layer, Kala does not address schema
  867. evolution directly. However, It supports the building of schema'ed
  868. layers above it and below the application, and those layers can
  869. provide for schema evolution conveniently using Kala primitives.
  870. This parts-box approach requires extra work on the part of the developer
  871. compared to out-of-the-box solutions, but provides power and
  872. flexibility sufficient for relatively low cost solutions in
  873. difficult environments (e.g. graph-structured data, dynamic classing) 
  874. where no out-of-the-box solution is available.
  875.  
  876.  
  877. REFERENCES:
  878.         Segui S. Simmel and Ivan Godard. "The Kala Basket: A
  879.         Semantic Primitive Unifying Object Transactions,
  880.         Access Control, Versions, annd Configurations
  881.  
  882.  
  883. Penobscot Development Corporation
  884.  
  885. Penobscot Development produces and markets Kala, a persistent data server
  886. managing distributed, shared, arbitrarily complex and evolving persistent
  887. data.  Kala manages the visibility of persistent data elements to its
  888. clients, thus supports all types of transactions, versions, access
  889. control, security, configurations. Kala does not restrict you to any
  890. particular model. Kala provides the mechanism, but imposes no policy.
  891. Usable as either a link library communicating to a server or as standalone,
  892. Kala is compact and simple.
  893.  
  894. Kala is not an OODBMS. Instead, you use Kala whenever the few canned
  895. combinations of DBMS features do not meet the needs of your application.
  896. This parts-box approach requires extra work on the part of the developer
  897. compared to out-of-the-box solutions, but provides power and flexibility
  898. sufficient for relatively low cost solutions in difficult environmentsi
  899. (e.g. graph-structured data, dynamic classing) where no out-of-the-box
  900. solution is available.
  901.  
  902. Penobscot Development Corporation
  903. One Kendall Square Building
  904. Suite 2200
  905. Cambridge, MA  02139-1564
  906. U.S.A.
  907.  
  908. Voice: (617) 267-5252
  909. Fax:   (617) 859-9597
  910. Email: info@kala.com
  911.  
  912.  
  913. > Pick
  914.  
  915. With Pick and its variants you only have problems if you want to
  916. redefine an existing field.  Because of the way the data are stored
  917. and the separation of the data and the dictionary you can define
  918. additional fields in the dictionary without having to do anything to
  919. the data - a facility which we have found very useful in a number of
  920. systems.
  921.  
  922. There is no general facility to redefine an existing field - you just
  923. make whatever changes are required in the dictionary then write an
  924. Info Basic program to change the data.  We have seldom needed to do
  925. this, but it has not been complicated to do.
  926.  
  927. If a field in the database is no longer used, it is often easiest
  928. simply to delete the reference to that field in the dictionary, and
  929. accept the storage overhead of the unused data.  In such cases, while
  930. the data cannot be accessed through the query language, (Pick)Basic
  931. programs can still access them.
  932.  
  933. [Geoff Miller <ghm@ccadfa.cc.adfa.oz.au>]
  934.  
  935.  
  936.  
  937. Interfaces
  938. ----------
  939.  
  940.  
  941. Research Systems
  942. ________________
  943.  
  944.  
  945. > Penguin (Stanford)
  946.  
  947. Penguin is an object-oriented interface to relational databases.
  948. Penguin has its own simple language-independent object model with
  949. inheritance for composite objects defined as views (called
  950. view-objects) of a relational database.  These view-objects represent
  951. data according to application requirements in such a way that multiple
  952. applications can share overlapping, but different, sets of data.
  953. Multiple applications may share data by having overlapping schemata
  954. with differing composite objects and differing inheritance mappings.
  955. We have a C++ binding, which supports multiple inheritance.  The
  956. result is a framework for collaboration among multiple users, each
  957. with differing perspectives about the system and its data.
  958.  
  959. For additional information, please contact ark@db.stanford.edu
  960.  
  961. References:
  962.  
  963. ``A C++ Binding for Penguin: a System for Data Sharing among
  964. Heterogeneous Object Models,'' Arthur M. Keller, Catherine Hamon,
  965. Foundations on Data Organization (FODO) 93, October 1993, Chicago.
  966.  
  967. ``Querying Heterogeneous Object Views of a Relational Database,''
  968. Tetsuya Takahashi and Arthur M. Keller, Int. Symp. on Next Generation
  969. Database Systems and their applications, Fukuoka, Japan, September
  970. 1993, to appear.
  971.  
  972. ``Updating Relational Databases through Object-Based Views,'' by
  973. Thierry Barsalou, Niki Siambela, Arthur M. Keller, and Gio Wiederhold,
  974. ACM SIGMOD, Denver, CO, May 1991.
  975.  
  976. ``Unifying Database and Programming Language Concepts Using the Object
  977. Model'' (extended abstract), Arthur M. Keller, Int. Workshop on
  978. Object-Oriented Database Systems, IEEE Computer Society, Pacific
  979. Grove, CA, September 1986.
  980.  
  981.  
  982. Commercial Systems
  983. __________________
  984.   
  985. >AllegroStore
  986.  
  987. See Databases & Development Sept. 5, 1994, p1. 
  988.  
  989. "Lisp, Smalltalk Languages Given Database Systems"
  990.  
  991. Quote:
  992. Franz, based in Berkeley, Calif., is now shipping AllegroStore, which the
  993. company calls the first object database system designed for object-oriented
  994. Lisp.
  995.  
  996. [...] The database is based on the ObjectStore engine from Object Design, also
  997. in Burlington.  It supports multiple clients and servers, [...]
  998.  
  999. Franz is at 800-333-7260 or 510-548-3600.
  1000.  
  1001.  
  1002. > DBTools.h++
  1003.  
  1004. Rogue Wave Software
  1005.  
  1006. A leading producer of C++ class libraries including Tools.h++, Heap.h++,
  1007. C++ Booch Components, and DBTools.h++ for accessing relational databases,
  1008. such as SYBASE, from C++ programs.  Rogue Wave recently merged with
  1009. Inmark Development (zApp), so their products now includes visual builders,
  1010. visual interfaces, and code generators for C++ developers.
  1011.  
  1012. Rogue Wave Software, Inc.
  1013. 260 S.W. Madison Avenue
  1014. P.O. Box 2328
  1015. Corvallis, OR  97339
  1016. U.S.A.
  1017.  
  1018. Toll Free:  1-800-487-3217
  1019. Direct:     (503) 754-3010
  1020. Fax:        (503) 757-6650
  1021. Email:      sales@roguewave.com
  1022. Web:        http://www.roguewave.com
  1023.  
  1024.  
  1025. >OBJECT GATEWAY
  1026.  
  1027. Object Gateway is a modeling, mapping and code generation tool that lets
  1028. you look at existing relational data in Oracle, Sybase and other servers
  1029. as if they are object oriented.  It is a 100% client-resident and runs on
  1030. Microsoft Windows platforms.
  1031.  
  1032. Schema Genie, the design time component of Object Gateway, lets you design an
  1033. ODMG-style object model for your SQL database. Once the model is designed,
  1034. you can generate a variety of language interfaces for it (C++, C, OLE
  1035. Automation and Visual Basic are currently supported).
  1036.  
  1037. Object Engine is the run-time component of the system and it implements the
  1038. object data model by supporting features such as activation and deactivation of
  1039. objects, complex object assembly, inheritance, relationships and cache
  1040. management.  Object Browser is a component of the system that lets you browse
  1041. through and manipulate data based on the object model that you defined.
  1042.  
  1043. The central tenet of Object Gateway is that inside every complex relational
  1044. database, there is an object model waiting to get out. Such a model reduces
  1045. the abstraction level mismatch between modern, object oriented client tools
  1046. and SQL servers. Automatic generation of an object oriented data access layer
  1047. eliminates the need for programmers to hand-craft code to do the same.
  1048.  
  1049. For more information, please contact Sierra Atlantic at the address
  1050. below:
  1051.  
  1052.     Sierra Atlantic Inc
  1053.     830 Hillview Court, Suite 270,
  1054.     Milpitas, CA 95035
  1055.     Phone: (408) 956 3006
  1056.     Fax:   (408) 956 3001
  1057.     Email:  objgtwy@shell.portal.com
  1058.  
  1059.  
  1060. > Persistence
  1061.  
  1062.                 PERSISTENCE(TM): BRIDGING THE GAP BETWEEN OBJECT 
  1063.                     ORIENTED DEVELOPMENT AND RELATIONAL DATA
  1064.  
  1065. Persistence is an application development tool which provides object
  1066. oriented access to existing relational data.  Persistence uses an
  1067. automatic code generator to convert object models into C++ classes
  1068. which know how to read and write themselves to a relational database.
  1069.  
  1070. Leverage existing data
  1071.  
  1072. Persistence enables object oriented access to existing relational
  1073. databases. Applications built with Persistence can work side by side
  1074. with legacy systems.
  1075.  
  1076. Automate database access
  1077.  
  1078. By generating the methods to convert relational data into objects,
  1079. Persistence saves the developer from having to write literally hundreds
  1080. of lines of code per class.
  1081.  
  1082. Speed application development
  1083.  
  1084. With Persistence, major changes to the application object model can be
  1085. completed in minutes, not weeks.
  1086.  
  1087. Quality
  1088.  
  1089. Persistence generates tested, bug-free code. Using Persistence helps
  1090. ensure the reliability and reusability of your applications.
  1091.  
  1092. Performance
  1093.  
  1094. At Runtime, Persistence manages an object cache to enhance performance
  1095. while ensuring data integrity. The Persistence object cache can provide
  1096. a factor of ten performance improvement for data intensive
  1097. applications.
  1098.  
  1099. Portability
  1100.  
  1101. Code generated by Persistence is database independent. You can choose
  1102. which database to work with at link step, increasing application
  1103. portability.
  1104.  
  1105.                         TECHNICAL SPECIFICATIONS
  1106.  
  1107. The Persistence Database Interface Generator converts object schemas
  1108. into C++ classes.
  1109.  
  1110.                                                 Custom
  1111.                                                 Code
  1112.                                                    |
  1113.                                                    v
  1114.  
  1115. Object schema    --->   Persistence    ---->    Generated
  1116.                         Generator               Classes
  1117.                                                    ^
  1118.                                                    |
  1119.                                                    v
  1120.                                                 Persistence
  1121.                                                 Object Cache
  1122.                                                    ^
  1123.                                                    |
  1124.                                                    v
  1125.                                                 Legacy Data
  1126.  
  1127.  
  1128. Encapsulation
  1129.  
  1130. Each class generated by Persistence maps to a table or view in the database.
  1131. - Query using ANSI SQL or attribute values
  1132. - Add custom code to generated classes
  1133. - Preserve custom code when model changes
  1134.  
  1135. Inheritance
  1136.  
  1137. Persistence supports inheritance of attributes, methods and relationships.
  1138. - Propagate superclass queries to subclasses
  1139. - Use virtual methods for polymorphism
  1140.  
  1141. Associations
  1142.  
  1143. Persistence maps associations to foreign keys in the database. Each class has methods to access related classes.
  1144. - Ensure referential integrity between classes
  1145. - Specify delete constraints for associations
  1146.  
  1147. Object Caching
  1148.  
  1149. The Persistence Runtime Object Management System caches objects during
  1150. transactions and ensures data integrity. In the object cache,
  1151. Persistence "swizzles" foreign key attributes into in-memory pointers,
  1152. speeding object traversal.
  1153.  
  1154. Transactions
  1155.  
  1156. When a transaction is committed, Persistence walks through the object
  1157. cache and writes out changes to the database.
  1158.  
  1159. Environment
  1160.  
  1161. Platforms/Operating systems
  1162. Persistence will support all major Unix and Intel platforms
  1163. - Sun/SunOS 4.x, Solaris 2.x
  1164. - HP/HP-UX 8.0, 9.0
  1165. - IBM/AIX (planned 11/93)
  1166. - Intel/NT (planned 3/94)
  1167.  
  1168. Development Tools
  1169.  
  1170. Persistence supports all major C++ compilers and integrates with GE's
  1171. OMTool, allowing developers to go straight from an object model to a
  1172. running C++ application.
  1173. - Cfront 2.1: ObjectCenter 1.0, SPARCompiler, ObjectWorks
  1174. - Cfront 3.0: ObjectCenter 2.0, SPARCompiler, Softbench C++
  1175. - GE's OMTool
  1176.  
  1177. Databases
  1178.  
  1179. Persistence provides database independence. With our Objectivity
  1180. integration, we also provide a clear migration path to object
  1181. databases.
  1182. - Oracle V6, V7
  1183. - Sybase 4.x
  1184. - Ingres 6.x
  1185. - Objectivity ODBMS
  1186. - Informix (planned 9/93)
  1187. - ODBC (planned 3/94)
  1188.  
  1189.                             CUSTOMER QUOTES
  1190.  
  1191. "We wanted to use object technology while continuing to support our
  1192. legacy systems. Persistence made this feasible by automating over 30
  1193. percent of our development cycle." Steve Hunter, Sterling Software
  1194.  
  1195. "Persistence cut our development time by approximately 40%, because we
  1196. would have had to do all the mapping functions ourselves." Jim
  1197. Adamczyk, Partner, Andersen Consulting
  1198.  
  1199. "I'm convinced we'll save weeks or months of time because of
  1200. Persistence." Mike Kubicar, SunSoft Defect Tracking Team
  1201.  
  1202. "The good thing is that you can change your object model and just
  1203. re-generate the database interface classes at the press of a button."
  1204. Richard Browett, Product manager, K2 Software Developments, Ltd.
  1205.  
  1206. "The Persistence package saved at least 25 to 50 percent of the
  1207. development time, and seemed extremely robust. Support has been nothing
  1208. short of phenomenal." Stew Schiffman, DuPont Research and Development
  1209.  
  1210. FOR MORE INFORMATION
  1211.  
  1212.  
  1213. Persistence Software, Inc.
  1214. 1700 S. Amphlett Blvd.
  1215. Suite 250
  1216. San Mateo, CA 94402
  1217. U.S.A.
  1218.  
  1219. Voice: 1-800-803-8491
  1220.        (415) 341-7733
  1221. Fax:   (415) 341-8432
  1222. Email: info@persistence.com
  1223. Web:   http://www.persistence.com
  1224.  
  1225.  
  1226. > Subtleware
  1227.  
  1228. Connecting C++ with Relational Databases
  1229.  
  1230.  
  1231. Subtleware for C++ (Subtleware) is a software development toolset which 
  1232. openly automates C++ connectivity to relational databases by providing:
  1233.  
  1234. *  A C++ pre-processor that automatically generates the code necessary 
  1235.    to read and write C++ objects to a relational database.
  1236.  
  1237. *  A schema mapper that defines C++ classes from relational database 
  1238.    schema, and
  1239.  
  1240. *  A class library that simplifies C++ application access to existing 
  1241.    relational data,
  1242.  
  1243.  
  1244. SUBTLEWARE INCREASES PROGRAMMER PRODUCTIVITY
  1245.  
  1246. Subtleware vastly simplifies the coding necessary for C++ to work with 
  1247. relational databases: 
  1248.  
  1249. *  It jump starts application development by generating C++ class 
  1250.    definitions from relational database schema.
  1251.  
  1252. *  It speeds application development by eliminating the need to 
  1253.    write hundreds of lines of database mapping code per class. 
  1254.  
  1255. *  It dramatically reduces application maintenance time by eliminating
  1256.    the need to modify the database mapping code with each C++ class 
  1257.    definition change. 
  1258.  
  1259. As a result, C++ application developers can focus on what brings value to 
  1260. their organization, application development; and, C++ application 
  1261. development projects can reduce their development costs as well as speed 
  1262. their time-to-market.
  1263.  
  1264.  
  1265. SUBTLEWARE IS DESIGNED TO BE OPEN
  1266.  
  1267. *  Subtleware adds value to your C++ development environment!  
  1268.    Subtleware fits into your existing C++ development environment by 
  1269.    working with your preferred C++ design tools, compilers, and class 
  1270.    libraries. No Subtleware-specific design tools are necessary.
  1271.  
  1272. *  Subtleware works directly with your existing C++ class definitions!
  1273.  
  1274. *  Subtleware adds value to your relational database systems!  
  1275.    Your C++ applications can work concurrently and share data with 
  1276.    your other relational database applications. Subtleware makes your
  1277.    existing relational database into a powerful OODBMS.
  1278.  
  1279. *  Subtleware library source code and generated code is freely 
  1280.    available!  No run-time fees are imposed.
  1281.  
  1282.  
  1283. SUBTLEWARE IS WIDELY AVAILABLE
  1284.  
  1285. Subtleware runs on a wide range of computing platforms:
  1286. *  PC's running Windows 3.x, Windows NT, OS/2, and DOS.
  1287. *  Unix workstations, including Sun and HP.
  1288.  
  1289. Subtleware supports a variety of database interfaces:
  1290.   *  ANSI SQL                *  ODBC
  1291.   *  Oracle                  *  Sybase 
  1292.   *  Watcom                  *  Informix (planned 8/95)
  1293.   *  Ingres (planned 10/95) 
  1294.   *  ODMG (planned 12/95)
  1295.  
  1296. Subtleware supports virtually all C++ 2.x and 3.x compilers, including:
  1297. *  Borland C++
  1298. *  Microsoft Visual C++
  1299. *  HP C++
  1300. *  SunPro C++
  1301.  
  1302.  
  1303. SUBTLEWARE IMPROVES SOFTWARE QUALITY
  1304.  
  1305. Subtleware generates well-documented, bug-free code. Furthermore, 
  1306. Subtleware code generation can be customized for your application 
  1307. requirements. Using Subtleware greatly increases the reliability and 
  1308. reusability of your applications.
  1309.  
  1310.  
  1311. SUBTLEWARE OPTIMIZES APPLICATION PERFORMANCE
  1312.  
  1313. Subtleware generates static SQL code that can be linked directly into your 
  1314. application or packaged as a DLL or shared library. Subtleware does not 
  1315. require the use of high-overhead, run-time modules for managing your 
  1316. persistent objects.
  1317.