eQ! Foundation
 Business Case
 Approach
 How eQ! Works
 Why eQ!?
 FAQs
  
eQ Foundation
Home > Products > eQ!TM Foundation > Business Case > Frequently Asked Questions

Frequently Asked Questions

Q: What exactly is eQ!TM?
A: eQ!TM is a new way to create Java-based Business Components and applications. Instead of writing lots of Java code, you write a little Java code to describe your data and business rules, use XML to configure the pre-written eQ!TM modules and to script your application flow, and you are done!

eQ!TM contains a core Foundation layer that you can use to create reusable Business Components that are independent of particular delivery technologies such as JSP/Servet, Struts, Swing, and EJB. eQ!TM also contains adapters to adapt your eQ!TM Business Components for use in various delivery technologies. Once your Business Components are built, through the use of declarative configuration files and eQ!TM's XML-based Scripting engine, you can often produce applications with no additional Java coding. 

eQ!TM's Foundation Layer contains objects and services that find wide use in building Business Components. eQ!TM-based components can remember two independent sets of initial values and can be set back to either of these states at any time. 

eQ!TM contains powerful collections that can contain flat or hierarchical sets of Business Components in many different relationships, including Master-Detail, One-To-Many, and Many-To-Many. The Persistence subsystem can retrieve and preserve these collections in a single operation, and Adapters are available to display and edit the collection contents within various delivery technologies. Many applications, even though they require complex data structures, can be implemented using a single collection connected to the appropriate technology adapters. The design of the data structures are configured, rather than requiring coding. 

The Java language specifies the Exception as the standard way to announce and handle error conditions. Exceptions re-direct the normal application flow as soon as they occur. Business applications often require multiple errors to be batched together and presented to the user to be dealt with as a whole, instead of one at a time. The eQ!TM Foundation contains special Error Reporting features that allow errors to be accumulated and then presented to the user either together or by category. 

In today's diverse and global society, applications often must be localized in various languages. Even single-language applications can benefit from separating message text from software codes, so that the text specifics may easily be fined tuned by business analysts, rather than computer programmers. eQ!TM provides Message objects that format text specified in external configuration files. 

The Persistence and Scripting subsystems require symbolic access to the properties of the Business Components, in order to avoid the need to use code generators and the inherent problems with matching generated code to ever-changing requirements. This same symbolic run-time access to properties can often simplify coding tasks, such as transferring the contents of HTTP requests into Business Component properties. All Business components that use the eQ!TM Foundation inherit full symbolic access to their properties. 

eQ!TM also contains several subsystems that enable the embedding of Business Components in Enterprise applications. The XML Scripting Engine, for example, gives casual programmers the ability to direct processing flow without requiring the services of a Java expert. The Persistence system allows Business Components to be configured to access datastores without requiring that those components have specific knowledge of the datastores. 

The Technology Adapters allow eQ!TM Business Components to easily be installed into applications. Often the adapters improve on the delivery technology for which they were designed. The Struts adapters, for example, eliminate the need for Java coders to create custom Actions and ActionForms. 

Business Components built using the eQ!TM Foundation are the perfect place to put technology-independent business rules written in Java. For example, eQ!TM provides standard stub methods for validation and save processing. eQ!TM does not yet allow you to specify your business rules in higher-level constructs tailored to rules definition, but eQ!TM could be used with one of the commercially available Rules engines, such as Versata or ILog JRules, that do provide for high-level rules definition.

eQ!TM can be used with any set of Java development tools. The languages used are Java and XML. For developers who wish, eQ!TM includes graphical tools that can edit and maintain the eQ!TM-related Java and XML. eQ!TM-based Business Components can be created and/or maintained by the Business Component Designer. XML configuration files can be created and/or edited by the XML Configurator. These tools are optional, and can be used before and/or after other tools are used on the same file. It is possible to build complete and robust Business Components and configure them for applications completely within the eQ!TM toolset.

