CLOUD14

Building Windows-Based Applications for the Internet Age

 

October 1998
Updated April 1999

Contents

Introduction
Cooperating Components
Client Environments and Presentation Tier
Application Services
Web Services
Component Services
Interoperating with Existing Systems, Applications and Data
Messaging Services
Extending to the Mainframe Transaction Processing World
Microsoft Application Server Technologies
Universal Data Access
Conclusion


Introduction

Both small and large companies have been building robust applications for personal computers that continue to be more powerful and available at a lower cost. While these applications are being used by millions of users each day, new forces are having a profound effect on the way in which software developers build applications today and the platforms on which they develop and deploy their applications.

The increased presence of Internet technologies enables global sharing of information between small and large businesses and individuals as well. The Internet has sparked a new creativity, resulting in new businesses popping up overnight, running 24 hours a day, seven days a week. Competition and the increased pace of change are putting increasing demands for an application platform that enables application developers to build and rapidly deploy highly adaptive applications to gain strategic advantage.

It is now possible to think of these new Internet applications as needing to handle literally millions of users—a feat difficult to imagine just a few years ago. As a result, applications need to deal with user volumes of this scale, be capable of reliable 24-hour-a-day operation and be flexible enough to meet changing business needs. The platform that underlies these types of applications must also provide a coherent model along with a set of infrastructure and prebuilt services for enabling development and management.

Figure 1

Figure 1. Windows DNA

The Microsoft® application platform consists of a multitiered model called Windows Distributed interNet Applications (Windows DNA) (Figure 1) and a comprehensive set of infrastructure and application services. Windows DNA unifies the best of the services available on personal computers, application servers and mainframes, the benefits inherent in client-server computing and the best of Internet technologies around a common, component-based application architecture. The guiding principles of Windows DNA are:

  • Internet ready. Develop solutions that fully exploit the application platform's flexibility and the Internet's global reach and on-demand communication capabilities.
  • Faster time to market. Develop and deploy solutions rapidly without requiring developer reeducation or a paradigm shift in how software is built. Expose services and functionality through the underlying "plumbing" to reduce the amount of code developers must write.
  • True interoperability. Build interoperability into all tiers so functionality can be added to existing systems. Adhere to open protocols and standards so other vendor solutions can be integrated.
  • Reduced complexity. Integrate key services directly into the operating system and expose them in a unified way through the components. Reduce the need for IT professionals to function as system integrators so they can focus on solving business problems.
  • Language, tool and hardware independence. Provide a language-neutral component model so that developers can use task-appropriate tools. Build on the PC model of computing, wherein customers can deploy solutions on widely available hardware.
  • Lower the total cost of ownership. Develop applications that are easy to deploy, manage and change over time.

Given the proper underlying infrastructure, the multitier model of presentation, business logic and data can physically distribute processing over many computers. However, the core abstractions that have worked for single- and two-tier models in the past—high-level programming languages, database management systems and graphical user interfaces—do not fully address the requirements of a multitier application development. A different level of abstraction is needed to develop scalable, manageable and maintainable multiuser applications, and Microsoft believes this abstraction is cooperating components.

UpBack to contents

Cooperating Components

The Windows DNA strategy rests on Microsoft's vision of cooperating components, which are built based on the binary standard called the Component Object Model (COM). COM is the most widely used component software model in the world and is available on over 150 million desktops and servers. It provides the richest set of integrated services, the widest choice of easy-to-use tools, and the largest set of available applications. In addition, it provides the only currently viable customer segment for reusable, off-the-shelf, client and server components.

COM enables software developers to build applications from binary software components that can be deployed at any tier of the application model. These components provide support for packaging, partitioning and distributed application functionality. COM enables applications to be developed with components by encapsulating any type of code or application functionality, such as a user interface control or line of business object. A component may have one or more interfaces; each exposes a set of methods and properties that can be queried and set by other components and applications. For example, a customer component might expose various properties such as name, address and telephone number.

With the Microsoft Windows DNA model, components eliminate the complexity of building multitier applications. Applications based on components and the Windows DNA model rely on a common set of infrastructure and networking services provided in the Windows® operating system platform. The Windows NT® operating system security service, for example, provides access control to Internet Information Server (IIS) software, as well as transaction and message queuing services. Other common services include systems management, directory services, networking and hardware support.

