Top Banner
Object_Oriented Databases , by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Dr. Awad Khalil Computer Science Department Computer Science Department AUC AUC
36

Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Dec 31, 2015

Download

Documents

Byron Anthony
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

1

Object-Oriented DBMSs

Dr. Awad KhalilDr. Awad Khalil

Computer Science DepartmentComputer Science Department

AUCAUC

Page 2: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

2

Content

Object-Oriented Data ModelsObject-Oriented Data Models OODBMS DefinitionOODBMS Definition Alternative Approaches for Developing an OODBMSAlternative Approaches for Developing an OODBMS OODBMS PerspectivesOODBMS Perspectives

Page 3: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

3

Object-Oriented Data Models Object-Orientation Data Model (OODM) – A (logical) data – A (logical) data

model that captures the semantics of objects supported in object-model that captures the semantics of objects supported in object-oriented programming.oriented programming.

Object-Oriented DataBase (OODB) – A persistent and – A persistent and sharable collection of objects defined by an OODM.sharable collection of objects defined by an OODM.

Object-Oriented DBMS (OODBMS) – The manager of an – The manager of an OODB.OODB.

Page 4: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

4

OODBMS - Definitions

Zdnick and Maier (1990) It must provide database It must provide database

functionality;functionality; It must support object identity;It must support object identity; It must provide encapsulation;It must provide encapsulation; It must support objects with It must support objects with

complex with complex state.complex with complex state.

Koshafian and Abnous (1990) (1) object-orientation = abstract data (1) object-orientation = abstract data

types + inheritance + object identity;types + inheritance + object identity; (2) OODBMS = object-orientation + (2) OODBMS = object-orientation +

database capabilities.database capabilities.

Parsaye et al (1989) (1) high-level query language with query (1) high-level query language with query

optimization capabilities in the optimization capabilities in the underlying system;underlying system;

(2) support for persistency, atomic (2) support for persistency, atomic transactions, and concurrency and transactions, and concurrency and recovery control;recovery control;

(3) support for complex object storage, (3) support for complex object storage, indexes, and access methods for fast and indexes, and access methods for fast and efficient retrieval;efficient retrieval;

(4) OODBMS = object-oriented system (4) OODBMS = object-oriented system + (1) + (2) + (3).+ (1) + (2) + (3).

Page 5: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

5

Current Commercial OODBMSs

GemStone from GemStone Systems Inc.GemStone from GemStone Systems Inc. Itsaca from IBEX Knowledge Systems SA.Itsaca from IBEX Knowledge Systems SA. Objectivity/DB from Objectivity Inc.Objectivity/DB from Objectivity Inc. ObjectStore from eXcelon Corporation.ObjectStore from eXcelon Corporation. Jasmine from Computer Associate/Fujitsu.Jasmine from Computer Associate/Fujitsu. Versant from Versant Corporation.Versant from Versant Corporation.

Page 6: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

6

Alternatives Strategies for Developing an OODBMS

Extend an existing object-oriented programming language with database capabilities – This is the approach taken by GemStone which extends Smalltalk, – This is the approach taken by GemStone which extends Smalltalk, C++, and Java with database capabilities.C++, and Java with database capabilities.

Provide extensible object-oriented DBMS libraries – rather than extending the – rather than extending the language, class libraries are provided that support persistence, aggregation, data language, class libraries are provided that support persistence, aggregation, data types, transactions, concurrency, security, and so on. (Ontos, Versant, and types, transactions, concurrency, security, and so on. (Ontos, Versant, and ObjectStore).ObjectStore).

Embed object-oriented database language constructs in a conventional host language – this is the approach taken by the product O – this is the approach taken by the product O22, which provides , which provides embedded extensions for the programming language ‘C’.embedded extensions for the programming language ‘C’.

Extend an existing database language with object-oriented capabilities – – SQL vendors are extending it to provide object-oriented constructs. SQLSQL vendors are extending it to provide object-oriented constructs. SQL33 supports supports object-oriented. Also, ODMG specifies a standard for Object SQL (SQLobject-oriented. Also, ODMG specifies a standard for Object SQL (SQL33).).

