Appendix A

Case Study: Building an Interactive Product


The time has come to bring together the objects, components, and scripting capabilities provided by Active Server Pages to build a comprehensive Web-based business. The tools you have read about to deliver features from user tracking to database access come together to enable the construction of a comprehensive product or service-based business site. This chapter introduces you to the creation of an Introduction Service currently in operation on the Internet at http://www.1st-site.com. As you explore this Internet-based site, you will apply Active Server Pages to enable the development of the core components necessary to implementing any Internet- or intranet-based business, including:

Bringing It All Together

Bringing together the technology provided by Internet Information Server 3.0's Active Server Pages to construct a business site offering products and services involves the same type of design and development steps found in more traditional Client/Server application development processes. Critical steps in this process include the development of an intuitive client application to support the user, the implementation of a secure, flexible and scalable server, and the effective use of database tools for managing information.

The Client

With Active Server Pages, the browser becomes the client. Active Server Pages allows the use of a browser that only understands displaying HTML pages. Active Server Pages as discussed in this book focuses almost entirely on the tools, which rely entirely on the server for any processing other than standard HTML requests and posts. While this allows applications to be developed that support the widest possible number of browsers, the browser client can also enhance the Active Server application by including client-side features. These features can include Netscape Plug-ins, Client Side Java Script, or VBScript, as well as Client-Side ActiveX Controls.

The Server

The server-based services make up the heart of Active Server Pages. With Active Server, certain tools are required in the server implementation such as a Windows-based operating system and Web server. This book focuses on Windows NT Server, though Windows 95 and Windows NT Workstation can also serve Active Server Pages. With the selection of Windows NT Server and Internet Information Server as the operating system and Web server, the choice of hardware used and additional components and services utilized must be determined, depending on the amount of traffic and specific site features selected.

Database Tools

While much of this book focuses on Microsoft Access, sometimes this type of ODBC compliant and user-friendly tool does not provide sufficient performance or stability for Active Server applications. ODBC compliant drivers enable you to utilize database servers from Microsoft SQL Server on Windows NT, to UNIX-based tools from Informix to Oracle. When your application requires high traffic loads and extensive database reliance, be careful not to overlook the need to utilize high performance databases.

Open DataBase Connectivity (ODBC) refers to the Microsoft promoted standard for accessing databases in Windows NT. With the release of 3.0 and future planned enhancements, this has become the standard for enabling programs to communicate with databases. For more information visit http://www.microsoft.com.

Often, high performance database servers can become an integral part of your application by introducing extended features. For example, in this case study, you will see the use of Microsoft's SQL Server for SMTP message delivery.

Simple Mail Transport Protocol (SMTP) has become the messaging or electronic mail standard of the Internet. Microsoft Exchange Server, Microsoft SQL Server, and countless other applications continue to extend the methods for leveraging this standard for delivering information.

Generally your key Windows NT Services include the Web server, which executes your Active Server Pages, a database server to execute your SQL queries, and perhaps an e-mail server to support integration of mail features into your application.

A Review of the Hardware, Software, and Performance Issues

This book focuses on the task of utilizing Active Server Pages to develop interactive Web-based environments. However, we must also address enabling the robust and flexible processing of these pages through the proper selection of hardware and software. In addition to these selections, the monitoring and general maintenance of acceptable performance levels can become critical, as the traffic volumes of your site begin to grow. The key issues that can often be overlooked in the development process include:

Secure Server

The Windows NT operating system provides some degree of security, but don't be lulled into a false sense of comfort by the name and all of the C2 security-level hype. Windows NT Server is not secure just out of the box. Although the level of security often demands balancing acceptable cost and risk tolerances, any implementation team minimally should understand the issues involved in the security question. Most companies, for example, make certain assumptions before evaluating what measures to take with respect to security, such as whether or not the physical servers are secure from malicious attack; generally, if physical access to your servers is compromised, any sufficiently sophisticated attacker can disable your site, if not actually get access to your data. Lets face it, a sledge hammer, if nothing else, can usually disable a computer. Once your basic assumptions have been set, you can begin to evaluate the necessary level of security needed.

At a minimum, consider the network access and NT security features. The network security can be managed by a range of hardware- and software-based Firewall products that create proxies to limit access to IP addresses and packet filtering. At the NT server, control over users and their file, directory, and application execution-related permissions can be controlled.

Please review current articles on NT security holes. Some of the known problems include the use of protocols like Netbios over TCP/IP, the ability to execute bat files, the everyone group, and the guest account.