UpBack to contents

Client Environments and Presentation Tier

Today many application developers using cooperating components target the development of their applications to the Windows platform to take full advantage of its rich user interface. Likewise, customers have come to expect a rich, highly functional user interface from their applications. The extended reach of information and services to customers enabled by the Internet has created a new challenge for the application developer. Application developers must develop a user interface that is distributable, available on Windows and non-Windows-based platforms and supports a wide range of client environments, from handheld wireless devices to high-end workstations. Yet, applications must be rich with features to stay competitive and maintain the functionality that customers have come to expect.

Figure 2

Figure 2. Windows DNA Presentation Services

Figure 2 shows that Windows DNA offers a broad range of presentation services, giving application developers a choice for developing the best solution. Windows DNA permits developers to choose the appropriate Windows-based components and Internet technologies to support the richest possible interface and range of client environments, from handheld wireless devices to high-end workstations.

To maintain broad reach to a wide range of client environments while achieving the greatest compatibility with all browsers, application developers will generally use standard HTML in developing their browser-neutral applications. Microsoft tools and application services support the current generation of standard HTML.

The compromise in using static HTML is the reduced functionality and richness in an application's user interface that customers expect. This is fine for some applications because they require broad reach and browser neutrality.

There is a class of applications that doesn't have a browser-neutrality requirement. The reality is that many corporations standardize on a single browser. In addition, application developers who want to provide more functionality in their application than they can achieve with standard HTML write code to determine the browser being used. These browser-enhanced applications are written to take advantage of the technologies inherent in the browser to gain maximum functionality and richness. With technologies like Dynamic HTML and scripting, application developers can create actions with functional Web-based interfaces for data entry or reporting without using custom controls or applets.

Dynamic HTML is based on the W3C-standard Document Object Model, which makes all Web page elements programmable objects. Dynamic HTML can be likened to a "programmable" HTML. Contents of the HTML document, including style and positioning information, can be modified dynamically by script code embedded in the page. Thus scripts can change the style, content and structure of a Web page without having to refresh the Web page from the Web server. By doing so, the client does not have to repeatedly return to the Web server for changes in display, resulting in increased network performance. Unlike Java applets or ActiveX® Controls, Dynamic HTML has no dependencies on the underlying virtual machine or operating system. For clients without Dynamic HTML support, the content appears in a gracefully degraded form.

There are times when Dynamic HTML with scripting is not enough. Segments of applications need to utilize the operating system and underlying machine upon which it is hosted, while still maintaining an active connection to the Internet for data or additional services. In such instances the application developer can take advantage of the components and Internet services provided by Windows to build more robust applications. Unlike page-based applications that are run within the context of a browser, these applications are full-fledged Windows Executables with full access to the broad range of services provided by the Windows client. These applications generally use a combination of HTML, Dynamic HTML, scripting, and ActiveX Controls to provide rich integration with the client system as well as full connectivity to remote services on the Internet.

Applications written using the Win32® API offer the most functionality but are limited to application platforms that support the Win32 API. Through the use of cooperating components, developers can access Internet technologies in the Windows application platform from within a Win32-based application. Some common examples are Microsoft Office 97 and the Visual Studio® 98 development system. These applications support unified browsing by embedding hyperlinks from within the application, host the browser for the display of documentation written in Dynamic HTML and provide the capability to download updates to the products over the Internet seamlessly.

UpBack to contents

Application Services

Figure 3

Figure 3. Application Services

The business logic tier is where the application-specific processing and business rules are maintained. Business logic placed in components bridges the client environments and the data tiers. The Windows DNA application platform has been developed through years of innovation around supporting high-volume, transactional, large-scale application deployments and provides a powerful run-time environment for hosting business logic components. Figure 3 shows that the application platform for developing Windows DNA-based applications includes Web services, messaging services and component services.

UpBack to contents

Web Services

Integrated with Microsoft's application platform is a high-performance gateway to the presentation tier. Microsoft's Internet Information Server (IIS) enables the development of Web-based business applications that can be extended over the Internet or deployed over corporate intranets. With Internet Information Server, Microsoft has introduced a new paradigm to the Internet—transactional applications. Transactions are the "plumbing" that makes it possible to run real business applications with rapid development, easy scalability and reliability.

