CLICK ON EITHER SEMINARS OR PROJECTS TO ACCESS IT.



SEMINARS

Windows Distributed interNet Applications (DNA)

ABSTRACT

The Windows Distributed interNet Applications (DNA) architecture, represents a comprehensive new framework for integrating client/server and Internet software solutions on the Windows platform. The goal of the DNA architecture is to integrate the development model for applications so they can harness the power and advanced processing capabilities of today’s computers, yet still take advantage of the flexibility and ease of deployment of the Web.

Microsoft Windows DNA is the application development model for the Windows platform. Windows DNA specifies how to develop robust, scalable, distributed applications using the Windows platform; extend existing data and external applications to support the Internet; and support a wide range of client devices maximizing the reach of an application.

Windows DNA addresses requirements at all tiers of modern distributed applications: presentation, business logic, and data. Windows DNA enables developers to build tightly integrated applications by accessing a rich set of application services in the Windows platform using a wide range of familiar tools, developers are free from the burden of building of assembling the required infrastructure for distributed applications.

Windows DNA enables organizations to build modern, scalable business solutions that improve the flow of information within and without the organization, are dynamic and flexible to change as business needs evolve, can be centrally managed and maintained, and can be easily integrated with existing systems (e.g. HTML, DHTML, VB Script, JAVA Script, VC++, VB, VJ++, Visual FoxPro) and data.

Microsoft Windows DNA is Microsoft’s platform for building a new generation of effective and versatile business applications for the Web, management of PC without having to adjust each user’s PC manually, Dynamic configuration, connection to mobile, internet and intranet transparency.

CHAPTER 1. INTRODUCTION

The Windows Distributed interNet Applications (DNA) architecture, introduced by Microsoft in September 1997, represents a comprehensive new framework for integrating client/server and Internet software solutions on the Windows platform.

Most companies are turning to distributed computing and the Internet to provide users with fast access to information. Windows DNA is a framework for building a new generation of computing solutions that brings together the worlds of personal computing and the Internet. Windows DNA allows organizations to develop cross-platform applications that can access data sources on any server environment including Windows NT, Unix, and Systems Network Architecture (SNA)-based systems.

Windows DNA is based on the premise of software component integration and interoperability. DNA combines “component based” software development with a “service based” operating system. The goal of the DNA architecture is to integrate the development model for applications so they can harness the power and advanced processing capabilities of today’s computers, yet still take advantage of the flexibility and ease of deployment of the Web.

Windows DNA is Microsoft's framework for building a new generation of highly adaptable business solutions that enable companies to fully exploit the benefits of the Digital Nervous System. Windows DNA is the first application architecture to fully embrace and integrate the Internet, client/server, and PC models of computing for a new class of distributed computing solutions. Using the Windows DNA model, customers can build modern, scalable, multitier business applications that can be delivered over any network. Windows DNA applications can improve the flow of information within and without the organization, are dynamic and flexible to change as business needs evolve, and can be easily integrated with existing systems and data. Because Windows DNA applications leverage deeply integrated Windows platform services that work together, organizations can focus on delivering business solutions rather than on being systems integrators.

Windows DNA applications are fundamentally different from most of today’s corporate applications. That’s because Windows DNA lets developers take advantage of Internet, local area network (LAN)-based, and client/server computing-enabling the applications they create to do more at a lower cost.

Windows DNA is a programming model that can improve almost every programmer’s work. It’s not just for developers working on huge corporate applications, it can be used by any programmer developing Windows applications. Windows DNA is often used to enable corporations to develop and deploy high-end distributed applications that integrate and expose services and solutions across their corporate network. But it also provides exciting potential for developers of applications that do not traditionally address the corporate market.

What is Windows DNA?

Windows DNA is not a product but a collection of products and technologies all designed to work together to help one develop robust, scalable, extensible applications. The definition of Windows DNA given by Microsoft is: “Microsoft Windows Distributed interNet Application platform is the application development model for the windows platform.” Windows DNA is an evolving platform that changes to support the evolving needs of windows application developers. In fact, Windows DNA is a platform on which to build applications.