Develop a novel database data model/data language – This is the approach – This is the approach taken by SIM (Semantic Information Manager), which is based on semantic data taken by SIM (Semantic Information Manager), which is based on semantic data model and has a novel DDL/DDL (Jagannathan model and has a novel DDL/DDL (Jagannathan et alet al., 1988).., 1988).

Page 7: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

7

OODBMS Perspectives

Conventional DBMSs have a two-level storage model: the Conventional DBMSs have a two-level storage model: the application storage model in main memory, and the database application storage model in main memory, and the database model on disk.model on disk.

An OODBMS tries to give the illusion of a single-level storage An OODBMS tries to give the illusion of a single-level storage model, with a similar representation in both memory and in the model, with a similar representation in both memory and in the database stored on the disk.database stored on the disk.

Page 8: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

8

OODBMS Perspectives

Objects, and relationships between objects, are identified by object identifiers Objects, and relationships between objects, are identified by object identifiers (OIDs). There are two types of OID:(OIDs). There are two types of OID: Logical OIDs that are independent of the physical location of the object on Logical OIDs that are independent of the physical location of the object on

the disk.the disk. Physical OIDs that encode the location.Physical OIDs that encode the location.

In the former case, a level of indirection is required to look up the physical In the former case, a level of indirection is required to look up the physical address of the object on disk. address of the object on disk.

In both cases, an OID is different in size from a standard in-memory pointer, In both cases, an OID is different in size from a standard in-memory pointer, which need only be large enough to address all virtual memory.which need only be large enough to address all virtual memory.

To achieve the required performance, an OODBMS must be able to convert To achieve the required performance, an OODBMS must be able to convert OIDs to and from in-memory pointers. This conversion technique has become OIDs to and from in-memory pointers. This conversion technique has become known as known as pointer swizzlingpointer swizzling or or object faulting object faulting and the approaches used to and the approaches used to implement it have become varied ranging from software-based residency implement it have become varied ranging from software-based residency checks to page-faulting schemes used by the underlying hardware.checks to page-faulting schemes used by the underlying hardware.

Pointer Swizzling – the action of converting object identifiers to main – the action of converting object identifiers to main memory pointers, and back again.memory pointers, and back again.

Page 9: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

9

Accessing an ObjectIn conventional DBMS:In conventional DBMS: The DBMS determines the page on secondary storage The DBMS determines the page on secondary storage

that contains the required record using indexes or table that contains the required record using indexes or table scans. The DBMS then reads that page from disk and scans. The DBMS then reads that page from disk and copies it into its cache.copies it into its cache.

The DBMS subsequently transfers the required parts of The DBMS subsequently transfers the required parts of the record from the cache into the application’s memory the record from the cache into the application’s memory space.space.

The application can then update the record’s fields in its The application can then update the record’s fields in its own memory space.own memory space.

The application transfers the modified fields back to the The application transfers the modified fields back to the DBMS cache using SQL.DBMS cache using SQL.

Finally, at an appropriate point the DBMS writes the Finally, at an appropriate point the DBMS writes the updated page of the cache back to disk.updated page of the cache back to disk.

In OODBMS:In OODBMS: The OODBMS determines the page on disk that The OODBMS determines the page on disk that

contains the required object using its OID or an index, contains the required object using its OID or an index, then reads that page from disk and copies it into the then reads that page from disk and copies it into the application’s page cache within its memory space.application’s page cache within its memory space.

The OODBMS may then carry out a number of The OODBMS may then carry out a number of conversions, such as swizzling references (pointers) conversions, such as swizzling references (pointers) between objects.between objects.

The application can then update the object, as required.The application can then update the object, as required. The OODBMS may need to carry out similar The OODBMS may need to carry out similar

conversions, before copying the page back to disk.conversions, before copying the page back to disk.