Flexibility in your Server

Building flexibility into your site relates to how and which services become critical to your application. If you select services that have an upgrade path from a third party vendor or have an object model that allows easy maintenance, supporting your application's forward move will be a much easier task. One effective approach to building flexibility is the use of DCOM components. DCOM components can extend your ability to quickly expand features by creating callable functions that can easily be re-used in the development of new or the modification of existing features. Components developed in-house and an increasing number of third-party components that provide upgrade paths for your applications without costly investments in custom software development should be considered.

Distributed Component Object Model (DCOM), similar to Component Object Model(COM), can be thought of as a simple evolution of the Object Linking and Embedding (OLE) standards before them. In short, DCOM represents an OLE object without any user interface, and some exciting new features.

In addition to the selection components, applications often will rely on additional NT services such as database and e-mail services. The application services you select to support the Active Server pages can dramatically effect the flexibility to change and enhance your application.

Scaleability

Scalability, second perhaps only to "open" as a buzzword in application development, provides one key measure of the quality designed into an application.

Ensuring a scalable application in the Internet area becomes incredibly important. Unlike an Intranet application in which user communities and transaction volumes can be accurately estimated, the Internet offers the possibility of rapid volume increases. Understanding what hardware and software resources will become bottlenecks and knowing how to address these problems is vital during the application development process.

In my experience, most planners vastly overestimate traffic volumes; occasionally, however, you hit upon a huge success, and you need to know how you can respond to changes in traffic.

The key resource problems a Web-based application can run into include the following areas:

Simple Web servers love RAM. They run well on a slower Central Processing Unit (CPU), provided adequate RAM is present. Active Server Pages require both RAM and execution resources on the CPU. Similarly, databases often focus much more on the RAM for caching than on the CPU. In addition to RAM and CPUs, network bandwidth and disk I/O can also become a bottleneck.

With Active Server Pages, database servers, and DCOM objects, resources can often be distributed across multiple computers, creating alternatives to implementing servers with gigabytes of RAM and multiple CPUs. These issues, however resolved, should not be overlooked in the design and development stages of the site.

Real-time Monitoring and Tracking of Usage

While real-time monitoring and usage tracking can sometimes be handled by network administrators or service providers, be certain that you have adequate tools in place to assure acceptable performance and uptime levels. If a network administrator ensures you that this area is under control, ask some key questions:

Domain Naming Services (DNS) will probably not be an application that you manage or support directly. DNS servers, coordinated by the Internic, run at many locations across the Internet, cooperatively providing name resolution for Web sites such as your www.yourcompany.com to a unique Internet address (IP) like 205.171.129.2.

Regardless of the assurances a network administrator gives you or your decision to monitor the site yourself, consider a program such as IPSWICTH's WhatsUp monitoring services. These services can ping your site and others on the net at set intervals and page, e-mail, or beep you when failure occurs. Also consider an external, off-site such as RedAlert to ping your server (http://www.redalert.com). This company can provide a valuable safeguard if your monitor goes down or a problem develops that you can't detect from your monitoring computer.

Our Case Study Model: An Introduction Service

The following chapters explore the specific functionality enabled in the Love@1st-site.com Introduction Service. This case study focuses on the key features and elements of the site that will be required by many businesses that attempt to build a community and deliver a service over the Internet for a fee.

The site provides a fee-based subscription service that enables the member to search the member database and to request introductions in a controlled and secure environment. The site effectively uses the Web's capability to provide in-depth information and search features to members who are reviewing other members' profiles.

To aid your understanding of the case study, Table A.1 provides an index of all the ASP pages used and of the overall table layout for the site. The .asp files reside in two directories. The root directory controls the Active Server Pages used for managing the membership communities experience and includes:

Table A.1 Complete List of .asp Files in Root Membership Directory

File Name

Size

Purpose

abandon.asp

82 bytes

Testing tool to abandon Sessions

archive.asp

667 bytes

Frame Set for Archive area

archive_left.asp

2 Kb

Left window of Archive

archive_right.asp

2

Right window of Archive

archive_top.asp

521 bytes

Top window of Archive

billingupdate.asp

4

Billing processing code

billingupdate2.asp

4

Billing processing code

confirm.asp

382 bytes

Confirmation page for New Member sign-up process

confirmactivate.asp

2

Members reactivating

confirmbillupdate.asp

3

Members updating their billing information

confirminactivate.asp

2