Q: How do eQ!TM components compare with Entity EJBs, and can they co-exist?
A:eQ!TM components can be used on both the client and server side unlike EJBs that are remote-only objects. A primary design pattern used with Entity beans is to package the data that the bean represents into a "data object". The purpose of doing this is to reduce network traffic, as each method call on an EJB is a remote call across the network layer of the application server. This data object can be as simple as public fields in a simple class, or can provide the logic for tasks like validation. These data or "value" objects can be written using the eQ!TM foundation and then wrapped by Entity beans if desired, to gain heterogeneous transactions, security, and other benefits provided by the container. Since eQ!TM components can exist on both the client and server, they can be serialized across the network and used as the data package to reduce network traffic. eQ!TM components also contain business rules and behavior, so they are more than just a "dumb" data container. eQ!TM components can be architected to provide basic validations on the client, with more thorough validations on the server, which can be an EJB or a Servlet container.

Q: Can I use eQ!TM with my application server?
A: Most certainly. eQ!TM components are developed in Java and will work in any Java J2EE-based server. They can also be used in a simple J1SE or J2SE environment.

Q: Can I use eQ!TM with Session and MessageDriven EJBs?
A: Yes. eQ!TM components can be used in conjunction with Entity beans and/or as a replacement for Entity beans for use with Session beans. MessageDriven beans can also interact with eQ!TM components as needed.

Q: How does eQ!TM compare to Toplink, CocoBase, and other similar products?
A: These products are persistence mechanisms. They take your business model and provide a way to store that model into a database (usually only relational databases). Unlike eQ!TM, they do not provide other features that are generally developed to support a business model, such as logging, scripting, change tracking (undo features), etc. As a matter of fact, if desired, products such as Toplink could be used to persist eQ!TM based components, although eQ!TM does provide a declarative, delegated, persistence mechanism of it's own. Current support includes relational databases, and planned support includes many more storage mechanisms, such as XML datastores and legacy systems.

Q: What code generation tools are provided?
A: Currently there is a tool that will generate eQ!TM components from a database schema, and generate basic persisters needed for these components. Tools that will generate Entity bean wrappers, and transfer eQ!TM objects to and from an XML format for use in Web Services and data transfer applications are in development.

Q: What kind of logging facility is provided with eQ!TM?
A: Currently support for Log4J will be provided, with future support for JDK1.4's logging APIs. These logging mechanisms are implemented within eQ!TM’s Messages API, so no code changes are needed as logging mechanisms change.

Q: Can eQ!TM save time with my Struts-based application?
A: Yes. In development is a set of adapters that will enable Struts applications to interact with eQ!TM-based business components with minimal coding required compared to starting from scratch. Struts provides the View and Controller portion of the framework, and eQ!TM provides the Model. Using the eQ!TM adapters allows Struts applications to be developed without needing the usual laborious tasks of subclassing the Struts Action and ActionForm classes. Also, eQ!TM collections simplify the gathering and storage of list and table data that can be displayed using the Struts tag library.

Q: Is this a custom Struts implementation?
A: No. The classes provided are based on the 1.0 version of Struts and will plug into any existing 1.0 Struts implementation. 

Browsersoft Struts Presentation

Q: Can eQ!TM save time with my Swing-based application?
A: Yes. There are pre-built adapters provided with eQ!TM that implement many of the data models that Swing uses, saving time versus having to create these models from scratch. For example, a ColumnDocument component is included that will extract data from a selected row of a JTable column, and project it as a Document model for a JTextField.

Q: Does eQ!TM handle Master-Detail?
A: Yes, eQ!TM has unprecedented support for multi-wide and/or multi-deep Master-Detail in both the Persistence layer and in its Swing support. Only declarative SQL and simple JavaBean connections are needed to develop a complete application that can display and update full Master-Detail data. 

| Professional Services | eQ!TM Foundation | Accomplishments | Industry Alliances | Employment | About Us | Contact Us |
| Support | Browser Server | Home |

Email: info@browsersoft.com

Copyright 1998-2004. Browsersoft, Inc. All rights reserved.