## Web-based Database Publishing

### Anil K. Desai

Sprint Paranet, Inc.
9430 Research Blvd., Suite 400
Austin, TX 78759
Phone: (512) 343-4526
Fax: (512) 343-4516
E-mail: Akdesai@sprintparanet.com

Introduction

The timely and useful dissemination of information has been the challenge of the information technology industry since it’s inception: People require convenient and easy methods to find the information they need, when they want it. Furthermore, this must be achieved cost-effectively and in a manner that provides the quickest turn-around. Indeed, the purpose of information technology is to leverage knowledge in allowing an organization to act and react to changing markets. To this end, new and innovative methods of publishing information have become available.

Corporate software developers face several challenges, not the least of which is managing technology. How can client application interfaces remain consistent between applications? How can we support a broad range of different platforms with minimum development time? What’s the best way to design program code that’s portable and modular?

New intranet- and Web-based technologies have answered these very difficult questions, at least in part. This paper will begin with an overview of the technology and a justification of why an organization would want to publish information on a web-based system. In large part, the discussion will focus on a survey of the technology currently available for achieving this end. Specifically, available applications for web publishing, end-user tools, development aides and techniques for generating consistency will be discussed.

Client-Server Applications

Business computing has moved through several stages in past decades. Computing technology was first taken seriously with the development of large central mainframes that were responsible for all processing of data and "dumb terminals" that served as little more than a client interface. As the "personal computer" became more commonplace and more powerful, increased data processing responsibilities were moved to the client side. Today, a balance between these methods is most common – that is, clients are responsible for some data processing. Dedicated servers share the remainder of the load. The term ‘three-tier" architecture refers to 1) The clients, 2) A "presenter" which retrieves and formats data for the clients, and 3) Data storage/resource machines. By using a web server as the "presenter", the system can be client-type independent. Figure 1 illustrates a basic web-based three-tier client-server model. The benefits to this model include the fact that the web server is responsible for creating and maintaining all connections to the database, and that the "back-end" system may be any type of data source.

Figure 1: Web-Based Three-tier Client-Server Architecture

Problems with traditional applications

For the sake of this paper, a "traditional" application is one that is written in some programming language and is compiled separately for supported client types. It is then deployed to the various clients via some installation method. Though this definition is somewhat vague, it is intended to cover the many different types of applications developed. There are several problems with developing applications in this manner:

- Lack of consistency: Each new application brings with it a different interface to learn. Programmers use their own documentation conventions, abbreviations and keyboard shortcuts. All of this leads to frustration for new users and increased training time.
- "Monolithic" code: Often, when some part of an application has to be changed, the entire program must be recompiled for each client type and redeployed to all affected users. This makes client applications less reactive to changes in business needs.
- Inconvenient security implementations: Older applications include their own security databases, and it is not uncommon for users to have to logon in to many different programs at the start of each day. Maintaining these lists of users and passwords is very difficult when several programs are supported.
- Long/inefficient development cycles: When new applications are needed, programmers often start from scratch, developing their own components and database constructs – essentially, reinventing the wheel.

Why Publish Data on an Intranet?

What makes a good application? Clearly, metrics such as performance and ease-of-use can quantify the quality of a program. Software developers will attest to the fact that a powerful yet usable user interface is also very important. Finally, most applications must continue to evolve in response to business needs.

Among the major benefits of accessing data via a web-based system are the following:

- Usability: The existence of an application can hardly be justified if it’s use is cumbersome and it’s results are inaccurate. Web-based client-server applications allow users to utilize a familiar program – the browser, while taking advantage of unique features of the application itself. Intranet pages take a very visual approach and users will not be forced to memorize a large number of custom keystrokes for accomplishing simple tasks.
- Consistency: Users can expect a consistent user interface for all applications. This will serve to decrease end-user-training time and will allow developers to work within a well-developed framework.
- Increased responsiveness: Companies can quickly and easily deploy information on a continual basis instead of through the traditional "point releases" accompanied by a scheduled deployment. With effective content management, web-based interfaces can respond and evolve much more quickly than traditional compiled programs.
- Performance: The true information processing of web-based applications is done through "back-end" code. The database queries and information access techniques can be modified independently of the client front-end. Various configurations of load sharing between servers and clients can be tested. This not only allows developers to easily experiment with performance parameters in a production environment, but also provides much quicker turn-around times on performance tuning of the code.
- Flexibility: Web-based code is highly portable because static information such as SQL queries, path names and resource names are not "hard-coded". That is, they can be easily changed on the "back-end" database without rewriting the client software. Furthermore, these benefits will be available instantly for all client types as there is no need to recompile and redeploy an application when these changes are made. As the client front-end is independent of the back-end database processes, performance can be easily optimized based on real-world usage data.
- Modular components: When new functionality is required for an application, there is no need to redesign, recompile and redistribute the application. Instead, new or modified web pages can be added to the existing Intranet site with minimal impact to the existing functionality. It is similarly easy for other applications to borrow code to reduce development time and cost.
- Efficiency: For the purpose of inter-employee communications, web-based publishing has become, in many cases, just as simple as sending e-mail messages to a large group. Furthermore, it helps ensure that information is stored only in one place and that it is always available for reference. A prime use of this technology would be when specific groups provide status information on their projects for the peers who can easily find their progress if needed.
- Accessibility: Remote users and network users alike will be able to access web-based information. Web-based applications are often designed to conserve bandwidth and reduce the amount of data transferred between the client and the server. Users who use applications on many different types of client platforms will get a similar end-user experience.

Web-based security

In the past, proprietary applications used their own security databases. It wasn’t uncommon for a user to start the day by spending several minutes entering passwords for each system she was to use. More modern database applications will allow for pass-through security (i.e., using the same security identifiers as the network operating system). Depending on the type of security desired, web-based connections can be encrypted, and users can be forced to authenticate securely over the web before accessing sensitive information. For example on Microsoft’s Internet Information Server, the following sequence of events will occur when a user attempts to access a web page:

1. The file and network permissions on the data are checked: If anonymous access is allowed, the user is given the data. If it is not,
2. If the client is a 32-bit Windows-based machine and the user has already authenticated, IIS will try to use this information. If this user does not have permissions to access the data,
3. The user is prompted with a dialog box that asks for a username and password that is valid for accessing this information.

Intranet-unfriendly situations

Even the most dedicated web developer will admit that web pages, in their current state, can not address all application issues. There are currently several limitations to web-based application front-ends. Many of these are due to the need for security. For example, Java programs can only operate in their own restricted "Virtual Machine", and certain functions, such as reading or writing from a user’s hard disk, are not possible. Programs that require large amounts of local processing are not appropriate for use as intranet apps. For example, a tool that reads data stored locally on a user’s machine and generates a report based on this data would perform best as a typical compiled program. This is true because of the limited client functionality of the web-based components (such as Java or ActiveX scripts). Similarly, design tools and larger programs the use many customized screens will be easier to use as executable code. Overall, the main benefits of traditional, compiled applications include optimized client-side performance and greater flexibility in interface design.

Uses of web-based applications

Web-based applications need not be limited to the typical client-server business applications users have become accustomed to. With the development of many new publishing tools, creating attractive and useful web pages is within the reach of the average user. For example, with Microsoft’s Personal Web Server and FrontPage Express (both available at no charge for Windows 95 or Windows NT Workstation users), office workers can create and maintain their own home page. Often, people send e-mail for notifying large numbers of people about a specific event. Though this may be appropriate for occurrences that demand immediate attention, it can be annoying for those who are not interested. When working in groups, each team member can post his or her progress on a web page so all others can access this information when they need it. Large companies can set default web pages or use push technology (both described later) for disseminating company-wide information to employees on a daily basis. Finally, the use of web-based technology can greatly reduce the waste of paper in an organization. Using web-based forms instead of paper-based ones can help reduce the risk of mistakes, and increase convenience and efficiency.

Web-based Publishing Tools

This section will cover the contents of a good web-based publisher’s toolbox. Although it is not the intent to provide specific usage information for products, the suggested use and benefits of various applications will be discussed.