Confirmation of taking de-activation for a member

edit3_top.asp

250 bytes

Members editing information

editacct1.asp

6 Kb

Members editing information

editacct1_frame.asp

670 bytes

Members editing information

editacct2.asp

17 Kb

Members editing information

editacct2_frame.asp

683 bytes

Members editing information

editacct3.asp

7 Kb

Members editing information

editacct3_frame.asp

688 bytes

Members editing information

editacct5.asp

8 Kb

Members editing information

editacct5_frame.asp

673 bytes

Members editing information

editacct_bot.asp

599 bytes

Members editing information

editacctupdate.asp

11 Kb

Members editing information Processing

editprofile.asp

730 bytes

Frame set for members editing information

global.asa

1 Kb

Application control routines

inactivate.asp

1 Kb

Initial de-activation page for members

logon.asp

2 Kb

Core logon page

logoncheck.asp

4 Kb

Processing for logon

logonsearch.asp

1 Kb

Alternative search for logon

logonsearchrun.asp

2 Kb

Processing for alternative search for logon

newacct1.asp

4 Kb

New Account sign up process

newacct2.asp

13 Kb

New Account sign up process

newacct3.asp

13 Kb

New Account sign up process

newacct4.asp

5 Kb

New Account sign up process

newacct5.asp

9 Kb

New Account sign up process

newacct6.asp

11 Kb

New Account sign up process

profile.asp

722 bytes

Frame Set for reviewing Member Profile

profile_bot.asp

2 Kb

Bottom of profile review frame

profile_display.asp

9 Kb

Core page of profile review frame

profile_evaluate.asp

3 Kb

Processing page of profile review

profile_process.asp

2 Kb

Processing page of profile review

profile_top.asp

2 Kb

Top of profile review frame

reactivate.asp

728 bytes

Member re-activation process

scan.asp

4 Kb

Page for detailing picture scanning process

scanaction.asp

684 bytes

Page for detailing picture scanning process

search.asp

5 Kb

Criteria selection for search frame

search_top.asp

578 bytes

Top of search frame

searchframe.asp

665 bytes

Frame Set for search criteria

searchrun.asp

8 Kb

Processing for search features

start.asp

657 bytes

Frame set for member after logon

start_left.asp

2 Kb

Left home page for members after logon

start_right.asp

2 Kb

Right home page for members after logon

start_top.asp

769 bytes

Sat Nov 16 12:26:12 1996

validate.asp

596 bytes

Validation include for top of all pages

validatenew.asp

753 bytes

Validation include for top of all New Account sign up pages

The secure administrative area resides in a separate directory, secured by Windows NT's file- and directory-level permissions included in Table A.2.

Table A.2 List of .asp Files in Secure Administrative Directory

File Name

Size

Purpose

adminparamadd.asp

905 bytes

Processing to add parameter

adminparamdetail.asp

1 Kb

Review detail value of parameter

adminparamhead.asp

908 bytes

Top level review of value for parameters

adminparamupdate.asp

1 Kb

Processing to update parameter

adminprofileupdate.asp

1 Kb

Processing to update member profile

adminroute.asp

341 bytes

Router for managing administrative area

adminsearch.asp

3 Kb

Search criteria for finding members

billingtypes.asp

784 bytes

Display billing plans

billingtypesadd.asp

1 Kb

Add new billing plan

billingtypesdetail.asp

1 Kb

View detail of existing billing plan

billingtypesupdate.asp

2 Kb

Update existing billing plan

download.asp

3 Kb

Initiate download to accounting system

referredby.asp

794 bytes

Display top level referral parameters

referredbyadd.asp

691 bytes

Add new referral parameter

referredbydetail.asp

1 Kb

View details of referral parameters

referredbyupdate.asp

1 Kb

Update referral parameter

toggledownload.asp

577 bytes

Process download to accounting system

Finally, the database responsible for enabling the site includes 6 tables. You explore the individual tables and their relationships in more detail as you explore the specific features they enable. For now, the tables include:

The overall table layout and relationships are illustrated in Figure A.1.


Figure A.1

This shows the table layout for database enabling the Introduction Service site.

From Here...

In the following chapters you explore the use of Active Server Pages features and components to implement the features necessary to construct a fee-based subscription service and community on the Web. You will focus on the building of a community and the managing of members Web-based environment, as well as the administrative and billing components of the site.


© 1997, QUE Corporation, an imprint of Macmillan Publishing USA, a Simon and Schuster Company.