Table of Contents
 
  Choices, Choices, Choices

PDF Format

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. Table of Contents