|
|
Brian Hipple QA Test Engineer Supervisor |
|
ASIS customers often ask the question "How should I best deploy my BBx® application?" The answer is invariably, "It
depends." The ability to deploy software written in one language on many different configurations is exciting, and may
sometimes appear overwhelming. Considerations for deployment choices include the extent of administration, breadth of
flexibility, range of availability, amount of scalability, degree of reliability, and level of performance. This article
simplifies the selection of the vast possibilities in the deployment equation.
Multi-tiered Configuration
Developers can deploy application software written in BBx in a one-, two-, or three-tiered configuration. The three tiers are
display, interpreter, and data.
Display is the user interface, which always runs on the user's computer and is the junction between the user and
the application.
Interpreter is where the application logic is running, handling all operations between the user and data.
Data is the DBMS (Database Management System) that stores, modifies, and extracts information for the application.
In a one-tier system, all of these functions come together into one process, or on one machine. A two-tier system splits these
functions between two processes, while a three-tier system performs these functions as separate processes. Refer to the table
in Figure 1 for a breakdown of the processes. See the illustrations of each of these configurations presented in Figures 2-4.
System |
|
Tier 1 Process |
|
Tier 2 Process |
|
Tier 3 Process |
|
1-Tier |
|
|
Display/Interpreter/Data PRO/5 Visual PRO/5 BBj FC (Fat Client) |
|
|
|
|
|
|
|
|
|
|
|
2-Tier |
|
|
Display/Interpreter/Data PRO/5 Visual PRO/5 BBj FC (Fat Client) |
|
|
|
Data PRO/5 Data Server (DBMS) BASIS Database (DBMS) Third Party Database (RDBMS) |
|
|
|
|
|
|
|
Display BBj TC (Thin Client) |
|
|
|
Interpreter/Data BBjServices (AppServer/Local FileSystem) |
|
|
|
|
|
|
|
3-Tier |
|
|
Display BBj TC (Thin Client) |
|
|
|
Interpreter/Data BBjServices (AppServer/Local FileSystem) |
|
|
|
Data PRO/5 Data Server (DBMS) BASIS Database (DBMS) Third Party Database (RDBMS) |
|
|
|
Figure 1. Division of BASIS processes in each tier |
|
Figure 2. Sample 1-tier configuration |
|
Figure 3. Sample 2-tier configuration |
Three-Tier Benefits
Choosing a three-tier solution provides the most flexible and effective deployment. While BBj inherently provides the ability
to run in a three-tier configuration, third party products, such as Citrix, Terminal Services, and off-the-shelf terminal
emulators, also provide three-tier solutions, but at a much higher cost. In the three-tier model shown in Figure 4,
applications process separately from the display and data. A user can execute their exclusive actions locally and privately,
and access data without transferring it completely to client machines. Information processing on application servers helps
reduce network traffic to clients and therefore increases performance. The system maintains all application logic in one
single and shared location, therefore allowing developers to change application code in the middle tier without affecting the
display and data.
|
Figure 4. Sample 3-tier configuration |
Application servers provide excellent opportunities for integrating legacy systems because the interfaces and bridges to such
systems are concentrated and managed in one location for all applications needing access. Security also increases when
organizations lock their server machines in a backroom with no access by end-users. Purchasing quality server machines rather
than buying new machines for each end user is a fiscal benefit. Another opportunity the multi-tiered system allows, when
running applications by Web Start or as an applet, is the ability to update automatically BASIS software on the client
machine. Imagine the benefit of not having to go to every client machine that runs graphical BBx in order to upgrade to the
next version of the language.
Cluster Computing
If reliability, scalability, and performance are concerns for your customers, consider a cluster computing solution. Cluster
computing includes the use of high availability and load balanced systems. A high availability system is simply a system that
is usable when the customer needs guaranteed uptime. Much of today's software systems need availability 24/7, so redundancy
achieves higher reliability or compensates for less-reliable components. Having a backup for a component that fails, keeps the
system operating at all times. Eliminating system downtime would include the use of redundant hardware, failover servers, as
well as data integrity devices such as SAN (Storage Area Network) and RAID (Redundant Array of Independent Disks). This type
of hardware works well in a multi-tier system either for an application server or more essentially for the data server. Load
balanced systems include an active router that directs traffic to 1 out of X number of machines based on such criteria as the
number of connections and system load. The number of machines can increase or decrease as activity dictates, which provides a
very scalable solution.
Anyone can employ this technology to the application server in a multi-tier solution when adding more users to increase
performance as illustrated in Figure 5.
|
Figure 5. High availability/load balanced system |
Summary
Practicing what we preach, BASIS employs a three tier, high availability, load balanced cluster computer configuration for our
own in-house production system. This system supports our 24/7-available e-commerce, accounting, software issue tracking, and
licensing systems, all written in our own BBx generations. Just like BASIS, your architecture selection, based on your
software and end user's requirements, will lead to the correct deployment choice. BASIS is committed to presenting you, our
customer, with the tools and knowledge necessary to succeed by fulfilling your customer requirements and deployment needs.
|
|