New York University

Computer Science Department

Courant Institute of Mathematical Sciences

 

The ColdFusion Integrated Web Development Environment

(ColdFusion Whitepaper Adapted for the Course)

 

Course Title: Application Servers                               Course Number: g22.3033-006

Instructor: Jean-Claude Franchitti                               Session: 3

 


The Web Application Opportunity

A New Platform

Since the first computers came online in the 1940s, each successive “computing platform” has fundamentally changed business operations and introduced new opportunities. Whether it was the shift from mainframe to mini-computers or mini-computers to PCs, those companies that successfully leveraged the new platforms gained a major competitive advantage. Now the emergence of the Web offers new and unprecedented opportunities to the companies and IT organizations ready to meet the challenge.

In the history of the 20th century, no technology has ever been adopted as quickly or as widely as the Web. By 2001, IDC/LINK estimates 550 million people will be connected to the Web. Wide acceptance has already made the Web a mainstream platform for content publishing. The next stage of growth will see the Web become a true business application platform. At the center of this growth will be the deployment of Web application servers.

Beyond any hype, a few simple characteristics make the Web an ideal platform for building business systems: a ubiquitous global network, standards-based infrastructure, and a universal client. As a result of these features of the platform, Web applications can offer a significantly higher return on investment (ROI) than traditional client/server applications or terminal/host applications. According to IDC, businesses are seeing a 240% return on investment from intranet applications, compared to 90% for client/server applications.


Benefits of the Web Platform

·         Ubiquitous Global Network - Built on TCP/IP networks from intranets to the Internet, the Web offers the first platform that is universally accessible from the data center to the desktop to the network device. Very soon, every computer, server, and device will be networked, and applications will easily connect users across departments, companies, and continents.

·               Standards-Based Infrastructure - The Web is the first large-scale platform built entirely on industry standards. This new wave of “open computing” promises a level of interoperability and extensibility that was unheard of with previous platforms. It means systems can be built that connect with a wide range of new and legacy technologies¾never locking IT organizations into the whims of a single vendor.

·               Universal Client - Finally, the Web browser offers a true universal client for network applications. With the adoption of this client, development groups can create and deliver applications with rich graphical user interfaces without installing new software on the desktop¾radically reducing the cost of application deployment and maintenance. At the same time, the browser enables a content-rich, intuitive user interface that eliminates the need for expensive end-user training.


New Applications

Like other platform shifts, the emergence of the Web has opened the door for a new type of application that better serves the needs of online commerce, business information systems, and collaborative computing. These new systems unite content, transactions, and personalization to solve a wide array of intractable business problems that were impossible or impractical to tackle with traditional client/server systems.

With this new generation of Web applications, corporations can gain competitive advantage, introduce new services, and transform the ways they interact with employees, customers, suppliers, investors, and partners.

Delivered in a browser, Web applications combine rich multimedia information with backend database, messaging, and commerce systems in an environment that is personalized for each user. Tens of thousands of these Web applications have already been built with Allaireä ColdFusion® to handle everything from e-commerce to business process automation to dynamic information publishing on intranets, extranets, and the Internet.

 


Major Application Categories

·         E-Commerce - Business-to-business and business-to-consumer Web applications combine useful information, personalized service, and the ability to purchase products. For example, Autobytel.com offers a complete online shopping experience for auto buyers that combines comprehensive information services with a direct connection to dealers to get quotes and purchase cars.

·         Business Information Systems - Thousands of companies have built powerful intranet applications with ColdFusion that range from project management systems to human resource automation and supply chain management.

·         Dynamic Content Publishing - The Web is a proven medium for information publishing, but with the addition of an application server, it is possible to organize, manage, and deliver content dynamically. SmartMoney Interactive is an example of a personal financial information service driven entirely by ColdFusion.


Web Application Servers

Delivering Web applications requires a Web application server in addition to the HTTP server used for static sites. Web application servers provide both the development tools and runtime platform for developing and delivering applications on the Web. Typically, application servers offer a range of services, including security and state management, as well as database connectivity and other server technologies. Advanced servers also typically provide features, such as native support for load balancing and failover, interactive debugging, and integration with distributed object standards.

During the last twelve months, the application server market has expanded and matured, as server-centric applications have become more important. In fact, there is such a variety of different types of application servers that many companies find they need to choose a number of different servers to handle all their needs.

