1 / 20

A Case Study

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

vila
Download Presentation

A Case Study

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Outline • Introduction • GemStone Overview • GemStone Data Model • References

  3. Introduction Modern application needs modern architecture.

  4. 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

  5. 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.

  6. 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

  7. Application Partitioning • Applications written in other languages can access GemStone object methods • Done via use of GemBuilder • Maintains relationships and propagates changes

  8. Large-Scale Repository • Can contain over a billion objects • Distributed among many different machines and files • Unique identifier enables location transparency

  9. Queries and Indexes • Indexable objects • Nestable objects • Regular and associative access queries against very large collections

  10. 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

  11. 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.

  12. Security and Account Management • Authentication and authorization part of system security • supports its own authentication protocol, as well as the Kerberos scheme

  13. 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

  14. Basic Storage Formats Class Hierarchy and Definition Methods Persistence GemStone Data Model

  15. Basic Data Formats • Atomic • Named instance variables • Indexable instance variables • Anonymous instance variables

  16. Class Hierarchy & Definition A portion of the class hierarchy.

  17. 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

  18. Methods Consists of 2 parts: • Method signature • Method body e.g. 2 + 8 2 is receiving object + is the method 8 is the argument

  19. Persistence • Is property of objects How do we do that? • Associate an external name • Make “reachable” by a persistent object e.g. Set

  20. 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

More Related