200 likes | 364 Views
A Case Study. CSCI397c OODBMS Fall ’99 by William Yeo. Outline. Introduction GemStone Overview GemStone Data Model References. Introduction. Modern application needs modern architecture. Multi-User Object Server Programmable Object Server
E N D
A Case Study CSCI397c OODBMS Fall ’99 by William Yeo
Outline • Introduction • GemStone Overview • GemStone Data Model • References
Introduction Modern application needs modern architecture.
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 GemStone Overview
Multi-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 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 Partitioning • Applications written in other languages can access GemStone object methods • Done via use of GemBuilder • Maintains relationships and propagates changes
Large-Scale Repository • Can contain over a billion objects • Distributed among many different machines and files • Unique identifier enables location transparency
Queries and Indexes • Indexable objects • Nestable objects • Regular and associative access queries against very large collections
Transactions and Concurrency 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 Data 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 Management • Authentication and authorization part of system security • supports its own authentication protocol, as well as the Kerberos scheme
Management 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
Basic Storage Formats Class Hierarchy and Definition Methods Persistence GemStone Data Model
Basic Data Formats • Atomic • Named instance variables • Indexable instance variables • Anonymous instance variables
Class Hierarchy & Definition A portion of the class hierarchy.
Class Definition Syntax Name_class_receiving subclass: ‘Name-subclass’ instVarNames: ListofInstanceVariables classVars: ListofClassVariables poolDictionaries: ListofCommonVariables inDictionary: DictionaryName constraints: ListofDomainConstraints instancesInvariant: False/True isModifiable: False/True
Methods Consists of 2 parts: • Method signature • Method body e.g. 2 + 8 2 is receiving object + is the method 8 is the argument
Persistence • Is property of objects How do we do that? • Associate an external name • Make “reachable” by a persistent object e.g. Set
References • 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