Objectmatter Logo
Customer Spotlight

Eclipse Services

"It's rare to find high quality programmer-level support at any price. Objectmatter has provided excellent and timely support to experienced Java designers. They've prevented a lot of prematurely gray hairs and saved days of programming time, and I am very grateful for their support."

Jeanette C. MacNeille
President
Eclipse Services, A Division of Quadrivium, Inc.

"VBSF has enabled us to provide incremental production releases of AdPro Classified throughout its two year development period. In each release we’ve been able to add functionality and change the domain model without having to worry about rewriting and testing the database access code. We evaluated several O-R mapping tools and only VBSF had the features we needed to support modeling our legacy data."

Victor Langelo
Senior Programmer
Eclipse Services, A Division of Quadrivium, Inc.


About Eclipse Services

Eclipse Services is a software development company with a long-standing interest in component technologies and databases. Our projects focus on the publishing and education markets. Our main product, AdPro™, is an integrated business system for newspapers.


About AdPro™

AdPro Display™ was developed in the early 90’s as a display ad tracking system for The Daily Pennsylvanian, the newspaper at the University of Pennsylvania, and is now widely used at large universities around the country. The initial version was developed in a two-tier client server framework using Oracle and ACIUS’ database 4th Dimension as a SQL front end. This framework allowed cross platform compatibility for our market, which includes about 50% Macintosh users and 50% PC users.

Currently we are developing a new classified ad tracking system with a three tier architecture using Oracle, an EJB compatible application server, and Java Swing-based client applications. When the classified system is complete, we will also port the original display ad system to the new environment.

AdPro Display manages ad processing for a newspaper from ad entry through issue sizing, production checkpoints, and production of ads for each day's paper. After each issue is published, AdPro also manages functions such as sending tear sheets, invoicing, and production of statements. AdPro provides sales and business functions including customer relationship management, accounts receivable, A/R Aging, budgeting, specialized revenue tracking useful to university papers, and accounting reports for A/R through Trial Balance. The new classified system extends these features, and will add a new set of functionality related to classified ad management. Here's a screen shot of the ad entry form for the new classified system.



How VBSF™ Has Helped Us:

One goal for the AdPro rewrite is to support many of the new feature requests we’ve received over the years. That means we would need to roughly double the size of our domain model from 68 objects to over 150. The current legacy code was getting difficult to extend due to the extensive use of embedded SQL statements throughout the code. The complexity and need for heavy transaction processing led us to consider the EJB architecture and J2EE servers. The problem with most EJB servers was limited support for complex data models, particularly in 1999 when we started this project. That led us to O-R mapping tools and VBSF.

With the addition of O-R mapping we have been able to minimize the number of entity beans. Each entity bean represents a top level domain object such as customer, ad, contract, etc. Almost all entity beans in AdPro represent a complex graph of objects. The graph consists of references to other entity beans and many owned references and collections. In some cases the maximum path consists of five edges.

Reducing the number of beans would not be useful unless good control over the loading of referenced collections was available. VBSF gives us wonderful control over the loading and updating of referenced objects. We are able to load objects only when needed, which significantly improves performance.

VBSF gave us the power of container managed persistence with complex data long before the EJB 2.0 specification. In addition, it’s given us the portability to move our application from one application server to another as the market has matured.

 

The Architecture:

VBSF is used to provide persistence for the data in the bean-managed persistence (BMP) entity beans. This is accomplished with the aid of an abstract entity bean from which all other entity beans are derived. The code in the abstract bean handles lazy loading of collections and synchronizing of changes made by the client to the object graph. By using the mapping schema information available from VBSF and Java introspection, the loading and storing the entity data (ejbLoad and ejbStore) is entirely handled in the generic entity class. Hence derived entity classes only need to deal with business logic, not persistence logic.

Example entity bean and data class

All the persistent data is stored in a value object (ProductData in illustration). The value object is persisted by VBSF and is serializable so that it can be a valid RMI or IIOP parameter or return type. The value objects are mapped by VBSF to the database. The data can often be loaded by VBSF, processed by the enterprise beans, then sent directly to the client — avoiding intermediate copies.

AdPro has a large number of reports. As mentioned in many articles about EJB, it is unwise to use entity beans to generate reports. It is usually better to generate the data for reports directly from database queries. All search result lists and formatted reports use a basic stateless session bean type we call List beans. The list beans use VBSF’s extensive query capabilities to generate all our report data.


Further Information

Eclipse Services Home Page

 

Return to Objectmatter's Customers Page


© 1997-2001 Objectmatter, Inc. All rights reserved.
TRADEMARKS. Products and company names mentioned herein are the trademarks of their respective owners.