In the evolution process Microsoft came from a desktop personal use past and is now evolving to provide enterprise class operating system, services and applications. Windows DNA helps them move to this new level of service.

With Windows DNA one can focus on solution rather than infrastructer. When application is built using Windows DNA the various components will be able to scale up to meet user demands. Microsoft has built much of the complexity of scaling into the system services and operating system. Thus, one can build transactional scalable systems by focusing on the solution rather than on complexities.

The building blocks Windows DNA are Component Objects (COM), Scripts and Services. Components are the program objects that expose interfaces to methods that can be called to perform units of work. Scripts, typically VB Script, are the interpreted code that is used to orchestrate the interactions between the components. The services are the system level programs that provide things like the script interpretation, resource allocations and the transaction management.

CHAPTER 2 Guiding Principles of Windows DNA

The following principles guided Microsoft in developing the Windows DNA architecture:

Web computing without compromise: Organizations want to create solutions that fully exploit the global reach and "on demand" communication capabilities of the Internet, while empowering end users with the flexibility and control of today's PC applications. In short, they want to take advantage of the Internet without compromising their ability to exploit advances in PC technology.

Interoperability: Organizations want the new applications they build to work with their existing applications and to extend those applications with new functionality. They require solutions that adhere to open protocols and standards so that other vendor solutions can be integrated. They reject approaches that force them to rewrite the legions of applications still in active use today and the thousands still under development.

True integration: In order for organizations to successfully deploy truly scalable and manageable distributed applications, key capabilities such as security, management, transaction monitoring, component services, and directory services need to be developed, tested, and delivered as integral features of the underlying platform. In many other platforms, these critical services are provided as piecemeal, non-integrated offerings often from different vendors, which forces IT professionals to function as system integrators.

Lower cost of ownership: Organizations want to provide their customers with applications that are easier to deploy and manage, and easier to change and evolve over time. They require solutions that do not involve intensive effort and massive resources to deploy into a working environment, and that reduce their cost of ownership both on the desktop and server administration side.

Faster time to market: Organizations want to be able to achieve all of the above while meeting tight application delivery schedules, using mainstream development tools, and without need for massive re-education or a "paradigm shift" in the way they build software.

CHAPTER 3 Introduction to THREE TIERS

Windows DNA is a three tier architecture. They are data, buisness logic and presentation tiers. They are logical not physical tiers-that is they all can run on a single computer or be distributed accross hundreds of computers. The goal is to categorize by functionality the components that will live in each tier.

The components that live in presentation tier are responsible for formating and presenting an interface with the user. This tier will validate entered data to ensure that it meets the requirements to be further processed by the business tier components. The business tier components accept data from the presentation tier and then work with the data tier and system services to enforce business rules. The business tier acts as a gatekeeper between the data tier and the presentation tier. The data tier is responsible for abstracting the data store from the business tier. The data tier also acts to ensure that transactional integrity is maintained.

In the windows development environment, there is nothing that keeps one from having the presentation tier interact with the data tier. Where as in windows DNA this facility is provided. Thus in windows DNA we can design robust and scalable application.

As given in figure, there are two additional elements of windows DNA plateform.

1) system services

2) tools

The system services provide the foundation on top of which the logical tiers are built upon. The tools element is the development languages and the tools that support the development process.

The benefit of developing in three tiers is that one can change components in any of the tiers without having to change the other tiers. Because windows DNA clearly distinguishes the boundries between these tiers the interfaces between the tiers are well defined and thus it is easier to change the internals of each tier.

The presentation services tier is responsible for:

  • Gathering information from the user.
  • Sending the user information to the business services for processing.
  • Receiving the results of the business services processing.
  • Presenting those results to the user.

The business services tier is responsible for:

  • Receiving input from the presentation tier.
  • Interacting with the data services to perform the business operations that the application was designed to automate (for example, income tax preparation, order processing, and so on).
  • Sending the processed results to the presentation tier.

