a case study csci397c oodbms fall ’99 by william yeo

20
A Case Study A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Post on 21-Dec-2015

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

A Case StudyA Case Study

CSCI397c OODBMS Fall ’99

by William Yeo

Page 2: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

OutlineOutline

IntroductionGemStone OverviewGemStone Data ModelReferences

Page 3: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

IntroductionIntroduction

Modern application needs modern architecture.

Page 4: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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

Page 5: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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.

Page 6: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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

Page 7: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Application PartitioningApplication Partitioning

Applications written in other languages can access GemStone object methods

Done via use of GemBuilderMaintains relationships and propagates

changes

Page 8: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Large-Scale RepositoryLarge-Scale Repository

Can contain over a billion objects Distributed among many different machines

and files Unique identifier enables location

transparency

Page 9: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Queries and IndexesQueries and Indexes

Indexable objectsNestable objectsRegular and associative access queries

against very large collections

Page 10: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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

Page 11: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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.

Page 12: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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

Page 13: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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

Page 14: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

GemStone Data ModelGemStone Data Model

Basic Storage Formats Class Hierarchy and Definition Methods Persistence

Page 15: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Basic Data FormatsBasic Data Formats

AtomicNamed instance variablesIndexable instance variablesAnonymous instance variables

Page 16: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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

Page 17: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

Class Definition SyntaxClass Definition Syntax

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

Page 18: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

MethodsMethods

Consists of 2 parts:Method signatureMethod body

e.g. 2 + 8

2 is receiving object

+ is the method

8 is the argument

Page 19: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

PersistencePersistence

Is property of objects

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

e.g. Set

Page 20: A Case Study CSCI397c OODBMS Fall ’99 by William Yeo

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