天天看点

WINDOWS DNA: 为因特网时代建立 WINDOWS 应用WINDOWS DNA: 为因特网时代建立 WINDOWS 应用

http://www.microsoft.com/china/MSDN/library/archives/technic/develop/winDNA/0314d.asp 

WINDOWS DNA: 为因特网时代建立 WINDOWS 应用

Stephen Rauch

微软公司负责操作系统平台的策略和架构的程序设计师

摘要:

讨论微软的WINDOWS DNA结构。包括:

微软对协作组件的想法

  • 三层应用模型
  • 可伸缩性
  • 对现有系统和数据库的兼容性

 现在,对于那些功能越来越强大,并且价格还会更低的个人计算机,不论是大公司还是小公司都在为其建立更有力的应用软件。每天这些应用软件都被成百上千万的用户使用,但是在软件开发者现在开发应用软件和他们开发和配置应用软件平台这方面,新的势力已经产生了深远的影响。

随着因特网技术的应用日益增多,使得全球性的信息共享成为可能(不仅仅从或大或小的公司,而是任何一个个人)。由于一天24小时一周7天的运行,因特网已经在很多方面激活了新的创造力,结果导致了许多新的行业一夜之间突然出现。竞争和日益加快的变化正在对应用软件平台产生进一步的需求,而为了获得战略上的优势,这种平台应使应用软件开发者能更快的创建以及更高的配置适应性强的应用软件。

考虑这些新的因特网应用需要处理成百上千万的用户——仅仅在几年前还很难想象的,而现在这是完全有可能的。因此,应用软件需要处理用户的数量,这要依靠一天24小时的工作并且要灵活的满足不断变化的商业需求。作为这些各种各样的应用软件的基础的应用软件平台,也必须随着一套下层构造和为使这些新的应用软件能够开发和管理的先建服务程序而提供一致的应用软件模型。

