XXI. Object-Oriented Database Design



Similar documents
Object Oriented Databases (OODBs) Relational and OO data models. Advantages and Disadvantages of OO as compared with relational

Object-Oriented Databases Course Review

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Overview RDBMS-ORDBMS- OODBMS

Complex Data and Object-Oriented. Databases

Overview of CORBA 11.1 I NTRODUCTION TO CORBA Object services 11.5 New features in CORBA Summary

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

Infrastructure that supports (distributed) componentbased application development

Architecture of the CORBA Component Model CORBA 3.0

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

System types. Distributed systems

Automatic generation of fully-executable code from the Domain tier of UML diagrams

Object Database Management Systems (ODBMSs)

Introduction to Object-Oriented and Object-Relational Database Systems

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

The ObjectStore Database System. Charles Lamb Gordon Landis Jack Orenstein Dan Weinreb Slides based on those by Clint Morgan

Distributed Objects and Components

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

How To Design Software

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Middleware Lou Somers

Web Services. Copyright 2011 Srdjan Komazec

Distributed Systems Architectures

Object-persistence formats. Files. Object-oriented databases. Data management layer design. Relational databases. Relational Database Example.

Implementing Java Distributed Objects with JDBC

Object Oriented Database Management System for Decision Support System.

Event-based middleware services

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

Java Project Management: Agenda

Java Project Management. Java Project Management: Agenda. Extreme Java G

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

Object-Oriented Databases

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

Object-Oriented Modeling and Design

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Object oriented design process

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

Distributed Network Management Using SNMP, Java, WWW and CORBA

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy

OBJECTS AND DATABASES. CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Java Application Developer Certificate Program Competencies

What is Data Virtualization?

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

The Design of a Robust Persistence Layer For Relational Databases

Object Oriented Design with UML and Java. PART XVIII: Database Technology

Software Engineering

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Chapter 1 Fundamentals of Java Programming

Chapter 2: Enterprise Applications from a Middleware Perspective

Modern Databases. Database Systems Lecture 18 Natasha Alechina

The Online Grade Book A Case Study in Learning about Object-Oriented Database Technology

PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS

Design by Contract beyond class modelling

Elements of Advanced Java Programming

Object Relational Database Mapping. Alex Boughton Spring 2011

2. Background on Data Management. Aspects of Data Management and an Overview of Solutions used in Engineering Applications

Monitoring HP OO 10. Overview. Available Tools. HP OO Community Guides

Chapter 7, System Design Architecture Organization. Construction. Software

Programming in C# with Microsoft Visual Studio 2010

DISTRIBUTED AND PARALLELL DATABASE

Object Database Tutorial

Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems

B. WEB APPLICATION ARCHITECTURE MODELS

Introduction to Distributed Computing using CORBA

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

The Synergy Between the Object Database, Graph Database, Cloud Computing and NoSQL Paradigms

Web Development Frameworks

Chapter 1 The Systems Development Environment

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

Interface Definition Language

5.5 Copyright 2011 Pearson Education, Inc. publishing as Prentice Hall. Figure 5-2

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

Object-Oriented Middleware for Distributed Systems

Database System Architecture & System Catalog Instructor: Mourad Benchikh Text Books: Elmasri & Navathe Chap. 17 Silberschatz & Korth Chap.

High-level Design. What is software architecture?

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Client/Server Computing Distributed Processing, Client/Server, and Clusters

1 File Processing Systems

System Architectures for Integrating Web-Based User Interfaces into (Legacy) Database Applications

Introduction to Database Systems

Service Oriented Architectures

Object-oriented design methodologies

n Assignment 4 n Due Thursday 2/19 n Business paper draft n Due Tuesday 2/24 n Database Assignment 2 posted n Due Thursday 2/26

Server-Side Scripting and Web Development. By Susan L. Miertschin

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

Transcription:

XXI. Object-Oriented Database Design Object-Oriented Database Management Systems (OODBMS) Distributed Information Systems and CORBA Designing Data Management Classes The Persistent Object Approach The Database Broker Approach OO Database Design 1 OODBMS Object-Oriented DBMS (OODBMS) are DBMS which are based on an Object-Oriented Data Model. Such data models are often inspired by OO programming languages, such as SmallTalk or C++. OODBMS are capable of storing complex objects, I.e., objects that are composed of other objects, and/or multi-valued attributes. The great advantage of OODBMS is that it is not necessary to transform the UML classes into a logical schema (e.g., relational). Their main disadvantage is that their technology is immature and they are only used in niche applications, such as CAD. OO Database Design 2

