The Object Factory Substrate is an object infrastructure designed to support internally-developed software products at Fannie Mae. The product is decomposed in several layers for reusability. Following is a simple diagram that explains the different layers.

1) Presentation Layer
Used to provide a custom graphical user interface for the layers below. The developer can chose from a set of presentation adaptors, such as WebObjects or Openstep. Then he has to provide the hooks for the GUI components to interact with the ApplicationLayer. All the business logic is encapsulated on the layers below, so the developer concentrates on the graphical aspects and not on the business objects.
2) Application Layer
Contains all the basic actions (methods) that compose an application. The GUI aspect is abstracted so that a custom GUI can be build quickly using the Presentation Layer.
3) Model Object Layer
Will contain all the knowledge about the business objects that will be part of a concrete application. This layer is build using Rational Rose. Then the petal files are transformed into Objective-C classes by using custom made compilers.
4) Persistence Layer
This layer adds custom extentions to the Apple's EOF2.x product. The EOModel files are generated automatically by custom compilers using the petal files produced by Rational Rose.
5) Database Layer
This layer adds database management extentions to the Apple's EOF2.x product.

I spent a lot of time to get up to date with the system which is composed of more than 900 custom made classes. I was able to create half a dozen test applications used to test the functionality and performance of the Substrate. The test apps were based on the Substrate API to test another set of API's. In one case I build two applications having the same functionality but using different API's. The first used only Substrate API's and the second used only EOF2.x API's. This allowed me to compare the performance and memory footprint of Substrate to that of EOF2.x.
During my work at Fannie Mae I helped discover and fix potential problems in the Object Factory Substrate product.


Last modified October 31, 2000