IBM®
Skip to main content
    United States change      Terms of use
 
 
Select a scope:    
     Home      Products      Services & industry solutions      Support & downloads      My account     
alphaWorks  >  Java technology  >  

EADP for WSAD and VA Java

A development platform for building, with bean customization instead of programming, WebSphere applications that use servlets and JSPs.


Date Posted: July 21, 1999
Overview Requirements DownloadFAQsForum Reviews

1. What can I do with EADP?
2. What is EADP Express?
3. What are EADP Persistence Mechanisms?
4. HWhat is complex object support?
5. How does EADP manage context data and presentation of documents?
6. What is quick view support?
7. How does EADP handle Enterprise-sized databases?
8. What is computed column support?
9. What is the build-time user interface?
10. What advantages does EADP have over database facilities?
11. Why should I be interested in using EADP's version control?
12. Do I need to change the database design for version control?
13. What is EADP's Help support?
14. What is EADP's business logic support?
15. How can I define complicated business logic in EADP?
16. What kind of visual parts does EADP provide?
17. What is EADP's HTML, XML, and batch file support?
18. What is a business factor table?
19. What is external name support?
20. When will EADP support cool stuff such as servlets, JSPs, EJBs, XML, and internationalization?
21. What is EADP Content Management?
22. How can I customize an EADP application at run time?
23. What about support?


1. What can I do with EADP?

EADP provides model-driven support for many of the features needed for creating a full-blown business application. It can be used to greatly reduce the amount of code written by hand. EADP provides document handling, rich text, multimedia, content management, data navigation, security, and business logic features that work on top of a relational database. EADP's own simple persistence mecahnism, EJBs, or Persistence Builder can be used to access the data. EADP allows the presentation of applications using servlets or JSPs. EADP can be used with Struts to provide more powerful JSP support. EADP Express provides a convenient way of creating a Web front-end for a large legacy database. EADP for WSAD and VA Java

Back to top Back to top

2. What is EADP Express?

EADP Express is a fast-track way of creating a Web application designed to work with large legacy databases. Most of the information needed to define the application is stored in XML, so there is no need for new Java classes. Try the EADP Express tutorial, which is described in the user guide. It will build a sample application with many advanced features (described below) and no application-specific code. You can create a working Web application in half an hour.

Back to top Back to top

3. What are EADP Persistence Mechanisms?

EADP isolates transaction management from the persistence layer. EADP provides extra transaction support and serialization capabilities on top of the persistence mechanisms that allow these to work properly in a clustered WebSphere environment. In addition, EADP provides a remote capability that allows persistence to work through an MQ Series connection or any other transport facility. This is useful for locating data and servlets on different sides of a firewall.

EADP uses a bean implementer class to isolate the persistence mechanisms from the rest of the application environment. With this release, EADP is introducing its own persistence mechanism (EADP Simple Persistence), which runs very efficiently in s server environment without the needless overhead imposed by EJBs. EADP Simple Persistence provides modelling capabilities for importing and exporting schema and defining relationships, so it is even more convenient to use a build time than EJBs. With EADP Simple Persistence, the information about homes and relationships is stored in an easily accessible XML file, and there is no need to generate data access classes. Also, EADP Simple Persistence avoids hydrating beans and relationships when only the key information needs to be used. So it operates much more efficiently than PersistenceBuilder and an order of magnitude more efficiently than EJBs.

Of course, if you are using VisualAge, you can still use EJBs or Persistence Builder. Access classes for EADP can be generated using either EJBs or Persistence Builder. EADP uses Persistence Builder to define relationships that are of special interest (ruler-to-sub-object relationships for complex objects, quick-view relationships for normalized data, and root-to-version relationships for version control). These are given special standardized names so that EADP can hook into the run-time code generated by Persistence Builder or the EJB facility.

Back to top Back to top

4. HWhat is complex object support?

When Java classes are built to handle persistent data, what typically happens is that each table in the relational database gets a Java class to represent it. Each instance of that class represents one row of the table. These are "simple" objects. Examples might be the header data for a purchase order, or one line item for the same order. In working applications, data has to presented and manipulated in larger aggregates (for example a purchase order that consists of the header and all of its associated line items). This kind of tightly coupled aggregate of data is what EADP refers to as a "complex object".

EADP's Complex Object support allows the definition of complex object structures within Persistence Builder through the use of special relationships (these are "ruler-to-sub-object" relationships). A sub-object uses the relationship to its ruler as a part of its primary key. In database terms, this requires that there be a foreign key relationship from the primary key of the ruler to part of the primary key of the sub-object.

Some actions, such as copy and delete, need to cascade throughout the complex object. EADP provides support for this (including additional complex object actions such as Promote and Undo, which are valid only if the data is version-controlled).