One of the key ways that servers are differentiated is in the approach to application development. One approach uses a programming environment that requires applications to be coded entirely in system programming language, then compiled and deployed. The other major approach is an environment based on pages. In this approach, the applications are a collection of pages, like a Web site, but with embedded server-side scripts. Page-based applications often leverage business objects created with COM, CORBA, or EJB in addition to the application pages.

ColdFusion takes the second approach, and as such it is ideally suited to rapid development, Web-centric applications, and high scalability. This is a proven approach that is relatively easy to learn, use, and maintain, but offers a high degree of reliability and sophistication for complex, transaction-intensive systems.


New Development Challenges

All the new opportunities created by the Web bring new challenges to IT organizations building the applications. Choosing the right technology to overcome these challenges is critical to the success of any Web application development project. Four major challenges prevent development teams from achieving their development objectives.

·         Increased Demand for Productivity - The combination of increasing demand, compressed development cycles, and a shortage of developers has significantly increased the demand for development productivity. With the opportunities created by new Web applications, demand is sky-rocketing within companies, and developers and IT managers are struggling to keep up. According to a Cutter Information Group study, 72% of Web applications have a development cycle of six months or less and 14% have a cycle of less than a month. Currently, there are more than 150,000 unfilled IT jobs in the United States alone, and the shortage of qualified developers is being felt worldwide.

·         Large User Volume - Because a Web application can be inexpensively deployed across a corporate enterprise or even on the Internet, end-user volume can be very large and unpredictable. As a result, Web application servers must be able to easily and affordably scale to handle any level of demand. Moreover, in the Internet economy, “Server Busy” means “Out of Business,” so Web applications must deliver high availability.

·         Technology Chaos - Development groups building Web applications must contend with a wide array of new technologies and standards. At the same time, they usually integrate with existing enterprise and legacy technologies. So Web application servers need to provide flexible facilities for quickly and easily integrating with existing technologies and incorporating new technologies as they emerge.

·         New Security Risks - The global network is a double-edge sword when it comes to security. While the access enables new applications and better connectivity, it creates new security risks. Application servers must address these risks during both development and deployment.

 

Now in its fourth major release, ColdFusion has helped thousands of development teams successfully meet the four major challenges to Web application development.

ColdFusion 4.5 Product Overview

General Description

First released in 1995, ColdFusion has become the leading cross-platform Web application server. ColdFusion was the first Web application server on Windows NT, and as a pioneer in the application server market, ColdFusion has established a broad base of support with thousands of customers from small consulting groups to multinational corporations. Used by almost half of the Fortune 500, ColdFusion provides the fastest way to develop and deliver scalable enterprise and e-commerce applications.

The ColdFusion Web application server includes all the technology that development teams need to quickly create and deliver open, scalable applications. The application server includes a powerful server, an integrated development environment (IDE), remote administration tools, and extensions that can connect to new technologies, legacy systems, or business logic.

The latest release enhances development productivity, scalability, integration, and security. New features include interactive Javaä integration, XML parsing, service level failover, and operating system security integration. ColdFusion 4.5 maintains a commitment to rapid development and ease of use, while adding advanced functionality to support complex, transaction-intensive, large-volume applications.


ColdFusion 4.5 Application Server Components

 

·   ColdFusion Server – A high-performance, scalable, open platform for delivering Web applications that range from simple database- driven pages to full e-commerce solutions on intranets, extranets and the Internet. (Licensed separately.)

·   ColdFusion Studio – An integrated development environment with an array of highly productive visual tools for creating ColdFusion applications, including the award- winning Allaire HomeSite® HTML editor. (Licensed separately.)

·   ColdFusion Administrator – A complete management console for application, application server, and server cluster administration. (Included with ColdFusion Server.)

·   ColdFusion Extensions (CFX) – An open XML-based framework for extending ColdFusion with new server components and connectivity to enterprise systems using COM, CORBA, EJB, C/C++, VBScript, JavaScript, or CFML. (Technology included with ColdFusion Server and ColdFusion Studio.)

 


Meeting the Development Challenges

ColdFusion was designed from the ground up to leverage the unique characteristics of the Web platform. It gives IT organizations the technology to overcome development challenges and build a new generation of business systems for online commerce, process automation, information publishing, and an array of other applications.

