Enterprise Object Framework

Download Report

Transcript Enterprise Object Framework

Enterprise Object
Framework
What is EOF?
Enterprise Objects Framework is a set of tools
and resources that help you create applications
that work with the most popular relational
databases—or with your own custom data store.
…Enterprise Objects Framework lets you design
object-oriented database applications that are
easy to build and maintain and that draw upon
standard user interface features.
[EOF Developer’s Guide.pdf]
Problems Addressed
SQL + Object Oriented Paradigm
Reusability
Maintainability
Scalability
Interactivity
Portability
Transaction Support
Business Logic
Implementation in 4GL





Limited reuse
Not maintainable
Different implementations
Poor data integrity
Doesn’t scale well
Implementation in DB



Limited interactivity
No back-end portability
SQL is a poor development language
..or Enterprise Object Framework
Provides:





Encapsulation
Reuse
A more natural model of the real world.
Database-to-object mapping
Object-to-interface mapping
What is an Enterprise Object?
Properties that map to stored or persistent
data.
Knows how to interact with WebObjects to
give and receive values for its properties.
Contains business logic for an application.
Provides an access layer for an
application that resides just above the
database.
From Database to Object
Correspondence
between database
tables and
enterprise object
classes .
Database rows
map to instances
of the appropriate
class.
Flexibility
Objects can map to tables, subsets of
tables, or across tables.
Object properties can map to one column,
or to a derived column.
Object inheritance hierarchy can be
mapped to one or more database tables.
to-one and to-many relations provided.
Relations
To-one
To-many
Uniquing
Ensures that the mapping of each
enterprise object to row in a database
table is one-to-one.
Limits memory usage.
Ensures data integrity.
Uniquing Example
Relationships and Faulting
Resolution of
relationships during
fetching
Faults as stand-ins
Tuning relationship
resolution


Pre-fetching
Batch faulting
From Objects to Database
Validation
Referential integrity enforcement


To-one: Mandatory vs. Optional
Delete: cascading vs. nullify vs. deny
Automatic primary and foreign key
generation
Transaction management
Locking

Pessimistic, optimistic, on-demand
From Objects to Interface
Changes made from the interface by the
user are automatically synchronized with
the enterprise objects.
Changes made to the enterprise objects
automatically updates the user interface to
reflect these changes.
Ingredients for an EOF Application
A user interface
A model
Enterprise Objects
EOF’s classes and interfaces
A database server and adapter.
Ingredients (Cont.)
Components involved
Access layer – Fetches rows from the
database and tranforms them into
enterprise objects. Registers the
enterprise objects with the control layer.
Control layer – Manages the graph of
enterprise objects in memory, tracking
changes made to them, and messaging
the access layer to commit changes.
Components (Cont.)
Interface layer – Maps data between the
control layer and the application’s user
interface as designed with an SDK (such
as Java or AppKit from Apple).
WebObjects – Combines the use of an
interface SDK and the interface layer to
present the application with an HTML
interface over the web.
Access Layer
Adapter layer – Classes that connect with
specific databases.
Database layer – Classes that create
enterprise objects from the data source.
Modeling classes – Supplies database
login information and database to object
mappings.
Control Layer
EOObjectStoreCoordinator – manages
interactions with the access layer
EOEditingContext – manages graphs of
enterprise objects and track changes
made.
EOModeler
Application
Automation
Demonstration
References
[1]http://developer.apple.com/techpubs/webobjects/WebObjects_4.5
/System/Documentation/Developer/EnterpriseObjects/DevGuide/EO
FDevGuide.pdf
[2]http://developer.apple.com/techpubs/webobjects/WebObjects_4.5
/System/Documentation/Developer/EnterpriseObjects/EOTools/EOT
oolsAndTech.pdf
[3]http://developer.apple.com/techpubs/webobjects/WebObjectsOver
view/WebObjects_Overview.pdf
[4]http://developer.apple.com/techpubs/webobjects/DiscoveringWO/
webobjectsforhtml.pdf
[5]http://developer.apple.com/techpubs/webobjects/GettingStartedO
nWindows/WOGettingStarted.pdf
All images presented from [1]