The data services tier is responsible for the:

  • Storage of data.
  • Retrieval of data.
  • Maintenance of data.
  • Integrity of data.

Data services come in a variety of shapes and sizes, including relational database management systems (RDBMSs) like Microsoft SQL Server™, e-mail servers like Microsoft Exchange Server, and file systems like the NTFS File System.

Difference between two tier and three tier:

Figure 1. A three-tiered application is an application whose functionality can be segmented into three logical tiers of functionality: presentation services, business services, and data services.

By contrast, a two-tiered application is an application whose functionality can only be segmented into two logical tiers, presentation services and data services, and while the responsibilities of the data services are the same for two-tiered and three-tiered systems, the responsibilities of the presentation services are not. In a three-tiered application, the presentation services are responsible for gathering information from the user, sending the user information to the business services for processing, receiving the results of the business services processing, and presenting those results to the user. However, the presentation services of a two-tiered application are slightly different. The presentation services of a two-tiered application are responsible for gathering information from the user, interacting with the data services to perform the application's business operations, and presenting the results of those operations to the user.

Figure 2. A two-tiered application is an application whose functionality can only be segmented into two logical tiers of functionality: presentation services and data services.

The differences in the responsibilities of the presentation services for two- and three-tiered applications greatly influence the developer's perspective of the application as a whole. For example, in a two-tiered design the logic that performs the tasks that the application is being designed to automate (for example, income tax preparation, order processing, and so on), which is commonly viewed as "the application," executes wherever the presentation services are located. However, in a three-tiered design "the application" executes wherever the business services are located. Such fundamental differences can lead to all sorts of confusion when discussing three-tiered application concepts with two-tiered application developers or vice versa, which is why it's crucial to understand the fundamental difference in developer perspective associated with two- and three-tiered application designs.

JOURNEY:

Windows DNA is not a product per se; it's an architecture model for developing distributed applications with Microsoft technology.

Thinking in Layers

Since many applications involve a user, it makes sense to group programs and devices that communicate with the user into a logical layer. This layer is called the presentation layer because it presents information to the user. Things you might find in a presentation layer include a Web browser, a terminal, a custom-designed GUI, or even a character-based user interface.

All data-processing applications have a stringent set of rules that govern exactly how data is handled. Since many applications have business rules, they're grouped into a layer called the business logic layer. If you do a good job of designing this layer, you just might be able to use it in more than one place in the presentation layer.

The business logic layer processes logic on data. It depends on the application, where does it store and retrieve this data. It could be a file or a database on the local machine, a remote database, or an application running on another computer. Since there are so many possibilities, it makes sense to group them into the data layer (see Figure 2).

Large application building blocks are grouped by similar concepts into three layers:

The presentation layer physically represents a system to a user.

  • The business logic layer governs exactly how data is manipulated.
        • The data layer persists data.

Figure 2: App Layers

The value in breaking down an application into these three layers is that you can easily get one-to-many reuse of parts from one layer in another.

Windows DNA has the word Internet in it, which implies it's for building networked applications. Windows DNA is an excellent architecture for modeling networked systems, you can reap many benefits of its layering approach in other applications. Let's look at the three major types of software applications—standalone, client-server, and distributed—in terms of layers.

Single-Stoned

A single program is the entity the user interacts with in a relatively small input-processing-output cycle. Input comes from devices attached to the PC. Chips inside the PC do the processing, and output goes to devices directly attached to the PC.

Self-contained applications of this nature are called monolithic, meaning single-stone. A monolithic application contains everything necessary for a computing task in one unit. On the PC this means the logic necessary to communicate with the user, process data, and manage data storage and retrieval. Figure 3 shows the layers of a monolithic application.


There are three lessons you can learn from monolithic applications:

  • First, disconnected PCs executing monolithic applications serve a large market segment, but the businesses they serve are generally small.
  • Second, the larger a business grows, the more impractical it becomes to use monolithic applications.
  • Third, cost versus benefit is a determining factor in upgrading from monolithic PC-based applications.

