To create the definitions for the entities required
by the HTMLSample Application, the following guidelines were followed:
- Use self-defined processes and self-defined processors.
- Use Op as the ending to all bean invoker proprietary files.
- Use Proc as the ending to all the processor names.
- Avoid, as much as possible, dependencies between the self-defined modules
and the configuration file. This enables you to deploy new functions without
re-initializing the server. It also enables you to update deployed functions
without interfering with the rest of the application. To avoid dependencies,
do the following:
- Use the implClass attribute when the class is particular for a specific
definition or when the implementation class may change frequently.
- Use the tag/class relationships specified in the configuration file when
the implementation class is generic and does not change very often.
- Define generic types used by the application in the dsetype.xml file.
- Define generic formatters used by the application in the dsefmts.xml file.
- Define generic contexts used by the application presentation server in
the application-presentation-server-side dsectxt.xml file.
- Define generic CHA contexts used by the application logic server in the
application-logic-server-side dsectxt.xml file.
- Define generic services used by the application in the dsesrvce.xml file.
- Define generic data elements belonging to the server context and the session
context in the dsedata.xml file.
- Define untyped data collections with typed data elements inside.
- Set input and output mapping formatters in the transitions, rather than
in the states. The mapping will thus be discriminated depending on the origin
and destination transitions, which provides more flexibility.
- Use Data Mapper Converter Format (which uses typed data converters) to
map the resulting data from the subflow to the parent flow instead of using
the format/unformat mechanism that builds intermediate strings. This approach
improves the performance significantly.
- Use transition contexts to limit the set of data elements expected in
each user event.
- Perform temporal validations without updating the process context until
the validation succeeds.
These guidelines were followed for this particular application, but
you are free to change the approach in a real environment