Page 10: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

10

Issues in OODBMSs

Long-duration transactionsLong-duration transactions

VersionsVersions

Schema evolutionSchema evolution

Page 11: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

11

Transactions

Transactions involving complex objects can continue for several Transactions involving complex objects can continue for several hours, or even several days.hours, or even several days.

To support long-duration transactions we need to use different To support long-duration transactions we need to use different protocols from those used for traditional database applications in protocols from those used for traditional database applications in which transactions are typically of a very short duration.which transactions are typically of a very short duration.

In an OODBMS, the unit of concurrency control and recovery is In an OODBMS, the unit of concurrency control and recovery is logically an object.logically an object.

Locking-based protocols are the most common type of concurrency Locking-based protocols are the most common type of concurrency control mechanism used by OODBMSs.control mechanism used by OODBMSs.

It would be totally unacceptable for a user who initiated a long-It would be totally unacceptable for a user who initiated a long-duration transaction to find that the transaction has been aborted duration transaction to find that the transaction has been aborted owing to lock conflict. Solutions:owing to lock conflict. Solutions: Multiversion concurrency control protocolsMultiversion concurrency control protocols Advanced transaction modelsAdvanced transaction models

Page 12: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

12

Versions

There are many applications that need access to the previous There are many applications that need access to the previous state of an object.state of an object.

version management is the process of maintaining the is the process of maintaining the evolution of objects.evolution of objects.

An An object version represents an identifiable state of an object. represents an identifiable state of an object. A A version history represents the evolution of an object. represents the evolution of an object.

Page 13: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

13

Schema Evolution

Design is an incremental Design is an incremental process and evolves with process and evolves with time. To support this time. To support this process, applications process, applications require considerable require considerable flexibility in dynamically flexibility in dynamically defining and modifying defining and modifying the database schema.the database schema.

For example, it should be For example, it should be possible to modify class possible to modify class definitions, the inheritance definitions, the inheritance structure, and the structure, and the specifications of attributes specifications of attributes and methods without and methods without requiring system requiring system shutdown.shutdown.

Page 14: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

14

Architecture

Many commercial OODBMSs are based on the Many commercial OODBMSs are based on the client-server architecture to provide data to users, applications, and tools in a architecture to provide data to users, applications, and tools in a distributed environment.distributed environment.

We can distinguish three basic structures: We can distinguish three basic structures: Object server, Page server, andand Database server.

Page 15: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

15

Object server

This approach attempts to distribute the processing between the two This approach attempts to distribute the processing between the two components. components.

Typically, the server process is responsible for managing storage, locks, Typically, the server process is responsible for managing storage, locks, commits to disk, logging and recovery, enforcing security and integrity, commits to disk, logging and recovery, enforcing security and integrity, query optimization, and executing stored procedure.query optimization, and executing stored procedure.

The client is responsible for transaction management and interfacing to the The client is responsible for transaction management and interfacing to the programming language.programming language.

This is the best architecture for cooperative, object-to-object processing in an This is the best architecture for cooperative, object-to-object processing in an open, distributed environment.open, distributed environment.

Page 16: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

16

Page server

In this approach, most of the database processing is performed by In this approach, most of the database processing is performed by the client.the client.

The server is responsible for secondary storage and providing The server is responsible for secondary storage and providing pages at the client’s request.pages at the client’s request.

Page 17: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

17

Database server

In this approach, most of the database processing is performed by In this approach, most of the database processing is performed by the server.the server.

The client simply passes requests to the server, receives results, The client simply passes requests to the server, receives results, and passes them on to the application.and passes them on to the application.

This is the approach taken by many RDBMSs.This is the approach taken by many RDBMSs.

Page 18: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

18

Storing and Executing Methods

There are two approaches to handling methods:There are two approaches to handling methods: Store the method in external files. This approach is similar to function Store the method in external files. This approach is similar to function

