a case study csci397c oodbms fall ’99 by william yeo
Post on 21-Dec-2015
218 views
TRANSCRIPT
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