A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Preview:

Citation preview

A Case StudyA Case Study

CSCI397c OODBMS Fall ’99

by William Yeo

OutlineOutline

IntroductionGemStone OverviewGemStone Data ModelReferences

IntroductionIntroduction

Modern application needs modern architecture.

GemStone OverviewGemStone Overview

Multi-User Object Server Programmable Object

Server Partitioning of

Applications Between Client and Server

Large-Scale Repository Queries and Indexes

Transactions and Concurrency Control

Connections to Outside Data Sources

Object Security and Account Management

Services to Manage the GemStone Repository

Multi-User Object ServerMulti-User Object Server

Supports over 1000 concurrent users, Repositories of up to 100 gigabytes, Transaction rates of over 100 transactions/sec Server processes manage the system User sessions support individual user activities Distributed repository and server processes Shared memory fully leveraged.

Programmable Object ServerProgrammable Object Server

Data definition, manipulation, & query in GemStone Smalltalk

Classes, operators, & control structures comparable to C, C++, or Pascal

Transaction control, user authorization, etc accessible from GemStone Smalltalk.

Built-in multi-user concurrency and repository management services

Application PartitioningApplication Partitioning

Applications written in other languages can access GemStone object methods

Done via use of GemBuilderMaintains relationships and propagates

changes

Large-Scale RepositoryLarge-Scale Repository

Can contain over a billion objects Distributed among many different machines

and files Unique identifier enables location

transparency

Queries and IndexesQueries and Indexes

Indexable objectsNestable objectsRegular and associative access queries

against very large collections

Transactions and Transactions and Concurrency ControlsConcurrency Controls

Session defines and maintains a consistent working environment

Presents user with a consistent view of the object User changes are kept private Visible to all only when committed Effects of multiple updates minimized Checks for consistency with other users’ changes

before committing the transaction

Connections to Outside Connections to Outside Data SourcesData Sources

Provides a way to attach external code, called userActions, to a GemStone session

Developer can access or generate external information and bring it into GemStone as objects

Objects can then be committed and made available to other users.

Security and Account Security and Account ManagementManagement

Authentication and authorization part of system security

supports its own authentication protocol, as well as the Kerberos scheme

Management ServicesManagement Services

Flexible backup and restore Hardware and network failure recovery Object recovery, when needed Object server tuning Accommodate the addition of new machines and

processors without recoding the system Controlled changes to the definition of the

business and application objects in the system

GemStone Data ModelGemStone Data Model

Basic Storage Formats Class Hierarchy and Definition Methods Persistence

Basic Data FormatsBasic Data Formats

AtomicNamed instance variablesIndexable instance variablesAnonymous instance variables

Class Hierarchy & DefinitionClass Hierarchy & Definition

A portion of the class hierarchy.

A sso c ia tion B a h v io ur B o o le an

O b je ct

Class Definition SyntaxClass Definition Syntax

Name_class_receiving subclass: ‘Name-subclass’instVarNames: ListofInstanceVariablesclassVars: ListofClassVariablespoolDictionaries: ListofCommonVariablesinDictionary: DictionaryNameconstraints: ListofDomainConstraintsinstancesInvariant: False/TrueisModifiable: False/True

MethodsMethods

Consists of 2 parts:Method signatureMethod body

e.g. 2 + 8

2 is receiving object

+ is the method

8 is the argument

PersistencePersistence

Is property of objects

How do we do that?Associate an external nameMake “reachable” by a persistent object

e.g. Set

ReferencesReferences

GemStone Programming Guide Version 5.0 GemStone – The Power to Develop and Deploy

Enterprise Applications in Java The GemStone Data Model, Object-Oriented Data

Models www.gemstone.com The Most Secure, Integrated Business-to-Business

Application Platform, GemStone/J3.0 DataSheet