HTML Editors

"Static" web pages are those that are written as unchanging documents. They are written in the Hypertext Markup Language (HTML) which includes basic formatting commands in a text file. This information is sent upon request via the HTTP protocol. Client web browsers interpret these files into a graphical display. There are currently many different HTML editors available on the market. Several of these applications are intended for novice end-users and have intuitive user interfaces that work like basic word processors. Good examples in this category are Microsoft’s FrontPage 98 software and HotDog Professional from Sausage Software, Inc.

Dynamic Web Page Editors

Though static HTML pages are sufficient for posting information that does not often change, many business applications require much more power and flexibility. One solution to this demand is the use of dynamic web-page technology. There are currently several different techniques to aid in the creation of attractive and useful web-pages (described in detail later). Popular programs for creating and editing dynamic web pages include Microsoft’s Visual Interdev and Net Objects Fusion.

New Web-Based Technologies

Web Browsers

The overwhelming majority of client computers use either Netscape Navigator or Communicator or Microsoft’s Internet Explorer 3.x or higher. These browsers are now both available for free from their respective companies. Both support Java, HTML 3.2 and web-page caching technology. Both browsers are available as stand-alone products or as part of a "suite" of applications, including e-mail and newsgroup clients. For many users, however, the major difference between Microsoft’s and Netscape’s products are the user interface.

Scripting

Scripting languages are used to create programs that execute on a web server or on a client machine. They allow for performing calculations and providing unique dynamic content to end-users. These pieces of code can be embedded in HTML and are executed upon request on either the client or the server. There are currently several popular types of scripts, including:

CGI (Common Gateway Interface): Though it is an older standard, CGI scripts are based on the PERL language. These applications are supported by almost all web server types but do not allow for many multimedia and advanced programming functions.

JScript/JavaScript: Java was originally designed by Sun Microsystems to be a multi-platform, client-independent language. Code is to be written at a very high-level, and the instructions are to be compiled by the client at the time of use. Java has evolved since it’s original introduction and is now supported by all current Web browsers. The "Java Virtual Machine" is a run-time compiler that executes Java code in a limited environment. Java is best used for simple programs and animations on otherwise static web pages or for database access. For example, a working clock or an animated logo may be implemented via Java. Somewhat more complex applications such as a database front-end may also be designed. JavaScript is the name given by Netscape for the version of Java it supports. Microsoft has dubbed it’s implementation JScript. Currently, major criticisms of this language regard the limited capabilities of the code, poor performance and questions regarding it as an "open standard".

VBScript (Visual Basic Scripting Edition): Microsoft’s VBScript is based on the popular Visual Basic 5.0 programming language. This scripting allows for the use of a subset of functions that are limited for the purpose of security. For example, VBScript applications do not allow file I/O operations on a client computer and cannot call external functions from within the code. Though these restrictions limit VBScript’s power, it can be used to quickly develop multimedia and database-access applications. Another current drawback is that VBScript is currently only supported on Microsoft’s Internet Explorer web browser.

ActiveX

ActiveX was created by Microsoft to ease the sharing of program code between applications and platforms. ActiveX "controls" can be used to create a wide array of multimedia effects for web pages. ActiveX "scripting" can be used for supporting interpreted languages such as Jscript/JavaScript or VBScript. Currently, however, a major drawback of ActiveX components is that only Microsoft’s Internet Explorer browser currently supports them by default. Netscape Navigator and Communicator packages may use third-party ActiveX "plug-ins", however. ActiveX components may be developed based on Microsoft’s popular Visual Basic 5.0 or Visual C++ programming languages. For example, using Visual Basic’s wide array of controls, attractive and functional front-end interfaces can be created with minimal effort.

ODBC and OLEDB

