分布式应用程序是指:应用程序分布在不同计算机上,通过网络来共同完成一项任务。通常为服务器/客户端模式。

简介

研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的客户应用程序。这当然不是因为客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。

应用

传统的Windows客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。

关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。

特点

许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C++、Java、Visual Basic和其他各种各样的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的"高级程序到程序交流(APPC)"等来完成的。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。

相关概述

应用程序设计师可以使用 .NET 平台开发、部署和支持分布式应用程序。既高度集成又灵活,此平台使开发人员能够生成端对端的业务解决方案,这些解决方案可以综合利用现有的体系结构和应用程序。

Windows DNA 是一种用于生成紧耦合分布式 Web 应用程序的体系结构。因为分布式应用程序开始要求更多的松耦合原则,Microsoft体系结构移动到 .NET 平台上。

基本原理

分布式应用程序的主要原则是将应用程序逻辑地分为 3 个基本层:

表示业务逻辑

数据访问和存储

通过按照这些原则对应用程序进行分层,使用基于组件的编程技术,并充分利用 .NET 平台与 Microsoft Windows 操作系统的功能,开发人员可以生成具有高度可伸缩性和灵活性的应用程序。

简单地分布式应用程序模型包含与中间层进行通信的客户端,中间层本身由应用程序服务器和包含业务逻辑的应用程序组成。应用程序反过来又与提供和存储数据的数据库进行通信。

表示服务

表示层包括到应用程序的胖客户端接口或者瘦客户端接口。胖客户端通过直接使用 Microsoft Win32 API 或间接通过 Windows 窗体,为操作系统的功能提供完全的编程接口,并广泛地使用组件。瘦客户端(Web浏览器)正迅速成为许多开发人员优先选择的接口。开发人员能够生成可在三个应用程序层的任何一个上执行的业务逻辑。利用 ASP。NET Web 应用程序和 XML Web services,瘦客户端能够以可视形式为应用程序提供丰富、灵活和交互的用户界面。瘦客户端还具有在平台之间提供更大程度的可移植性的优点。

业务逻辑

该层被分为应用程序服务器与服务,它们可用于支持客户端。可以使用 .NET Framework 编写 Web 应用程序以利用 COM+ 服务、消息队列(MSMQ)、目录服务和安全性服务。应用程序服务反过来可以与数据访问层上的若干个数据服务进行交互。

访问存储

支持数据访问和存储的数据服务包括下列各项:

ADO.NET,通过使用脚本语言或编程语言提供对数据的简化编程访问。

OLE DB,由 Microsoft 开发的公认的通用数据提供程序。

XML,用于指定数据结构的标记标准。

XML 是 Internet 世界提出的标准。HTML 集中于信息如何由浏览器呈现和如何显示在屏幕上,而 XML 的目标是处理数据结构及其表示形式。

系统服务

该模型的每个部分中的元素都充分受到 .NET Framework 和 Windows 操作系统的支持。它所具有的许多服务中的一些是:目录、安全、管理和跨越 3 个层进行的通信服务。组成 Visual Studio .NET 开发系统的编程工具使开发人员能够生成跨越多层的应用程序组件。