libraries or Application Programming Interfaces (APIs) found in traditional libraries or Application Programming Interfaces (APIs) found in traditional DBMSs, in which an application program interacts with a DBMS by linking DBMSs, in which an application program interacts with a DBMS by linking in functions supplied by the DBMS vendor.in functions supplied by the DBMS vendor.

Store the methods in the database and are dynamically bound to the Store the methods in the database and are dynamically bound to the application at runtime.application at runtime.

Page 19: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

19

The Object-Oriented Database System Manifesto

Complex objects must be supportedComplex objects must be supported Object identity must be supportedObject identity must be supported Encapsulation must be supportedEncapsulation must be supported Types or classes must be supportedTypes or classes must be supported Types or classes must be able to inherit from their ancestorsTypes or classes must be able to inherit from their ancestors Dynamic binding must be supportedDynamic binding must be supported The DML must be computationally completeThe DML must be computationally complete The set of data types must be extensibleThe set of data types must be extensible Data persistence must be providedData persistence must be provided The DBMS must be capable of managing very large databasesThe DBMS must be capable of managing very large databases The DBMS must support concurrent usersThe DBMS must support concurrent users The DBMS must be capable of recovery from hardware and software failuresThe DBMS must be capable of recovery from hardware and software failures The DBMS must provide a simple way of querying dataThe DBMS must provide a simple way of querying data

Page 20: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

20

Advantages and Disadvantages of OODBMSs

Advantages Enriched modeling capabilities Extensibility Removal of impedance

mismatch More expressive query language Support for schema evolution Support for long-duration

transactions Applicability to advanced

database applications Improved performance

Disadvantages Lack of universal data model Lack of experience Lack of standards Competition Query optimization comprises

encapsulation Locking at object level may

impact performance Complexity Lack of support for views Lack of support for security

Page 21: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

21

Object Data Standard ODMG 3.0, 1999

Several important vendors have formed the Object Data Management Group Several important vendors have formed the Object Data Management Group (ODMG) to define standards for OODBMSs.(ODMG) to define standards for OODBMSs.

The ODMG has produced an Object Model that specifies a standard model for The ODMG has produced an Object Model that specifies a standard model for the semantics of database objects.the semantics of database objects.

The model is important because it determines the built-in semantics that the The model is important because it determines the built-in semantics that the OODBMS understands and can enforce.OODBMS understands and can enforce.

The design of class libraries and applications that use these semantics should The design of class libraries and applications that use these semantics should be portable across various OODBMSs that support the object modelbe portable across various OODBMSs that support the object model

The major components of the ODMG architecture for an OODBMS are:The major components of the ODMG architecture for an OODBMS are: An Object Model;An Object Model; An Object Definition Language (ODL);An Object Definition Language (ODL); An Object Query Language (OQL);An Object Query Language (OQL); C++, Java, and Smalltalk language bindings.C++, Java, and Smalltalk language bindings.

Page 22: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

22

Object Structure (ODMG MODEL) In OO database systems, the values (or states) In OO database systems, the values (or states)

of complex objects may be constructed from of complex objects may be constructed from other objects by using certain type constructors.other objects by using certain type constructors.

  

One way of representing an objects is to view One way of representing an objects is to view each object as a triple each object as a triple (i, c, v), where: where:

  

i : is a unique object identifier (OID).i : is a unique object identifier (OID).  

c : is a constructor (that is, an indication of how c : is a constructor (that is, an indication of how the object value is constructed).the object value is constructed).

  

v : is the object value (or state).v : is the object value (or state).

Page 23: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

23

Object Structure (Cont’d) There are the following types of constructors:There are the following types of constructors:

Basic constructors:Basic constructors: atom, tuple, set. atom, tuple, set. Other constructors:Other constructors: list, array, bag. list, array, bag. The common constructor:The common constructor: domain D, domain D, that that

contains all basic atomic values that are contains all basic atomic values that are directly available in the system. These directly available in the system. These typically include integers, real numbers, typically include integers, real numbers, character strings, Booleans, dates, and any character strings, Booleans, dates, and any other data types that the system supports other data types that the system supports directly.directly.