EADP also allows the addition of fields in the ruler that present data summarized over its sub-objects (for example, the cost of a purchase order, summarized by adding up the cost of each line item).

Back to top Back to top

5. How does EADP manage context data and presentation of documents?

Within a complex object, the processing of data may depend on its context. For example, rules about processing a line item may depend on information in the purchase order header. Also, when a list of line items is presented, it is good to able to see some information about the purchase order along with them. EADP keeps a "ruler list" which holds the context data at each point. EADP also provides support for presenting "focal data," which is data derived from this ruler list. This can be extended to allow the focal data to be edited and viewed along with the sub-object list, so that a full document (such as an order with its line items) is always presented as one unit.

Back to top Back to top

6. What is quick view support?

"Quick view" is the term EADP uses for its support for presenting and manipulating normalized data. Like complex object relationships, quick view relationships are defined within Persistence Builder using special naming conventions. An example might be a quick view relationship that relates that customer table (which has name, address, etc.) to the purchase order header (which only has customer number). Once the relationship has been defined, it can be used to add "quick view" columns (these are columns from the source table, for example, Customers, that can be added to act as if they were part of the target table (for example, Orders). When the data is presented, EADP provides Quick Open and Prompt capabilities. Quick Open opens an entry panel for the source table. Prompt brings up a list panel for the source table that can be used to select an instance (such as a customer) as the source of the relationship. This is how to select the appropriate customer for a particular order. The prompt list allows a search string for selection, so the list of customers can be narrowed down and a customer selected.

Back to top Back to top

7. How does EADP handle Enterprise-sized databases?

All queries in EADP have a limit on the number of returned rows, and they allow a search string to be entered to limit selection. These two features are vital to any application processing a large database, but they are lacking in Persistence Builder, EJBs, and some so-called enterprise application environments. Of course these features are built in to EADP Simple Persistence. EADP also adds this capability to Persistence Builder and Type 1 EJBs (Type 2 EJBs have drifted too far into the unknown and cannot be salvaged for use within EADP). EADP allows the selection of columns by which to sort, and it allows a cascading sorting (sorting within results). A "jump to" feature allows the user to enter a value to be used as the start of the presented list. This feature gives a simple, intuitive way to search large databases without understanding complex SQL. A maxrows number is used to limit the number of rows returned by a query (this capability is added to both Persistence Builder and EJBs). Scrolling capability is provided, including the ability to redo the query if the scroll goes past the number of rows fetched so far.

Although EADP uses an object model for the results of its queries, this model is flexible enough to allow the use of joins when appropriate, to run SQL functions such as COUNT, and to process mass updates or deletions directly through SQL when this is the right thing to do.

EADP provides a hyper-scrolling capability that allows scrolling directly to page 200 (for example) out of 500 pages returned from a search. Only a few records (the default is 200 rows) are kept in memory at any given time.

Back to top Back to top

8. What is computed column support?

Data that can be derived from other data is typically left out of the physical database. For example, in the sample database for order entry, used for the EADP examples, the line item contains the unit price of the item and the quantity, but not the cost of the line. It is up to the application to compute and provide this information, which usually means special code. If these computations must be done in many places, the chance of error and inconsistency is increased. The computed column support in EADP provides a natural-looking bean interface that allows for the selection and definition of source columns and the manner of computation. All computed columns are stored as BigDecimal. Once a computed column has been defined, it can be used just like any other column for verifications or as the source of summary data.

Back to top Back to top

9. What is the build-time user interface?

EADP's build time uses Java beans with custom editors, which are integrated into the bean support provided by VisualAge. For WSAD, a special plug-in allows these same editors to be used. Some of these beans are DynaBeans, which means that the initialization strings can be exported to a relational database and changed there using the same custom editors.

Back to top Back to top

10. What advantages does EADP have over database facilities?

Some of the features described so far can be achieved in some DBMSs using very complicated queries. EADP makes it much simpler to set things up. Also, the complex object support in EADP supports the "fuzzy" relationships needed for version control. Some actions, such as cascade copy, can't be done using a DBMS.

The document architecture in EADP takes full advantage of complex object and quick view relationships to glue the pieces of a document together and to match the document data with its descriptor data.

Neither Persistence Builder nor EJBs are suitable "as-is" for use in a WebSphere application. EADP adds the function necessary for handlling large databases and for operating reliably in a clustered WebSphere environment.

Back to top Back to top

11. Why should I be interested in using EADP's version control?

Many applications must segregate informal data (which can be updated but not used) from formalized data (which can be used but not updated). Many applications must provide an audit trail and an "undo" function. Many applications must provide a "persistent unit of work" for storing work in progress across multiple sessions. Content management, in particular, requires this type of logic in order to control access and updates to documents. These are all features of EADP version control.

Back to top Back to top

12. Do I need to change the database design for version control?

Yes. Each table will have a corresponding "root" table that just contains the key fields. Also, "insert" and "extract" sequence numbers get added to the data tables. The good news is that an existing database can be migrated without too much trouble. In addition, it is possible to make the root tables "virtual" tables that do not need corresponding tables in the database.

Back to top Back to top

13. What is EADP's Help support?

The sample content management application includes a servlet-based help that allows administrators to edit the help for each page as the application is running. For applet-based help, EADP includes a "Help helper" bean which can be attached to any panel. It has its own custom editor that brings up the source panel with Help in "learn mode". As each part of the source panel is touched, an edit panel for the Help allows definition of the Help for that panel part. At run time, pressing F9 brings up the Help in "browse mode." The defined Help is displayed when the mouse button is clicked on each panel part (or the Help can be kept in "hover" mode).

Back to top Back to top

14. What is EADP's business logic support?

Of course, business logic is an oxymoron. EADP attempts to isolate business rules from the rest of the application and to make it easy to change the business logic over time, as well as to find out where and how a rule has been implemented. The focus is primarily on verifications. There are two levels of support: triggers, which define data conditions, and rules, which enforce verifications.

Back to top Back to top

15. How can I define complicated business logic in EADP?

Compound triggers can be used to build a complicated business condition. You can also code your own business rules classes in Java. These fit into the overall EADP business logic architecture.

Back to top Back to top

16. What kind of visual parts does EADP provide?

EADP provides a split pane and a list part, with resizable columns, for tabular entry. All EADP parts resize themselves correctly.

Back to top Back to top

17. What is EADP's HTML, XML, and batch file support?

Most applications send and receive data through some type of "batch" process, either through the creation of a file in a particular format as output or by processing input from a file of this type. EADP provides built-in facilities for definition of templates for parsing file structures and of macros for application processing (for both input and output). This is a flexible system designed to be expanded to meet a developer's particular needs. The same facilities are used to define HTML used by the servlets and JSPs.

Back to top Back to top

18. What is a business factor table?

BFTs are used for data elements with discrete values (similar to keywords in Lotus Notes). The rows of the BFTS are keyed by the permissible values; the columns give meanings for those values that are used to drive application logic. This process gives an extra layer of insulation to the application to isolate random business rules.

Back to top Back to top

19. What is external name support?

EADP allows the giving of a central external name for objects, attributes, and values of BFTs. At this point, national language support is not included.

Back to top Back to top

20. When will EADP support cool stuff such as servlets, JSPs, EJBs, XML, and internationalization?

EADP supports all of these (except that the XML support is still fairly primitive). See the user manual for information about EJBs, servlets, and JSPs. As for internationalization, all translatable strings are handled using the VisualAge facilities.

Back to top Back to top

21. What is EADP Content Management?

EADP provides a document architecture, a work flow for controlling access and presentation of documents, rich text, spell checker, the ability to upload images and attachments, and advanced HTML editing, including table creation. The EADP concept of a document is roughly similar to that in Lotus Notes, and most things that can be done to customize a document have a rough equivalent in EADP. However, EADP has much stronger capabilities to make these customizations on a running application without the need to reinstall the application code. And, since EADP is based on WebSphere and DB2, it is designed to be scaled up.

EADP document-level security provides security restrictions on access by individual or group. The security restrictions can be to a certain type of table, to individual rows within that table, or to types of rows (the last is useful if the same table contains different types of documents and some groups of users can see only some types of documents). This document-level security is nearly equivalent to the security features available in the Lotus Notes client.

A sample content management application is provided in this package. There is also a base document application that provides the basic classes necessary for creating your own document applications.

Back to top Back to top

22. How can I customize an EADP application at run time?

In some situations it may not be convenient to re-install code every time a small change comes along. EADP offers very extensive capabilities for updating HTML, work flow, external names, and more through changes to the DB2 tables in the running application.

Back to top Back to top

23. What about support?

EADP is in active use within IBM. As fixes for problems are discovered, they will be posted to this site. You can also report any problems via the discussion forum or e-mail. Consulting services for EADP are available through IBM Global Services. Of course, if you are serious about using EADP, contact alphaWorks and request a license.

Back to top Back to top
Download now Download now

Related technologies

For platform(s):
Multi-Platform


Related resources

developerWorks Java Zone

Open Source Projects

DB2 developer domain

WebSphere Developer Domain

JARS.com

 

    About IBM Privacy Contact