Two-tier Architecture

Affordable networking allows PC software to assume roles in multiuser systems where data can be centralized and accessed by many users. You can easily form two tiers; the first tier is the user's application, while the second tier is the data source. When it comes to business applications, there are two fundamental two-tier approaches: LAN-enabled monolithic applications that simply share access to data files and client-server applications that share access to a database management system.

Monolithic applications on a LAN (see Figure 4) are implemented by running a copy of the application on each machine and using a network drive as the storage location for the database. One major disadvantage is that the database is not protected—a misbehaving client can easily corrupt it. Another potential problem area is the intimacy the application must have with the physical database structure. If the database format is modified, a user's application could suddenly be rendered useless.

A true client-server architecture addresses these weaknesses because the database server process acts as a guard for the data (see Figure 5). Client-server applications also require less knowledge of data physics, and can use one or more levels of indirection when requesting data.


Two-tier architecture is a logical step on the way to multi-user collaborative computing systems. Two-tier requires some or all of the business rules regarding data processing to be in the first tier. Stored procedures and triggers on a DBMS help, but having lots of business logic in the first tier makes for fat applications that are hard to maintain and upgrade.

Here are the key characteristics of two-tier applications:

  • They enable cheap PCs to be used in multiuser applications.
  • True client-server is better than LAN-enabled monolithic design.
  • As the number of users grows, so does the number of headaches.

Three-tier Architecture

One of the problems with client-server is that the first tier generally implements two layers, the presentation layer and the business logic layer. To address maintenance and scalability problems you must move the business logic layer out of the first tier.

Traditional three-tier systems abstract business logic into a separate layer commonly called the middle tier (see Figure 6). There are a variety of approaches for implementing middle tiers depending on the data layer, the types of clients, the developer's choice of tools and technology, and the communication mechanism between layers. Windows DNA recommends the programming language-independent Distributed Component Object Model (DCOM), which provides proxies to clients for business logic components running on other servers.


The fundamental purpose of the middle tier is to provide a level of indirection to business logic that allows it to be executed and resource-managed elsewhere.

Here are the key characteristics of traditional three-tier applications:

  • They abstract business logic into its own layer.
  • They address maintenance and scalability problems found in two-tier systems.
  • Implementation depends on clients, developer methodology, and the communication mechanism.

Internet and Tiers

Traditional three-tier approaches, depending on their implementation, can have a few problems when introduced to the Internet. The most common two areas: security and noncontinuous communication. This forces you to consider communication between tiers and where to store state information.


The most popular Internet protocol, HTTP, does not provide a continuous connection to a server, something you might have relied on in your traditional three-tier application. This does not mean three-tier systems cannot be used effectively in Internet scenarios, it just means you have to take into account the nuances of Internet security mechanisms, TCP/IP and HTTP, cookies, browsers, and Web servers. Once you understand these requirements, you can safely use the Internet as the transport for your multitiered applications.

So the unique considerations when developing three-tier Internet applications are:

  • They offer the same advantages as traditional three-tier apps.
  • You must take into account Internet security issues.
  • You must work through HTTP (stateless) mode.

For multitiered Internet applications, Windows DNA offers almost everything Microsoft has shipped in the last few years and much of what they are working on now.

THE PRESENTATION TIER:

The presentation tier is the part of system that the user sees. This tier often is developed first in conjunction with the users so that they can see what the system will look like. It is often easier for users to relate to working with the visual interface in making functionality and usage decisions. As developer knows the real heavy work will occur in the business logic and data tiers. The presentation tier presents information to the user as well as accepts information from the user. It very often validates data before sending it to the business tier. Figure illustrates the wide range of presentation options available. One can choose a rich windows client, which could run exactly like a client/server executable. The next level down is components, activeX controls which must be hosted by another application. The final three presentation options are related to web presentation.


In native windows applications, screens are developed by creating forms and dialogue boxes by dragging controls and other elements from a tool bar on to this forms. The native windows graphics engine then renders these native windows interfaces. These types of applications are great when all the users are running Microsoft windows but target audience might also be using Macintosh, UNIX and other systems that have no knowledge of how to run windows applications.

