320 likes | 522 Views
Lecture 14. Object oriented databases. Objectives. Main features of ODMG Object Standard: Object model Object Definition Language (ODL) Object Query Language (OQL) Language bindings. Main features of ObjectStore: Architecture Data Definition Data Manipulation.
E N D
Lecture 14 Object oriented databases
Objectives • Main features of ODMG Object Standard: • Object model • Object Definition Language (ODL) • Object Query Language (OQL) • Language bindings. • Main features of ObjectStore: • Architecture • Data Definition • Data Manipulation.
Object Management Group (OMG) • International non profit-making consortium founded in 1989 to address object standards. • Several hundred member organizations including many platform and major software vendors. • Primary aims of OMG are: • Promotion of object-oriented approach. • Development of standards in which location, environment, language, and other characteristics of objects are transparent. • Not recognized standards group but aims to develop de facto standards.
Object Management Architecture Four areas identified for reference model: Object Model (OM) - Design-portable abstract model for communicating with OMG-compliant object-oriented systems. Object Request Broker (ORB) - Handle distribution of messages between application objects in a highly interoperable manner. Like distributed ‘software bus’ enabling objects to make/receive requests/responses from a provider.
Object Management Architecture Object Services - Provide main functions for realizing basic object functionality. Many of these services are database-oriented. Common Facilities - Comprise a set of tasks that many applications must perform but are traditionally duplicated within each one.
Common Object Request Broker Architecture (CORBA) • Defines architecture of ORB-based environments. • Basis of any OMG component, defining parts that form ORB and associated structures. • Some elements of CORBA are: • Interface Definition Language (IDL). • Type model. • Interface Repository. • Methods for getting interfaces/specifications of objects. • Provides static and dynamic mechanism for clients to issue request to objects.
Other OMG Specifications • UML provides common language for describing software models. • Meta-Object Facility (MOF), defines common, abstract language for specification of metamodels. • XML Metadata Interchange (XMI) maps MOF to XML. XMI defines how XML tags are used to represent MOF-compliant models in XML. • Common Warehouse Metamodel (CWM) defines metamodel representing both business and technical metadata commonly found in data warehousing and business intelligence domains.
Model-Driven Architecture (MDA) • OMG hoped OMA would be common OO middleware standard. However: • Microsoft produced DCOM (Distributed Common Object Model), • Sun developed Java, which came with its own ORB, Remote Method Invocation (RMI), • another set of middleware standards emerged with XML and SOAP (Simple Object Access Protocol). • Also e-Business increased pressure on companies to integrate their corporate databases. Enterprise Application Integration (EAI) is one of current key challenges for companies and, rather than helping, middleware may be part of problem.
Model-Driven Architecture (MDA) • MDA is an approach to system specification and interoperability building upon 4 specifications discussed above. • Based on premise that systems should be specified independent of all hardware and software details. • Thus, while software and hardware may change over time, the specification will still be applicable. • MDA addresses complete system lifecycle from analysis and design to implementation, testing, component assembly, and deployment.
Model-Driven Architecture (MDA) • To create an MDA-based application, a Platform Independent Model (PIM) is produced that represents only business functionality and behavior. • PIM can then be mapped to one or more Platform Specific Models (PSMs) to target platforms like CORBA Component Model (CCM), Enterprise JavaBeans (EJB), or Microsoft Transaction Server (MTS). • Both the PIM and the PSM are expressed using the UML. • MDA covers full range of pervasive services already specified by OMG, such as Persistence, Transactions, and Security.
Object Data Management Group • Major components of ODMG architecture for an OODBMS are: • Object Model (OM). • Object Definition Language (ODL). • Object Query Language (OQL). • C++, Smalltalk, and Java Language Binding.
ODMG OM - Basic Modeling Primitives • Basic modeling primitives are object/literal. • Only an object has a unique identifier. • Objects/literals can be categorized into types. • All objects of given type exhibit common behavior and state. A type is itself an object. • Behavior defined by set of operations that can be performed on or by object. • State defined by values objects carry for a set of properties.
ODMG OM - Basic Modeling Primitives • Property may be either an attribute of object or relationship between object and one or more other objects. • ODMS stores objects, enabling them to be shared by multiple users and applications. • ODMS based on a schema defined in ODL.
ODMG Object Model - Objects • Object types decomposed as atomic, collections, or structured types. • Structured types as defined in ISO SQL standard. • Objects created using new() of corresponding factory interface provided by language binding. • Each object has a unique identity, the object identifier, which does not change and is not reused when the object is deleted. • May be given one or more names by user.
ODMG OM - OIDs and Object Names • Each object is given a unique identity by ODMS, the object identifier, which does not change and is not reused when object is deleted. • Object may also be given one or more names that are meaningful to the user, provided each name identifies a single object within a database. • Object names act as “root” objects that provide entry points into the database.
ODMG Object Model - Objects • Lifetime of an object is orthogonal to its type (persistence is independent of type). • Lifetime specified when object is created: • Transient: object’s memory allocated and deallocated by programming language’s runtime system. • Persistent: object’s storage managed by OODBMS.
ODMG Object Model - Literals • A constant, with possibly complex structure. • Literal types decomposed as atomic, collections, structured, or null. • Values of a literal’s properties may not change. • Do not have their own identifiers and cannot stand alone as objects. • Embedded in objects and cannot be individually referenced. • Structured literals contain fixed number of named heterogeneous elements.
ODMG Object Model - Built-in Collections • Contains arbitrary number of unnamed homogeneous elements; each can be instance of atomic type, another collection, or a literal type. • Only collection objects have identity. • Use iterator to iterate over collection. • Ordered and unordered collections: • ordered: traversed first to last, or vice versa; • unordered: no fixed order of iteration.
ODMG Object Model – Built-in Collections Set: unordered collections without duplicates. Bag: unordered collections that do allow duplicates. List: ordered collections that allow duplicates. Array: 1D array of dynamically varying length. Dictionary: unordered sequence of key-value pairs with no duplicate keys.
ODMG Object Model – Atomic Objects • Any user-defined object that is not a collection object is called an atomic object. • Atomic objects are represented as a class, which comprises state and behavior. • State represented by set of properties (attribute or relationship). • Attribute is not a “first class” object (i.e. not an object and so no OID). • Atomic objects can be related in a supertype/subtype lattice.
ODMG Object Model - Relationships • Only binary relationships supported. • Traversal paths are defined for each direction of traversal. class Branch { relationship set <Staff>Has inverse Staff::WorksAt} class Staff { relationship Branch WorksAt inverse Branch::Has}
ODMG Object Model - Types, Classes, Interfaces, and Inheritance • Two ways to specify types: interfaces and classes. • Interfaceis a specification that defines only abstract behavior of an object type, using operation signatures. • Behavior inheritance allows interfaces to be inherited by other interfaces/classes (but properties cannot be inherited from the interface). • Interface also noninstantiable – cannot create objects from an interface • Normally, interfaces used to specify abstract operations that can be inherited by classes or by other interfaces.
ODMG Object Model - Types, Classes, Interfaces, and Inheritance • Class defines both the abstract state and behavior of an object type, and is instantiable. • Thus, interface is an abstract concept and class an implementation concept. • Can specify single inheritance between classes using extends keyword. • Multiple inheritance not allowed using extends but is allowed using behavior inheritance.
ODMG Object Model - Types and Classes • Class definition specifies its extent and its keys: Extents - set of all instances of given type. May request ODMS maintain index to members of this set. Keys - uniquely identifies the instances of a type (similar to the concept of a candidate key).
ODMG Object Model • Object model also specifies: • Exceptions. • Metadata. • Transactions. • Databases. • Modules.