Open Database Connectivity (ODBC) was created for the sole purpose of easing the access of databases by program developers and users. ODBC "drivers" provide a common interface to database applications. An application that executes a SQL query written from Microsoft’s SQL Server should work, unmodified, against an Oracle database (as long as the requested functions are support by both the driver and the database). OLE DB (Object Linking and Embedding for Databases) is a newer and more powerful standard based on Component Object Modeling (COM, described later). It allows developers of data management software to create logically-organized connections to data which can be used by other programmers for accessing their program code. "Data Service Providers" make data from several sources available from within one interface. A typical data service provider may intertwine information from a Human Resources database and combine it with sales performance information. "Data Consumers" can then take advantage of this information easily without regard to the source of the data, it’s storage format or it’s location.

Dynamic HTML

Dynamic HTML (DHTML) is a W3C-approved a specification that includes new functionality not previously available. In addition to supported the HTML 3.2 specification for static pages, DHTML documents can contain absolute positioning information (in three dimensions). It also supports Cascading Style Sheets (CSS) – a technology that allows web developers to create a single template file for defining color and appearance information. If a change in the look of an entire site is desired, the developer must make the change only in a single CSS document. There are currently some issues involved with differing support for DHTML in the most common browser types (from Netscape and Microsoft). For this reason, it is recommended that any developed pages be thoroughly tested on both platforms. DHTML also supports JavaScript and Document Object Modeling (DOM) for hierarchical web page organization.

Active Server Pages (ASP)

Active Server Pages are standard HTML documents that contain special code. ASP technology is most often used for server-side scripting. . These special tags are used to specify to the server that some code execution must be done before the page is sent to the client. The major benefit of this method is that all clients receive only pure HTML documents, thus ensuring compatibility across multiple different platforms. For example, a simple ASP document might have a section that automatically looks up a value in a database (by executing a SQL query on a database) and displays this value to the user every time the page is requested.

Active Server Pages will work on any server that has the Active Server Extensions installed. The "Extensions" are responsible for executing all of the server-side instructions in the document before it is sent to the client. By default, Microsoft’s Internet Information Server installs this code. For other platforms, such as UNIX-based or Netscape Web Servers, the extensions are available from Microsoft.

Component Object Modeling (COM)

With the overwhelming popularity of object-oriented design in programming languages, new methods have been developed for programmers to share code across applications. COM is a Microsoft-developed specification that allows programming "objects" to expose their functionality to other programs. For example, if a COM spell-checker is in use in one application, another program can use these instructions. Distributed Component Object Modeling (DCOM) is designed to be used on networks and the Internet. It allows for applications to share program code on remote machines and distribute processing requirements. Both technologies will be increasingly useful as large corporations start to adopt universal directory services.

Push Technology

The idea of "push technology" is to automatically send web pages and other content to a client at regular intervals. For example, a client may choose to have her browser automatically updated with stock prices several times during the day. Similarly, end-users can be notified of changes to specific corporate information. Several commercial software applications support push technology. Perhaps the most popular is the "PointCast" client software. PointCast provides newsfeeds that are updated many times during the day without direct cost to the user. Commercial content is available free and is supported by an ad-based model. Though the client software is free for personal use, businesses will need to license the Pointcast I-Server to generate their own newsfeeds. Current browsers from Microsoft and Netscape also support push content. Microsoft’s Internet Explorer 4.0 supports "Active Channels", a subscription-based service. When a user "subscribes" to a channel, she may automatically have the browser download the updates and can optionally be notified of updates. Netscape’s Netcaster works in a similar way.

Group Workflow

The power of web-based front-ends has been realized in recent releases of workflow applications such as Lotus Domino and Microsoft Outlook Web Access (included free as part of Microsoft Exchange Server). Both products allow all web-based users to check their e-mail, post schedule information and interact in public and private discussion groups [see Figure 2 and 3]. Because this is web-based, the client type does not matter. For example, as long as a browser supports Java, Outlook Web Access will appear similar for UNIX, Macintosh and Windows-based clients. It also works very well for remote users. Furthermore, there is no need to manage multiple versions of the client software as all program code will reside on the server.

Figure 2: Outlook Web Access for working with E-Mail

Figure 3: Outlook Web Access for calendaring and scheduling

Content Management