Thin clients are the clients that use browser only, whereas thick clients use native windows applications.

Reach clients use only HTML, where as rich clients use more features that all clients might not have.

For this reasons HTML is used. A web browser is an application that can read the text string and render the content based upon markup instructions.

The next challenge to web based content is the interactivity and presentation level validation logic. To allow for a great deal of control by the developer over the users interactions, DHTML, Scripting and components were added to newer versions of the HTML specifications. Developers can now deliver web based content that comes very close to the capabilities of a rich windows native client.

Reach capability comes at the expense of user functionality and higher development cost. The simpler interface is often the most expensive to build. Because it has added workflow logic and HTML screens needed to address all the logical conditions within an application. The richer clients are less expensive to build because all the logic and functionality is contains within a few screens.

The three aspects of presentation layer are navigation, layout and scripting.

Navigation: Navigation is the workflow aspect of the presentation space. Navigation can occur within the same page or it can lead to other pages within an application. When dealing with websites the navigation will refer to how the user moves from page to page within the website.

Layout: Layout refers to how the elements are arranged on the user’s screen. Depending upon the richness of one’s presentation layer, one will have a range of layout capabilities.

Logic: Logic is executed within the clients presentation space through scripting. The two predominant client side scripting languages are Java Script and VB Script. Scripting is the only way that one executes programming logic in many of the windows DNA scenarios. Scripting has an advantage in that scripted logic does not require a compile, link process before it can execute.

Client Side presentation:

Client side presentation can occur through a wide range of presentation technologies like HTML, Scripting, DHTML, Component, Executables and new formats being developed for other devices. Each level of capability requires that the client have the software necessary to use these capabilities. The client side footprint required for the technology to be supported is commonly referred to as its level of thickness. If one has a visual basic client then he has a thick client. If one simply requires a basic web browser then he has a thin client because he is not asking for any thing particularly special in terms of client capabilities.

Client side scripting:

Client side scripting gives one a level of control over what happens on the client’s browser. The two most commonly used scripting languages are Java Script and VB Script. All scripts are based upon client side events. Examples of an event are when the user clicks the mouse or the mouse passes over a screen element. Netscape uses a top-down approach in which the event triggers at the top level and then is passed down to child elements. Internet Explorer uses a bubble-up approach in which the event starts at the child element level and then bubbles up to the parent. For client side scripting Java Script, VB script, DHTML, Components, ActiveX, Java Applets can be used.

Server Side Scripting:

Server side scripting is used to co ordinate the interaction between business component and to dynamically generate the presentation elements to be sent to the client’s browser. Microsoft has a capability called Remote Scripting which allows clients to run scripts on the server. The requirement to run scripts on the server is when one needs to keep their implementation details private. However remote scripting is slower because of the network latency. The reason for this being an issue is because the user can view client side scripts by simply viewing the HTML source code. Microsoft has addressed this in recent versions of the scripting engines, allowing scripts to be hashed so that they are unreadable by the casual users. Active Server Pages (ASPs), Internet Server Application Programming Interface (ISAPI) and Common Gateway Interface (CGI) are all ways to enable server side scripting.

THE BUSINESS TIER:

The business tier is where the logic about how to perform the various usage scenarios is kept. In figure the elements like Component Object Model+ (COM+), Microsoft Message Queue (MSMQ), Internet Information Server (IIS) are shown which provide services to business components. COM is everything in the windows environment to develop all the business logic.


The other technology mentioned in this tier is MSMQ, a system service that enables objects to communicate asynchronously through the use of messages.

IIS is the final service mentioned in the business layer. IIS actually operates in two tiers, the presentation tier and the business tier. We can say IIS as the interface between the two tiers. Its primary job is to receive information from the business tier and to then format it for presentation by a web browser. IIS uses a technology called Active Server Pages (ASPs) to script the interaction between the business components and the end user presentations.

