Dynamic langauge support for fault implementation in Enterpise Objects Framework
Dynamic langauge support for fault implementation in Enterpise Objects Framework
- Subject: Dynamic langauge support for fault implementation in Enterpise Objects Framework
- From: Erik Buck <email@hidden>
- Date: Mon, 19 May 2008 14:55:06 -0700 (PDT)
One of the coolest examples of dynamic language untility was provided By Apple's Enterpriise Objects Framework (EOF).
Here is a brief quote from http://developer.apple.com/documentation/LegacyTechnologies/WebObjects/WebObjects_4.5/System/Documentation/Developer/EnterpriseObjects/DevGuide/EOFDevGuide.pdf explaining how object relationship fetching from an object<->relational mapping framework was implemented:
Resolution of Relationships and Faulting
When the Framework fetches an object, it creates objects representing
the destinations of the fetched objects relationships. For example, if you
fetch an employee object, you can ask for its manager and immediately
receive an object; you dont have to get the managers employee ID from
the object you just fetched and fetch the manager yourself.
The Framework doesnt immediately fetch data for the destination
objects of relationships, however. Fetching is fairly expensive, and
further, if the Framework fetched objects related to the one explicitly
asked for, it would also have to fetch the objects related to those, and so
on, until all of the interrelated rows in the database had been retrieved.
To avoid this waste of time and resources, the destination objects created
are stand-ins, called
faults
, that fetch their data the first time theyre
accessed. Figure 5 illustrates this process.
The framework allows you to tune relationship resolution by
prefetching
relationships and
batch faulting
. For more information on these features,
see the chapter Answers to Common Design Questions on page 221.
For more information on the general faulting mechanism, see the chapter
Behind the Scenes on page 187.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden