|
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. |