Rapid Development

Meeting the challenge of increased demand for productivity, ColdFusion includes a range of innovative technologies for rapid Web application development.

Integrated Development Environment

ColdFusion optimizes developer productivity with a complete rapid application development (RAD) environment that includes visual programming, database, and debugging tools. Based on the award-winning HTML authoring technology in Allaire HomeSite, ColdFusion Studio provides a suite of visual tools specifically designed to enhance application development.

Team Development Services

ColdFusion enables team development in large projects with developers and servers distributed across multiple locations. ColdFusion Studio supports advanced project management and source control integration. Based on user accounts, ColdFusion Studio clients can access databases and files on remote ColdFusion Servers via HTTP with SSL encryption, so team development against hosted servers is straightforward to configure and manage.

Tag-Based Server Scripting

ColdFusion uses a powerful, comprehensive server-side scripting environment with an easy-to-learn, tag-based syntax that cleanly integrates with HTML and Extensible Markup Language (XML). The ColdFusion Markup Language (CFML) creates a complete environment for building page-based applications that use COM, CORBA, or EJB components.

Scalable Deployment

Answering the need to handle large volumes of users, ColdFusion delivers applications that can scale to handle the most demanding Internet or intranet sites.

High-Performance Application Delivery

ColdFusion Server runs as a high-performance multithreaded service. Advanced features such as just-in-time page compilation and database connection caching, make ColdFusion an effective platform for delivering high-performance Web applications.

Server Clustering

ColdFusion Server offers native support for deploying multiserver clusters with dynamic load balancing and automatic server failover. ColdFusion clusters can easily integrate with Cisco Local Director for very large-volume deployments. Clusters give ColdFusion the ability to scale to meet the needs of the most demanding sites.

Flexible Server Administration

ColdFusion includes a browser-based administrator for the server and Windows management console for clusters. ColdFusion Server publishes important real-time performance statistics and a number of logs that support the process of server tuning and management. All of the administrative tools can be deployed remotely.

Open Integration

Overcoming the challenges created by technology chaos in the Internet market, ColdFusion tightly integrates with critical Internet and enterprise technologies across platforms to enhance development productivity.

Advanced Database Connectivity

ColdFusion offers the most advanced database development features available for creating robust database applications. The application server supports connectivity through ODBC, OLE DB, and native database drivers. Remote database development tools make building queries and database applications quick and easy.

Internet Technology Integration

ColdFusion 4.5 is tightly integrated with the full range of Internet protocols and technologies, which makes using these technologies in applications straightforward . The application server includes native integration with email servers, directories, file servers, distributed Web servers, and object middleware, including COM , CORBA, and EJB. Extensions are available to connect to popular online payment servers and other technologies.

Enterprise Extensibility

ColdFusion is extensible with a wide range of technologies, including enterprise object standards, to support new functionality or connect to legacy systems. New components can be built with COM, CORBA, EJB, C/C++, and CFML.

Complete Security

ColdFusion provides security on every level from development through deployment, thus accelerating the process of creating and delivering applications.

Secure Development

ColdFusion team development services provide the infrastructure for secure remote development across intranets and extranets. With the ColdFusion Remote Development Services, server administrators can create developer accounts using existing NOS authentication. Then developers can access files and databases through ColdFusion Studio over HTTP.

Secure Deployment

ColdFusion provides a complete set of services for developing and delivering highly secure applications on intranets, extranets, and the Internet. Server administrators can control security at runtime and developers can leverage the security services for authentication and access control within applications. Using server sandbox security, companies can safely host multiple applications on the same server.

ColdFusion Technical Overview

Development Architecture

Using visual database and programming tools in ColdFusion Studio, developers create applications by building pages that combine the ColdFusion tag-based, server scripting language, the ColdFusion Markup Language (CFML), with HTML and other Web technologies. The applications are then delivered with ColdFusion Server.

ColdFusion Studio includes the complete array of visual tools for building applications. The basic editor is based on the award- winning HTML authoring tool, Allaire HomeSite. This editor supports visual page layout, color-coded editing, sophisticated find and replace, and a host of other productivity-enhancing features. In addition to the basic editor, ColdFusion Studio includes visual database tools, integration with source control, support for remote development, and an interactive debugger.