In a live, web-based environment it is critically important to make sure that all web developers are working on current code. There must also be a process in place for modifying existing content. Visual Interdev and Visual SourceSafe are products released by Microsoft.

Microsoft Visual SourceSafe

When multiple developers are working on the same pieces of code, it is often difficult to keep track of various revisions. Visual SourceSafe is designed to ease some of these problems. When developers want to edit code, they simply "check out" that piece of the program. They are then free to modify it. While the code is being used by one developer, others may only open the files for viewing. When done with making the modifications, the developer can return the updated code. It is now available in a central location for all team members to view. Visual SourceSafe also provides for version-tracking and gives others the ability to add comments to code. The program is compatible with all current Microsoft development products.

Other Tools and Issues

State Management

HTTP was designed to be a "stateless" protocol – that is, when a user requests a web page, no record about the user’s identity is kept. If the user moves to another page, there is no way to ascertain that it is the same user that has requested this page. In order to provide visitors to a web site a customized experience, state management must maintain the identitiy of the requester. Such technologies as Active Server Pages (described earlier) and the use of Internet "cookies" can aid in this areas. Full-scale applications such as Microsoft’s Site Server and Commerce Server products allow for easily coding much more complicated sites such as an online storefront.

Connection Pooling

ODBC version 3.0 and higher supports connection pooling. There are several performance issues to consider when multiple users choose to access the same database. Connection pooling allows multiple users to share the same database connections without the need to disconnect and reconnect to the database when users leave. This is ideally suited for public web sites where many users will be visiting and leaving the site in a short period of time.

Microsoft’s Transaction Server

Microsoft Transaction Server (MTS) has been developed to ease the development of some of the most complicated portions of web application development. Namely, connection pooling and state management are items that are handled by this software. The major advantage here is that it saves time and performance tuning in code development by allowing the author to compose pages that seem to be written for a single user. MTS handles all of the operations required to make the page available to many users at once.

Microsoft’s Message Queue Server

MSMQ is designed for easily replicating data between applications in remote sites over slow or non-persistent connections. It allows for a storage mechanism for applications to queue information. This data is then sent periodically to other sites or to a central repository at a predetermined interval. MSMQ is very useful for large, distributed networks, or for organizations that have many small remote offices and do not otherwise require expensive, full-time WAN connections.

The Future

Web-based publishing tools, techniques and standards will continue to evolve. Directory Services are becoming a more integral part of business networks as organizations are starting to see the benefits of centralized administration and a more organized view of information technology. Virtual Private Networking has made access between roving clients and remote branch offices much more affordable and easier to implement.

Conclusion

There is an alternative to developing standard applications and work-arounds for many of the problems associated with this model. Client-server architecture has become a very popular standard in the information technology field and those who haven’t already adopted it are working towards that end. Web-based front-ends allow for application flexibility, client-independence, shorter development cycles and consistency for end-users. Overall, this technology can greatly aid people in creating and distributing data. However, web-based publishing should not be seen only as a possible replacement for traditional development techniques. It must also be seen as a way to change the way an organization maintains and distributes its most valuable asset – it’s knowledge.

For Further Information

- Sprint Paranet, Inc. web site (www.sprintparanet.com)

- A good source for technical articles on various topics concerning business management and new information technology best practices. This site includes the text of this paper, available for download.

- SiteBuilder Network (Microsoft): www.microsoft.com/sitebuilder
- This site includes articles, code examples, discussions of current technology and free web tools and downloads for all types of developers.

- Microsoft TechNet or Microsoft’s Knowledge Base (support.microsoft.com):
- General information and troubleshooting data for Microsoft products. Also included are several case studies based on experiences of companies who have developed web-based applications.

- CNet’s ActiveX.com site (www.activex.com) :
- An excellent source for freeware. Shareware and commercial ActiveX controls.

- CNet’s Builder.com site (www.builder.com) :
- Reference information, program reviews and development techniques for web developers.

- 15 Seconds web site (www.15seconds.com):
- A web site devoted to providing an open forum for web developers to share tips and techniques. Included are articles documenting new technologies and their applications.