The business logic tier is made up of services and components that run on the server to implement the specific logic required for a business solution. In windows DNA platform COM components are the basic building blocks but Java Applets or Java Beans can be used to provide component functionality. Services such as Microsoft Transaction Server (MTS), MSMQ, Directory Service and Web services are a few of many services available for application.

Developer can develop business logic using standard development languages like C++, VB, ASP, COBOL and other languages as long as he has compiler that can produce COM compliant components.

The business tier is the most complex tier because it contains all of the business and system services. This tier may be subdivided into sub tiers, which are divided either on server type boundaries and/or service type boundaries. The tier could be divided into a web server farm and an application server farm. The application server farm could be divided into Commerce Server, Host Integration Server and BizTalk Servers.

Server side scriptlets allow developer to run scripts on the server by making calls from the clients. This has the benefit of hiding the script logic and reduces the network overhead required to ship the script code to the client for processing. The down side is that the client needs to have the ability to call scriptlets, which is a capability found only in IE 4.0 or later. Network latency can also slow down responsiveness.

THE DATA TIER:

The data tier contains Active Data Objects (ADO), OLE DB and XML as interfaces into a number of varied data sources.


ADO is the current standard for universal access to data sources. ADO is a very flexible data access component that enables anything to be a data provider. Examples of data providers are Relational Data Bases (e.g. SQL Server), Flat Data Bases (e.g. ACCESS), Directory Services (e.g. Active Directory), Message Systems (e.g. Exchange) and File Systems.

OLE DB is a new, low level data provider that offers a faster interaction with underlying data stores. OLE DB was developed to get around the limitations of ODBC. OLE DB is written as a low level COM component that allows for more efficient access to data stores. Over time more OLE DB providers will become available, and perhaps eventually replace ODBC. Currently there is an ODBC bridge that allows ODBC drivers to gain the benefits of OLE DB.

XML is a self defining standard way to define data as text an send it to other system. Because XML is text data it can flow freely across the Internet. Because XML self define its data structure any system can understand the data relationships. XML is very important to .NET platform.

The data tier encompasses a large number of data sources. These sources can be relational databases, directory services, messaging systems or user defined data providers.

Windows DNA Design Objectives:

When designing and building applications one should keep two things in mind,

1) state management: It refers to information that the program keeps to remember where we are in the process. Applications must maintain state in order to function. The question of maintaining state is actually a matter of where the state is persisted. If the state is persisted in server memory that memory resource is committed to maintaining the state and therefore the server’s capability to manage the resource has been limited. Maintaining state in memory on the web server limits the system from dynamically balancing the work load across several computers, thus affecting the system’s ability to scale effectively. On the other hand if the state is persisted in a data base or on the client computer then the server can reclaim the memory resource and more effectively use all the resources within the system. The basic rule of windows DNA is : enable the system to effectively manage its resources. Do not limit it with poor programming practice.

2) Encapsulation: It refers to making each component self-contain. Each component should be thought of as a black box with clearly defined public interfaces. These components can call other components but should not be dependent upon the caller having set the state of another component unless the latter component is a parameter for the method being called.

The Windows DNA architecture is designed to maximize overall application:

  • Autonomy
  • Reliability
  • Availability
  • Scalability
  • Interoperability

Autonomy

Application autonomy refers to an application's ability to govern its critical resources. Critical resources are the precious resources required by an application to function reliably as an independent entity. RDBMS connections, mainframe connections, and transactions are all examples of critical resources. Application autonomy is arguably one of the most important aspects of Windows DNA application design, and is also one of the most important differences between two-tiered and three-tiered client/server designs.

In a typical two-tiered client/server design, clients have direct access to the application's critical resources and are free to use those resources however they desire.

Figure 3. Two-tiered client/server applications are non-autonomous, which means that clients have direct access to the application's critical resources and are free to use those resources however they desire.

