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

  1. Newsgroups: comp.object,comp.answers,news.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.reston.ans.net!newsfeed.internetmci.com!ncar!uchinews!news
  3. From: Bob Hathaway <rjh@geodesic.com>
  4. Subject: Comp.Object FAQ Version 1.0.9 (04-02) Part 6/13
  5. X-Nntp-Posting-Host: ford.uchicago.edu
  6. Message-ID: <Dp9qEz.AJ8@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:13:47 GMT
  13. Approved: news-answers-request@MIT.Edu
  14. Lines: 1224
  15. Xref: senator-bedfellow.mit.edu comp.object:46933 comp.answers:17965 news.answers:68639
  16.  
  17. Archive-name: object-faq/part6
  18. Last-Modified: 04/02/96
  19. Version: 1.0.9
  20.  
  21. The VODAK Model Language VML  homogeneously integrates the concept of
  22. metaclasses and the separation of types and classes with other
  23. object-oriented concepts such as properties, methods, inheritance, and
  24. object identity. Complex nested data structures can be defined using
  25. the set, array, tuple, and dictionary type constructors. VML supports
  26. its own programming language for implementing methods, specifying
  27. transactions and an ad hoc query language.
  28.  
  29. In VML classes are used to organize a set of objects corresponding to
  30. real world entities and relationships between them. Object types define
  31. the structure of objects and the operations defined on these
  32. structures.  They are associated with classes in order to determine the
  33. structure and behavior of the class' instances. Metaclasses are first
  34. class objects whose instances are classes. Metaclasses are associated
  35. with three object types: an (optional) own-type extending their own
  36. behavior, an instance-type specifying the behavior of their instances
  37. (which are classes), and an  instance-instance-type specifying the
  38. behavior of the instances of their instances.  Metaclasses can be
  39. organized in an instantiation hierarchy of arbitrary depth.
  40.  
  41. This approach leads to an open, adaptable data model which provides for
  42. the specification of additional modeling primitives at a meta layer of
  43. the database schema. The concept of metaclasses and the separation of
  44. classes and types allow to determine the structure and behavior of
  45. objects and the individual inheritance behavior via semantic
  46. relationships between arbitrary objects already at the meta layer
  47. independently from the specifications given at the application layer
  48. for the application specific classes.
  49.  
  50.  
  51. The VODAK Transaction Model
  52.  
  53. In VODAK, we focus on two specific problems of transaction management.
  54.  
  55. 1. Operations to read and edit (hyper)documents are typically complex,
  56. interactive and of long duration. A high degree of concurrency is
  57. required to reduce the number and length of times a transaction is
  58. blocked.
  59.  
  60. 2. A publication environment has to handle existing database systems
  61. for using and modifying remote information and documents.  Transaction
  62. managers of existing systems, i.e. concurrency control and recovery,
  63. have to be integrated in a transparent way utilizing the functionality
  64. of existing managers.
  65.  
  66. Our transaction model is based on open nested transactions. Compared to
  67. conventional flat transactions, nested transactions allow more
  68. concurrency and are more flexible for recovery.  A nested transaction
  69. is a tree-like structure, dynamically built up by the call of
  70. subtransactions until a bottom implementation level is encountered.
  71.  
  72. We extended the open nested model from a fixed calling hierarchy of
  73. operations in a layered system (multi-level transactions) to an
  74. arbitrary calling hierarchy of operations in an object-oriented system.
  75. Commutativity of operations is applied to system defined VODAK methods,
  76. and to methods of user defined object types.  For the second type of
  77. operations, we developed a framework to specify commutativity and
  78. inverse operations in VML.
  79.  
  80. Query Processing
  81.  
  82. Although nearly all object-oriented data models proposed so far include
  83. behavioral aspects, most object-oriented query languages, algebras and
  84. query optimization strategies simply adapt relational concepts since
  85. they focus on the complex structures of objects and neglect the
  86. behavior. We claim that this approach is not sufficient since it does
  87. not reflect the much richer semantics methods can carry which have to
  88. be taken into account for really efficient query processing. The quite
  89. straightforward approach we consider is to integrate methods in an
  90. algebraic framework for query processing and to make there partial
  91. knowledge about methods available in the form of equivalences. We
  92. integrate algebraic set operators with methods defined in database
  93. schemas within an object-oriented data model. We investigate the impact
  94. on the architecture of the query processor when the algebra becomes an
  95. extendible component in query processing.
  96.  
  97. Multimedia Support
  98.  
  99. The V3 Video Server was built as a demonstration showing a multimedia
  100. application developed on top of the VODAK database management system.
  101. The V3 Video Server allows a user to interactively store, retrieve,
  102. manipulate, and present analog and short digital video clips. A video
  103. clip consists of a sequence of pictures and corresponding sound.
  104. Several attributes like author, title, and a set of keywords are
  105. annotated.
  106.  
  107. In the future, the VODAK DBMS will be enhanced with new built-in
  108. functionality for multimedia datatypes. Therefore, existing components
  109. of VODAK must be changed and new ones must be added to support time
  110. dependencies, high data volumes, and user interaction.
  111.  
  112. Query Processing
  113.  
  114. Although nearly all object-oriented data models proposed so far include
  115. behavioral aspects, most object-oriented query languages, algebras and
  116. query optimization strategies simply adapt relational concepts since
  117. they focus on the complex structures of objects and neglect the
  118. behavior. We claim that this approach is not sufficient since it does
  119. not reflect the much richer semantics methods can carry which have to
  120. be taken into account for really efficient query processing. The quite
  121. straightforward approach we consider is to integrate methods in an
  122. algebraic framework for query processing and to make there partial
  123. knowledge about methods available in the form of equivalences. We
  124. integrate algebraic set operators with methods defined in database
  125. schemas within an object-oriented data model. We investigate the impact
  126. on the architecture of the query processor when the algebra becomes an
  127. extendible component in query processing.
  128.  
  129. The VODAK Prototype
  130.  
  131. The system architecture consists of a central database environment and
  132. several external database environments to which the user wants to have
  133. integrated access. Each of these environments consists of an object
  134. manager, a message handler, a transaction manager, and a communication
  135. manager. In addition to these components an external database
  136. environment includes a database interface module which realizes the
  137. access to an external database system.
  138.  
  139. The DBMS components are currently built on top of DAMOKLES and will be
  140. in the near future on top of ObjectStore.
  141.  
  142. A first version of a C++ based prototype of VODAK is available for Sun
  143. Sparc Stations under certain conditions.  It implements all the
  144. features specified in including e.g. metaclasses, transactions, and
  145. remote message execution.
  146.  
  147. References
  148.  
  149. P. Muth, T. Rakow, W. Klas, E. Neuhold:  A Transaction Model for an
  150. Open Publication Environment.  A. K. Elmagarmid (Ed.): Database
  151. Transaction Models for Advanced Applications. Morgan Kaufmann
  152. Publishers, San Mateo, Calif., 1992.
  153.  
  154. Wolfgang Klas, Karl Aberer, Erich Neuhold Object-Oriented Modeling for
  155. Hypermedia Systems using the VODAK Modeling Language (VML) to appear
  156. in: Object-Oriented Database Management  Systems, NATO ASI Series,
  157. Springer Verlag Berlin Heidelberg, August 1993.
  158.  
  159. Karl Aberer, Gisela Fischer Object-Oriented Query Processing: The
  160. Impact of Methods on Language, Architecture and Optimization
  161. Arbeitspapiere der GMD No. 763, Sankt Augustin, July 1993.
  162.  
  163. T.C. Rakow, P. Muth The V3 Video Server: Managing Analog and Digital
  164. Video Clips, Sigmod 93, Washington, DC.
  165.  
  166. For further information contact
  167.  
  168. {aberer,muth,rakow,klas}@darmstadt.gmd.de
  169.  
  170.   GMD-IPSI                                             
  171.   Dolivostr. 15                                                           
  172.   D-64293 Darmstadt
  173.   GERMANY    
  174.                                     
  175.   FAX: +49-6151-869 966   
  176.  
  177.  
  178. Commercial Systems
  179. __________________
  180.  
  181. > ArtBASE  (Object-Oriented Data Model)
  182.  
  183. by:     ArtInAppleS Ltd.
  184.         Kremelska 13
  185.         845 03 Bratislava
  186.         SLOVAKIA
  187.         Phone: x42-7-362-889
  188.         fax:   x42-7-777 779
  189.         EMail: artbase.support@artinapples.cs
  190.  
  191. Distributor for Germany:
  192.         ARS NOVA Software GmbH
  193.         Stettener Strasse 32/3
  194.         73732 Esslingen a.N.
  195.         Germany
  196.         Phone: x49-711 3704001
  197.         Fax:   x49-711 3704001
  198.         EMail: info@arsnova.stgt.sub.org
  199.  
  200. Languages: Objectworks\Smalltalk by ParcPlace Systems, Inc.
  201.  
  202. Platforms: Unix, PC Windows, Macintosh
  203.  
  204. Features:
  205. - Fully implemented in Objectworks\Smalltalk
  206.   (ArtBASE is delivered with source code)
  207.  
  208. - ArtBASE extents Smalltalk of persistency. Persistent objects are handled the
  209.   same way as transient objects.
  210.  
  211. - Optimistic and pessimistic concurrency control.
  212.  
  213. - Transactions, including long lived transactions
  214.  
  215. - User concept with access restrictions
  216.  
  217. - storing of classes and methods in the database - entire applications 
  218.   may be stored in an ArtBASE database, including the data AND the 
  219.   application classes
  220.  
  221. - Currently, a single user version is available. The Distributed Multi User Server Version
  222.   will be presented at the OOPSLA'93 at Washington D.C. in September 1993 for Unix
  223.   environments and PCs.
  224.  
  225. - Existing applications can be turned to database applications very easily using ArtBASE
  226.  
  227.  
  228. > EasyDB (Basesoft Open Systems, Sweden)
  229.  
  230. Produce EasyDB, a single or multi user distributed Object Database
  231. Management System. Well integrated with C, C++ and Ada. Appears well
  232. architected.
  233.  
  234. Main features include: fully distributed, multi-client, multi-server
  235. architecture; distributed storage and access transparent to the user;
  236. well integrated language bindings to C, C++ and Ada; multiple language
  237. access and data independence between different programming languages;
  238. conceptual modeling approach - intuitive and natural Data Definition
  239. Languages, based on the well known ERA-technique combined with object
  240. orientation where the user can choose between a graphical or a textual
  241. notation; dynamic schema evolution; interactive ad-hoc query language;
  242. powerful type system with possibilities to define ranges of permitted
  243. values; in addition to conventional data types there are BYTESTREAM and
  244. DATABASE REFERENCE (link); support for bidirectional relationships;
  245. support for short and long transactions; support for versioning; dynamic
  246. and static name resolution; high reliability and powerful
  247. error/conflict/exception handling.
  248.  
  249. Customers include SAAB Aircraft, Swedish Defence Research, Ericsson
  250. Radar, Swedish Telecom, Swedish Defence.
  251.  
  252. Popular applications areas include communications (EDI), simulation,
  253. GIS, CASE/CAD, library and retrieval systems (reuse libraries).
  254.  
  255. Basesoft Open Systems AB
  256. P.O. Box 1097
  257. S-164 21 Kista
  258. Sweden
  259.  
  260. Voice:    +46 8 752 07 70
  261. Telefax:  +46 8 751 22 77
  262. Email:    request@basesoft.se
  263.  
  264. Jaan Haabma, President
  265.  
  266.  
  267. > GemStone (Formerly Servio Corporation)
  268.  
  269. The GemStone Object-Oriented Database, from GemStone Systems, Inc.
  270.  
  271. First introduced in 1987, GemStone is the oldest commercial ODBMS available
  272. today. GemStone is particularly well suited for use in complex multi-user,
  273. multi-platform client/server applications. It supports concurrent access
  274. from multiple external languages, including Smalltalk (VisualWorks, Visual
  275. Age, and Visual Smalltalk), C++ and C. GemStone also provides Smalltalk as
  276. an internal DML, which can execute methods or entire applications in the
  277. database.
  278.  
  279.  
  280. CAPABILITIES
  281.  
  282. GemStone is a highly scalable client-multiserver database for commercial
  283. applications. GemStone's features include:
  284.  
  285. o  Server Smalltalk -- GemStone allows database application developers to
  286.    create classes and write methods which are stored and executed directly
  287.    in the database. These methods can be accessed either internally, or
  288.    from external client applications. This can significantly reduce network
  289.    traffic and allow applications to take advantage of the compute power or
  290.    network connectivity of the server. This also eliminates the need to
  291.    rebuild and re-deploy applications whenever application or business
  292.    processing rules change. This in turn allows for centralized code
  293.    development and management, architecture-independent code that ports
  294.  
  295. o  Concurrent Support for Multiple Languages -- GemStone provides
  296.    concurrent support for applications developed in Smalltalk, C++, or C.
  297.    All applications, regardless of language, can have simultaneous access
  298.    to the same database objects.
  299.  
  300. o  Flexible multi-user transaction control -- Multiple users can
  301.    operate in the database simultaneously, with a variety of transaction
  302.    control modes available. GemStone also provides a number of
  303.    reduced-conflict classes which can increase system throughput
  304.    substantially.
  305.  
  306. o  Object-level security -- Authorization control can be applied to any
  307.    object in the database, allowing for fine tuning of object security.
  308.  
  309. o  Dynamic schema and object evolution -- GemStone supports schema
  310.    modification through class versioning and allows full migration of
  311.    objects between versions of their classes with a simple message send.
  312.    Migration is fully customizable and is undoable.
  313.  
  314. o  Production Services -- GemStone delivers the full suite of features
  315.    required in any production-ready networked database including online
  316.    backup, rapid recovery, referential integrity, event signals, notifiers,
  317.    and sophisticated concurrency control including optimistic, pessimistic
  318.    and behavior based (type specific) control.
  319.  
  320. o  Scalability -- In a recent independent benchmark, GemStone scaled to
  321.    support more than 1,000 simultaneous log-ins and 100 concurrent active
  322.    users on a mid-sized SMP server.
  323.  
  324. o  Legacy Gateways -- GemStone incorporates gateways or data bridges
  325.    that allow object applications to integrate legacy data, whether in SQL,
  326.    IMS, VSAM or other formats. The level of integration between GemStone
  327.    and legacy data and applications can range from simple query access to
  328.    extensive read-write interoperability.
  329.  
  330. o  Developer Tools -- GemStone includes tools for debugging, browsing and
  331.    inspecting database classes and methods. Included in this set of tools
  332.    are browsers, inspectors, a debugger, and a code profiler for
  333.    performance analysis.
  334.  
  335. o  Database Administration Tools -- GemStone includes a number of tools for
  336.    general database administration, including creating new user accounts,
  337.    assigning user and object security, managing database extents, and more.
  338.  
  339.  
  340. PLATFORMS
  341.  
  342. GemStone release 4.0 and all language interfaces are available for UNIX
  343. workstations and servers from Sun, HP, IBM, NCR, Siemens, and Sequent.
  344. Client-only support is available in a number of languages for Windows 3.1,
  345. Windows NT, OS/2 and Macintosh. GemStone is an active member of the Object
  346. Management Group and the ANSI Smalltalk standardization committee. GemStone
  347. supports ODMG, ANSI C++ and intends to comply fully with the emerging
  348. standards.
  349.  
  350.  
  351. REFERENCES
  352.  
  353. [Maier, et al. 84] D. Maier, J. Stein, A. Otis, A. Purdy, ``Development
  354. of an object-oriented DBMS'' Report CS/E-86-005, Oregon Graduate Center,
  355. April 86 - ACM 0-89791-204-7/86/0900-0472
  356.  
  357. R.G.G. Cattell: Object Data Management - Object-Oriented and Extended
  358. Relational Database Systems; Addison-Wesley. ISBN 0-201-53092-9
  359.  
  360. Robert Bretl, David Maier, Allan Otis, Jason Penney, Bruce Schuchardt,
  361. Jacob Stein, E. Harold Williams, Monty Williams. "The GemStone Data
  362. Management System." Chapter 12 of "Object-Oriented Concepts, Databases
  363. and Applications", by Kim and Lockovsky.
  364.  
  365.  
  366. CONTACTS
  367.  
  368. ==== Headquarters - Beaverton ====
  369.  
  370. GemStone Systems, Inc.
  371. 15400 NW Greenbrier Parkway
  372. Suite 280
  373. Beaverton, OR  97006
  374.  
  375. Tel: 800-243-9369
  376. Tel: 503-629-8383
  377. Fax: 503-629-8556
  378.  
  379. ==== San Mateo ====
  380.  
  381. GemStone Systems, Inc.
  382. 2100 Winward Way
  383. Suite 100
  384. San Mateo, CA  94404
  385.  
  386. Tel: 415-345-3144
  387. Fax: 415-345-9950
  388.  
  389. ==== Chicago ====
  390.  
  391. GemStone Systems, Inc.
  392. 8410 Bryn Mawr
  393. Suite 400
  394. Chicago  IL  60631
  395.  
  396. Tel: 312-380-1310
  397. Fax: 312-380-1308
  398.  
  399. ====  New York ====
  400.  
  401. GemStone Systems, Inc.
  402. 1120 Avenue of the Americas
  403. 4th Floor
  404. New York  NY  10036
  405.  
  406. Tel: 212-626-6680
  407. Fax: 212-626-6684
  408.  
  409. ==== Dallas ====
  410.  
  411. GemStone Systems, Inc.
  412. 5001 LBJ Freeway
  413. Suite 700
  414. Dallas  TX  75244
  415.  
  416. Tel: 214-715-2602
  417. Fax: 214-715-2623
  418.  
  419. ==== Europe/UK ====
  420.  
  421. GemStone Systems, Inc.
  422. Maple House
  423. High Street
  424. Potters Bar
  425. Herts  EN6 5BS  England
  426.  
  427. Tel: +44 1707 827925
  428. Fax: +44 181 343-8537
  429.  
  430.  
  431. ======================
  432. ==== Distributors ====
  433. ======================
  434.  
  435. ==== Germany, Austria, Switzerland ====
  436.  
  437. Georg Heeg
  438. Objektorientierte Systemtechnologien
  439. Baroperstrasse 337
  440. 44227 Dortmund
  441. Germany
  442.  
  443. Tel: +49 231 975 9900
  444. Fax: +49 231 975 9920
  445.  
  446. ==== Scandinavia ====
  447.  
  448. WM-Data
  449. Sandhamnsgatan 65
  450. Box 27030
  451. 102 51 Stockholm
  452. Sweden
  453.  
  454. Tel: +46 8 6702000
  455. Fax: +46 8 6702060
  456.  
  457. ==== Japan ====
  458.  
  459. Japan Information Processing Co., Ltd.
  460. 2-4-24 Toyo Koto-ku
  461. Tokyo 135 Japan
  462.  
  463. Phone: 81 3 5690 3268
  464. Fax:   81 3 5690 3229
  465.  
  466.  
  467. ABC Co., LTD Shonan System Development Div
  468. Attn: Shoji Maekawa
  469. 271-2 Kamimachiya Kamakura-city, Kanagawa Prefecture
  470. 241 Japan.
  471. TEL: 0467-47-8872
  472. FAX: 0467-44-8845
  473.  
  474. ==== Taiwan ====
  475.  
  476. Anco Technologies
  477. 11-1F, 76 Tun Hwa S. Road, Sec. 2
  478. Taipei
  479. Taiwan, R.O.C.
  480.  
  481. Tel: +886-2-7053779
  482. Fax: +886-2-7053896
  483.  
  484. ==== Mexico ====
  485.  
  486. Computadoras
  487. Objectos y Communicaciones S.A. de C.V.
  488. 3A CDA. Porto Alegre 51
  489. Col. San Andres Tetepilco
  490. Mexico, D.F. 09940
  491.  
  492. Phone +52 5 672-6549 or +52 5 672-6403
  493. Fax   +52 5 672-7049
  494.  
  495.  
  496. > ITASCA
  497.  
  498. Introduction
  499.  
  500. Itasca Systems develops, markets, and supports ITASCA, a distributed 
  501. active object database management system and related tools. The initial 
  502. research work for ITASCA occurred in the Object-Oriented and Distributed 
  503. Systems Lab at the Microelectronics and Computer Technology 
  504. Corporation (MCC) in Austin, Texas. The research was known as the 
  505. ORION prototypes. 
  506.  
  507. The ITASCA Distributed ODBMS is a language neutral, full-featured, active 
  508. object database that supports data access from various object
  509. languages. ITASCA allows clients to transparently access data that is
  510. distributed among multiple servers.  ITASCA supports full dynamic schema
  511. modification that can be performed during any phase of the software
  512. lifecycle.  Applications written in dissimilar and incompatible languages,
  513. such as C++ and CLOS, share objects through ITASCA. ITASCA stores methods
  514. inside the database, promoting reusability and maintainability.  The only
  515. commercial ODBMS based upon the MCC Orion technology, ITASCA is considered
  516. by many to be the most feature-rich ODBMS on the market today.
  517.  
  518. This overview describes release 2.2 of the ITASCA Distributed Object 
  519. Database Management System. It describes how ITASCA functions, 
  520. outlines its implementation features, and explains some of the system 
  521. benefits. 
  522.  
  523.  
  524. History of ITASCA
  525.  
  526. ITASCA is based on a series of object database research prototypes. Work 
  527. on these prototypes began in 1985 at the Microelectronics and Computer 
  528. Technology Corporation (MCC) Object-Oriented and Distributed Systems 
  529. Laboratory. MCC released the first prototype, ORION-1, in May, 1987, as 
  530. a single-user system. MCC extended ORION-1 to the ORION-1SX 
  531. prototype system and released it to the shareholder companies in April, 
  532. 1988. ORION-1SX was a multi-user system with a multi-client, single 
  533. server architecture. The third prototype, ORION-2, introduced a distributed, 
  534. object-oriented architecture for a multi-user environment. MCC released 
  535. the third prototype to shareholder companies in July, 1989. ORION-2 has a 
  536. multi-client, multi-server architecture. Having met its objectives, MCC 
  537. stopped all work on ORION at that time. Over five million dollars was spent
  538. for the three generations of prototypes.
  539.  
  540. The ITASCA product is an extension and commercialization of the ORION-2
  541. prototype from MCC. Itasca Systems has added major enhancements and
  542. features, improved the performance, and strengthened the code. It now runs
  543. on UNIX systems from multiple vendors. ITASCA is an industrial-strength,
  544. documented product, fully supported by Itasca Systems, Inc. Itasca Systems
  545. continues to develop tools and other products to work with ITASCA.
  546.  
  547.  
  548. Overview
  549.  
  550. ITASCA employs a distributed architecture with private and shared objects 
  551. spread across UNIX-based computers on a local-area network. The 
  552. ITASCA model follows the object-oriented view that uniformly models any 
  553. real-world entity as an object. Each object has a unique identifier along with 
  554. a state and behavior. Attributes represent the state of an object. Methods 
  555. (code) define the behavior of an object. A class object collects objects that 
  556. share the same set of attributes and methods. Subclasses derive from 
  557. existing classes. The resulting schema, or database definition, is a class 
  558. hierarchy. Each subclass inherits all the attributes and methods of its 
  559. superclasses. ITASCA supports multiple inheritance. A subclass may derive 
  560. from more than one superclass. 
  561.  
  562. One of the breakthroughs of object-oriented technology is the reusability of 
  563. code. ITASCA allows for the active management of both reusable code and 
  564. data in an integrated system. Developers may write applications in C++,
  565. CLOS, C or Common Lisp. This means ITASCA is language neutral. Objects 
  566. stored using one programming language can be accessed by other 
  567. programming languages. It also means an application program need not be
  568. written in an object-oriented language. 
  569.  
  570. The ITASCA database management system has features belonging to most any 
  571. database system. This includes persistent storage for data and schema, 
  572. concurrency control and locking, transaction management, multiple 
  573. security levels, and logging and recovery for both CPU and disk media 
  574. failure. Additional features of ITASCA include dynamic schema 
  575. modification, long-duration transactions, shared and private databases, 
  576. distributed version control, distributed transaction management, distributed 
  577. query management, distributed change notification, object migration, and 
  578. an extensible architecture.
  579.  
  580. Shared and private databases exist in a distributed environment in ITASCA. 
  581. The shared database is distributed across workstations (sites) in a network. 
  582. An ITASCA server controls the partition of the shared database at each site. 
  583. ITASCA clients provide transparent access to the various partitions of the 
  584. shared database. The architecture allows any number of private databases at 
  585. each distributed database site. Data can move between private and shared 
  586. databases. Private databases allow private data that is not shared with other 
  587. users of the database.
  588.  
  589. ITASCA stores the schema redundantly at each site to improve 
  590. performance. The schema storage also includes code in the form of 
  591. methods. Management of schema updates is automatic for all sites. This 
  592. includes sites that were off-line during any changes. Automatic distribution 
  593. of schema changes, including method code changes, simplifies database 
  594. administration.
  595.  
  596. ITASCA stores each instance of data in one site. The system or a user may 
  597. move the data from one site to another to improve data locality. Access to 
  598. moved data remains transparent. There is no need for a user or application 
  599. to know the specificlocation of data in the ITASCA distributed database. 
  600. ITASCA will automatically find the location of the data. This simplifies 
  601. distributed application development. The developer can rely on ITASCA 
  602. finding data in the distributed database.
  603.  
  604. No single site acts as a master site, thus ITASCA's architecture has no 
  605. single point of failure. ITASCA has neither a central data server nor a 
  606. central name server. This is important for maintaining a database system 
  607. with high availability in a networked workstation environment.
  608.  
  609. ITASCA supports dynamic schema modification to create a flexible 
  610. environment for changing or customizing a database system. Authorized 
  611. users can add and remove attributes or change the subclass/superclass 
  612. relationship at any time. Authorized users can also add or remove partitions 
  613. of the shared database at any time. All this can be done interactively without 
  614. affecting other parts of the ITASCA database at the time changes occur to 
  615. the schema. There is no need to "bring the system down" or off-load/reload 
  616. data to restructure the database. Dynamic schema modification can 
  617. significantly reduce maintenance costs. It also is useful in environments 
  618. where change to data definitions are normal or relatively frequent.
  619.  
  620. ITASCA has a sophisticated security authorization technique tied to the 
  621. class hierarchy. It supports both positive and negative authorizations at any 
  622. level in the class hierarchy. For example, granting access to all objects but 
  623. one requires only two authorizations: a global grant followed by a specific 
  624. denial. Authorization extends to classes, instances of classes, attributes, 
  625. and methods. Also, inheritance of authorization reduces the work of database 
  626. administration. 
  627.  
  628. Long-duration transactions allow users to check objects out of the shared, 
  629. distributed database into their private databases. Users can then change the 
  630. objects in the private databases without affecting the shared database or 
  631. other users. These changes can be committed to the private database. Then, 
  632. at any later time, the user can check the updated object or objects back into 
  633. the shared database.
  634.  
  635. ITASCA supports version control of objects. A new version of an object 
  636. promotes the original or parent object to restrict further changes to the 
  637. parent. ITASCA also supports alternate versions such that multiple versions 
  638. can have the same parent. Promoting an object version to a released status 
  639. restricts any deletion of the object. ITASCA uses generic versions to 
  640. dynamically reference the most recent or default version of an object 
  641. without any intervention by a user or application.
  642.  
  643. Change notification in ITASCA is either flag-based or message-based. 
  644. Flag-based notification will identify an updated object upon querying the 
  645. object for such information. It is a passive notification scheme. Message-
  646. based notification, on the other hand, is an active notification scheme. It 
  647. will execute a method (or code) upon an update or other change to an object. 
  648. Such methods can send mail messages or invoke other methods or 
  649. programs. 
  650.  
  651. Memory management in ITASCA uses both page and object buffers. 
  652. ITASCA has a traditional database page buffer scheme that contains pages 
  653. with multiple objects. Desired objects move from the page buffer to an 
  654. object buffer. The object buffer then provides ITASCA with enhanced in-
  655. memory performance because it contains only frequently-referenced 
  656. objects. 
  657.  
  658.  
  659. IBEX Corporation
  660.  
  661. ITASCA is a distributed active object database management system and
  662. related tools.  The ITASCA Distributed ODBMS is a language neutral,
  663. full-featured, active object database that supports data access from
  664. various object languages. ITASCA allows clients to transparently access
  665. data that is distributed among multiple servers.  ITASCA supports full
  666. dynamic schema modification that can be performed during any phase of the
  667. software
  668.  
  669. A point release of ITASCA (2.3.5) was delivered to customers with current
  670. service contracts in September 1995.  Development continues with the
  671. expectation of ODMG compliance in the next full release, scheduled for
  672. 1996.
  673.  
  674. IBEX has built its DAWN Distributed Archiving and Workflow Network class
  675. library of methods and development tools as an application framework to
  676. speed the development of customized solutions to enterprise-level
  677. integration problems.  ITASCA's installed based has been largely in
  678. manufacturing and engineering until now, but with DAWN, banking and other
  679. services are beginning to take advantage of the products extended
  680. functionality.  DAWN is also used to link production and front office
  681. environments for active decision support.  The DAWN Manager Series comprises
  682. focused applications (developed on ITASCA with DAWN), such as DAWN 9000 and
  683. DAWN Account Manager which have an embedded Optical Character Recognition
  684. functionality linked to the database with a customer-defined workflow.
  685.  
  686. IBEX has re-activated the ITASCA ObjectShare Library and encourages clients
  687. to contribute reusable objects for use by registered ITASCA customers.
  688. Several HTML and Web Browsers for the server itself are underway.
  689.  
  690. ITASCA was very well rated in a 1994 BUtlerBloor comparison of Object
  691. Databases (the only one to receive more than one uncontested first rating
  692. -- it got four!
  693.  
  694. Three framework papers describing IDE and CALS in more detail may be found
  695. at Web site http://www.acq.osd.mil/cals/
  696.  
  697.  
  698. IBEX Computing
  699. International Business Park
  700. 4e Bd., Bat. Hera
  701. 74160 Archamps
  702. France
  703.  
  704. Email: ibex@iprolink.ch
  705. Voice: +33 50 31-5700
  706. Fax:   +33 50 31-5701
  707.  
  708. Web:  http://www.iprolink.ch/ibexcom/
  709.  
  710. IBEX Object Systems, Inc.  (North American office)
  711. Minneapolis, MN  55401
  712. U.S.A.
  713.  
  714. Voice: (612) 341-0748
  715. Fax:   (612) 338-5436
  716.  
  717.  
  718. > MATISSE
  719.  
  720. OODBMS FEATURES LIST:
  721.  
  722. An Industrial Strength Open Semantic Object Database
  723.  
  724. Performance
  725. -       Symmetric, Fine Grain, Multi-Threaded Architecture
  726. -       Parallel and Asynchronous Disk I/O
  727. -       Automatic Disk Optimization through Dynamic Clustering
  728. B
  729. -       High Speed OLTP Environment
  730. Reliability
  731. -       24 Hour - Mission Critical Operation
  732. -       Media Fault Tolerant (Object Replication)
  733. -       Transparent On-line Recovery
  734. Database Administration
  735. -       Full On-line Administration (No Down Time)
  736. -       On-line Incremental or Full Back-Up
  737. -       Dynamically Increase Database Size -   On-line
  738. -       Full On-line Monitoring
  739. Data Management and Consistency
  740. -       Dynamic Schema Evolution
  741. -       Consistent Database Reads without Locking
  742. -       Historical Versioning, both Schema and Data Objects
  743. -       Built-in Enforced Referential Integrity
  744. -       Object Level Implicit or Explicit Locking
  745. Scalability
  746. -       Hundreds of Concurrent On-line Users
  747. -       Hundreds of Gigabytes Per Database
  748. -       From Few Bytes to Four Gigabytes for Each Object
  749. -       Up to Four Giga-objects Per Database
  750. Object Model
  751. -       Full Object Oriented Model
  752. -       User Extensible Object Meta-Schema
  753. -       Support for Complex, Highly Dynamic, Variable Sized Objects
  754. -       Multiple Inheritance
  755. Intelligent Objects
  756. -       Triggers at Object, Attribute, or at Relationship Level
  757. -       Consistency Rules at Object, Attribute, or at Relationship Level
  758. -       Customizable Intelligent Object Indexing
  759. -       Automatic Inverse Relationships
  760. Open Systems
  761. -       Open C, C++ API
  762. -       Supports Any Commercial Development Tool and Language
  763. -       No Proprietary Tool Required
  764. -       Heterogeneous Cross Platform Client/Server Architecture
  765.  
  766.  
  767. For additional information on MATISSE, contact
  768. ----------------------------------------------
  769.  
  770. In the UNITED STATES:
  771. ADB Inc. (MATISSE)
  772. 1 Twin Dolphin Drive
  773. Redwood Shores, CA  94065
  774. U.S.A.
  775.  
  776. Voice: 1 (415) 610-0367
  777. Fax:   1 (415) 610-0368
  778. Email: info@adb.com
  779. Web:   http://www.adb.com
  780.  
  781.  
  782. In EUROPE:
  783. ADB S.A. Inc.
  784. 12-14, rue du Fort de St Cyr
  785. Montigny Le Bretonneux
  786. 78182 St Quentin en Yvelines
  787. Cedex, France
  788.  
  789. Voice: 33 (1) 48 64 72 73
  790. Email: info@adb.fr
  791. Web:   http://www.adb.fr
  792.  
  793.  
  794. In ASIA:
  795. ADB Asia / SGN
  796. Urban Toranomon Building
  797. 1-16-4 Toranomon
  798. Minato-ku Tokyo 105
  799. Japan
  800.  
  801. Tel:   81 (3) 3593 3431
  802. Fax:   81 (3) 3593 3432
  803.  
  804.  
  805.         MATISSE TECHNOLOGY BRIEF
  806.  
  807. MATISSE was designed to have an OPEN API, and not be 
  808. tightly bound to a single language (such as C++ or Smalltalk).  
  809. MATISSE can be used effectively with C++, C, and any other language.
  810. This allows for MATISSE to be easily integrated into almost any 
  811. user application.
  812.  
  813. MATISSE is based upon the following principles and ideals:
  814.  
  815. MATISSE is first and foremost a database, whose purpose is to 
  816. always provide information in a consistent and correct format, 
  817. insuring referential integrity amidst the most complex database 
  818. modifications.  And, to provide a set of DBA tools which meet 
  819. the challenge of managing large, complex database applications.
  820.  
  821. Production quality applications require production quality databases.  
  822. This means high reliability, high scalability, no database down 
  823. time for archival/backup/restore and 24hr/7days  per week operation.  
  824. MATISSE supports these requirements.
  825.  
  826. A flexible, intelligent meta-model architecture based upon the 
  827. principles of semantic links and object technology allows for the 
  828. most effective bases for representing and managing complex, highly 
  829. interrelated data.  The MATISSE meta-model provides built in 
  830. constraint checking, user definable constraints for triggers and 
  831. daemons, and full dynamic schema and meta-schema evolution.  
  832.  
  833. Providing an architecture which is open allows for the integration 
  834. of MATISSE with any language or environment.  MATISSE is not bound 
  835. to any language.  Its 'C' API allows for its use with many 
  836. languages and environments.
  837.  
  838. The following list describes the features of MATISSE which we 
  839. believe provide the competitive advantage:
  840. -    Mission-critical operation - 24 hour operation and fault tolerance
  841. -    Independence from any programming language
  842. -    Dynamic schema management and evolution
  843. -    Flexibility of the MATISSE  meta-model
  844. -    Historical versioning
  845. -    Consistent reads without locking - concurrency and locking
  846. -    Support for high level consistency and referential integrity
  847. -    Multi-threading architecture provides for a high degree of scalability
  848.  
  849. Each of these items are described in more detail below:
  850.  
  851. Mission Critical Operation.
  852. MATISSE is designed to support 24 hour a day / 7 day a week operation, 
  853. on multi-client / multi-server architectures.  Administration tools 
  854. offer high end features which are mandatory for legacy DB administrators.  
  855.  
  856.  
  857. Independence from any Programming Language.
  858. The MATISSE client is implemented as a library of C procedures.  As a
  859. result, any standard language can be used to develop applications on 
  860. top of MATISSE, provided that the corresponding compiler is capable 
  861. of calling external C-functions. To date, production applications have 
  862. been built on top of MATISSE using C, ADA and C++.
  863.  
  864.  
  865. Dynamic Schema Management.
  866. Schema objects can be accessed using the same API available for data 
  867. objects. The Data Definition Language is identical to the Data 
  868. Manipulation language.  Versioning is implemented for both schema 
  869. and data objects.  Thus, any running application can modify the database
  870. schema, provided that existing instances do not become inconsistent with
  871. that schema.  Consistency rules are checked by MATISSE.
  872.  
  873.  
  874. Flexibility of the Model.
  875. MATISSE is compliant with the IRDS standard.  Its architecture is 
  876. highly extendible at both the Schema and the Meta-Schema level.  The 
  877. MATISSE Semantic Meta-Model is not hard-coded.  It can be updated to 
  878. conform with any OMG, ANSI, ISO, ... standard that might be issued 
  879. in the future.  MATISSE can easily adapt to changing and evolving 
  880. standards, without significant effort or re engineering.
  881.  
  882.  
  883. Versioning.
  884. Using the on-line versioning mechanism, MATISSE allows any connected 
  885. client application to dynamically access any past database version which
  886. was marked as a version to be saved.  Access can be performed without
  887. any particular administrative operation, and concurrently with other 
  888. on-line accesses to current or other historical  versions.
  889.  
  890. Since a database version includes both data and schema objects, a 
  891. past version is always consistent, even after schema modification.  As 
  892. a past version is accessed, so to is it's schema, and even the 
  893. appropriate meta-schema associated with the accessed version.
  894.  
  895.  
  896. Consistent Reads without Locking.
  897. Using its versioning mechanism, MATISSE offers three kinds of 
  898. database access:  
  899.  
  900. Typical transaction-based access: : as the 
  901. database migrates forwards, and updates are made, database access 
  902. occurs against the latest consistent database version.  A successful 
  903. transaction commit results in a new consistent version.  If explicitly 
  904. named, this version becomes a historical database version, which can 
  905. be accessed by its logical name in the future . 
  906.  
  907. Historical version access: the application specifies the logical 
  908. name of the historical version to be accessed. Access is read-only, 
  909. and does not require any locking mechanism.
  910.  
  911. Current Time access: : this is a very powerful and unique feature 
  912. of MATISSE.  Any application can request the latest available consistent
  913. database version, using a reference to current time, with no 
  914. locking overhead.  The "current time" database version is based 
  915. upon the last transaction commit, and is automatically maintained by 
  916. the database.  A "current time" database version acquires no database 
  917. locks when accessed in read-only mode, thereby significantly 
  918. reducing overhead.
  919.  
  920. Through these three access modes,  MATISSE supports on-line 
  921. transaction processing and decision support requirements concurrently 
  922. within a single application, through the use of current and historical
  923. versions.
  924.  
  925. Support for High Level Consistency.
  926. With MATISSE, referential integrity cannot be corrupted.  MATISSE's 
  927. Semantic Links are specialized - i.e. they are specifically 
  928. established between classes, they are directional, and, inverse links 
  929. are automatically and dynamically set by MATISSE.  As a result, a 
  930. MATISSE database understands its relationships, and fully manages 
  931. all internal consistency features, insuring that no corruption occurs.  
  932.  
  933. Developers can describe very complex consistency methods and rules 
  934. using daemons and triggers.  These methods can be attached to 
  935. particular events such as, before or after creation, as well as class, 
  936. instance, attribute modification.  Daemons and triggers provide for 
  937. message propagation within your database. This results in a very 
  938. intelligent database, which can be event driven.
  939.  
  940.  
  941. MATISSE Server runs on
  942. -  Sun Sparcstation - SunOS 4.1.3
  943. -  Sun Sparcstation - Solaris
  944. -  VAX - VMS
  945. -  HP9000 - HP-UX
  946.  
  947. MATISSE Client runs on
  948. -  Sun Sparcstation - SunOS 4.1.3
  949. -  Sun Sparcstation - Solaris
  950. -  HP9000 - HP-UX
  951. -  Windows NT
  952. -  Macintosh
  953.  
  954.  
  955. > NeoAccess
  956.  
  957. NeoLogic Systems
  958.  
  959. NeoLogic Systems produces NeoAccess, a cross-platform object database
  960. engine, and NeoShare, a client/server collaborative computing engine.
  961. NeoAccess consists of a set of C++ database and collection classes.
  962. NeoShare extends NeoAccess to provide shared multi-user access to objects
  963. in a database. Both products come with full source code for all supported
  964. development environments (Windows, Macintosh and Unix).  NeoAccess is
  965. priced at $749 per developer for full surce code for all supported
  966. environments, and there are no licensing fees.  Support options are
  967. available.
  968.  
  969. NeoAccess Introductory Toolkit is available without charge.  The
  970. Toolkit consists of a 200+ page technical overview on the product plus
  971. several sample applications with source code. This is everything you
  972. need to determine what NeoAccess is and how you might use it in your
  973. development.  The Macintosh, Windows and Unix versions of the
  974. documentation can be downloaded from the NeoLogic home pages or FTP
  975. site, or a diskette can be supplied upon request.
  976.  
  977. NeoAccess Version 4.0, released in October 1995, features full support
  978. for Microsoft Visual C++ 4.0 IDE and the MFC 4.0 application framework.
  979. The client/server database engine, NeoShare 1.1, was released in December
  980. 1995, and includes support for additional application frameworks.
  981.  
  982. NeoLogic Systems
  983. 1450 Fourth Street, Suite 12
  984. Berkeley, CA 94710
  985. U.S.A.
  986.  
  987. Voice: (510) 524-5897
  988. Fax:   (510) 524-4501
  989.  
  990. Email:      neologic@neologic.com
  991. Compuserve: 71762,214
  992. AOL:        NeoLogic
  993. Apple Link: NeoLogic
  994. Web:        http://www.neologic.com/~neologic/
  995. Ftp:        ftp.neologic.com       /users/neologic
  996.  
  997. NeoLogic News:
  998. To subscribe, send email to:  listserv@fairbanks.pvt.k12.ca.us
  999. with the following line:      SUB NeoAccess-Forum <Your Name>
  1000.  
  1001. NeoLogic Systems has representatives in Germany, Switzerland, UK,
  1002. Belgium, France, and Japan.
  1003.  
  1004.  
  1005. > OBST+
  1006.  
  1007. Xcc Software Technology Transfer offer OBST+, a full-featured, language
  1008. independant OODBMS with a C++-Interface and a Tcl/Tk binding. It's multiuser,
  1009. supports schema evolution, check-in/check-out, full access to the Meta-DB and
  1010. is available on several Unix-Platforms, and a Win NT port is underway.
  1011. A GNU-version is available. (archie search: OBST3-4.3.tar.gz)
  1012.  
  1013. Xcc Software Technology Transfer
  1014. Durlacher Allee 53
  1015. D-76131 Karlsruhe
  1016. Germany
  1017.  
  1018. Voice: 49-721-96179-0
  1019. Fax:   49-721-96179-79
  1020.  
  1021. email: obst@xcc-ka.de
  1022.  
  1023. Web: http://www.xcc-ka.de/OBST/OBST.html
  1024.      http://www.fzi.de/divisions/dbs/projects/OBST.html
  1025.  
  1026. Ftp: ftp://ftp.fzi.de/pub/OBST/current
  1027.      ftp://ftp.xcc-ka.de/pub/OBST
  1028.  
  1029.  
  1030. > O2 (O2 Technology)
  1031.  
  1032. O2 Technology, Inc.
  1033.  
  1034. The O2 System is a fully modular object database, well adapted for
  1035. developing large-scale client/server applications. The O2 system conforms
  1036. to the ODMG 93 standard. O2 is an open system, which ensures its
  1037. compatibility with a corporate computing environment.
  1038.  
  1039. O2 integrates a powerful engine with a graphic programming environment, a
  1040. complete set of development tools and programming languages. The modules
  1041. can be integrated with existing relational database engines, GUI tools,
  1042. the World Wide Web, programming languages and CASE and methodology tools.
  1043.  
  1044. With O2, you can develop and run applications in areas where traditional
  1045. tools and systems cannot handle information efficiently (e.g.  management
  1046. of technical information, geographical information systems, CAD/CAM and
  1047. network management).
  1048.  
  1049. For more information on O2, consult the following REFERENCES:
  1050.  
  1051. Francois Bancilhon, Claude Delobel, Paris
  1052. Kanellakis.  "Building an Object-Oriented Database
  1053. System: The Story of O2".  Morgan Kaufmann Series
  1054. in Data Management Systems, San Mateo, Calif., 1992.
  1055.         
  1056. F. Bancilhon, G. Barbette, V. Benzaken, C. Delobel,
  1057. S. Gamerman, C. Lecluse, P. Pfeffer, P. Richard,
  1058. and F. Velez.  "The Design and Implementation of
  1059. O2, and Object-Oriented Database System".
  1060. Advances in Object-Oriented Database Systems,
  1061. Springer Verlag. (Lecture Notes in Computer Science
  1062. series, Number 334.)
  1063.  
  1064. C. Lecluse, P. Richard, and F. Velez. "O2, an
  1065. Object-Oriented Data Model".  Proceedings of
  1066. SIGMOD88.  Also appears in Zdonik and Maier,
  1067. "Readings in Object-Oriented Database Systems",
  1068. Morgan Kaufmann, 1990.
  1069.  
  1070. 2 Technology, Inc.
  1071. 3600 West Bayshore Road, Suite 106
  1072. Palo Alto, Ca 94303
  1073. U.S.A.
  1074.  
  1075. Voice: (415) 842-7000
  1076. Fax:   (415) 842-7001
  1077. Email: o2info@o2tech.com
  1078. Web:   http://www.o2tech.com
  1079.  
  1080.  
  1081. O2 Technology, Inc.
  1082. 7 rue du Parc de Clagny
  1083. 78035 Versailles Cedex
  1084. France
  1085.  
  1086. Voice: 33-1-30-84-77-77
  1087. Fax:   33-1-30-84-77-90
  1088. Email: o2info@o2tech.fr
  1089.  
  1090.  
  1091. O2 Technology
  1092. North Heath Lane
  1093. Horsham
  1094. West Sussex RH12 5UX
  1095. United Kingdom
  1096.  
  1097. Contact:  Dr. Sharon Cooper
  1098.  
  1099. Voice: (44) 403 211 020
  1100. Fax:   (44) 403 273 123
  1101. 02tech@tenet.co.uk
  1102.  
  1103. Web: http://www.o2tech.fr/  Note: this Web server is built on top
  1104.                                   of O2Web, the O2 WWW gateway, and
  1105.                                   uses the O2 ODBMS for a backend.
  1106.  
  1107.  
  1108. > Objectivity/DB (Objectivity)
  1109.  
  1110. Introduction:
  1111.  
  1112. Objectivity/DB has a fully distributed client/server architecture that
  1113. transparently manages objects distributed across heterogeneous environments and
  1114. multiple databases.  It provides an application interface that uses transparent
  1115. indirection to ensure integrity and provides a single logical view of all
  1116. information, with all operations working transparently on any database on the
  1117. network, with scalable performance as users and objects increase.  A
  1118. higher-level Object Definition Language (ODL) is available as well as a C
  1119. functional interface, integrated C++ interface, and SQL++.
  1120.  
  1121.  
  1122. Objectivity/DB
  1123.  
  1124. Objectivity/DB [Reference:  Technical Overview, Objectivity, 1993], a product
  1125. of Objectivity, Inc. of Menlo Park, CA, provides an integrated C++ programming
  1126. interface with an emphasis on the DBMS engine for robustness and scalability
  1127. from workgroups to enterprise-wide production applications.  In production use
  1128. today with more than 50,000 end users licensed, it supports a fully
  1129. distributed, rather than central-server, architecture, with all operations
  1130. working transparently over a mixture of multiple databases, schemas, users, and
  1131. computers, and over heterogeneous hardware, operating systems, and networks. 
  1132. The language interface includes a C++ class library interface, soon to be ODMG;
  1133. a C function library; and SQL++, supporting query predicates with either SQL or
  1134. C++ syntax, interactively or programmatically.  Over forty administrative and
  1135. GUI tools provide both an interactive and programmatic interface, and a
  1136. messaging backplane allows third party tools integration at four different
  1137. levels, with a list of partners at all levels.
  1138.  
  1139. One of the key architectural concepts of Objectivity/DB is an object reference
  1140. mechanism that ensures data integrity.  Unlike traditional ODBMSs that use
  1141. direct pointers, which become invalid after commit and hence lead to crashes
  1142. and corrupt databases, Objectivity/DB uses an indirection to guarantee safe
  1143. reference.  Transparent to the user, this indirection requires an extra test
  1144. and pointer dereference, or a couple of cycles, which is not measurable in most
  1145. applications.  However, it ensures integrity of all references, even across
  1146. transaction boundaries, resulting in production quality robustness.  Also, it
  1147. provides object level granularity for the object manager, allowing it to move,
  1148. cluster, and swap objects as necessary, one of the keys required for
  1149. scalability in objects and users.  Finally, it allows object-level granularity
  1150. for current features, such as heterogeneity and versioning, and future
  1151. extensions, such as object-level security.
  1152.  
  1153. A higher-level Object Definition Language (ODL) is provided that allows
  1154. declaration of modeling concepts such as bi-directional associations, behavior
  1155. of associations between objects as they version (move, copy drop), and
  1156. propagation of methods across associations.  These then result in automatically
  1157. generated methods and declarations for both C++ and C.  The standard C++ API
  1158. allows application programmers to work with any standard compilers and
  1159. debuggers, with no extra pre-processors, providing ODBMS capabilities via
  1160. overloading C++ operators (new, ->, etc.), and declarations via provided
  1161. classes (for references, etc.).
  1162.  
  1163. Workgroup through enterprise-wide and cross-enterprise computing is supported
  1164. via a distributed client/server architecture that provides a single logical
  1165. view over multiple databases on heterogeneous machines.  The user sees a
  1166. logical view of objects connected to objects and need not worry that one object
  1167. is in a database on a Sun workstation, while another may be in a database under
  1168. Windows or VMS.  All operations work transparently across this environment,
  1169. including atomic transactions with two-phase commit, propagating methods, and
  1170. versioning.  Objects may be moved between databases and platforms without
  1171. affecting working applications or requiring changes to the applications. 
  1172. Multiple schemas may be created, without affecting other users or databases,
  1173. and may be used simultaneously with shared schemas, allowing local groups to
  1174. define their own models but still connect to other groups.  Databases may be
  1175. detached from this shared environment (federated database) and used on portable
  1176. devices, reconnected or moved to different (compatible) environment, or
  1177. distributed as parts or image libraries.  Gateways to RDBMSs are provided via
  1178. third-party integration with Persistence Software, and more generally to any
  1179. foreign data store, as long as the user installs the appropriate access
  1180. methods, extending the single-logical-view to include read/write access to
  1181. arbitrary foreign data stores.  Together, these allow delegation of
  1182. responsibilities to the appropriate users, integration with existing systems,
  1183. and gradual migration toward full enterprise-wide sharing.
  1184.  
  1185. The on-demand object manager directly and automatically manages object access
  1186. and buffering, rather than relying on system facilities such as virtual memory
  1187. or user manual get/put calls.  Mechanisms used include multiple buffer pools
  1188. locally and remotely, b-trees, hashing, scoped names, keys, and iterators, with
  1189. distributed catalogues for schemas and databases.  A direct connection is
  1190. established between the user and the objects used, so that users do not
  1191. conflict unless and until they are competing for the same objects, thus
  1192. avoiding the traditional central-server bottleneck.  Short transactions are
  1193. based on traditional (transient) locks, owned by the process, and group
  1194. together an arbitrary set of operations.  Long transactions are based on
  1195. persistent locks, owned by the user, and provide the same arbitrary grouping. 
  1196. Default concurrency is two-phase locking and serialization, but extensions
  1197. available include MROW, or multiple-readers concurrent with one-writer, and
  1198. allow users to lock with or without wait or with timed waits, to implement more
  1199. sophisticated mechanisms.
  1200.  
  1201. Objects may be modeled using C++ structures augmented by classes provided such
  1202. as strings, dictionaries, and relationship management, as well as some
  1203. particular domain libraries.  A simple object is a C++ class (or C structure)
  1204. with associated access methods.  A complex object may include multiple varrays,
  1205. each being a dynamically varying sized array of arbitrary structure.  A
  1206. composite object is any network of related objects that acts as a single
  1207. object, both structurally and behaviorally, via propagation of behaviors to
  1208. component objects.  Any number of composite objects may be contained in
  1209. composite objects, and a single object may participate in any number of
  1210. composites.  The relationship mechanism supports uni- and bi-directional
  1211. relationships, one-to-one, one-to-many, and many-to-many.  Versioning is
  1212. supported at object granularity, may be turned on or off at any time for each
  1213. object, may be restricted to linear or allow branching with multiple writers. 
  1214. References to versioned objects may be to a specific version or to the default
  1215. version, which may be separately specified by a method and may allow multiple
  1216. defaults.  Schema and object evolution are supported via versioning of the
  1217. type-defining objects.  Each time a type definition is changed, its defining
  1218. object is versioned, allowing arbitrary changes.  Objects may then be instances
  1219. of the old or new type version.  Object evolution or upgrading to the new type
  1220. version is supported  by the user writing conversion methods which are
  1221. installed and invoked by the system.
  1222.  
  1223. ANSI SQL query is supported in the SQL++ product.  Predicate syntax may be
  1224. either C++ or SQL.  The ODBC and SQL Access Group (SAG) protocols are
  1225. supported.  Queries may be invoked programatically or interactively, with ad
  1226. hoc support.  Access to object features is available via methods and traversal
  1227. of relationships.
  1228.  
  1229. Over forty administrative and developer tools are provided, each with both an
  1230. interactive and programmatic interface.  These include GUI object and type
  1231. browsers, query browsers, report generator, tools to examine and force short
  1232. and long locks, to move objects and databases, etc.  On-line incremental backup
  1233. provides a consistent network-wide snapshot, including referential integrity
  1234. across all databases, and runs incremental and full database backups with no
  1235. need to acquiesce the databases and no interference with active applications. 
  1236. All tools are built around a messaging backplane, which supports four levels of
  1237. integration with user and third-party tools.  Integrated products include HP
  1238. SoftBench (full operational level), CenterLine's ObjectCenter (tool level), 
  1239. Persistence RDBMS gateway, PTech and ProtoSoft Design and Analysis (language
  1240. level), and XVT and UIM/X (compatibility level).
  1241.