Three Tiered Solutions
Web applications have come a long way since the days of simple static html pages. Web servers running services such as Cold Fusion or Microsoft's Active Server Pages (ASP) are enabling the development of dynamically built web pages. These dynamic pages are built using server side programming logic and database interfacing. The result is pages that can be laid out on the fly to reflect real time business information requested by the user of the browser application.
Prior to the availability of Web Servers that could dynamically build html pages, the defacto technology for interactive web sites was the Common Gateway Interface (CGI). The many limitations of the CGI technology has spawned new and more productive runtime and development environments.
Placing all the business logic into the ASP pages as programming script presents a number of problems. Fortunately these problems are easily solved with the use of component programming. Microsoft recommends that scripting languages within ASP pages only be used as the glue to interface with business components that are implemented using the Component Object Model (COM); we concur.
Applications built using a 3-tiered architecture offer many advantages...
- Flexibility in development resourcing by utilization of specific levels of expertise at each tier.
- Tier 1: Artistic design, layout and static content, Client side scripting.
- Tier 2: ASP scripting, Business object development using development language of choice.
- Tier 3: Data modeling, design, implementation of stored procedures.
- Components deployed within the 2nd tier are reusable and independent of the presentation layer used in the 1st Tier.
For example, both a browser app and a traditional Visual Basic application can both access the same 2nd Tier Customer component. This leverages development efforts and reduces the complexities associated to code bloat.
- Database interface coding can be isolated within specific business object wrappers.
For example, all applications that must access and manipulate Customer data would do so by implementing methods against the Customer object. The programmers that use the Customer object need not know what database technologies are in place, or have any knowledge of database and/or relational technologies. By excluding the existence of SQL statements from all components (except for the SQL wrappers), there is a very concise and manageable division of labor between developers and database analysts.
- If the 2nd Tier components are implemented in Microsoft's Transaction Server (MTS), then the developer need not be concerned with the typical issues of multi-user applications. (i.e., locking code sections to a single thread of execution, functions that must all succeed together or not at all, use of multiple threads, etc.). MTS applications scale well in a web hosted environment because each component is given its own thread of execution within a limited (but tailorable) thread pool.
We could talk about the virtues of these technologies and the 3-tier approach almost endlessly. If you are interested in understanding how these approaches can assist you in solving your development issues, please contact us At Three Tier we understand the importance of your time, and to that end you will have the opportunity to communicate with hands on technicians that understand the issues.