Windows DNA applications never allow clients to have direct access to critical resources. Instead, clients issue requests to special trusted components called executants that perform the business operations the application was designed to automate. By forcing clients to issue requests to executants that perform business operations using critical resources in trusted, well-defined ways, Windows DNA applications remain in complete control of their critical resources, which ultimately increases the application's overall stability. Before an executant performs any business operation on behalf of a client, it should authenticate the identity of the requesting client, validate that the client has the proper authorization to perform the requested business operation, and inspect the client's request for proper syntax and valid data. Anything less than a perfectly formatted request should be denied immediately. With such a high standard of excellence, it's reasonable to expect numerous client requests to be denied, which is why Windows DNA applications should provide executant emissaries, or emissaries for short.

Emissaries are components that are designed to help clients issue perfectly formatted requests to executants to perform business operations on their behalf.

Figure 4. An architectural diagram of the various components involved in building a DNA application using the "Executants and Emissaries" methodology

For a Windows DNA application to make its business operations available to the widest range of presentation services, emissaries must be accessible from both interactive and non-interactive presentation services.

Interactive presentation services are capable of providing feedback to the user on either a form-by-form or field-by-field basis.

Non-interactive presentation services, on the other hand, are only capable of providing feedback to the user on a form-by-form basis.

Windows DNA applications should be designed to accommodate both interactive presentation services such as dynamic HTML and Win32 for corporate intranet users that expect the rich presentation services of Windows as well as non-interactive presentation services such as HTML 3.2 for supporting Internet and corporate extranet users.

For an emissary to support interactive presentation services it must support both property-level and object-level validation. However, for an emissary to support non-interactive presentation services, it only needs to support object-level validation. Property-level validation is the process of ensuring that an individual property is within a predefined range of acceptable values. Supporting property-level validation allows emissaries to provide immediate feedback to interactive presentation services like those created using dynamic HTML or Win32. Object-level validation is the process of ensuring that all of an object's properties are within their respective predefined ranges of acceptable values. Supporting object-level validation allows emissaries to provide feedback to non-interactive presentation services like those created using HTML 3.2.

Reliability

Reliability refers to an application's ability to provide accurate results. An application isn't reliable if it returns inaccurate results. However, ensuring accurate results in a multiuser environment is very difficult. For example, suppose an application is designed to transfer money from one account to another by crediting one account and debiting the other. While this seems like a simple operation, imagine the results if any part of the system hardware or software fails after crediting money to one account, but before debiting money from the other. To ensure accurate results, executants should perform their business operations as part of a Microsoft Transaction Server (MTS) managed transaction. Transactions ensure that state transformations are Atomic, Consistent, Isolated, and Durable (ACID).

  • Atomic operations are operations that complete entirely or not at all. So, the state transformation must succeed, otherwise the system must returned to its last well-known state.
  • Consistent transformations preserve the internal integrity of the resources involved. For example, deleting records from a primary table violates the referential integrity of the database if there are matching related records.
  • Isolated transformations appear to occur serially, one after the other, creating the illusion that no other transformations are being performed at the same time.
  • Durable refers to the ability to save the results of a state transformation, usually to disk, such that the results of a transformation can be recovered in the event of a system failure.

Because transactions lock records to ensure ACID behavior, they should be considered critical resources, which means that clients should never be allowed to access them directly. To maintain application autonomy, Windows DNA applications should treat transactions as critical resources.

Availability

Availability refers to the amount of time an application is capable of reliably servicing client requests, and is important because an application is only useful when it's available to service client requests. Application availability is dependent on many things like hardware availability (disk drives, NIC cards, controllers, and so on), software availability (RDBMSs, Web servers, queuing systems, and so on), and network availability. To increase hardware and software availability, Windows DNA applications should eliminate any potential single point of failure by implementing redundant systems. Windows DNA applications should rely on hardware systems composed of RAID drives, multiple NICs, multiple controllers, and so on, and clustered using Microsoft Cluster Server (MSCS). MSCS works by configuring individual system resources like network names, IP addresses, applications, and so on, as cluster resources, such that if the resource or any of its subordinate resources fail for any reason the resource will automatically be made available on another node in the cluster. Windows DNA applications can also rely on MSCS to implement redundant software systems. However, because any node in the cluster can become the active node, software systems must be installed, configured, and ready to begin execution on any node in the cluster. Windows DNA applications designed to support MSCS must avoid any machine affinity, and must ensure that any data required by the application to perform its business operations is accessible from each node in the cluster.