Page 24: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

24

Object Structure (Cont’d) An object value v is interpreted on the basis of the value of the An object value v is interpreted on the basis of the value of the

constructor c in the triple (i, c, v):constructor c in the triple (i, c, v): If c = atom, then the value v is an atomic value from the If c = atom, then the value v is an atomic value from the

domain D of basic values supported by the system.domain D of basic values supported by the system. If c = set, the value v is a set of object identifiers {iIf c = set, the value v is a set of object identifiers {i11, i, i22, ..., , ...,

iinn}, which are the identifiers (OIDs) for a set of objects that }, which are the identifiers (OIDs) for a set of objects that are typically of the same type.are typically of the same type.

If c = tuple, the value v is a tuple of the form < aIf c = tuple, the value v is a tuple of the form < a11:i:i11, a, a22:i:i22, ..., , ..., aann:i:inn>, where each aj is an attribute name (sometimes called >, where each aj is an attribute name (sometimes called an instance variable name) and each ian instance variable name) and each ijj is an object identifier is an object identifier (OID).(OID).

If c = list, the value v is an ordered list of object identifiers If c = list, the value v is an ordered list of object identifiers [i[i11, i, i22, ..., i, ..., inn] of the same type.] of the same type.

If c = array, the value v is an array of object identifiers.If c = array, the value v is an array of object identifiers.

Page 25: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

25

Object Structure – An Example We assume, for the following examples, that We assume, for the following examples, that

everything is an object, including basic values.everything is an object, including basic values.  

We assume that we have the constructors atom, set, and We assume that we have the constructors atom, set, and tuple.tuple.

  

We use iWe use i11, i, i22, i, i33, ... to stand for unique system-generated , ... to stand for unique system-generated object identifiers.object identifiers.

  

An object is defined by a triple: An object is defined by a triple:

(OID, type constructor, value).(OID, type constructor, value).

Page 26: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

26

Object Structure – An Example

Page 27: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

27

Object Structure – An ExampleConsider the following objects:Consider the following objects:   O11 = (i11, atom, Houston)

  O22 = (i22, atom, Bellaire)

  O33 = (i33, atom, Sugarland)

  O4 4 = (i44, atom, 5)

  O55 = (i55, atom, Research)

  O66 = (i66, atom, 22-MAY-78)

O77 = (i77, set, {i11, i22, i33})

O88 = (i88, tuple, <DNAME:i55, DNUMBER:i44,

MGR:i99, LOCATIONS:i77,

EMPLOYEES:i1010, PROJECTS:i1111>)

O99 = (i99, tuple, <MANAGER:i1212, MANAGERSTARTDATE:i66>)

 

O1010 = (i1010, set, {i1212, i1313, i1414})

  O1111 = (i1111, set, {i1515, i1616, i1717})

Page 28: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

28

Graphical Representation

Page 29: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

29

Object Management Group (OMG)

The OMG is an international non-profit-making industry The OMG is an international non-profit-making industry consortium founded in 1989 to address the issues of object consortium founded in 1989 to address the issues of object standards.standards.

The OMG seeks to define standard object-based facilities for The OMG seeks to define standard object-based facilities for supporting a number of advanced features:supporting a number of advanced features: Concurrent executionConcurrent execution Distributed transactionsDistributed transactions VersioningVersioning Event notificationEvent notification internationalizationinternationalization

Page 30: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

30

Object Management Architecture (OMA)

In 1990, the OMG first published its In 1990, the OMG first published its Object Management Architecture Object Management Architecture (OMA) Guide which specifies a (OMA) Guide which specifies a single terminology for object-single terminology for object-oriented languages, systems, oriented languages, systems, databases, and application databases, and application frameworks; an abstract framework frameworks; an abstract framework for object-oriented systems; a set of for object-oriented systems; a set of technical and architectural goals; and technical and architectural goals; and a reference model for distributed a reference model for distributed applications using object-oriented applications using object-oriented techniques.techniques.

