The architecture must be open, scalable, and easy to implement. These principles
are related to the architecture objectives, and are the basis for the platform
selections, programming model specifications, and overall non-functional requirements
of all the toolkit-based solutions. The major architectural principles of
open, scalable, and easy to implement, presented below, demonstrate how the IBM(R) approach
for building robust, cost-effective enterprise systems support the architectural
objectives. Following are the principles supported by the Branch Transformation
Toolkit:
- Open
- Supports industry standards - The architecture is open because
it uses open industry and e-business standards such as TCP/IP, HTML, HTTP, J2EE (Java™, Java Server Pages, JCA, JDBC, EJB, and
so on) and Web Services wherever possible. These standards provide a
solid foundation and make it easier to use available proven components instead
of building custom ones, and to change vendors and implementations to satisfy
changing business requirements. Industry standards tend to be strategic and
have longer life spans because of the high levels of investment and commitment
involved with creating them.
- Is extendable and customizable - The toolkit is extendable and
customizable at many different layers within the architecture. This means
it can be used in a wide range of situations and can accommodate specialized
requirements that are specific to an individual customer, country, or region.
- Provides insulation - The toolkit isolates and abstracts interactions
with other systems to insulate toolkit-based applications from the specifics
of other systems. In a global solution, this is essential to provide the flexibility
to adapt to many diverse environments, particularly different host systems
and databases. The programming model of the toolkit insulates applications
from changes in the underlying technology.
- Preserves investment - The principles listed above ensure the
preservation of customer investments. The toolkit safely preserves the investments
in current hardware, software, operating systems, network, communication infrastructure
and protocols, and back-end subsystems of the customer environment.
- Scalable
- Supports three logical tiers - The benefits of a logical three-tier
architecture such as the network computing architecture are well known. The
network computing architecture is logical in that it specifies that the presentation
layer must be decoupled from the business logic, which must be decoupled from
the data access layer, but it does not specify how to physically deploy the
tiers. Although this approach is a form of isolation, it also provides scalability
by allowing each of these layers of the system to change independently of
the others. That is, the platform selections and design of each layer can
change without impacting the rest of the system. This architecture also requires
that the presentation layer be "thin" to realize the goals of network computing.
This means that workstations with a small amount of physical memory and no
virtual memory can download and execute the application. The main objective
of the solution architecture is to support the model of a multiple-tier network
computing application while also allowing engagement teams to implement solutions
based on other application models such as a two-tier "fat client" application.
- Supports replaceable components - Components are packages of system
function with established interfaces and a predetermined execution environment.
As long as a component is within its required execution environment and it
interacts with other system components through its public interfaces, it is
replaceable with minimal effort. This construction enables high levels of
reuse and allows the system to evolve without causing large ripple effects.
It also allows the implementation of components and their execution environments
to vary to meet performance or scalability requirements.
- Provides enterprise topology independence - This notion extends
the idea of a logical three-tier architecture so that not only are the three
tiers independent of physical location, but system components are independent
of any specific physical topology. This makes toolkit-based solutions highly
flexible for deployment in different environments by allowing customers to
configure the system as needed to achieve the scalability desired for their
environment.
- Easy to implement
- Uses visual programming - Where possible, toolkit-based solutions
use visual programming to assemble the application from parts. This technique
is particularly effective in developing application screens and rapid assembly
of graphical user interfaces.
- Separates analysis from design - Analysis should be a separate
process from design and have its own distinct work products. Solutions of
this product suite should use analysis to form an entirely logical representation
of system function that is independent of technology or implementation. This
helps to retain the value of earlier development effort even if the implementation
must change entirely.
- Provides a development methodology - This solution provides a
methodology for guiding the development process in an engagement project to
make solution implementation easier and the deployment faster.
- Is transaction-oriented - Most projects require a solution in
which an enterprise-centric back-end system executes most of the application
business logic and the front end of the solution, running in a delivery channel,
must behave as a transaction posting engine to run the transactions in the
back-end system. The Branch Transformation Toolkit excels at this type of
solution and optimizes the processing of the transactions especially in high
transaction volume environments.
- Minimizes development effort - The toolkit highly promotes
the externalization of parameters so that business operations behave differently
depending on their specific set of parameters. This enables solutions to delivery
new functionality without requiring new code, simply by adding new external
parameters to the system. One example is the toolkit business processes that
are defined with BPEL. This enables toolkit application developers to edit
process logic using visual design and modeling tools.