Each copy of ColdFusion Studio includes a single-user version of ColdFusion Server for individual developers to create applications at their desktops. However, since most ColdFusion development projects are done in a team environment, ColdFusion supports a set of team development services that offer remote development against a ColdFusion Server configured for development.

Unlike Web development systems based on legacy client/server technology, ColdFusion uses a unique, Web-centric application architecture. Like a static Web site, a ColdFusion application is a collection of pages and components. But unlike a static Web site, the pages in a ColdFusion application are scripted with a tag-based server scripting language, CFML.

Written in ColdFusion Studio, and entirely processed on the server, CFML controls application logic, backend integration, and dynamic page generation. Its tag-based syntax makes it the ideal environment for building applications that use HTML and XML as well as other Web standards. With more than 60 tags and 200 functions, CFML is the most advanced language available for server-side Web application scripting.

Text Box: Fig. 4 - Example of a simple CFML page and the dynamically generated HTML returned to the browser New developers will find CFML’s clean syntax and tight integration with HTML easy to learn and use. At the same time, experienced developers will be able to take advantage of the productivity gain as well as the advanced features like structured exception handling, regular expressions, and easy extensibility with COM, CORBA, and C/C++.

 


Deployment Architecture

ColdFusion Web applications are delivered with ColdFusion Server. When a page in a ColdFusion application is requested by a browser, ColdFusion Server processes the CFML, interacts with backend systems, and dynamically generates a Web page that is returned to the browser. The diagram below shows how ColdFusion works when a Web browser invokes a ColdFusion page.

 


Fig. 5 - ColdFusion application processing

1.        When a user clicks a “Submit” button on a form or a hypertext link on a page, the user’s Web browser sends an HTTP request to the Web server via the Internet or an intranet.

2.        The Web server passes the data submitted by the client and the appropriate page to ColdFusion Server through a server API.

3.        ColdFusion reads the data from the client and processes the CFML in the page. Based on the CFML, the server interacts with database servers, the file system, SMTP servers, and potentially other applications and extensions through the ColdFusion API or through COM/DCOM.

4.        ColdFusion dynamically generates an HTML Web page that is returned to the Web server.

5.        The Web server returns the HTML page to the user’s browser.

 

ColdFusion Server provides all of the necessary functionality for delivering Web applications. Each server includes a number of different services that handle page processing, security, state management, connection management, and a variety of other functions. Because the application server provides this technology, developers can focus on the problem of creating applications and easily take advantage of all the functionality already provided by the server.

 

 

 

 

 

 

 

 

 



Deploying Clusters


ColdFusion Server offers native support for deploying applications in a clustered environment. A typical cluster deployment might use three to ten production servers to offer greater performance and availability for large-scale e-commerce or enterprise applications.

When ColdFusion is deployed in a clustered environment, end user requests are automatically distributed to the optimal server in the cluster based on load. If the ColdFusion service on any of the servers fails or hangs, users will automatically be re-directed to another server in the cluster. If any physical server in the cluster fails, another server will automatically take over the IP address of the failed server, handling any new inbound requests and giving end users high availability.

Unlike other cluster technologies, a ColdFusion cluster has no single point of failure. Any machine in the cluster can handle load balancing and failover. Also, ColdFusion uses smart clusters, so every machine in the cluster is aware of the load being placed on the other ColdFusion Servers. As a result, load balancing is optimized to deliver the very best performance at the lowest cost. Finally, extending a ColdFusion cluster is as simple as adding a new server, and there is no limit to the number of servers a cluster will support.

 

 

Conclusion

As the Web becomes a new platform for network applications, the days when a business could simply post static pages and be confident it was seizing the opportunity are gone. Making the most of the new platform demands that companies take their development to the next level with sophisticated Web applications.

For the companies adopting the platform, the new generation of Web applications is already delivering a massive return on investment. Thousands of firms are successfully creating e-commerce systems that link to customers, suppliers, and partners as well as new business information systems for every area of the business from human resources to global project management.

To seize the opportunity and meet the challenges posed by the new development efforts, leading companies are choosing to use Web application servers that provide a foundation for development and deployment. Among these, ColdFusion is a proven leader¾delivering the speed, scalability, openness, and security that development teams need to excel in a Net-paced world.