Four areas of standardization were Four areas of standardization were identified for the reference model:identified for the reference model:

The object model (OM);The object model (OM); The Object Request Broker The Object Request Broker

(ORB);(ORB); The Object Services;The Object Services; The common facilities. The common facilities.

Page 31: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

31

The Object Model (OM)

The OM is a design-portable abstract model for communicating The OM is a design-portable abstract model for communicating with OMG-compliant object-oriented systems.with OMG-compliant object-oriented systems.

A requester sends a request for object services to the ORB, which A requester sends a request for object services to the ORB, which keeps track of all objects in the system and the types of service keeps track of all objects in the system and the types of service they can provide.they can provide.

The ORB then forwards the message to a provider who acts on The ORB then forwards the message to a provider who acts on the message and passes a response back to the requester via ORB.the message and passes a response back to the requester via ORB.

Page 32: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

32

The Object Request Broker (ORB)

The ORB handles distribution of messages between application The ORB handles distribution of messages between application objects in a highly interoperable manner.objects in a highly interoperable manner.

The ORB is a distributed ‘The ORB is a distributed ‘software bus’software bus’ that enables objects that enables objects (requesters) to make and receive requests and responses from a (requesters) to make and receive requests and responses from a provider.provider.

Page 33: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

33

The Object Services & The Common Facilities

The Object Services The Object Services provide the main functions provide the main functions for realizing basic object for realizing basic object functionality. Many of functionality. Many of these services are database-these services are database-oriented.oriented.

The Common Facilities The Common Facilities comprise a set of tasks that comprise a set of tasks that many applications must many applications must perform but are perform but are traditionally duplicated traditionally duplicated within each one, such as within each one, such as printing and electronic mail printing and electronic mail facilities.facilities.

Page 34: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

34

The Common Object Request Broker Architecture (CORBA)

The Common Object Request Broker Architecture (CORBA) defines the The Common Object Request Broker Architecture (CORBA) defines the architecture of ORB-based environment.architecture of ORB-based environment.

This architecture is the basis of any OMG component, defining the parts that This architecture is the basis of any OMG component, defining the parts that form the ORB and its associated structuresform the ORB and its associated structures

Using the communication protocol GIOP (General Inter-Object Protocol) or Using the communication protocol GIOP (General Inter-Object Protocol) or IIOP (Internet Inter-Object Protocol), CORBA-based program can interoperate IIOP (Internet Inter-Object Protocol), CORBA-based program can interoperate with another CORBA-based program across a variety of vendors, platforms, with another CORBA-based program across a variety of vendors, platforms, operating systems, programming languages, and networks.operating systems, programming languages, and networks.

Page 35: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

35

Object Data Standard ODMG 3.0, 1999

Several important vendors have formed the Object Data Management Group Several important vendors have formed the Object Data Management Group (ODMG) to define standards for OODBMSs.(ODMG) to define standards for OODBMSs.

The ODMG has produced an Object Model that specifies a standard model for The ODMG has produced an Object Model that specifies a standard model for the semantics of database objects.the semantics of database objects.

The model is important because it determines the built-in semantics that the The model is important because it determines the built-in semantics that the OODBMS understands and can enforce.OODBMS understands and can enforce.

The design of class libraries and applications that use these semantics should The design of class libraries and applications that use these semantics should be portable across various OODBMSs that support the object modelbe portable across various OODBMSs that support the object model

The major components of the ODMG architecture for an OODBMS are:The major components of the ODMG architecture for an OODBMS are: An Object Model;An Object Model; An Object Definition Language (ODL);An Object Definition Language (ODL); An Object Query Language (OQL);An Object Query Language (OQL); C++, Java, and Smalltalk language bindings.C++, Java, and Smalltalk language bindings.

Page 36: Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Object_Oriented Databases, by Dr. Khalil

36

Thank you