FORM
Framework for Object-Relational Mapping

|
FORM is a superior object-relational mapping framework for Java. It supports high-quality object and relational models, integrates easily into large and small applications, and supports a good architecture for those applications.
|
FORM provides sophisticated queries, caching, evolution isolation, database independence, and dynamic configuration. FORM is better because it was designed with the experience, architecture, and innovations to make it better.
|
Better from Experience, Architecture, and Innovation
|
FORM was developed with the experience gained from years of building and using object-relational frameworks for Smalltalk and C++. FORM is a fifth generation design: it cleanly integrates the best features from all this previous work.
|
FORM fits easily into an application's architecture: It has clear responsibilities, provides a flexible interface, and imposes few restrictions on other parts of the application.
|
FORM has an innovative integration of object and relational modeling: It treats the database as truth statements involving objects and can use all the features of predicate logic with the simplicity of object modeling.
|
Supports High-Quality Object Models
|
FORM supports high-quality object models. It provides good representations for object mapping information and it supports using other object-oriented features that help with development.
|
FORM understands identity, state, attributes, associations, and extents. It has good models of all these pieces of information: for example, associations know their partners, update rules, and cardinality.
|
FORM supports using inheritance relationships to configure subclass mappings and to have heterogeneous extents over subclass related objects.
|

Supports High-Quality Relational Models
|
FORM supports and encourages good relational modeling. The relational model is excellent at modeling information and objects should not interfere with this.
|
Database models can have proper normalization, relational domains, database integrity, and database behavior (stored procedures and triggers).
|
FORM encourages these techniques through many features: for example, object caching significantly reduces the retrieval overhead of correct normalization.
|

Database Independent and Product Savvy
|
FORM is database independent: It uses JDBC and enhances it with product independent data type conversions and SQL level support.
|
At the same time, FORM can take advantage of specific database product features like sequences, identity columns, triggers, and stored procedures.
|
A project can choose to treat all databases identically and use a single FORM configuration or to take advantage of specific databases features and configure FORM for them. Even after login.
|
Client-Server Objects
|
FORM treats a relational database as an instance of a persistent object model (an ObjectSpace). Client applications have working copies of the server's ObjectSpace and integrity, caching, and locking are all in terms of this replication.
FORM maintains object identity within the client and can use several approaches for generating server object identity depending on the application's requirements and the server's capabilities.
Transactions provide the integrity for client updates to the server. Networks of objects can be written out within a single transaction to guarantee consistency.
|
|
Sophisticated Query System
|
FORM has a full query system based on OQL, the Object Query Language of the ODMG.
|
Queries are specified in terms of expressions, conditions, extents, and variables; all of these work with objects, attributes, and associations.
|
You can express both simple and sophisticated queries much more easily than through direct SQL and are still reaping the benefits of predicate logic.
|
Designed for Real Development
|
FORM was designed for the architectures of real information systems, both large and small. It provides an object storage layer, which loosely couples the object model to the database model.
Changes to the object model, the database model, and the mapping are all well confined. As an example, projects can migrate to different database schemes with minimal impact or can even switch between schemes at runtime.
|
|
FORM mapping configurations can be distributed to each domain class or centralized into clusters. A project team can choose the approach that is the most maintainable for them.
FORM will not break as the application grows to production size. It was designed with large application in mind and with the knowledge of the problems that will eventually have to be solved.
|
Extensive Documentation and Examples
|
FORM documentation is divided into several manuals that cover learning FORM, its design, example applications, the Kernel frameworks, and the FORM tools.
|
Also included are the development guidelines for FORM and other ChiMu products, and an overview of object-relational mapping.
|
All the examples are distributed with source code and the example databases are included for Oracle, Sybase, SQL Server, and Access.
|
Source Licensing is Available
|
FORM is designed to be both excellent at its job and a good model for object-oriented techniques, design patterns, and system architecture.
|
FORM source licensing is available and includes design documents and source training.
|
Customers can do custom development of FORM or use approaches from FORM in other parts of their applications.
|
More Information
For more information about FORM and other ChiMu products, contact info@chimu.com
|