OODBMS vs RDBMS RDBMS have been around for more than 20 years, OODBMS are relatively new. RDBMS can handle >10 10 records, OODBMS up to 10 7. OODBM good for storing complex descriptions (e.g., a plant schematic), RDMSs appropriate for simple, flat data. RDBMS control the DB market (>90%), OODBMS own <5% of the market. Most commercial RDBMS come with an Object-Relational extension which implements an object database on top of a RDBMS. OO Database Design 3 Object Database Standard Object Data Management Group has set a standard for Object Databases (version 3.0). ODL - Object Definition Language OML - Object Manipulation Language However, individual ODBMS do not necessarily conform to the standard ( usual story ) OO Database Design 4

ObjectStore PSE: An OODBMS ObjectStore PSE (Persistent Storage Engine): provides persistence for Java programs; builds navigational structure into the database; requires all persistent objects to be instances of subclasses of COM.odi.Persistent; ObjectStore provides full OODBMS functionality. OO Database Design 5 Distributed Information Systems Most information systems are distributed. This means that the objects that participate in a particular use case need not be on the same machine with other objects and users they are supposed to interact. One can use Remote Procedure Calls-RPC (C/C++) and Remote Method Invocation-RMI (Java). The object-oriented industrial standard for distributed objects is CORBA (Common Object Request Broker Architecture) OO Database Design 6

CORBA CORBA separates the interface of a class from its implementation. The implementation runs on one machine, the interface can be compiled on several other machines. When accessed by a client program, an object is treated as though it is in memory on the client machine; however, the object may actually be located on another machine. When the client program sends an object a message to invoke one of its operations, the message and parameters are converted into a format that can be sent over the network (marshalling) At the other end, the server unmarshals the data back into a message with arguments, and passes these o n to the implementation of the target object. CORBA achieves this by means of programs known as ORBs (Object Request Brokers) that run on each machine. The ORBs communicate with each other by means of an Inter-ORB Protocol (IOP). Over the Internet, the protocol used is IIOP (Internet IOP). OO Database Design 7 Designing Data Management Classes Idea is to not use a DBMS (Relational or Object-Oriented.) Instead,design data management classes which handle persistence, caching, etc. These classes decouple applications from their persistent storage. Use data management classes whenever you need to: Store an application object persistently; Search for or retrieve stored objects; Interface with an external database. This solution won t work for large data sets! OO Database Design 8

Data Storage Layer Options for locating the operations that handle the tasks of storing and retrieving objects: All persistent objects in the system could inherit methods for storage from an abstract superclass - PersistentObject Introduce separate classes into the system whose role is to deal with the storage and retrieval of other classes (Database broker approach) OO Database Design 9 PersistentObject Superclass Approach A superclass PersistentObject encapsulates the mechanisms for an object of any class to store itself in, or retrieve itself from a database. This superclass implements operations to get an object by object identifier, store, delete and update objects and to iterate through a set of objects (write and read operations). OO Database Design 10

PersistentObject OO Database Design 11 Database Broker Approach Each persistent class could be responsible for its own storage......but... highly coupled (to storage mechanism); lessens class cohesion; class must now have expert knowledge of storage tasks; these are unrelated to application tasks. Solution: indirection (add a go-between). Separates the business objects from their data storage implementation. The classes that provide the data storage services will be held in a separate package. For each business class that needs to be persistent, there will be an associated database broker class. OO Database Design 12

The Broker Class The broker class provides the mechanisms to materialize objects from the database and dematerialize them back to the database OO Database Design 13 The Database Broker The database broker object is responsible for: materialising objects, dematerialising objects, caching objects. Application classes are insulated from storage. Allows migration of storage sub-systems, e.g., implement storage sub-system on an existing relational system. Replace this with OODBMS. Application programs unaffected by change. OO Database Design 14

Caching Objects Objects can be cached for efficiency. The cache is a collection maintained by the database broker. When an object is requested, the cache is searched first. If the object sought is not in the cache it is materialised by the database broker from the database. OO Database Design 15 Transaction Management To manage transactions, we need to keep track of all changes made by a transaction, in case the transaction is aborted before it completes execution (and commits all its changes.) Multiple caches can be used for transaction management: new clean cache: newly created objects new dirty cache: newly created objects that have been amended new delete objects: newly created objects that have been deleted old clean cache: objects retrieved from the database old dirty cache: retrieved objects that have been ammended old delete objects: retrieved objects that have been deleted OO Database Design 16

Collections In systems where collection classes are used in design, these may be replaced by database broker objects. Database objects provide collection-like services for large volumes of data (more than you would maintain in a collection class in memory). OO Database Design 17 Additional Reading Rumbaugh et al. Object-Oriented Modeling and Design. Prentice- Hall, 1991; Chapter 17 - Relational Databases Larman, Applying UML and Patterns. Prentice-Hall, 1998. Chapter 38 - Frameworks, Patterns and Persistence Coad, Object Models - Strategies, Patterns and Applications. Prentice-Hall, 1997; Appendix C - Data Management OO Database Design 18