WINDOWS DNA: 为因特网时代建立 WINDOWS 应用WINDOWS DNA: 为因特网时代建立 WINDOWS 应用
1. Windows DNA

 微软的应用软件平台由以下两部分构成:一个多级分布式应用软件模型——Windows DNA(图 1),一套全面的下层构造和应用软件服务程序。Windows DNA (http://msdn.microsoft.com/isapi /gomscom.asp?TARGET=/dna/)统一了个人计算机上的服务程序,应用软件服务器,以及现在的主机这三者的优点;也统一了客户机-服务器计算体系的固有利益和有关公共的基础组件的应用软件结构的因特网技术的优点。简单的说,Windows DNA的指导性原则是:

面向因特网

。开发解决方案应完全开拓应用软件平台的灵活性、因特网的全球性范围和满足需求的通信能力。

快速进入市场

。开发配置解决方案应快速且不需要开发者接受再教育或学习软件怎样开发的范例。通过基础的“铅制品”来减少开发者必须编写的代码的数量,这样揭示了服务和功能性。

真正的兼容性

。开发应该兼容所有等级,因而功能性可以被加到现有的系统中。坚持开放协议和标准,这样其他厂商的解决方案可以被集成进来。

减少复杂性

。把一些关键的服务直接集成到操作系统中,并且通过组件以一种统一的方式揭示它们。减少对信息技术专家的需求,只须作为系统集成商了解其功能,因此用户可以集中精力解决商业问题。

语言,工具和硬件需求

。提供一种与语言无关的组件模型以便开发者可以使用面向任务的工具。在PC计算机模型上开发,用户可以在更广泛的硬件基础上配置解决方案。

降低用户的整体费用

。开发应用软件应便于配置,管理且随时修改。

只要正确的下层构造被给出,由表示、商业逻辑和数据构成的这样一个多层模型物理上可以分配到多台计算机上处理。然而,过去用于一层或两层模型的核心抽象——象高级编程语言,数据库管理系统,图形用户接口——并不能完全满足多级应用软件开发的需要。开发可升级、可管理、可维护的多用户应用软件需要不同层的抽象,在微软公司我们认为这种抽象就是协同组件。

协同组件

 微软的Windows DNA 战略取决于对其协作组件的前景的展望,这个协作组件是在被称为组件对象模型(COM)的二进制标准的基础上建立起来的。COM(http://msdn.microsoft.com/isapi /gomscom.asp?TARGT=/com/)是世界上使用的最广泛的软件组件模型,而且现在存在于150,000,000台桌面型计算机和服务器上。它可以提供一套丰富的集成服务,可以广泛地选择易使用的工具,还可以提供一整套可用的应用软件。此外,它还为可以再利用的现用客户机-服务器组件提供了仅在目前可行的市场。

COM可以使软件开发者从可以在在应用软件模型的任何层次上配置的二进制软件组件出发编写应用软件。这些组件支持打包、分割和分布式应用程序功能。COM也可以通过以任何形式的代码压缩或应用程序功能来用组件开发应用程序,如一个用户控制接口或线性商用对象。一个组件可能有一个或多个接口;每一个都由一套可以被其它组件和应用程序访问设置的方法和属性描述。例如,一个用户组件可以由各种属性如名字、地址和电话号码来描述。

由于微软的Windows DNA模型,组件降低了开发多层应用软件的复杂性。基于组件和Windows DNA模型的应用软件依赖于一套由Windows 应用软件平台提供的基本的下层构造和网络服务。例如,微软的Windows NT安全性服务提供了对因特网信息服务器(IIS )的接入控制,还有事物和消息队列服务等。其它的基本服务还包括系统管理、目录服务、网络和硬件支持。

用户环境和表示层

现在,许多使用协作组件的应用软件开发者把他们的应用软件开发定位到Windows平台上,以便能充分利用Windows提供的丰富的用户接口。同样,用户也逐渐希望从应用软件中得到丰富的功能强大的用户接口。而因特网可以给用户提供尽可能丰富的信息和服务,这已经给应用软件开发者带来了新的挑战。今天,应用软件开发者必须开发分布式的、在Windows和non-Windows平台上通用的用户接口,并且要支持从手持式无线设备到高档工作站这样一个广泛的用户环境。然而,应用软件必须要有特色,这样才能有竞争力并且不断提供给用户期望的功能。

WINDOWS DNA: 为因特网时代建立 WINDOWS 应用WINDOWS DNA: 为因特网时代建立 WINDOWS 应用
图2.Windows DNA 表示方法

如图2所示,Windows DNA提供了范围广泛的表示选项,使应用软件开发者在开发最佳解决方案时可以随意选择。Windows DNA允许开发者选择合适的Windows组件和因特网技术来支持尽可能多的接口及尽可能多的用户环境(从手持式设备到高档工作站)。

为了适应尽可能多的用户环境以获得对所有浏览器的兼容性,应用程序开发者通常使用标准HTML语言来开发他们的独立于浏览器的应用软件。微软的开发工具和应用软件服务支持当前这一代标准的HTML语言。

使用静态HTML语言的代价是减少应用软件用户接口的功能和丰富的内容,而这一点正是用户希望的。这对于某些应用软件来说可能会正合适,因为它们要求范围广阔并且独立于浏览器。

但是有一类应用软件并不需要独立于浏览器。事实上许多公司都有自己的单独的浏览器标准。此外,那些想要在他们的应用软件中提供比用标准的HTML语言更多的功能的应用软件开发者,编写代码主要取决于其所使用的浏览器。这些增强的浏览器应用软件可以充分利用浏览器固有的技术来获得最大限度的功能和好处。随着象动态HTML语言和脚本这样的技术的应用,应用软件开发者可以为数据接入和报告创建基于网页接口的动作而不使用传统的applet控制。

DHTML是基于W3C标准文档对象模型的,这使所有的Web页元素都成为可编程的对象。把DHTML考虑成“可编程的”HTML。HTML文档的内容——包括样式和位置信息——可以被嵌入在网页的脚本源代码动态地修改。因此,脚本可以不必从网页服务器上刷新网页而随意地修改网页的样式、内容和结构。这样做,客户不必因为日益强大的网络性能而不停的重复访问Web服务器以便不断地改变网页。DHTML不象Java applets或者Microsoft ActiveX控件,它并不依赖于下层地虚拟主机或者操作系统。对于用户来说,如果没有DHTML的支持,其内容似乎级别很低。

有时DHTML和脚本结合的并不充分。应用软件的某些部分需要利用操作系统和下层宿主机,为了数据或附加服务还要保持动态连接因特网。在这些方面,应用软件开发者可以利用Windows提供的强大的组件和因特网服务来创建依赖于因特网的应用软件。一个基于因特网的应用软件不象基于网页的应用软件那样在浏览器里运行,它是一个完备的Windows可执行文件,可以完全使用Windows用户提供的任何服务。这些应用软件通常把HTML、DHTML、scripting和Active控件结合在一起使用,来向客户机系统提供综合服务以及连通因特网远程服务。

在那些支持Win32 应用程序接口(API)的应用软件平台上,用Microsoft Win32 API编写的应用软件提供了强大的功能。通过使用协作组件,今天的开发者在Windows应用软件平台上的基于Win32的应用软件中使用因特网技术。这些被写成Win32 API的应用程序利用了操作系统的优点和因特网的连通性,被称为增强型因特网应用程序。象Microsoft Office 97和Microsoft Visual Studio 98开发系统就是这样的例子。这些应用软件通过嵌套在应用软件中的超级链接支持统一的浏览,还可以为显示用DHTML编写的文件而登录到浏览器上,并且还能下载因特网上的应用软件的最新版本。

应用软件服务
WINDOWS DNA: 为因特网时代建立 WINDOWS 应用WINDOWS DNA: 为因特网时代建立 WINDOWS 应用
图3.应用软件服务

商业逻辑层是应用软件的核心,专用软件处理和商业规则都在其中。组件中的商业逻辑层把用户环境和数据层联系在一起。经过多年的改进,Windows DNA 应用软件平台已经可以支持大容量、大规模、事务处理的应用软件配置,并且还为访问商业逻辑组件提供了一个强大的运行环境。如图3所示,开发Windows应用软件的平台包括网页服务,消息服务和组件服务。

网页服务

微软的集成应用软件平台是一个高性能的表示层通路。微软的因特网信息服务器(网址为http”//msdn.microsoft.com/isapi/gomscom.asp?TARGET=/ntserver/nts/,再单击“Web Services”)使得开发基于网页的商用软件很容易,这些软件可以被扩展到整个因特网上或是在intranet上配置。通过使用IIS,微软在因特网中引入了一个新的范例——事务处理应用程序。事务处理应用程序使得运行真正的配置快速的易伸缩的可靠性高的商用软件成为可能。

动态服务器网页技术(ASP),IIS的一种组件,是独立于语言的可以自由汇编的服务器脚本环境,可以用它来创建运行动态的交互网页服务器应用软件。通过DHTML,scripting和组件的结合,ASP使应用软件开发者能够创建动态的交互网页内容和强大的基于网页的应用软件。

随着在企业环境下分布式计算的日益应用,在应用软件之间有灵活并且可靠性高的通信是很重要的。即使应用软件并没有同时运行,商业应用也要求运行在不同系统中的应用软件应能够独立地互相通信或交换信息。而用协作组件相互联系的ASP脚本创建的应用软件可以在现有的系统、应用软件和数据之间互操作。

组件服务

在九十年代早期,便于互操作性的基本概念是组件化;实现互操作性的基本技术是COM。结果,组件化不仅成为一种实现互操作性的重要方法,而且还成为设计和开发通用软件的一种重要方法。因而,在九十年代中期微软拓宽了COM的适用范围,通过引入微软事物处理服务器(MTS)将其从桌面应用扩展到分布式应用中。COM规划模型为开发、配置和管理基于组件的分布式应用软件提供服务,而MTS是其的一个扩展。应用软件平台可以方便Windows平台下的分布式应用软件的开发,作为它的基础,MTS比其它方法更简单花费更小。

COM+是COM和MTS的下一代改进产品。在COM和MTS服务中固有规划模型的统一使得开发分布式应用软件更容易,并且对于使用了COM(用于某种特定服务)和MTS(用于其他服务)的应用软件来说,还可以消除开发、调试、配置和维护过程中的单调的细微差别。而这对应用软件开发者的好处在于通过减少用于底层系统服务的代码的数量使得开发分布式应用软件更快更容易更廉价。

  通过扩展MTS 2.0中的COM和其他服务,COM+就由应用软件平台的现有服务的改进和新服务组成。包括:

  • 产生你自己的事物处理。 COM组件能够加入到由支持因特网事物处理协议(TIP)的COM+事物处理(TP)环境管理的事物处理中。
  • 保密扩展。 对于基于任务保密和过程接入许可保密均支持。在基于任务保密模型中,根据调用者被分配的逻辑组或任务(例如管理员,全职雇员或兼职雇员),对应用软件的不同部分的接入被同意或拒绝。COM+通过用于对传统和基于IDispatch(Ex)接口使方法级保密,扩展了目前基于任务保密的应用。
  • 集中管理。 组件服务Explorer,一个现在正在使用的MTS Explorer 和DCOMCNFG的代替品,提供了一个统一的管理模型,这使得通过消除大量正在使用的个人管理工具的一般费用来配置、管理、监控n层应用软件更容易。
  • 内建数据库。 内建数据库      以一种相容的方式保持着稳态和瞬态信息。内建的事物处理型数据库系统可以在机器上以极快的速度查询数据。
  • 队列组件。 当协作组件分离时,它可以用来异步延期执行,但基于会话的同步的客户机/服务器规划模型除外,在这里客户机可以和服务器保持逻辑上的连接,
  • 事件通知。 有时一种宽松的连接事件通知机制是有必要的,COM+事件是一种一点/多点,出版/订阅机制,它允许多个客户机“订阅”由不同的服务器“出版”的事件。这有别于现有的由连接点传递的事件通知框架。
  • 平衡装载。 平衡装载允许基于组件的应用软件通过一个应用软件串以一种对客户机透明的方式分配它们的工作量。
对现有系统 、应用软件和数据的互操作

由于许多公司正逐渐向因特网发展,提供新的服务,为其用户、合作者和雇员提供更易得到的信息,因此重要的一点是应用软件结构能够为公司内部扩展现有的应用软件和数据提供必要的方法。某些软件商提倡以一门能在任何平台上运行的语言依靠一种公用的组件模型来包装你现有的应用软件,这样你可以实现应用软件和数据之间的互操作性。这是很高的目标,在三十年前就已经许诺了,但直到现在仍然没有结果。微软的方法已经在其他的平台上对现有的应用软件和数据进行了实验,结果并没有损坏这些平台。因此,微软的应用软件平台使得应用软件开发者能够通过使用消息服务、COM事物处理集成环境和一种被叫做通用数据接入的框架来对应用软件和数据进行互操作。

消息服务

微软消息队列服务器

(http://msdn.microsoft.com/isapi.gomscom.asp?TARGET=/ntserver/appservice/exec/overview/MSMQ Overview.asp)在一个消息队列模型的基础上提供了宽松连接的可靠的网络通信服务。MSMQ通过在应用软件之间执行推进式的商业事件传递环境使得集成应用软件变得容易,也使得开发在不可靠但代价小的网络上运行的可靠的应用软件变得容易。在COM基础之上的简单的应用软件使开发者可以集中商业逻辑上而不是成熟的通信程序上。MSMQ也提供对其他消息队列产品的完备的互用性,例如IBM的MQ系列,以及可以从微软的独立软件销售商(ISV)合作者出得到的产品。

主机事物处理世界的延伸

使用微软的COM事物处理集成环境(TI)以及COM组件,应用软件开发者可以延伸并揭示复杂指令处理计算机(CISC)和信息管理系统(IMS)事物处理程序。COM TI由一套开发工具和运行时的服务组成,可以自动把IBM主机事物处理和商业逻辑成为“包装”在Windows DNA环境下运行的COM组件。所有的COM TI处理都在Windows NT服务器上进行,通过SNA服务器(http://msdn.microsoft.com/isapi/gomscom.asp?TARGET=/sna/)就可以完成登录通信。COM TI并不需要主机运行任何可执行代码或者以任何专用方式编程。

通用数据接入

通用数据接入是微软为企业提供信息接入的一种策略(http://msdn.icrosoft.com/isapi/ gomscom.asp?TARGET=/data/)。今天,由于各个公司都想从分布在公司中的大量的数据和信息中获得最大的商业利益,因而他们研究数据库解决方案时面临着许多挑战。通用数据接入对各种信息源都提供了高性能的接入,这其中包括关系型及非关系型数据,还有易使用的独立于工具和语言的编程接口。

通用数据接入并不需要把那些数据昂贵费时地搬移到单一的数据存储器中,也不需要对某一个开发商的产品负责。通用数据接入是建立在有广泛工业支持的开放式工业规范的基础上的,可以在所有现有的主要数据库平台上工作。

WINDOWS DNA: 为因特网时代建立 WINDOWS 应用WINDOWS DNA: 为因特网时代建立 WINDOWS 应用
4.数据接入

如图4所示,基于通用数据接入的框架在两个层次上起作用。在系统层上,OLE DB把基于组件的确定的体系结构定义为一套压缩了各种数据库管理系统服务的基于COM的接口。OLE DB结构并不限制数据源的种类;结果,微软和ISV已经提供给用户各种索引的连续文件、群件产品和台式机产品(http://msdn.microsoft.com/isapi/gomscom.asp? TARGET=/data/ oledb/products/products.htm)。在应用层上,ActiveX数据对象(ADO)提供一种高级接口可以使开发者能够从任何编程语言中接入数据。

结论

  Windows DNA结构和Windows NT平台可以向用户和他们的ISV合作者提供很多明显的优点。其主要优点在于:

  • 为分布式应用提供全面完整的平台,使得开发者可以完全摆脱建立需要的下层构造及用逐段确定法对其进行装配的阻碍。
  • 对现有的企业级应用软件和传统系统的易互用性可以方便地扩展现有系统。
  • 通过提供一种深入的组件模型、扩展的前建应用服务和对编程语言及支持工具的广泛选择,使得开发分布式应用软件更快更容易。

继续阅读