简介
分散式应用程式是指:应用程式分布在不同计算机上,通过网路来共同完成一项任务。通常为伺服器/客户端模式。研究一下当前的应用程式开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的客户应用程式。这当然不是因为客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程式发布上的高成本。发布桌面应用程式成本很高,一半是因为应用程式安装和配置的问题,另一半是因为客户和伺服器之间通信的问题。
套用
传统的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 开发系统的编程工具使开发人员能够生成跨越多层的应用程式组件。