Active Server Pages (ASP), an Internet Information Server technology, is the language-neutral, compile-free, server-side scripting environment used to create and run dynamic, interactive Web server applications. By combining Dynamic HTML, scripting and components, ASP enables application developers to create dynamic interactive Web content and powerful Web-based applications.

With the trend toward distributed computing in enterprise environments, it is important to have flexible and reliable communication among applications. Businesses often require independent applications that are running on different systems to communicate with each other and exchange messages even though the applications may not be running at the same time. Applications built using a combination of Active Server Pages scripts communicating with cooperating components can interoperate with existing systems, applications and data.

UpBack to contents

Component Services

In the early 1990s, componentization was the underlying concept that facilitated interoperability; the underlying technology that enabled interoperability was Microsoft's Component Object Model (COM). Componentization is a great way to achieve interoperability and design and develop software in general. So in the mid-1990s, Microsoft broadened COM's applicability beyond the desktop application to also include distributed applications by introducing Microsoft Transaction Server (MTS) technology. MTS was an extension to the COM programming model that provided services for the development, deployment and management of component-based distributed applications. MTS was a foundation of application platform services that facilitated the development of distributed applications for the Windows platform more simply and cost-effectively than other alternatives.

The COM+ services to be delivered in Windows 2000 are the next evolutionary step of COM and MTS. The consolidation of these two programming models makes it easier to develop distributed applications by unifying the development, deployment, debugging and maintenance of an application that relies on COM for certain services and MTS for others. The benefit to application developers is making it faster, easier and ultimately cheaper to develop distributed applications by reducing the amount of code required to utilize underlying system services.

To continue to broaden the COM services offered today, COM+ services include both new and enhanced features for the application platform, including the following:

  • Bring your own transaction. COM components can participate in transactions managed by non-COM+ transaction processing (TP) environments that support the Transaction Internet Protocol (TIP).
  • Load balancing. Component-based applications can distribute their workload across an application cluster in a client-transparent manner.
  • In-memory database. Consistent durable state information and transient state information can be maintained in a consistent manner. The in-memory database is an in-memory, fully transactional database system designed to provide extremely fast access to data on the computer in which it resides.
  • Queued components. Asynchronous deferred execution is possible when cooperating components are disconnected. This is in addition to the session-based, synchronous client/server-programming model, where the client maintains a logical connection to the server.
  • Event notification. A loosely coupled event notification mechanism can be used. COM+ Events is a unicast and multicast, publish and subscribe event mechanism that allows multiple clients to "subscribe" to events that are "published" by various servers. This is in addition to the event notification framework delivered with connection points.
  • Expanded security. Support is available for both role-based security as well as process access permissions security. In the role-based security model, access to various parts of an application is granted or denied based on the logical group or role that the caller has been assigned to (e.g., administrator, full-time employee, part-time employee). COM+ expands on the current implementation of role-based security by including method-level security for both custom and IDispatch(Ex)-based interfaces.
  • Centralized administration. The Component Services Explorer, a replacement for today's MTS Explorer and Distributed COM Configuration (DCOMCNFG), presents a unified administrative model, making it easier to deploy, manage and monitor n-tiered applications by eliminating the overhead of using numerous individual administration tools.

UpBack to contents

Interoperating with Existing Systems, Applications and Data

As companies extend to embrace the Internet, offering new services and making information more readily available to its customers, partners and employees, application architectures should provide the necessary means to extend inside the corporation to existing applications and data. Some software vendors have advocated that by wrapping existing applications and data in a common component model in one language that runs all platforms, interoperability between applications and data can be achieved. These lofty goals that the industry has been promised over the past 30 years have failed to materialize. Microsoft's approach has been to reach out to existing applications and data on other platforms without disturbing the platform on which the application or data resides. Microsoft's application platform enables application developers to interoperate with applications and data through the use of messaging services, the COM Transaction Integrator and through a framework called Universal Data Access.

UpBack to contents

Messaging Services

