返回总目录返回总目录返回总目录返回总目录目目目目录录录录第十八章WIDL自动控制Web站点..................................................318.1概述.......................................................................................................318.2规范与元素说明..........................................................................................518.3应用实例................................................................................................918.4小结.......................................................................................................9第十九章频道定义格式推送Web站点...........................................1019.1认识CDF....................................................................................................1019.2CDF文档规范及频道创建.......................................................................1119.3CDF高级应用...........................................................................................1719.4小结.....................................................................................................29第二十章Web站点的设计实现.........................................................3020.1站点整体设计............................................................................................3020.2站点创建..............................................................................................3120.3小结.....................................................................................................51第五部分基于XML的Web站点应用与开发第十八章WIDL自动控制Web站点第十九章频道定义格式推送Web站点第二十章Web站点的设计实现第十八章WIDL自动控制Web站点本章介绍新一代的Web接口定义语言WIDL通过对其基本概念特性优点规范元素说明的描述以及一个具体实例的讲解使读者了解并学会应用这种崭新的网络自动化控制技术本章包括以下内容•WIDL概述•规范与元素说明•应用实例18.1概述Web接口定义语言WIDLWebInterfaceDefinitionLanguage是一个基于XML的接口定义语言IDL它允许自动完成同Web文件和表格的交互操作提供根据标准的Web协议完成请求/应答交互操作的通用方法或允许将Web作为一种通用的集成平台使用它的目的是促进Intranet或者Internet上的商业应用之间的数据交换WIDL提供了Web自动控制的基础Web自动控制是一种允许Web浏览器以外的其他应用直接和Web服务器存储在Web服务器上的数据进行互操作的技术通过WIDL交易就可以在一个广泛的商业应用和公司的Web服务器上建立直接的连接这个方法利用了Web的标准协议允许大量的应用访问和共享存储在某个地方的相同资源在今天诸如一个电子表格常用数据库这样的商业应用通过Internet或者Intranet彼此交换数据此类在非Web应用里的数据交换和交流的工作已经由成千上万行的程序代码大量的Web站点管理员以及富有创造性的程序开发人员实现其过程是把一个应用的数据转换成Web信息然后把这些数据通过Intranet或Internet传输昀后把它转换成接收方的数据类型对于共享商业应用数据来说这显然不是昀简单和昀好的方法现在大多数的数据库软件都提供将存储在它们里面的数据连接到Web页面的工具除了在Web页面中包含来自于数据库的数据之外Web页面还经常被用来自动更新数据库如在Web页面上使用表格收集信息WIDL把这个功能扩展到了所有的商业应用而且允许用一种标准的方法与存储在Web服务器上的数据相交流为WIDLDTD而开发的文档描述了一系列的服务或功能比如跟踪一个数据包或者定义一个人员配置文件PersonalProfile任何能理解和处理WIDL的软件包都能够执行一个服务然后为用户显示结果这样通过WIDL就不再需要Web浏览器浏览Web页面了任何兼容WIDL的软件包都能够处理和显示Web数据WIDL并不是为某个Web开发者而设计的方案相反它是特别为或大或小的商业需求而设计的可以和其他的组织共享数据WIDL提供了一种存储和显示数据的新方法而且它还利用了现存的软件允许大量的应用去共享同一个数据比如在现在的市场上有几种相互竞争的家庭财务软件包包括Microsoft的Money和Intuit的Quicken这两个软件包描述的是相同的信息帐目记录或类似的东西但是使用不同的私有的数据格式缺少从另一个应用类型输入和转换数据的机制Money不能以自己的格式读取Quicken的文件同样Quicken也不能读取Money的文件现在我们假设有一家银行想通过Web给它的客户提供帐目记录的服务如果要使这些帐目记录既能够被Money读取也能够被Quicken读取那么该银行除了需要提供Web版本的帐目记录之外还不得不为这两种应用程序提供两种格式的文件这种状况就是当前银行所面临的实际问题如果银行采用了支持Money和Quicken的WIDL而且对词汇表做了某些调整那么问题就会得到解决因为这两个软件包都能够从一个单一资源里读取数据此外因为WIDL是用来允许任何应用都能够读取和显示Web数据的因此客户可以使用Money或在Quicken来直接查看他们的在线账目数据而不必使用Web浏览器WIDL的潜在应用前景是无限的现在世界上已经有了成千上万的独立数据管理系统大多数都不能彼此对话如果某个公司购买的是某一种数据管理系统而他们的人力资源和客户数据却保存在其他两个不同的系统中会出现什么情况他们就不得不将这些系统里的一种数据格式转换成另外一种数据格式对于商业应用这并不是非常有效的办法如果读者认为WIDL可以用来很好地解决不同领域组织之间如何以一种标准的方式共享数据的问题并对它非常感兴趣的话那么可以访问WebMethods中的WIDL主页即使WIDL对于某些人来说有些超前但它表明了XML将如何被用来既为工业界也为个人用户使用实际中存在需求希望各种不同的软件包能够通过Web以一种更好的更有效率的方法来共享数据而WIDL提供了满足这个需求的解决方案的基础今天大多数发展中的XML接口定义语言都是为了迎合某种特定的需求而设计的用户可以为自己的需求找到昀好的方案18.2规范与元素说明WIDL已经在1997年9月22日提交给W3C作为一个草案WIDL还不是一个标准但是它确实有很大希望成为标准注意W3C的XML页面关注一下任何有关WIDL的昀新消息注在W3C的站点里可找到全部WIDL草案的内容1规范WIDLDTD既短小又精简它只有6个元素WIDL是用来协调应用的WIDL的大多数功能都固定在这些应用里面WIDL只不过描述了一个服务而这些应用知道该如何使用它们WIDLDTD!ELEMENTWIDL(SERVICE|BINDING)*!ATTLISTWIDLNAMECDATA#IMPLIEDVERSION(1.0|2.0|...)2.0TEMPLATECDATA#IMPLIEDBASEURLCDATA#IMPLIEDOBJMODEL(wmdom|...)wmdom!ELEMENTSERVICEEMPTY!ATTLISTSERVICENAMECDATA#REQUIREDURLCDATA#REQUIREDMETHOD(Get|Post)GetINPUTCDATA#IMPLIEDOUTPUTCDATA#IMPLIEDAUTHUSERCDATA#IMPLIEDAUTHPASSCDATA#IMPLIEDTIMEOUTCDATA#IMPLIEDRETRIESCDATA#IMPLIED!ELEMENTBINDING(VARIABLE|CONDITION|REGION)*!ATTLISTBINDINGNAMECDATA#REQUIREDTYPE(Input|Output)Output!ELEMENTVARIABLEEMPTY!ATTLISTVARIABLENAMECDATA#REQUIREDFORMNAMECDATA#IMPLIEDTYPE(String|String[]|String[][])StringUSAGE(Default|Header|Internal)FunctionREFERENCECDATA#IMPLIEDVALUECDATA#IMPLIEDMASKCDATA#IMPLIEDNULLOK#BOOLEAN!ELEMENTCONDITIONEMPTY!ATTLISTCONDITIONTYPE(S