Windows DNA applications can simulate increased network availability by using Microsoft Message Queue Services (MSMQ). MSMQ can provide guaranteed delivery, which gives it a clear advantage over other session-based network communication services like distributed Component Object Model (DCOM) and Remote Procedure Call (RPC).

Scalability

Scalability is the utopian goal of linear throughput growth for additional resources, and is what allows an application to support anywhere from ten users, to tens of thousands of users, by simply adding or subtracting resources as necessary to "scale" the application.

Throughput refers to the amount of work, measured in transactions (generated by users or machine), an application can perform in a given period of time (usually seconds), and is typically expressed in terms of transactions per second (tps).

throughput = transactions / second

Scalability is a measure of the overall change in throughput resultant from an increase in resources, specifically the resources required to perform the transactions that were used to ascertain throughput.

Because scalability is increased as throughput growth is increased (the higher the throughput growth per resource, the higher the scalability), application developers must concentrate their efforts on increasing throughput growth in order to increase scalability. The key to increasing throughput growth is reducing overall transaction times, which is a product of the amount of time required to acquire the necessary resource(s) and the amount of time that the transaction actually uses the resource(s).

transaction time = resource acquisition time + resource usage time

Increases in resource acquisition or resource usage times increase overall transaction times, which ultimately decrease throughput and application scalability. This means that to increase scalability, Windows DNA application developers should concentrate on keeping resource acquisition and resource usage times as low as possible.

To keep your resource acquisition and resource usage times down:

  • Avoid involving user interaction as part of a transaction.
  • Avoid network interaction as part of a transaction.
  • Acquire resources late and release them early.
  • Make more resources available if feasibly possible. Otherwise, use MTS to pool resources that are in short supply or are expensive to create.
  • Use MTS to share resources between users because it is typically more expensive to create a new resource than it is to simply reuse an existing one.

Another way Windows DNA applications can improve their scalability is by using MSMQ for emissary-to-executant and executant-to-executant communication. By using MSMQ, throughput can be increased by simply adding more servers to process queued requests. Having multiple servers processing work from the same queue is an efficient way to provide truly dynamic load balancing. Because each server simply keeps processing work from the queue as fast as it possibly can, there is never a time when one server is overloaded and another server is waiting for work.

Interoperability

Interoperability refers to an application's ability to access applications, data, or resources on other platforms.

In order to maximize application interoperability, Windows DNA applications should rely on:

  • Microsoft ActiveX® Data Objects (ADO) or OLE DB for universal data access.
  • Extensible Markup Language (XML) to share data with other applications.
  • DCOM to access applications on UNIX and Multiple Virtual Storage (MVS) systems.
  • MSMQ to access message queuing systems on other platforms.
  • COM Transaction Integrator (COMTI) to execute Customer Information Control Systems (CICS) (LU 6.2) or Information Management Systems (IMS) transactions on MVS systems.

The Future of Windows DNA:

Windows DNA is a platform, not a single technology or architecture. The windows DNA platform evolves as IT needs and technologies evolve. TO make development easier and scalability better, COM+ now offers Transaction Server(MTS), Message Queue (MSMQ) and some new capabilities. This enhancement automatically makes components enterprise strength. Components that are built with COM+ automatically receive attributes where you would have previously had to enable by hand. With COM+, you can spend less time building the foundation of the component and more time on its higher level purpose. The rise of internet has also affected the focus and shape of .NET platform. Every service and Back Office product has been changed to support requirements of Windows 2000 and the internet. New protocols like Simple Object Access Protocol (SOAP) and servers like BizTalk are being developed and adopted to support new internet based foundation



TO DOWN LOAD REPORT AND PPT

DOWNLOAD