Microsoft Message Queue Server (MSMQ) provides loosely coupled and reliable network communications services based on a messaging queuing model. MSMQ makes it easy to integrate applications, by implementing a push-style business event delivery environment between applications, and build reliable applications that work over unreliable but cost-effective networks. The simple application based on the Component Object Model lets developers focus on business logic, not sophisticated communications programming. MSMQ also offers seamless interoperability with other message queuing products, such as IBM's MQSeries, through products available from ISVs.

UpBack to contents

Extending to the Mainframe Transaction Processing World

Using Microsoft's COM Transaction Integrator (TI), application developers can extend and expose Customer Information Control System (CICS) and Information Management System (IMS) transaction programs through the use of COM components. COM Transaction Integrator consists of a set of development tools and run-time services that automatically "wrap" IBM mainframe transaction and business logic as COM components that run in a Windows DNA environment. All COM TI processing is done on a Windows NT Server; host communication is accomplished through the SNA Server . There are no COM TI-specific mainframe programming issues and no COM TI executables running on the mainframe.

UpBack to contents

Microsoft Application Server Technologies

Application servers contain common features such as support for building Web-based applications, support for transactions and message queuing, a unifying component model, database connection pooling, and load balancing. These building blocks of Microsoft Windows DNA are supported by the Microsoft Windows NT Server.

Application server technologies support the creation of robust, scalable server applications, which are accessible from browser and nonbrowser clients, and include the following:

  • Microsoft Transaction Server. A rich set of integrated services that makes it easy to build scalable, transactional, server-side components and applications.
  • Active Server Pages. A server-side scripting technology that makes it easy to build Web pages that are both dynamic and interactive.
  • Microsoft Internet Information Server. Web server software, integrated with MTS and Active Server Pages that simplifies development on the Web.
  • Microsoft Message Queue Server. A flexible, reliable approach to communication that allows an application to send a message to another application without waiting for a response.
  • Microsoft Component Object Model. A mature foundation for creating distributed applications built from components.

The Microsoft application server provides these benefits:

  • The most complete set of integrated services and tools on the market for building enterprise applications
  • Widely used, mature technologies, which provide language choice and a unified component model
  • Lower cost of ownership, driven by lower cost of integration and strong interoperability

UpBack to contents

Universal Data Access

Universal Data Access is Microsoft's strategy for providing access to information across the enterprise. Today, companies building database solutions face a number of challenges as they seek to gain maximum business advantage from the data and information distributed throughout their corporations. Universal Data Access provides high-performance access to a variety of information sources, including relational and nonrelational data, and an easy-to-use programming interface that is tool and language independent.

Universal Data Access does not require expensive and time-consuming movement of data into a single data store or commitment to a single vendor's products. Universal Data Access is based on open industry specifications with broad industry support and works with all major established database platforms.

Figure 4

Figure 4. Data Access

Figure 4 shows how the Universal Data Access-based framework operates at two levels. At the systems level, OLE DB defines a component-based architecture specified as a set of COM-based interfaces that encapsulate various database management system services. The OLE DB architecture does not constrain the nature of the data source; as a result, Microsoft and ISVs have introduced providers for a wide variety of indexed sequential files, groupware products and desktop products. At the application level, ActiveX Data Objects (ADO) provides a high-level interface to enable developers to access data from any programming language. Across every level, Extensible Markup Language (XML) lets developers describe, deliver and exchange structured data between a range of applications to clients for local display and manipulation. XML also facilitates the transfer of structured data between servers.

UpBack to contents

Conclusion

The Microsoft Windows DNA architecture and the Windows NT platform offer many distinct advantages to customers and ISVs:

  • They provide a comprehensive and integrated platform for distributed applications, freeing developers from the burden of building the required infrastructure or assembling it piecemeal.
  • They easily interoperate with existing enterprise applications and legacy systems to extend current investments.
  • They make it fast and easy to build distributed applications by providing a pervasive component model, extensive prebuilt application services and a wide choice of programming language and tools support.

UpBack to contents


The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This document is for informational purposes only. Microsoft makes no warranties, express or implied, in this document.

 

 
  © 1999 Microsoft Corporation. All rights reserved. Terms of Use.

 

sqCLOUD26 sqCLOUD4