home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / object-faq / part5 < prev    next >
Encoding:
Internet Message Format  |  1994-09-17  |  60.3 KB

  1. Path: bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv
  2. From: Bob Hathaway <rjh@geodesic.com>
  3. Newsgroups: comp.object,comp.answers,news.answers
  4. Subject: Comp.Object FAQ Version 1.0.6 (9-15) Part 5/9
  5. Supersedes: <object-faq/part5_777166834@rtfm.mit.edu>
  6. Followup-To: comp.object
  7. Date: 17 Sep 1994 12:04:28 GMT
  8. Organization: Geodesic Systems
  9. Lines: 1677
  10. Approved: news-answers-request@MIT.Edu
  11. Expires: 31 Oct 1994 12:03:01 GMT
  12. Message-ID: <object-faq/part5_779803381@rtfm.mit.edu>
  13. References: <object-faq/part4_779803381@rtfm.mit.edu>
  14. NNTP-Posting-Host: bloom-picayune.mit.edu
  15. Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology
  16. X-Last-Updated: 1994/09/15
  17. Originator: faqserv@bloom-picayune.MIT.EDU
  18. Xref: bloom-beacon.mit.edu comp.object:12654 comp.answers:7313 news.answers:25853
  19.  
  20. Archive-name: object-faq/part5
  21. Last-Modified: 9/15/94
  22. Version: 1.0.6
  23.  
  24. Database Administration
  25. -       Full On-line Administration (No Down Time)
  26. -       On-line Incremental or Full Back-Up
  27. -       Dynamically Increase Database Size -   On-line
  28. -       Full On-line Monitoring
  29. Data Management and Consistency
  30. -       Dynamic Schema Evolution
  31. -       Consistent Database Reads without Locking
  32. -       Historical Versioning, both Schema and Data Objects
  33. -       Built-in Enforced Referential Integrity
  34. -       Object Level Implicit or Explicit Locking
  35. Scalability
  36. -       Hundreds of Concurrent On-line Users
  37. -       Hundreds of Gigabytes Per Database
  38. -       From Few Bytes to Four Gigabytes for Each Object
  39. -       Up to Four Giga-objects Per Database
  40. Object Model
  41. -       Full Object Oriented Model
  42. -       User Extensible Object Meta-Schema
  43. -       Support for Complex, Highly Dynamic, Variable Sized Objects
  44. -       Multiple Inheritance
  45. Intelligent Objects
  46. -       Triggers at Object, Attribute, or at Relationship Level
  47. -       Consistency Rules at Object, Attribute, or at Relationship Level
  48. -       Customizable Intelligent Object Indexing
  49. -       Automatic Inverse Relationships
  50. Open Systems
  51. -       Open C, C++ API
  52. -       Supports Any Commercial Development Tool and Language
  53. -       No Proprietary Tool Required
  54. -       Heterogeneous Cross Platform Client/Server Architecture
  55.  
  56. For Information on MATISSE, Contact one of the following offices:
  57.  
  58. USA:
  59. ODB, an Intellitic International Company
  60. 238 Broadway
  61. Cambridge, MA  02139
  62. Phone:(617) 354-4220
  63. Fax: (617) 547-5420
  64. email:  info@odb.com
  65.  
  66. EUROPE:
  67. INTELLITIC INTERNATIONAL
  68. 12-14 rue du Fort de Saint-Cyr
  69. Montigny-le-Bretonneux
  70. 78182 Saint Quentin en Yvelines Cedex France
  71. Phone:   33(1) 30.14.54.30
  72. Fax:    33 (1) 30.14.54.40
  73.  
  74. JAPAN:
  75. SGN CO. LTD.
  76. Urban Toranomon Building
  77. 16-4 Toranomon
  78. Minato-Ku Tokyo 105 Japan
  79. Phone:   81 (3) 3593.34.31
  80. Fax:   81 (3) 3593.34.32
  81.  
  82.  
  83. > NeoAccess
  84.  
  85. A cross-platform object-oriented database engine based on C++. It allows
  86. developers to embed the power of a fully-functional object-oriented database
  87. system into their applications. All of the data contained in the database,
  88. including indices, can be in a single file, so users can treat a database
  89. file as they would a standard document file. The programming model is
  90. designed to keep visible complexity to a minimum while providing a
  91. feature-rich foundation on which to build and enhance applications.
  92.  
  93. NeoAccess has taken a different approach toward the issues surrounding object
  94. persistence than have other solutions that have been offered. We believe that
  95. objects should be viewed as having a set of properties with a pliable state.
  96. With NeoAccess persistent objects are provided with persistence and sharing
  97. properties. These properties allow objects to maintain an association with a
  98. file. This association, which can be built and broken freely, allowing
  99. objects to migrate freely between disk and memory. The API to these
  100. properties address issues such as adding or deleting the object from a file,
  101. sorting and indexing, locating and later freeing the object in memory, object
  102. sharing, and maintaining relationships between objects.
  103.  
  104. NeoAcces
  105. s with has been fully integrated into standard application frameworks such as
  106. Borland's ObjectWindows and MacApp 3.0 and the THINK Class Library on the
  107. Macintosh. A single source tree can be used to build the engine in all
  108. development environments. Database files are binary-compatible across
  109. platforms so users on different types of machines can share data without
  110. conversion.
  111.  
  112. Contact:
  113. Bob Krause
  114. NeoLogic Systems
  115. 1373 Third Avenue
  116. San Francisco, CA 94122
  117. (415) 566-9207
  118.  
  119.  
  120. > O2 (INRIA/O2 Technology)
  121.  
  122. This is an entry on schema evolution.  General papers on O2 are included.
  123.  
  124. We have implemented in O2 schema updates in our first release but
  125. without NO IMPACT on the database (we have a design to implement
  126. deferred update, but it is a paper design). However, users manage to
  127. convert their instances by hand, using their O2 programs written
  128. themselves, and with the aid of the following tools:
  129.  
  130. 1- There is a set of predefined classes whose instances contain
  131.    objects representing a schema (i.e., a Meta-schema). These classes
  132.    may be used in a conversion program, they may even be extended by
  133.    the programmer.
  134.  
  135. 2- There is a save-restore program that allows to take an O2 database,
  136.    save it on a file or a tape in a logical way (i.e., independent of
  137.    the physical format of objects on disk), and restore it again on a
  138.    (perhaps new release) of the system, in an empty database.
  139.    Currently, when saving a database its schema is also saved. The
  140.    next extension to this save/restore program will be to save the
  141.    database without saving its schema, and then restore the database
  142.    on a new version of that schema. The restore program will be able
  143.    to perform automatically some conversions like "add attribute" or
  144.    "delete attribute".
  145.  
  146.  
  147. Schema updates with impact on the database will be implemented in future 
  148. releases.
  149.  
  150. [Fernando Velez <fernando@o2tech.fr>]
  151.  
  152.  
  153. For more information on O2, consult the following REFERENCES:
  154.  
  155.         Francois Bancilhon, Claude Delobel, Paris
  156.         Kanellakis.  "Building an Object-Oriented Database
  157.         System: The Story of O2".  Morgan Kaufmann Series
  158.         in Data Management Systems, San Mateo, Calif., 1992.
  159.         
  160.         F. Bancilhon, G. Barbette, V. Benzaken, C. Delobel,
  161.         S. Gamerman, C. Lecluse, P. Pfeffer, P. Richard,
  162.         and F. Velez.  "The Design and Implementation of
  163.         O2, and Object-Oriented Database System".
  164.         Advances in Object-Oriented Database Systems,
  165.         Springer Verlag. (Lecture Notes in Computer Science
  166.         series, Number 334.)
  167.  
  168.         C. Lecluse, P. Richard, and F. Velez. "O2, an
  169.         Object-Oriented Data Model".  Proceedings of
  170.         SIGMOD88.  Also appears in Zdonik and Maier,
  171.         "Readings in Object-Oriented Database Systems",
  172.         Morgan Kaufmann, 1990.
  173.  
  174.  ==== Corporate headquarters:
  175. O2 Technology
  176. 7 Rue du Parc de clagny
  177. 78035 Versailles Cedex
  178. France
  179. tel : 33 1 30 84 77 77
  180. fax : 33 1 30 84 77 90
  181.  
  182. [They have many other contacts worldwide]
  183.  
  184.  
  185. > Objectivity/DB (Objectivity)
  186.  
  187. Introduction:
  188.  
  189. Objectivity/DB has a fully distributed client/server architecture that
  190. transparently manages objects distributed across heterogeneous environments and
  191. multiple databases.  It provides an application interface that uses transparent
  192. indirection to ensure integrity and provides a single logical view of all
  193. information, with all operations working transparently on any database on the
  194. network, with scalable performance as users and objects increase.  A
  195. higher-level Object Definition Language (ODL) is available as well as a C
  196. functional interface, integrated C++ interface, and SQL++.
  197.  
  198.  
  199. Objectivity/DB
  200.  
  201. Objectivity/DB [Reference:  Technical Overview, Objectivity, 1993], a product
  202. of Objectivity, Inc. of Menlo Park, CA, provides an integrated C++ programming
  203. interface with an emphasis on the DBMS engine for robustness and scalability
  204. from workgroups to enterprise-wide production applications.  In production use
  205. today with more than 50,000 end users licensed, it supports a fully
  206. distributed, rather than central-server, architecture, with all operations
  207. working transparently over a mixture of multiple databases, schemas, users, and
  208. computers, and over heterogeneous hardware, operating systems, and networks. 
  209. The language interface includes a C++ class library interface, soon to be ODMG;
  210. a C function library; and SQL++, supporting query predicates with either SQL or
  211. C++ syntax, interactively or programmatically.  Over forty administrative and
  212. GUI tools provide both an interactive and programmatic interface, and a
  213. messaging backplane allows third party tools integration at four different
  214. levels, with a list of partners at all levels.
  215.  
  216. One of the key architectural concepts of Objectivity/DB is an object reference
  217. mechanism that ensures data integrity.  Unlike traditional ODBMSs that use
  218. direct pointers, which become invalid after commit and hence lead to crashes
  219. and corrupt databases, Objectivity/DB uses an indirection to guarantee safe
  220. reference.  Transparent to the user, this indirection requires an extra test
  221. and pointer dereference, or a couple of cycles, which is not measurable in most
  222. applications.  However, it ensures integrity of all references, even across
  223. transaction boundaries, resulting in production quality robustness.  Also, it
  224. provides object level granularity for the object manager, allowing it to move,
  225. cluster, and swap objects as necessary, one of the keys required for
  226. scalability in objects and users.  Finally, it allows object-level granularity
  227. for current features, such as heterogeneity and versioning, and future
  228. extensions, such as object-level security.
  229.  
  230. A higher-level Object Definition Language (ODL) is provided that allows
  231. declaration of modeling concepts such as bi-directional associations, behavior
  232. of associations between objects as they version (move, copy drop), and
  233. propagation of methods across associations.  These then result in automatically
  234. generated methods and declarations for both C++ and C.  The standard C++ API
  235. allows application programmers to work with any standard compilers and
  236. debuggers, with no extra pre-processors, providing ODBMS capabilities via
  237. overloading C++ operators (new, ->, etc.), and declarations via provided
  238. classes (for references, etc.).
  239.  
  240. Workgroup through enterprise-wide and cross-enterprise computing is supported
  241. via a distributed client/server architecture that provides a single logical
  242. view over multiple databases on heterogeneous machines.  The user sees a
  243. logical view of objects connected to objects and need not worry that one object
  244. is in a database on a Sun workstation, while another may be in a database under
  245. Windows or VMS.  All operations work transparently across this environment,
  246. including atomic transactions with two-phase commit, propagating methods, and
  247. versioning.  Objects may be moved between databases and platforms without
  248. affecting working applications or requiring changes to the applications. 
  249. Multiple schemas may be created, without affecting other users or databases,
  250. and may be used simultaneously with shared schemas, allowing local groups to
  251. define their own models but still connect to other groups.  Databases may be
  252. detached from this shared environment (federated database) and used on portable
  253. devices, reconnected or moved to different (compatible) environment, or
  254. distributed as parts or image libraries.  Gateways to RDBMSs are provided via
  255. third-party integration with Persistence Software, and more generally to any
  256. foreign data store, as long as the user installs the appropriate access
  257. methods, extending the single-logical-view to include read/write access to
  258. arbitrary foreign data stores.  Together, these allow delegation of
  259. responsibilities to the appropriate users, integration with existing systems,
  260. and gradual migration toward full enterprise-wide sharing.
  261.  
  262. The on-demand object manager directly and automatically manages object access
  263. and buffering, rather than relying on system facilities such as virtual memory
  264. or user manual get/put calls.  Mechanisms used include multiple buffer pools
  265. locally and remotely, b-trees, hashing, scoped names, keys, and iterators, with
  266. distributed catalogues for schemas and databases.  A direct connection is
  267. established between the user and the objects used, so that users do not
  268. conflict unless and until they are competing for the same objects, thus
  269. avoiding the traditional central-server bottleneck.  Short transactions are
  270. based on traditional (transient) locks, owned by the process, and group
  271. together an arbitrary set of operations.  Long transactions are based on
  272. persistent locks, owned by the user, and provide the same arbitrary grouping. 
  273. Default concurrency is two-phase locking and serialization, but extensions
  274. available include MROW, or multiple-readers concurrent with one-writer, and
  275. allow users to lock with or without wait or with timed waits, to implement more
  276. sophisticated mechanisms.
  277.  
  278. Objects may be modeled using C++ structures augmented by classes provided such
  279. as strings, dictionaries, and relationship management, as well as some
  280. particular domain libraries.  A simple object is a C++ class (or C structure)
  281. with associated access methods.  A complex object may include multiple varrays,
  282. each being a dynamically varying sized array of arbitrary structure.  A
  283. composite object is any network of related objects that acts as a single
  284. object, both structurally and behaviorally, via propagation of behaviors to
  285. component objects.  Any number of composite objects may be contained in
  286. composite objects, and a single object may participate in any number of
  287. composites.  The relationship mechanism supports uni- and bi-directional
  288. relationships, one-to-one, one-to-many, and many-to-many.  Versioning is
  289. supported at object granularity, may be turned on or off at any time for each
  290. object, may be restricted to linear or allow branching with multiple writers. 
  291. References to versioned objects may be to a specific version or to the default
  292. version, which may be separately specified by a method and may allow multiple
  293. defaults.  Schema and object evolution are supported via versioning of the
  294. type-defining objects.  Each time a type definition is changed, its defining
  295. object is versioned, allowing arbitrary changes.  Objects may then be instances
  296. of the old or new type version.  Object evolution or upgrading to the new type
  297. version is supported  by the user writing conversion methods which are
  298. installed and invoked by the system.
  299.  
  300. ANSI SQL query is supported in the SQL++ product.  Predicate syntax may be
  301. either C++ or SQL.  The ODBC and SQL Access Group (SAG) protocols are
  302. supported.  Queries may be invoked programatically or interactively, with ad
  303. hoc support.  Access to object features is available via methods and traversal
  304. of relationships.
  305.  
  306. Over forty administrative and developer tools are provided, each with both an
  307. interactive and programmatic interface.  These include GUI object and type
  308. browsers, query browsers, report generator, tools to examine and force short
  309. and long locks, to move objects and databases, etc.  On-line incremental backup
  310. provides a consistent network-wide snapshot, including referential integrity
  311. across all databases, and runs incremental and full database backups with no
  312. need to acquiesce the databases and no interference with active applications. 
  313. All tools are built around a messaging backplane, which supports four levels of
  314. integration with user and third-party tools.  Integrated products include HP
  315. SoftBench (full operational level), CenterLine's ObjectCenter (tool level), 
  316. Persistence RDBMS gateway, PTech and ProtoSoft Design and Analysis (language
  317. level), and XVT and UIM/X (compatibility level).
  318.  
  319. Objectivity/DB is resold by Digital Equipment Corporation as DEC Object/DB,
  320. providing a multi-billion-dollar second source vendor.  Over 50,000 end users
  321. are licensed in production use, with applications including real-time
  322. telecommunications, aerospace, defense, case, CAD/CAM, CIM, manufacturing, oil
  323. & gas, process control, transportation, multi-media, case, document management,
  324. financial analysis, and corporate information management.  Platform support
  325. includes all Sun, all DEC (including VMS, alpha, OSF-1), HP/9000 series (both
  326. 68xxx and PA-RISC), IBM RS/6000, NCR 3300, SGI, Windows 3.1, and Windows NT.
  327.  
  328. On Schema Evolution (from original survey):
  329. In the just-released Version 2.0 (shipping Oct 92), schema evolution
  330. is supported via dynamic versioning of type-defining objects [ie.
  331. class versions -- SMC], and via a step-by-step approach that allows
  332. conversion of instance data via user-provided conversion methods.
  333. Also, a full dynamic type manager interface is available for doing
  334. fancier things.
  335.  
  336. Contact:
  337.  
  338. Drew Wade
  339. Objectivity, Inc.
  340. 800 El Camino Real
  341. Menlo Park, CA  94025 USA
  342. drew@objy.com
  343. 1(415)688-8000 voice
  344. 1(415)325-0939 fax
  345. admin ass't:  Vickie Clements (vickie@objy.com)
  346. information:  info@objy.com
  347.  
  348.  
  349. > ObjectStore Object Database System From Object Design, Inc.
  350.  
  351.  
  352. Product Description    
  353.  
  354. ObjectStore[TM] is a high performance ODBMS designed for ease of use in
  355. development of sophisticated applications using object-oriented
  356. development techniques.  It offers a tightly-integrated language
  357. interface to a complete set of traditional DBMS features including
  358. persistence, transaction management (concurrency control and
  359. recovery), distributed access, associative queries over large amounts
  360. of data, and database administration utilities.  ObjectStore's data
  361. management facilities combined with popular development tools create a
  362. high productivity development environment for implementing
  363. object-oriented applications.
  364.  
  365. Key Features:
  366.  
  367.    - Transparent interface designed for popular C and C++ programming
  368.      environments. 
  369.  
  370.    - Concurrent access to large amounts of persistent data. 
  371.  
  372.    - Distribution of objects over networks using a variety of popular
  373.      network protocols.
  374.  
  375.    - Access to persistent data at the same speed as transient data.
  376.  
  377.    - Extensible data modeling capabilities for applications requiring
  378.      complex data structures.
  379.  
  380.    - Easy migration path for existing C and C++ applications.
  381.  
  382.    - Class libraries for version and configuration management.
  383.  
  384.    - Class libraries for managing collections of objects.
  385.  
  386.    - A fully distributed (multi-server/multi-database) ad hoc query
  387.      capability.
  388.  
  389.    - An interactive Browser to inspect objects and object
  390.      descriptions.
  391.  
  392.    - Interoperable with ObjectStore servers running on other operating
  393.      systems and hardware environments.
  394.  
  395.    - Complete schema evolution for an application's metadata and
  396.      existing object instances.
  397.  
  398.    - Full online backup for continuous processing environments.
  399.  
  400.    - Meta object protocol with programmatic access to schema
  401.      information. 
  402.  
  403.    - Dynamic Type creation for extending existing class definitions
  404.      during program execution.
  405.  
  406.  
  407. System View
  408.  
  409. ObjectStore supports cooperative access through its flexible
  410. client/server software architecture, which allows users to make the
  411. take advantage of the computational power that exists on the desktop.
  412. ObjectStore's client/server implementation allows one server to
  413. support many client workstations, each workstation to simultaneously
  414. access multiple databases on many servers, and a server to be resident
  415. on the same machine as a client.  ObjectStore's distributed
  416. architecture supports several network environments for
  417. interoperability among popular workstations and PC's and includes
  418. support for TCP/IP, Novell IPX/SPX, other popular network protocols.
  419.  
  420.  
  421. Application Interface
  422.  
  423. Access to ObjectStore is provided through a library based application
  424. interface compatible with popular C and C++ compilers and programming
  425. environments.  The ObjectStore application interface provides support
  426. for C++ compilers -- such as those from workstation suppliers -- and
  427. development environments from independent software vendors such as
  428. Visual C++ from Microsoft, ObjectCenter from CenterLine Software, Inc.
  429. and Energize from Lucid, Inc.  The application interface provides
  430. powerful high-level function calls which enable the programmer to
  431. create multi-user application which share large amounts of data.
  432. These functions include:
  433.  
  434.    - Relationship Management
  435.    - Version Management
  436.    - Collection Management
  437.    - Storage Management
  438.    - Associative Queries
  439.    - Object Iteration
  440.    - Transaction Management 
  441.    - Index Management
  442.    - Clustering
  443.  
  444. Applications developed using ObjectStore library calls are
  445. source-level compatible with ObjectStore applications developed for
  446. other operating systems on other hardware platforms.
  447.  
  448. Platforms
  449.  
  450. ObjectStore is available on the following major platforms:
  451.     
  452. Unix Workstation Platforms
  453.  
  454.    - DEC MIPS Ultrix 
  455.    - HP 700 Series HP-UX
  456.    - HP 800 Series HP-UX 
  457.    - IBM RS/6000 AIX
  458.    - NCR 3000 
  459.    - Olivetti LSX-50xx SVR4
  460.    - Silicon Graphics IRIX 5.x
  461.    - SunSoft Intel Solaris 2
  462.    - SunSoft SPARC Solaris 1 SunOS 4
  463.    - SunSoft SPARC Solaris 2 SunOS 5
  464.    - Univel UnixWare
  465.  
  466. PC Platforms
  467.  
  468.    - Windows 3.1 (Win32s)
  469.    - Windows NT (Intel)
  470.    - OS/2 Release 2.0 and 2.1
  471.    - Novell Netware Release 3.1 and 4.0 (server only)
  472.  
  473. The Company
  474.  
  475. ObjectStore[TM], Object Design's object-oriented database management
  476. system, is currently used by more than 500 companies.  The company
  477. targets end-user customers in major corporations and governments
  478. through its direct sales force, and also focuses on independent
  479. software developers, systems integrators and international
  480. distributors to license its products.  In the systems software market,
  481. Object Design has already licensed object storage technology to
  482. SunSoft that will be embedded in the Solaris(r) (Project DOE)
  483. environment.  Through this relationship Hewlett Packard also has rights
  484. to the technology for use in HP/UX(r) (DOMF).
  485.  
  486. In April 1993, IBM Corporation became one of the company's leading
  487. investors as part of a far-reaching strategic relationship involving
  488. an equity investment, internal use and joint development agreements.
  489.  
  490. Object Design's Support Services group provides extensive support
  491. services tailored to meet each customer's specific needs.  A regularly
  492. scheduled series of training courses are offered, either at Object
  493. Design facilities across North America, select international locations
  494. or at customer sites, that reduce the learning curve for
  495. object-oriented development.  The training courses include
  496. "Introduction to Object-Oriented Programming and C++," "Designing
  497. Object-Oriented Database Applications" and "Building High Performance
  498. Applications with ObjectStore."  To further assist its customers,
  499. Object Design makes its team of experts available to provide a wide
  500. range of training, support and consulting services.
  501.  
  502. The company distributes its products through a direct sales and
  503. telesales force in the North America, wholly-owned subsidiaries in
  504. Australia (61-2-212-2766), Germany (49-611-39707-0), Japan
  505. (81-3-3251-2882), and the United Kingdom (44-793-486111) as well as
  506. through distributors in 15 countries.
  507.  
  508. The US headquarters are located in Burlington, Mass., the company
  509. maintains regional or district offices in Atlanta; Chicago; Los
  510. Angeles; New York; Portland; San Mateo, Calif.; and Washington, DC.
  511.  
  512. You may obtain information about ObjectStore or Object Design by any
  513. of the following methods:
  514.  
  515. Address:
  516.  
  517.     Object Design, Inc.
  518.     25 Burlington Mall Road
  519.     Burlington, MA 01803
  520.  
  521. Telephone:
  522.  
  523.     Call toll-free 1-800-962-9620 in the USA or 617-674-5000 and
  524.     ask for telemarketing.
  525.  
  526. Internet:
  527.  
  528.     Send email requests to info@odi.com.
  529.  
  530.     You can also download public information from our ftp server,
  531.     ftp.odi.com (198.3.16.17).  Login as "anonymous", and use your
  532.     mail address (username@site) as your password.  Major files of
  533.     interest include:
  534.  
  535.     /pub/docs/techsum-net.ps    Technical Summary (postscript)
  536.     /pub/docs/techsum.net        Technical Summary (FrameMaker)
  537.     /pub/oo7/results.ps        OO7 Benchmark Results (postscript)
  538.  
  539. CompuServe:
  540.  
  541.     GO ODIFORUM, section 1.
  542.  
  543. International distributors contact information follows:
  544.  
  545. GERMANY
  546.  
  547. Patzschke + Rasp 
  548. Software und Systeme
  549. Bierstadter StraBe 7
  550. D-65189 Wiesbaden Germany
  551. 011-49-611-17-310
  552. 011-49-611-17-3131 FAX
  553.  
  554. SPAIN, PORTUGAL
  555.  
  556. DyM
  557. Diseno y Metodologia, SA
  558. Francisco Gervas, 17, 5.0 G
  559. Madrid, Spain 28020011-34-1-571-3123 or 571-3880
  560. 011-34-1-571-3942 FAX
  561.  
  562.  
  563. SWEDEN, NORWAY, DENMARK, FINLAND
  564.  
  565. ENEA Data
  566. Box 4150
  567. S-203 12 Malmo
  568. Sweden
  569. 011-46-40-70930
  570. 011-46-40-230240 FAX
  571.  
  572. SWITZERLAND
  573.  
  574. UNISYS (Schweiz) AG
  575. Zucherstrasse 59-61
  576. A-8800 Thalwill
  577. Switzerland
  578. 011-411-723-3366
  579. 011-411-720-3737 FAX
  580.  
  581. ITALY
  582.  
  583. AIS S.p.a.
  584. Via Rombon, 11-20134
  585. Milano, Italy
  586. 011-39-226-40197
  587. 011-39-2 2641-0744 FAX
  588.  
  589. ISRAEL
  590.  
  591. TACTLINE, Ltd.
  592. Beit-Oved 76800
  593. Israel
  594. 011-972-840-4898
  595. 011-972-840-6927 FAX
  596.  
  597. JAPAN
  598.  
  599. Mitsui Engineering & Shipbuilding Co., Ltd.(MES)
  600. 6-4 ,Tsukiji 5-chome
  601. Chuo-ku,Tokyo, 104 
  602. 011-81-3-3544-3355
  603. 011-81-3-3544-3036FAX
  604.  
  605. Stan Systems Corporation
  606. Sumitomo Higashi Shinbashi Bldg.
  607. 1-1-11 Hamamatsucho
  608. Minato-Ku, Tokyo 105 Japan
  609. 011-81-3-5472-5515
  610. 011-81-3-5472-5544 FAX
  611.  
  612.  
  613. System Network Corporation:
  614. Tohto Bldg. 6F
  615. 5-1-4 Toranomon, Minato-ku, 
  616. Tokyo  105 Japan
  617. Phone#:   +81-3-3437-4081
  618. Fax#:       +81-3-3437-4060
  619.  
  620. Toyo Information Systems Co.,Ltd.
  621. Nihonbashi Toyo Bldg. 4F
  622. 2-7-24 Nihonbashi
  623. Chuo-Ku, Tokyo 103 Japan
  624. 011-81-3-3271-7681
  625. 011-81-3-3271-7685 FAX
  626.  
  627. TAIWAN, R.O.C.
  628.  
  629. Exartech International Corp 
  630. 10F, 82, Chung-Cheng S. RD.
  631. Sanchung, Taipei, Taiwan, ROC
  632. 011-886-2-977-6828
  633. 011-886-2-977-6829 FAX
  634.  
  635. SOUTH AFRICA
  636.  
  637. Realtime Computer Services (Pty) Ltd.
  638. 4th Floor, 35 Wale Street
  639. Cape Town 8001
  640. South Africa
  641. 011 27 21 24 4350
  642. 011 27 21 221507 FAX
  643.  
  644.         
  645. > Ontos [formerly VBase] (Ontologic)
  646.  
  647. Entry on schema evolution only:
  648.  
  649. *Ontos provides schema evolution. It allows any class to be modified.
  650. *The major drawback is that data does not migrate ie., instances are
  651. *not modified to adopt to the new class definition. So schema changes
  652. *can be done only on classes that do not contain instances and do not
  653. *have sub classes that contain instances.
  654. *[h.subramanian@trl.OZ.AU]
  655.  
  656. *As a system for experiments, we are currently using ONTOS from
  657. *Ontologic Inc.  Unfortunately, there is no transparent concept of
  658. *schema evolution for populated database. Thus, we still investigate
  659. *how it works.
  660.  
  661. ONTOS has a version of ONTOS for OS/2.  Approximately $11K. Others I don't know
  662.  
  663.  
  664. > Odapter/OpenODB (Hewlett-Packard)
  665.  
  666. Odapter is HP's new object/relational adapter which
  667. enables object-oriented developers to share a common
  668. object model stored in the ORACLE7 relational database
  669. management system (RDBMS).  Odapter is also available with
  670. HP's ALLBASE/SQL RDBMS.  The combination of Odapter
  671. and ALLBASE/SQL is called OpenODB.
  672.  
  673. Odapter 
  674. Technical Data 
  675. Object/Relational Adapter 
  676.   
  677. A Productivity Tool for Scalable Object-Oriented 
  678. Applications 
  679.   
  680. Odapter is a tool for developers writing scalable 
  681. object-oriented applications requiring the 
  682. integration of new objects and legacy information. 
  683. Odapter is valuable because it: 
  684. * accelerates application development 
  685. * reduces the cost of keeping applications current 
  686. * enables applications to scale 
  687.   
  688. Odapter delivers the productivity of object 
  689. technology while adhering to your data management 
  690. standards. 
  691.   
  692. Consider Odapter if you need to be able to do one 
  693. or more of the following: 
  694. * develop object-oriented applications and 
  695. store objects in a relational database 
  696. * easily access legacy data and existing 
  697. applications from your new system 
  698. * support a large number of end-users who will 
  699. be simultaneously accessing information 
  700. * store large amounts of  complex information 
  701.   
  702. The following are examples of applications well- 
  703. suited for Odapter: 
  704. * a customer billing application written in 
  705. Smalltalk combining data stored in DB2 with new 
  706. objects. (Telecommunications) 
  707. * a network management application written in C 
  708. using Odapter as the object manager, able to scale 
  709. to millions of objects (Manufacturing) 
  710. * a complex Oil and Gas industry standard model 
  711. automatically generated from an Express analysis 
  712. and design tool. 
  713. (Oil & Gas) 
  714. * a medical application using Odapter to 
  715. combine heterogeneous components of patient 
  716. records. (Healthcare) 
  717.   
  718. Odapter provides authorized access to sharable 
  719. objects, including existing data and business 
  720. processes. By bringing object-oriented capabilities 
  721. to heterogeneous systems environments, Odapter 
  722. delivers increased functionality while leveraging 
  723. the stability of existing RDBMSs and legacy 
  724. information. 
  725.   
  726. Odapter Object Model 
  727.   
  728. The Odapter object model is based on three key 
  729. concepts - objects, types and functions. 
  730. * Objects are a combination of data and 
  731. behavior (functions). Figure 2 is an example of an 
  732. object. 
  733. * Types are dynamic templates allowing you to 
  734. group together similar components or objects. 
  735. * Functions define the attributes, 
  736. relationships and behavior of objects. Odapter 
  737. supports four types of user-defined functions: 
  738.   
  739. Stored functions define attributes and 
  740. relationships that are stored in the database. In 
  741. Figure 2, flightno is a stored function. The 
  742. functions aircraft and crew are also stored 
  743. functions with user-defined results. 
  744.   
  745. SQL-based functions allow you to access existing 
  746. relational tables with Odapter's object-oriented 
  747. model. In Figure 2, citypair is an SQL-based 
  748. function accessing values from an existing 
  749. relational table. 
  750.   
  751. OSQL-based functions define attributes and 
  752. relationships that are derived or calculated with 
  753. OSQL statements. In Figure 2, delay and depart are 
  754. OSQL-based functions. Delay calculates changes in 
  755. arrival and departure times based upon events that 
  756. disrupt the schedule; depart handles the update of 
  757. functions related to departure and transitions the 
  758. flight from OnGround to InAir. 
  759.   
  760. External functions are a reference to code or data 
  761. stored outside of Odapter. In Figure 2, cancel is 
  762. an external function that executes code outside of 
  763. Odapter to free up resources no longer assigned to 
  764. the flight. 
  765.   
  766. Odapter Language 
  767.   
  768. The Odapter language can be combined with functions 
  769. implemented in C++, Smalltalk or C. You create and 
  770. manipulate objects, types and functions using 
  771. Odapter's object-oriented structured query language 
  772. (OSQL). OSQL is a functional language that is a 
  773. semantic superset of SQL, the structured query 
  774. language for relational databases. OSQL is a 
  775. computationally complete language with statements 
  776. allowing you to define and manipulate information 
  777. in your Odapter enhanced relational database, 
  778. specify authorization for individuals or groups, 
  779. define transactions, embed program logic within 
  780. functions, and administer the database. 
  781.   
  782. OSQL includes programming flow statements, such as 
  783. IF/THEN/ELSE, FOR and WHILE. This procedural 
  784. language allows Odapter functions to model complex 
  785. behavior, simplifying your application code. By 
  786. decoupling behavior from the applications, multiple 
  787. applications can share information with benefits 
  788. such as consistency, security and integrity. See 
  789. Table 5 for a list of all OSQL statements. 
  790.   
  791. Odapter Object Storage 
  792.   
  793. Odapter objects are stored in the developer's 
  794. choice of relational databases. Odapter interfaces 
  795. to the underlying RDBMS through an SQL command 
  796. interface. Currently, developers can choose to 
  797. store their objects in ORACLE7 or HP ALLBASE/SQL. 
  798.   
  799. The choice of RDBMS is made when a particular 
  800. database is created. The users are only limited by 
  801. the number of Odapter concurrent user licenses 
  802. purchased. This flexibility allows database 
  803. administrators to continue using their existing 
  804. administration procedures and keeps the group from 
  805. having to choose yet another database management 
  806. system. 
  807.   
  808. During the initial development of an application, 
  809. developers can make rapid progress without 
  810. knowledge of the underlying relational database. 
  811. Optimization of the objects and how they are stored 
  812. in the underlying relalational database is best 
  813. done during the deployment phase. 
  814.   
  815. Odapter Development Environments 
  816.   
  817. Odapter developers have a choice of development 
  818. environments. Whether Smalltalk, C++ or more 
  819. traditional C and C-linkable languages are used, 
  820. Odapter enables object storage in a scalable and 
  821. robust relational database. In fact, objects can be 
  822. shared between different applications, allowing 
  823. different projects to employ the best tools for the 
  824. job! 
  825.   
  826. Odapter and Smalltalk 
  827.   
  828. Odapter provides Smalltalk developers with 
  829. transparent access to information stored in the 
  830. underlying relational database. 
  831.   
  832. Odapter's Smalltalk Class Builder utility 
  833. automatically generates ParcPlace Smalltalk 
  834. compatible classes and methods based upon an 
  835. Odapter object model. The developer can select 
  836. specific Odapter types and functions, resulting in 
  837. a corresponding set of Smalltalk classes and 
  838. methods. Once the Smalltalk schema is generated, 
  839. the Smalltalk developer can transparently access 
  840. the underlying relational database, as shown in 
  841. Figure 3. 
  842.   
  843. printFlight 
  844.    |allFlightObjects| 
  845.    allFlightObject:=Flight allObjects. 
  846.    AllFlightObjects do: [:aFlight| 
  847.       Transcript show :aFlight flightno value; cr]. 
  848. Figure 3 
  849.   
  850.   
  851. Figure 3 shows how to access the flight objects 
  852. shown in Figure 2 through Smalltalk. This example 
  853. retrieves all flight object identifiers and prints 
  854. the flight# for each one of the flight objects. 
  855.   
  856. All Smalltalk classes and methods which result in 
  857. the access of Odapter structures are italicized. 
  858. Flight is a Smalltalk class that corresponds to the 
  859. Odapter type Flight. The Smalltalk methods 
  860. allObjects and flightno map to Odapter calls that 
  861. access data from the relational database storage 
  862. manager. 
  863.   
  864. Odapter and C++ 
  865.   
  866. For C++ developers, once the corresponding C++ 
  867. model is created, Odapter provides the abilility to 
  868. manage C++ objects stored in the underlying 
  869. relational database, as shown in Figure 4. 
  870.   
  871. void printFlight() 
  872.    int i; 
  873.    ODBType Flight ("Flight"); 
  874.    ODBBag allFlights=Flight.allObjects(); 
  875.    ODBFunc flightno("flighno"); 
  876.   
  877.    for(i=0;i<allFlights.size();i++){ 
  878.       cout<<flightno(allFlights[i]); 
  879.    } 
  880. Figure 4 
  881.   
  882. Figure 4 shows a C++ version of the Smalltalk 
  883. example in Figure 3. That is, Figure 4 shows how to 
  884. access all the flight objects shown in Figure 2 and 
  885. prints the flight number associated with each 
  886. flight object. 
  887.   
  888. The Odapter C++ library includes a set of classes 
  889. (e.g. ODBType, ODBClass, ODBFunc, ODBBag) and 
  890. corresponding member functions (e.g. allObjects). 
  891. User-defined classes (Flight) and member functions 
  892. (flightno) are also shown. In Figure 4, all Odapter 
  893. calls are in italics. 
  894.   
  895. Odapter and C-linkable Languages 
  896.   
  897. For traditional developers using C, or any 
  898. languages linkable with C, the object-oriented 
  899. features are provided by Odapter. Odapter objects 
  900. are manipulated by embedding OSQL statements in the 
  901. C program, similar to the db.execosql call shown in 
  902. Figure 4. In addition, the C interface requires the 
  903. conversion of data types from Odapter to C. 
  904.   
  905. By embedding Odapter calls in a C program, the C 
  906. language becomes object-oriented. 
  907.   
  908. Features and Benefits 
  909.   
  910. Accelerates Application Development 
  911.   
  912. Odapter accelerates application development by 
  913. integrating with familiar development environments 
  914. and by providing a robust object-oriented model. 
  915.   
  916. Odapter's choice of development environments 
  917. includes those which support the Smalltalk, C++ and 
  918. C languages. 
  919.   
  920. Odapter's robust object model enables the 
  921. integration of legacy data and business processes 
  922. in the context of one sharable business object 
  923. model, shielding the developer from the data 
  924. storage complexity. 
  925.   
  926. The following Odapter features accelerate 
  927. application development: 
  928.   
  929. Automatic mapping of objects to relational 
  930. databases 
  931. The application developer is shielded from the task 
  932. of converting complex object models to two 
  933. dimensional relational tables. 
  934.   
  935. Smalltalk Class Builder 
  936. Once an OSQL schema is created, whether using 
  937. available analysis and design tools or manually, 
  938. Odapter's Smalltalk Class Builder can generate 
  939. corresponding Smalltalk classes and methods. The 
  940. developer can select the relevent part of the 
  941. Odapter schema to generate. As the Odapter object 
  942. model changes, developers can also incrementally 
  943. update the Smalltalk classes. 
  944.   
  945. Object Identity 
  946. Each object manipulated by Odapter has a unique, 
  947. system-provided handle called an object identifier 
  948. (OID). OIDs eliminate the need for creating unique 
  949. keys to identify stored information. Additionally, 
  950. OIDs reduce duplication of information when several 
  951. attributes would be needed to uniquely identify 
  952. information in the database. OIDs are also a 
  953. powerful way to tune data access and performance. 
  954.   
  955. Inheritance 
  956. Odapter objects can use functions defined on parent 
  957. types in the type hierarchy. For example, as shown 
  958. in Figure 5, a subtype of Employee called Pilot 
  959. could inherit functions from Employee like hire and 
  960. name, while defining unique functions like 
  961. hoursflown and status. 
  962.   
  963.   
  964. Multiple Inheritance 
  965. Functions defined on a type can be inherited by one 
  966. or more subtypes. In Figure 5, functions accessible 
  967. by the type ManagingPilot are inherited from its 
  968. parents, namely all functions defined on Employee, 
  969. Pilot and Manager. By inheriting rather than 
  970. redefining functions, you can easily add 
  971. functionality to your application. 
  972.   
  973. OSQL 
  974. If you already know SQL, you can quickly be 
  975. productive using Odapter's OSQL. Both query 
  976. languages are set-based, that is they retrieve sets 
  977. of information based upon queries. Thus, OSQL does 
  978. not require users to navigate through the database 
  979. chasing pointers or object references. 
  980.   
  981. Encapsulation 
  982. Odapter protects end-user applications from changes 
  983. to the internal definition of objects. Since 
  984. Odapter only allows access to data through 
  985. functions with well defined arguments and results, 
  986. your applications are protected from changes to the 
  987. function body and you have control over how 
  988. information is used. 
  989.   
  990. Aggregate Types 
  991. Aggregates are used to represent collections, such 
  992. as crew members (maybe several pilots, flight 
  993. attendants and a mechanic) for a particular flight, 
  994. or the employees reporting to a particular manager. 
  995. Aggregates are not required to have a predetermined 
  996. size. Odapter manages the memory associated with 
  997. aggregates, relieving your application of this 
  998. work. 
  999.   
  1000. User-defined Data Types 
  1001. You can construct user-defined data types in 
  1002. Odapter, such as a type called Flight, Employee or 
  1003. Aircraft, as shown in Figure 6. Functions defined 
  1004. on these types can manipulate data stored within 
  1005. the current object, within other related objects or 
  1006. outside of Odapter. User-defined types maximize 
  1007. flexibility and lead to more manageable, clearer 
  1008. code. 
  1009.   
  1010. Complex Objects 
  1011. With Odapter you can construct complex objects from 
  1012. simpler objects. For example, Figure 6 shows the 
  1013. relationships between the types Flight, Aircraft 
  1014. and Employee.  Complex objects relieve applications 
  1015. from managing such relationships. 
  1016.   
  1017.   
  1018. Reduces the Cost of Keeping Applications Current 
  1019.   
  1020. Odapter supports a server-centric business model 
  1021. which means the business logic and associated data 
  1022. is sharable by multiple applications. By separating 
  1023. out business objects (data and processes), from the 
  1024. application development environment, your company's 
  1025. business can be modified without impacting the 
  1026. applications. These changes can be immediately 
  1027. leveraged by the calling applications without 
  1028. recompilation 
  1029.   
  1030. The following features make applications easier to 
  1031. keep current: 
  1032.   
  1033. External Functions 
  1034. Using external functions, you can access 
  1035. distributed data and code stored outside of the 
  1036. relational database used by Odapter for storage, 
  1037. regardless of location or data format. Examples of 
  1038. external data sources include IMS, DB2 as well as 
  1039. custom databases and flat files. Odapter acts as an 
  1040. integrator so your application can manipulate 
  1041. information as recognizable business objects. This 
  1042. not only allows transparent migration of data over 
  1043. time, it accelerates developer productivity by 
  1044. hiding the complexity of a diverse data storage 
  1045. environment. 
  1046.   
  1047. Overloaded Functions 
  1048. Multiple functions can have the same name with 
  1049. different implementations. An application calls a 
  1050. function (e.g. salary) and Odapter determines at 
  1051. run-time which code (salary for Manager or salary 
  1052. for Pilot) to execute, based upon the type of the 
  1053. object against which the function is invoked. The 
  1054. application is simplified since the conditional 
  1055. logic for determining which function to execute is 
  1056. now in Odapter. 
  1057.   
  1058. Dynamic Schema Modification 
  1059. Odapter object models can be modified while the 
  1060. database is running. Developers can add new 
  1061. functions and types, as well as change the 
  1062. implementation of functions. This capability is 
  1063. particularly valuable to applications with high 
  1064. availability requirements. 
  1065.   
  1066. Dynamic Typing 
  1067. You can change the type of an object without 
  1068. destroying and recreating the object. An object can 
  1069. also belong to more than one type. As shown in 
  1070. Figure 7, once a Flight leaves the ground, it would 
  1071. change state from being an OnGround to an InAir 
  1072. Flight. OnGround functions such as maintenancecrew 
  1073. and availableseats would no longer be needed. An 
  1074. InAir object would need certain functions like 
  1075. bestroute and delay to calculate the most time 
  1076. efficient route and to calculate a projected delay 
  1077. based current weather conditions. Dynamic Typing 
  1078. allows you to represent an object in Odapter which 
  1079. transforms itself over time and, therefore, changes 
  1080. capabilities and attributes. 
  1081.   
  1082. Late Binding 
  1083. Odapter supports functions that are resolved at 
  1084. runtime. Late binding allows you more flexibility 
  1085. in application development and gives you the full 
  1086. power of overloaded functions as described earlier. 
  1087. On the other hand, Odapter will precompile or do 
  1088. early binding to improve performance. However, when 
  1089. types and functions changes at runtime, impacting a 
  1090. particular function, late binding occurs and the 
  1091. application automatically takes advantage of the 
  1092. new implementation of the function when it is 
  1093. called. 
  1094.   
  1095. Referential Integrity 
  1096. Since Odapter manages the relationships between 
  1097. objects, it can manage referential integrity on 
  1098. your behalf. That is, if an object referenced by 
  1099. other objects is deleted, the system removes all 
  1100. dependencies.  Your application code is simplified 
  1101. since Odapter is able to keep the logical business 
  1102. model intact automatically. 
  1103.   
  1104. Multimedia 
  1105. Odapter allows you to manage large, unformatted 
  1106. data in binary format and treat that data as an 
  1107. attribute of an object. For example, you may want 
  1108. to create a function called diagram to show the 
  1109. sections and seating for an Aircraft object. 
  1110. Multimedia information can include graphics, images 
  1111. and voice. You can also define functions in Odapter 
  1112. to manipulate this multimedia information. For 
  1113. example, you can create a function called showexits 
  1114. that adds information to the diagram. Thus, various 
  1115. applications can share these complex functions. 
  1116.   
  1117. Import Facility 
  1118. The Odapter Import facility allows developers to 
  1119. update existing Odapter functions with data from 
  1120. external files such as spreadsheets or other 
  1121. databases. This is an object-oriented version of 
  1122. the relational "bulk load" functionality. 
  1123.   
  1124. Enables Applications to Scale 
  1125.   
  1126. Odapter makes applications more scalable by storing 
  1127. objects in a choice of RDBMSs, like ORACLE7. As a 
  1128. result, applications can access large volumes of 
  1129. data, be used by a large numbers of users, and 
  1130. perform on-line backup. In addition, Odapter 
  1131. protects against unauthorized access from users in 
  1132. a distributed environment. 
  1133.   
  1134. Odapter, with the help of the underlying relational 
  1135. storage manager, ensures the integrity and security 
  1136. of your data while maximizing the availability of 
  1137. that data for end users. 
  1138.   
  1139. The following features enable applications to 
  1140. scale: 
  1141.   
  1142. Indexing 
  1143. Indexes are automatically generated when you create 
  1144. types and functions in Odapter. You can also define 
  1145. your own indexes using B-tree and hashing 
  1146. algorithms. Indexes make end user access to 
  1147. information faster. 
  1148.   
  1149. Clustering 
  1150. Related functions and objects which have the same 
  1151. value for a function can be stored close to each 
  1152. other. This ability to influence how objects are 
  1153. stored allows you to tune the performance of the 
  1154. database based on how the information will be 
  1155. accessed by applications. 
  1156.   
  1157. Transaction Management 
  1158. Odapter ensures the logical and physical integrity 
  1159. of your database by giving you complete control 
  1160. over the unit of work to be performed within a 
  1161. single transaction. With this control, you can save 
  1162. or rollback a transaction (throw away temporary 
  1163. work) at your discretion. Savepoints are also 
  1164. supported so that you can rollback parts of a 
  1165. transaction. 
  1166.   
  1167. Multi-user Concurrency Control 
  1168. Odapter is designed to support hundreds of users 
  1169. accessing the same information while guaranteeing 
  1170. the integrity of that information. 
  1171.   
  1172. Authorization 
  1173. You can control access to an Odapter enhanced 
  1174. database at the database and function levels based 
  1175. on individuals or groups of users. For example, 
  1176. authorization statements can provide read access to 
  1177. a large group of users while limiting write or 
  1178. delete access. 
  1179.   
  1180. High Availability 
  1181. Because Odapter actually stores objects in an 
  1182. RDBMS, Odapter can leverage RDBMS features to 
  1183. maximize the availability of your information by 
  1184. providing: 
  1185. * on-line backup of the database, to backup the 
  1186. database while it is being accessed 
  1187. * dual logging, to ensure the integrity of your 
  1188. log file 
  1189. * switch log, to automatically switch to a 
  1190. second log file if the original log file becomes 
  1191. full 
  1192. * dynamic file expansion, to expand the size of 
  1193. your database as it becomes full 
  1194.   
  1195. Odapter will also take advantage of other available 
  1196. features of the underlying relational database 
  1197. management system such as replication or "warm 
  1198. standby". 
  1199.   
  1200. Recovery 
  1201. Odapter uses the robust logging and recovery 
  1202. facilities of the RDBMS. In case of a failure, you 
  1203. can rollback work or perform rollforward recovery 
  1204. to a particular time, using the log file to 
  1205. recreate saved work. 
  1206.   
  1207. Odapter  Software Components 
  1208.   
  1209. Odapter uses a client/server architecture, enabling 
  1210. you to efficiently utilize your computing power. 
  1211. Clients use the object application call interface 
  1212. (OACI) to communicate with the server over the 
  1213. network. The clients and server components can also 
  1214. reside on the same machine. 
  1215.   
  1216. Odapter is bundled with the following client and 
  1217. server components, as shown in Figure 8: 
  1218.   
  1219. Client Components 
  1220.   
  1221. * Interactive Object-Oriented SQL (IOSQL) 
  1222. This interface allows you to interactively enter 
  1223. all Object-oriented SQL (OSQL) statements, 
  1224. facilitating rapid prototyping and testing. IOSQL 
  1225. provides query, administration and editing 
  1226. capabilities. 
  1227.   
  1228. * Graphical Browser (GOSQL) 
  1229. The Graphical Browser is a tool that allows you to 
  1230. graphically explore your database schema and 
  1231. contents, and execute any OSQL statement. This tool 
  1232. is designed to assist application developers by 
  1233. making it easier to view and manipulate your object 
  1234. model stored in Odapter. 
  1235.   
  1236. * Windows OSQL (WINOSQL) 
  1237. This PC-based interactive interface to OSQL allows 
  1238. you to interactively enter all OSQL statements. 
  1239.   
  1240. * Object Application Call Interfaces (OACI) 
  1241. Odapter provides client interface libraries for the 
  1242. Smalltalk and C++ object-oriented programming 
  1243. languages, allowing these languages to be tightly 
  1244. coupled with Odapter. 
  1245.   
  1246. You can also write Odapter applications using any 
  1247. programming language that can be linked with C 
  1248. (such as Ada, COBOL, FORTRAN and Pascal). The 
  1249. programmatic interface is similar to a "Dynamic 
  1250. SQL" interface, and passes strings representing 
  1251. OSQL statements to the Odapter server. No 
  1252. preprocessors are required. 
  1253.   
  1254. Server Components 
  1255.   
  1256. * Odapter Object Manager 
  1257. The Object Manager executes OSQL calls made by the 
  1258. Odapter clients. The Object Manager processes 
  1259. requests, and accesses data and code stored in the 
  1260. Odapter enhanced relational data storage manager or 
  1261. passes the request to a subsystem outside of 
  1262. Odapter using Odapter External Functions. 
  1263.   
  1264. * External Functions 
  1265. External functions allow you to access data and 
  1266. code stored outside of Odapter, regardless of data 
  1267. format or location. External functions can 
  1268. automatically link to specific data sources using 
  1269. the Odapter EDA-Objects class library and the 
  1270. EDA/SQL product from Information Builder's, Inc. 
  1271. (IBI). External functions can also be implemented 
  1272. by you as subroutines written in general-purpose 
  1273. programming languages and compiled outside of 
  1274. Odapter. External functions can be called by any 
  1275. OSQL statement, allowing you to manipulate this 
  1276. remote data and application code like any other 
  1277. Odapter object. For example, Figure 9 shows how 
  1278. Odapter integrates diverse heterogeneous 
  1279. information in an Oil and Gas environment. 
  1280.   
  1281. * EDA-Objects 
  1282. HP and IBI have jointly developed an external 
  1283. function library called EDA-Objects. Coupled with 
  1284. IBI's EDA/SQL product, EDA-Objects provides 
  1285. connections to over 50 commonly used databases on 
  1286. 35 different platforms. The external function 
  1287. library to connect to EDA/SQL is shipped with 
  1288. Odapter; however, you must purchase other EDA/SQL 
  1289. components from IBI directly to use the product. 
  1290. EDA-Objects is one way to integrate external data 
  1291. from multiple servers into a single business model 
  1292. managed by Odapter. This is done without physically 
  1293. moving the data or changing the applications which 
  1294. are dependent on the data in its current form. 
  1295.   
  1296. Additional Products 
  1297.   
  1298. * Development Environments and Tools 
  1299. Odapter allows you to use your favorite development 
  1300. environments for application development. Some 
  1301. tools are more tightly coupled with Odapter than 
  1302. others. HP has recruited tools partners to address 
  1303. all aspects of application development including 
  1304. application design and analysis, data model 
  1305. manipulation, fourth generation language 
  1306. application development, report writing and legacy 
  1307. data access. 
  1308.   
  1309. * Relational Database 
  1310. Odapter uses a relational database as its storage 
  1311. manager for the storage of Odapter objects. The 
  1312. relational database performs physical file 
  1313. management and database functions such as multi- 
  1314. user concurrency, transaction management, and 
  1315. recovery. The relational database allows you to 
  1316. perform on-line backup and recovery, manage 
  1317. physical distribution of files, maximize 
  1318. availability and change database parameters. 
  1319.   
  1320. * COMPASS 
  1321. COMPASS is a consulting product which includes the 
  1322. Hewlett-Packard implementation of the 
  1323. Petrotechnical Open Software Corporation (POSC) 
  1324. Software Integration Platform (SIP) specification. 
  1325. The SIP specification defines a data model and an 
  1326. interface which allow users and applications to 
  1327. access exploration and production data, independent 
  1328. of the database engine technology. 
  1329.   
  1330. The COMPASS package is an add-on to Odapter and 
  1331. includes: 
  1332. * COMPASS specific consulting/training (1 day) 
  1333. * POSC-based DAE interface library and documentation 
  1334. * Interactive user interface called ixpres 
  1335. * Archived copy of a pre-loaded Odapter 
  1336. enhanced database with sample reference data 
  1337. * Scripts for building a POSC-based Odapter 
  1338. enhanced database 
  1339. * Contributed software library (data loaders, 
  1340. demonstration programs) 
  1341.   
  1342. COMPASS gives developers a 'jump start' on building 
  1343. applications focused on petroleum exploration and 
  1344. production. Other industries will find COMPASS an 
  1345. inexpensive and useful approach for building 
  1346. geographic information systems (GIS) and other 
  1347. applications which can re-use of the cartography 
  1348. (mapmaking) and geometric objects defined in the 
  1349. model. 
  1350.   
  1351. POSC is a not-for profit organization created to 
  1352. lower the costs associated with accessing and 
  1353. integrating exploration and production data for the 
  1354. oil and gas industry. 
  1355.   
  1356. System Environment 
  1357.   
  1358. Hardware       Operating    Memory      Disk Space 
  1359. platform       System       (minimum)   (minimum)* 
  1360.   
  1361. HP 9000 S700   HP-UX 8.07   32MB        10MB + 
  1362. S800           or later                 necessary 
  1363.                                         swap space 
  1364.   
  1365. Sun            Solaris 1.0  32MB        10MB + 
  1366.                (SunOS 4.3);             necessary 
  1367.                Solaris 2.0              swap space 
  1368.                (SunOS 5.2) 
  1369.   
  1370. IBM RS/6000    AIX 3.2.5    32MB        10MB + 
  1371.                                         necessary 
  1372.                                         swap space 
  1373.   
  1374. X Terminal                  6MB         none 
  1375.   
  1376. IBM PC         DOS 5.0,     4MB         1MB 
  1377. compatible     MS-Windows 
  1378.                3.1 or later 
  1379. Table 1:  Odapter Client Environments 
  1380.   
  1381. * Swap space needed will depend on the complexity 
  1382. of the application and the number of concurrent 
  1383. users. Swap space will significantly increase the 
  1384. necessary disc space. 
  1385.   
  1386. Hardware       Operating    Memory      Disk Space 
  1387. platform       System       (minimum)   (minimum)* 
  1388.   
  1389. HP 9000 S700   HP-UX 9.0    64MB        15MB + 
  1390. S800           or later                 necessary 
  1391.                                         swap space 
  1392. Table 2:  Odapter Server Environment 
  1393.   
  1394. * Additional memory may be required. Swap space 
  1395. will significantly increase the necessary disc 
  1396. space. The amount of memory and swap space depends 
  1397. on the complexity of the application and the number 
  1398. of concurrent users. 
  1399.   
  1400. Odapter Software Requirements 
  1401.   
  1402. To use Odapter, you will need one of the RDBMSs 
  1403. listed below, TCP/IP transport and ARPA Berkeley 
  1404. Services (for Unix systems), HP LAN Manager or 
  1405. Microsoft LAN Manager (for the PC client) software. 
  1406. To use the Odapter Graphical Browser, you will need 
  1407. X11 X-Window support. 
  1408.   
  1409. Table 3: Relational Databases 
  1410.   
  1411.             Version          Memory      Disk Space 
  1412.                              (minimum)   (minimum) 
  1413.   
  1414. ORACLE7     7.0.13 or later  refer to    refer to 
  1415.             with "procedural Oracle      Oracle 
  1416.             option" (PL/     manuals     manuals 
  1417.             SQL), Pro*C, 
  1418.             SQL*Plus & Oracle 
  1419.             common libraries and 
  1420.             utilities 
  1421.   
  1422. ALLBASE/SQL shipped with     64MB A/SQL  10MB 
  1423.             OpenODB          and Odapter 
  1424.   
  1425. * ALLBASE/SQL is included with the Odapter 
  1426. software. The combination of Odapter and 
  1427. ALLBASE/SQL is known as OpenODB. 
  1428.   
  1429.   
  1430. Ordering Information 
  1431.   
  1432. Software, training, consulting and support can be 
  1433. purchased separately, as well as in bundles. 
  1434. Pricing for the stand-alone software is based on 
  1435. the number of user processes accessing a single 
  1436. database server at the same time. Any number of 
  1437. user licenses can be ordered. You must also order 
  1438. the Odapter Media & Manuals product when ordering 
  1439. the Developer's Bundle or the Concurrent User 
  1440. License. HP standard support options are available 
  1441. for all Odapter license and media products. 
  1442. The OpenODB and Odapter products are sold together. 
  1443. OpenODB is the combination of Odapter and 
  1444. ALLBASE/SQL. You are only limited by the number of 
  1445. concurrent licenses purchased for Odapter. 
  1446.   
  1447. Product Number and Product Description 
  1448.   
  1449. B3767BB  Odapter/OpenODB Concurrent User License 
  1450. Software license only. Must order B3768BA to 
  1451. receive software and manuals. Must specify number 
  1452. of users. 
  1453.   
  1454. B3768BA  Odapter/OpenODB Media and Manuals  Must 
  1455. choose media option. Includes software and one set 
  1456. of manuals. Requires prior or concurrent purchase 
  1457. of software license. 
  1458.   
  1459. B2470BA  Odapter/OpenODB Developer's Bundle 
  1460. Includes 8 user software license, 5 days of on- 
  1461. your-site consulting, one year of on-line support 
  1462. and 2 passes to the Odapter/OpenODB Training Class. 
  1463. Must order B3768BA to receive software and manuals. 
  1464.   
  1465. B3179A  Odapter/OpenODB Evaluator's Bundle 
  1466. Includes a 40 user software license for 3 months, 
  1467. media, documentation, 3 months of on-line support, 
  1468. and 1 pass to the Odapter/OpenODB Training Class. 
  1469.   
  1470. B3184S  Odapter/OpenODB Training Class (5 days) 
  1471.   
  1472. B3185A  Odapter/OpenODB Reference Manuals  Includes 
  1473. the Odapter/OpenODB Reference Manual and the 
  1474. Odapter/OpenODB System Functions Manual. 
  1475.   
  1476. B3186A  Odapter/OpenODB Consulting  Customized 
  1477. consulting in any of the following areas: COMPASS, 
  1478. object-oriented analysis and design, schema design 
  1479. and review, authorization/security design and 
  1480. review, performance tuning, advanced usage, 
  1481. Odapter/OpenODB application development planning 
  1482. and review and implementation of access to legacy 
  1483. data sources. 
  1484.   
  1485. To order these products, please contact your local 
  1486. HP sales representative or one of the offices on 
  1487. the back page of this document. 
  1488.   
  1489. Table 5. Odapter Features 
  1490.   
  1491. OBJECT-ORIENTED FEATURES 
  1492. Aggregates (BAG, LIST, SET, TUPLE) 
  1493. Complex Objects 
  1494. Dynamic Schema Modification 
  1495. Dynamic Typing 
  1496. Encapsulation 
  1497. External Functions 
  1498. Functions (Stored Code or Methods) 
  1499. Late Binding 
  1500. Multiple Inheritance 
  1501. Object Identity (OID) 
  1502. Overloaded Functions 
  1503. Type (Class) Hierarchy 
  1504. User-defined Data Types 
  1505. Versioning Primitives 
  1506.   
  1507. CLASS LIBRARIES 
  1508. C++ 
  1509. EDA-Objects 
  1510. Smalltalk 
  1511. Softbench 
  1512.   
  1513. CLIENT INTERFACES 
  1514. Graphical Browser (GOSQL) 
  1515. Import 
  1516. Interactive OSQL 
  1517. Object Application Call Interfaces (OACI): 
  1518.   C++ 
  1519.   SmallTalk 
  1520.   C-linkable languages  (Ada, COBOL, FORTRAN, 
  1521. Pascal) 
  1522. Smalltalk Class Builder 
  1523. Windows OSQL 
  1524.   
  1525. OSQL STATEMENTS 
  1526. Add/Remove Type To/From Object 
  1527. Add/Remove User 
  1528. Begin/Commit/Rollback Work 
  1529. Call Function 
  1530. Change Owner 
  1531. Change Password 
  1532. Connect/Disconnect 
  1533. Create/Delete Function 
  1534. Create/Delete Index 
  1535. Create/Delete Object 
  1536. Create/Delete Type 
  1537. Create/Delete User/Group 
  1538. Declare/Delete variables 
  1539. Grant/Revoke 
  1540. If/Then/Else, While, For 
  1541. Implement/Modify Function 
  1542. Open/Fetch/Close Cursor 
  1543. Raise Error 
  1544. Security On/Off 
  1545. Savepoint 
  1546. Select 
  1547. Store 
  1548. Update 
  1549.   
  1550. PRIMITIVE DATA TYPES 
  1551. Binary 
  1552. Boolean 
  1553. Character 
  1554. Date 
  1555. Datetime 
  1556. Decimal 
  1557. Floating Point 
  1558. Integer 
  1559. Interval 
  1560. Small Integer 
  1561. Time 
  1562.   
  1563. Sales Offices 
  1564. For more information, call you local sales office 
  1565. listed in your telephone directory or an HP 
  1566. regional office listed below for the location of 
  1567. your nearest sales office. 
  1568.   
  1569. United States: 
  1570. 1-800-637-7740, extension 8521 
  1571.   
  1572. Canada: 
  1573. Hewlett-Packard Ltd. 
  1574. 6877 Goreway Drive 
  1575. Mississauga, Ontario L4V 1M8 
  1576. (416) 678-9430 
  1577.   
  1578. Japan: 
  1579. Yokogawa-Hewlett-Packard Ltd. 
  1580. 15-7, Nishi Shinjuku 4 Chome 
  1581. Shinjuku-ku 
  1582. Tokyo 160, Japan 
  1583. (03) 5371-1351 
  1584.   
  1585. Latin America: 
  1586. Hewlett-Packard 
  1587. Latin American Region 
  1588. Headquarters 
  1589. 5200 Blue Lagoon 
  1590. Suite 950 
  1591. Miami, FL 33126 
  1592. (305) 267-4220 
  1593.   
  1594. Australia New Zealand: 
  1595. Hewlett-Packard Australia Ltd. 
  1596. 31-41 Joseph Street 
  1597. Blackburn, Victoria 3130 
  1598. Australia (A.C.N. 004 394 763) 
  1599. (03) 895 2805 
  1600.   
  1601. Asia Pacific: 
  1602. Hewlett-Packard Asia Ltd. 
  1603. 22/F Bond Centre, West Tower 
  1604. 89 Queensway 
  1605. Central, Hong Kong 
  1606. (852) 848-7777 
  1607.   
  1608. Europe/Africa/Middle East: 
  1609. Hewlett-Packard S.A. 
  1610. 150, Route du Nant-d'Avril 
  1611. CH-1217 Meyrin 2 
  1612. Geneva, Switzerland 
  1613. (22) 780 81 11 
  1614.   
  1615. Technical information in this document is subject 
  1616. to change without notice. 
  1617. All brand and product names appearing herewith are 
  1618. registered trademarks or trademarks of their 
  1619. respective holders. 
  1620.   
  1621. ` Copyright Hewlett-Packard Company 1994.  All 
  1622. rights reserved.  Reproduction , adaptation, or 
  1623. translation without prior written permission is 
  1624. prohibited except as allowed under the copyright 
  1625. law. 
  1626. Printed in USA 7/94 
  1627. 5963-2045E
  1628.  
  1629.  
  1630. For more information, please send a message to 
  1631. odapter@cup.hp.com with the subject of "index" or
  1632. "help".  If you would like to speak with someone
  1633. in person, please leave a voice mail message at
  1634. the Odapter Support, Training and Consulting number,
  1635. (408) 447-5051 and someone will get back to you
  1636. as soon as possible.
  1637.  
  1638.  
  1639. > POET <Persistent Objects and Extended Database Technology>  (BKS Software)
  1640.  
  1641. C++ Language Support
  1642.  
  1643. o    tight semantic integration with C++
  1644. o    any C++ object or structure can be made persistent by adding the 
  1645.      persistent keyword
  1646. o    storing and reading a C++ object does not change its state or behavior
  1647. o    full support for C++ encapsulation, object identity,  inheritance, and 
  1648.      polymorphy
  1649. o    C++ pointers and references are automatically converted to database 
  1650.      references when storing objects
  1651. o    database references are automatically converted to C++ pointers and 
  1652.      references when reading objects
  1653. o    all database definition is done through a small extension to C++ 
  1654.      declaration syntax
  1655.  
  1656. Database Functionality
  1657. navigation, queries, sorting, indexes, single-user operation, multi-user
  1658. operation using client/server architecture, flexible locking for objects
  1659. and sets, nested transactions, watch & notify for objects and sets,
  1660. event handling, database size limited only by hard disk size
  1661.  
  1662. C++ Language Extensions
  1663. persistence, indexes, transient data elements in persistent classes, sets,
  1664. dependent objects
  1665.  
  1666. PTXX-Precompiler
  1667. automatically converts extended C++ class declarations into ANSI 2.0 code,
  1668. registers classes in the class dictionary, provides class versioning
  1669.  
  1670. Predefined C++ Classes
  1671. date, time, strings, and BLOBS (binary large objects)
  1672.  
  1673. Portability
  1674. all platforms are source-code compatible, any POET database may be read by
  1675. any computer full support for heterogeneous networks
  1676.  
  1677. Platforms
  1678. Available for MS-DOS / MS-Windows (Borland C++, Microsoft), 
  1679. OS/2 (Borland C++), Novell, Macintosh MPW, and various Unix 
  1680. systems, including NeXT (NeXTStep) and Sun OS (Sun C++).
  1681.  
  1682. How to Contact Us:
  1683. BKS has offices in Santa Clara, Hamburg, and Berlin.  Silicon 
  1684. River, Limited, is responsible for POET in the United Kingdom.  
  1685.  
  1686. Santa Clara:    (North America, Australia, Asia)
  1687.  
  1688. BKS Software
  1689. 4633 Old Ironsides Drive  Suite 110
  1690. Santa Clara, CA 95054
  1691. Phone:  408 / 748 - 3403
  1692. Fax:    408 / 748 - 9060
  1693.  
  1694. Contact Person: jrobie@netmbx.netmbx.de (Jonathan Robie)
  1695.