Title: Persistent State Service 2.0 orbos981201 Revised Joint Submission Objectivity Inc. Secant Technologi
1Persistent State Service 2.0orbos/98-12-01Revis
ed Joint SubmissionObjectivity Inc.Secant
Technologies Inc.Sun Microsystems Inc.with
collaboration and support fromArdent Software
Inc.Inline Software Inc.Novell Inc. Object
Design Inc.Poet Software Inc.Rösch
ConsultingVersant CorporationWindward Solutions
Inc. EditorsDr. Jeff Eastman
(jeff_at_windwardsolutions.com)Dr. Robert
Hirschfeld (hirschfeld_at_windwardsolutions.com)
2High Energy Submission Physics
IDL
fusion
fission
fission
heat
heat
3What Has Changed?
- Richer semantics
- sessions and session pooling
- explicit transactions support
- non-transactional access mode
- application (component) integration models
- Definition via valuetypes is now required
- for better or for worse...
- Converged terminology with Iona et.al.
- whats in a name?
4What Has Not Changed?
- Application-centric scope
- Transparent persistence transactions
- OTS transaction support
- Persistent storage component
- No changes to IDL
- No changes to existing CORBA services
5Comparison of the Alternatives
Iona X - X - X not precluded explicit/implicit
X X X 2 - X
Scope CORBA servants All application
objects Definition IDL valuetypes SDL
storagetypes Access Accessor methods Transparent
access Transactions Implicit/explicit Non-transact
ional Local transactions OTS transactions Servant
Locators Public Keys Sessions
Us X X X - X X implicitexplicit X X X 2 - X
Inprise X - - X X precluded implicit X X X - X
-
6What are the Differentiators?
- Everybody now agrees on
- implicit transactions
- data store component
- language independent definition
- There are still some differences
- scope of persistent state service
- exactly how to define abstract state
- transparent persistence support
- application integration mechanisms
- compliance points
7Scope of PSS
- Application objects and their associated state
- persistent CORBA objects
- non-CORBA persistent objects too
Is this important?
8Defining Abstract State
- IDL valuetypes
- typed members operations
- SDL (an IDL superset) storagetypes
- typed members
- keys
- ODL (another IDL superset) classes
- typed members operations
- richer collections and literals
- referential-integrity relationships
- keys and extents
9Accessing Object State
- accessor methods getters and setters
- easiest to implement
- awkward to use
- slower performance
- direct field access transparent persistence
- the way we program
- requires some magic (i.e. advanced technology)
- any object can be persistent
- existing libraries and applications (e.g. JDK)
Is this important?
10Compliance Points
- Two dimensions of complexity in PSS
- non-transactional vs. OTS transactions
- accessor methods vs. public members
11Service Model
- Incarnations are projections of persistent
objects - native programming language objects
- one incarnation per persistent object per
transaction - Persistent objects may be defined in many ways
- valuetype declarations
- programming languages
- other definition languages
- vendor-specific tools
- Servant-application-incarnationmapping is the
domain of PSS - Application-centric
12Application Integration
- Inheritance and delegation mechanisms
- for servants applications
- for applications incarnations
13The tie-tie Integration
- Servant code is tied to the application object
- The application object is tied to its incarnation
14Application-tie-Incarnation
- Navigation requires the tie to be bi-directional
- twice the number of objects
- four times the number of methods to communicate
- much more complexity
- State access requiresaccessor methods
15The tie-is Integration
- Servant tied to application
- Application is its own incarnation
16Application-is-Incarnation
- State fields refer directly to target objects
- simpler, faster, less expensive
- Integration via generated base class
- State access may be via accessor methods or via
transparent, direct field access
Is this important?
17Data Store Interfaces
- Factory Registry
- incarnation factory management
- Session Factory Registry
- session creation pooling
- Servant Locator Factory
- servant locators
- Incarnation Manager
- finding incarnations
- Instance Registry
- persistent roots
18Session Management
- Session factories hold open() parameters
- manage pools of identical sessions
- Sessions project state in a subset of data access
contexts (aka transactions) - XA, JTA compatibility
19Compare the Alternatives
Iona X - X - X not precluded explicit/implicit
X X X 2 - X
Scope CORBA servants All application
objects Definition IDL valuetypes SDL
storagetypes Access Accessor methods Transparent
access Transactions Implicit/explicit Non-transact
ional Local transactions OTS transactions Servant
Locators Public Keys Sessions
Us X X X - X X implicitexplicit X X X 2 - X
Inprise X - - X X precluded implicit X X X - X
-
20The Differences Matter
- Broadest scope of persistent state submissions
- solve the whole problem
- Richest application integration model
- balance flexibility with performance
- Transparent persistence support
- the technology exists to support it now
- let the market decide
For any complex problem, there is always a
solution that is simple, elegant, and wrong