(计算机软件与理论专业论文)web+services构件库的研究.pdf_第1页
(计算机软件与理论专业论文)web+services构件库的研究.pdf_第2页
(计算机软件与理论专业论文)web+services构件库的研究.pdf_第3页
(计算机软件与理论专业论文)web+services构件库的研究.pdf_第4页
(计算机软件与理论专业论文)web+services构件库的研究.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机软件与理论专业论文)web+services构件库的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆大学硕士学位论文 中文摘要 i 摘 要 近年来,软件复用在软件产业界的地位已经日益重要,它被视为解决软件危 机、提高软件的生产效率与质量的现实可行的途径,而各种新技术的发展为软件 复用带来新的市场和需求,特别是体现了“软件是服务”思想的 web services 技 术的发展带来了新的管理需求。基于构件的软件开发是软件复用的核心,而构件 库系统作为支持构件管理与维护的系统,成为软件产业各方的关注焦点。 本文以构件库技术和 web services 技术为基础, 提出了将两种技术结合的 web services 构件库的基本框架,并研究了该系统的关键技术:系统的体系结构、系统 安全、web services 构件的描述、存储与管理等。web services 构件库解决了 web services 构件资源的管理问题、构件库之间的互操作等问题。 web services 是一种优秀的分布式组件技术,基于 web services 的构件库系统 具有良好的互操作性、平台无关性和可伸缩性。基于 xml 的构件描述充分利用了 xml 标记语言良好的数据存储结构、可扩展性、高度结构化、便于网络传输等特 点,从根本上解决了构件资源共享的困难。另外,web services 构件库可以管理 web services 这种构件资源,是构件提供者能容易的发布构件,复用者能方便的查 找构件,提高软件复用的效率。 本文首先分析了 web services 技术与构件库技术及其结合的可能性,然后根 据构件库服务模型和web services服务模型提出了结合后的web services构件库的 服务模型和体系结构,描述了体系结构各层的功能,研究并详细描述了该系统关 键技术,包括使用 xml 描述 web services 构件、将 xml 映射到数据库、构件的 存储与输出、构件库系统安全几个方面,最后设计实现 web services 构件库。 关键词:web 服务,软件复用,构件库,xml,web services 构件库 重庆大学硕士学位论文 英文摘要 ii abstract in recent years, it has been already increasingly important that software reuse which is used in the software industrial circle, it is considered as production efficiency and way with feasible reality of quality to solve the crisis of the software , improve the software, and of different new technologies to develop into software reuse and spend bringing new market and demand, especially realized the software is served the development of web services technology of the thought brings the new management demand. the software development based on component is the core of software reuse, and the component library system is as the system supporting the component to manage and maintain, must become the focus paid close attention by each side of software industry naturally. this paper is based on component library technology and web services technology, has put forward the basic frame of two kinds of technology combining web services component library system, have studied the key technology of this system: description, save, management of systematic system structure, the security of the system and web services component. web services component library system has solved such problems as management of component resources of web services and operation between the component libraries. web services is a kind of outstanding distributed package technology, the library system of component based on web services has good operation, platform independence and elasticity. the component based on xml describes the characteristic of transmitting the data that have fully utilized xml mark to be with good language store the structure, expansibility, high structurization, convenient network, have solved the difficulty of component resource-sharing fundamentally. in addition, web services component library system can manage this kind of component resource of web services, raises the efficiency of software reuse. this paper has analyzed web services technology, component library technology and combine possibility, proposed web services services model and system structure after combining according to component library serve model and web services serve 重庆大学硕士学位论文 英文摘要 iii model, studied the key technology which realizes this system in detail: the use of xml to describe web services component, the xml file mapping to database, component saving and outputing, web services component systematic security and realized some practical job of web services component library system. keywords: web services, software reuse, component library, xml, web services component library system 重庆大学硕士学位论文 1 绪 论 1 1 绪 论 1.1 论文的选题及其研究意义 目前,我们正在进入互联网时代,其核心技术是“可扩展标记语言” ,即 xml(extensible markup language)。xml 可以创建出可供任何人从任何地方访问 和使用的功能强大的应用程序,它极大地扩展了应用程序的功能。在这种大环境 中, 软件已不完全是指那些从 cd 进行安装的程序, 而是已经演变成了一种服务: 类似于调用者的 id 验证或按观看次数进行收费的电视,人们可通过通信媒体预 定此类服务。这一切是通过将紧密耦合的、高效的 n 层计算技术与面向消息、松 散耦合的 web 概念相结合实现的。我们将这种计算风格称为 web services(即 web 服务),它的出现标志着应用程序开发技术的新纪元。 web services 其实就是一种松散耦合的、可复用的软件模块,它可以为不同的 硬件平台、操作系统和编译语言之间的集成应用提供支持。它是自包含的、规范 的、模块化的应用程序,具有可描述性、可分布性、可定位性以及可被远程调用 (internet/intranet)等特性1。利用 web services 构件进行软件开发除了软件复用的 优点之外,还可以达成异质平台、不同应用程序、不同语言之间的互动、达成企 业内部及企业与企业之间的协作2。 软件复用是目前软件工程的热点,被视为解决软件危及、提高软件的生产效 率与质量的现实可行的途径3。围绕软件复用出现了很多新的软件开发技术,可 复用软件构件技术就是其中一种。可复用软件构件是指有相对独立的功能和可复 用价值的构件,具有有用性、可用性、适应性、可移植性等特性。构件服务的前 提是有效、高效的构件组织和管理。当构件足够多时,有必要采用基于计算机的 管理机制,即通过构件库系统提供各种支持2。因此,构件库系统成为构件服务 的关键性基础设施。 基于 web services 构件的软件开发的核心资源是 web 服务构件,web 服务构 件可能是开发部门内部提供的,也可能是外部提供的。要对基于 web 服务构件的 软件开发进行有效的管理, 首先就要对 web 服务构件进行管理2。 目前已经有一 些典型的构件库系统,但都有一定的缺陷,较大缺陷之一是扩展性差,导致构件 库与构件库之间的互操作、互通性比较差。为解决这一问题,我们采用最先进的 xml web services 技术,在提高构件库之间的互通性,同时也解决了对 web 服 务构件的管理。 本课题针对如何管理 web 服务构件进行研究,通过 web services 技术和构件 库技术的结合,提高软件复用、进一步提高软件开发生产效率。其意义有几点: 重庆大学硕士学位论文 1 绪 论 2 1) 沟通 web services 构件提供者和使用者的平台,减少他们对构件理解的差 异,从而提高服务检索的成功率,提高软件复用效率。 2) 实现构件库之间互操作,提高服务复用的可能性,提高基于服务软件的开 发效率与质量。 3) 促进 web services 构件库技术的发展。 1.2 国内外研究现状和主要存在的问题 1.2.1 web 服务的发展现状 web services 是一种旨在连接多种异类应用、 共享数据的技术。 它的目的是创 造一种开放的分布式系统,用于帮助软件厂商和公司开发出可与其他基于 web 的 应用进行无缝协作的应用,任何企业和个人在任何地方,都可以快速和便宜地利 用 web services 从事各种商业活动和其他各种活动4。 由于 web services 可以解决 在 internet/intranet 环境下不同系统之间的服务调用问题, 解决了 internet 上以及企 业内部信息孤立的问题,现在各大 it 公司纷纷推出 web services 架构以及在自己 的解决方案中增加对 web services 的支持。例如 oracle 9i 对开发标准和 web services 的支持、google 和 amazon 等公司提供的免费 web services。 1.2.2 构件库发展现状 从软件复用的角度来看,存在大量的可复用构件是有效复用的基本前提;而 有效地管理大量构件,提供方便的构件存储、构件检索和构件提取等功能,则是 成功复用的必要保证5。构件库系统作为构件服务的一种技术支撑,应该为构件管 理提供必要的支持。 构件库研究一直是软件复用研究的重点之一,支持多层次、多形态构件的大 型构件库系统有利于增加复用机会和提高复用质量。美国总统信息技术顾问委员 会曾报告:软件是信息时代的新型物理基础设施,应该为软件研究的投资赋予最 高的优先级,特别是将重点放在基于构件的软件设计与开发技术,并建立一个国 家级软件构件库6。 构件库系统的研究目前主要包括制定标准和研制系统两方面。构件库标准能 够为理解构件和构件库提供帮助,也是构件库互操作的前提和基础。当前影响较 大的构件库标准包括 nato 标准、aloaf 构件库框架和 rig 标准。构件库的职 责在于支持构件的分类、存储、检索和提取,从而提供一个构件复用环境。典型 的构件库系统有 reboot、美国国防部构件库系统、青鸟构件库系统等。 1.2.3 主要存在的问题 无论是 web services 还是构件库技术中都存在尚需进一步解决的问题,例如: web services 的管理、可靠性、事务、计费、测试问题;构件库技术中构件库之间 重庆大学硕士学位论文 1 绪 论 3 的互操作性问题、检索构件、使用合适的构件术语、如何提供构件的复用历史和 复用经验等问题。 web services 发展的一个重点问题是管理问题2,网络上的服务越来越多,处 于无序状态,有效组织好 web services,对 web services 的提供者、使用者和服务 本身规范管理成为 web services 技术发展必须解决的问题。只有把提供者、使用 者和服务管理好,才能降低检索成本,使复用成为可能。 良好的互操作性是构件库技术发展的重点目标之一。由于资源的限制,单个 构件库的容量和资源总是有限的,不可能包含所有构件,所以构件之间的互相访 问变得非常重要,而目前存在一些比较出名的构件库,因为对构件描述机制的不 统一性,或者构件描述语言的不同,使构件库之间的互操作变的困难。 本文要解决的问题正是前面描述的 web services 的管理问题和构件库间的互 操作问题。 1.3 本文的研究内容和主要工作 1.3.1 研究内容 本文以 web services 技术与构件库技术为基础,研究各自技术的特点以及主 要存在的问题,包括 web services 的管理问题和构件库之间的互操作问题。我们 提出了将这两种技术结合,即用构件库管理 web services,为 web services 的提供 者和使用者提供一个发布和检索的平台;用 web services 技术的特性实现构件库 之间的互操作。这样可以提高构件库的可扩展性而且可以实现构件库的跨硬件平 台、跨操作系统的调用,并管理了 web services 构件,提高了 web services 构件和 信息资源的共享程度。另外,本文还研究了 web services 的支撑技术、构件库的 关键技术、以及它们结合的可能性,研究结合后的 web services 构件库的实现, 包括服务模型、体系结构、构件描述机制、存储方式等。 1.3.2 主要工作 为了解决 1.2.3 节提出的两个主要问题,我们将分别研究 web services 技术与 构件库技术以及他们结合的可能性等内容,具体工作如下所示。 1) 研究 webservices 技术基础、主要协议、体系结构; 2) 研究构件技术、软件复用及其关系; 3) 研究构件库服务模型、体系结构,并通过分析已存在的构件库标准和构件 库系统总结了构件库系统的一些关键技术; 4) 设计 web services 构件库的服务模型和体系结构;分析了这种构件库的优 点所在,并详细描述了体系结构的各个层次的功能及相互关系; 5) 讨论 web services 构件库主要支撑技术的实现,包括如何用 xml 结合刻 重庆大学硕士学位论文 1 绪 论 4 面机制描述构件、构件库的信息组织、构件库的安全保障三个方面; 6) 实现 web services 构件库,包括数据建模、web services 服务和应用程序 的实现及部署等内容。 1.4 本文的组织安排 本文共有六章内容,各部分安排如下: 第一章:绪论部分,主要介绍了论文的选题和研究意义、国内外的研究现状 和本文的主要工作及研究重点。 第二章: 本章介绍了软件服务的实现web services 技术, 介绍了 web services 技术的发展,分析了关键协议及其作用。 第三章:本章重点讨论了构件库的发展与现状、构件库的关键技术,并简单 介绍了软件复用与构件技术的发展。 第四章:本章是全文的重点,先分析了 web services 技术与构件库技术结合 的可能性,然后提出了结合后的 web services 构件库的服务模型和体系结构,并 详细分析了实现 web services 构件库的关键技术:如何用 xml 描述构件、构件库 的信息组织、构件库的安全保障。 第五章:本章设计了 web services 构件库,并对系统的具体实现使用的关键 技术做了详细的描述。 第六章:对全文的工作进行了总结,同时对将来的研究工作进行了展望。 重庆大学硕士学位论文 2 软件服务的实现 5 2 web services 的关键技术 软件服务思想的提出为未来internet环境下计算和信息的共享提供了一个有效 的机制。 “软件成为服务”的趋势正逐步影响软件技术的发展:用户的购买对象时 订购使用权,而不在于拷贝;软件的维护将主要由软件开发商和运营商来支持, 从而为用户提供软件的连续升级服务;软件变为服务,使全球范围的软件协同成 为可能2。 2.1 web services 简介 1994 年网页浏览器的出现,让 world-wide web 在短短的几年间,成为一个横 跨全世界的超级信息库。从技术的角度看,web 之所以能成功,是因为开放标准 所带来的松散耦合(loose coupling)。 使用者只要有浏览器, 不管是用什么平台-pc、 mac,甚至是 pda,都可以查看全世界的网站。使用者的计算机和浏览器事先不 用和那些网站进行设定,想连接到哪个网站随时都可以去。而且,浏览器和网站 不会因为各自不定期或定期的升级、改版而影响彼此的连接与信息的获取。这是 因为各种浏览器和网页服务器-基本上都遵循 html、http 这些开放格式和标 准。但如果用到某浏览器或服务器特有的功能时,开放性和选择性就会受到扼杀。 那么,是不是可以让信息服务的消费者和生产者之间更“松散耦合”一点? 为什么一定要通过浏览器才能执行网站上的应用、享受所提供各项服务?是否可 以将交易和查询的结果不用 html 网页的格式反馈?是不是能有一个更中立的方 式,让消费端自己决定要如何消化、呈现从服务端所提供的信息?xml 正是在这 样的需求下诞生的, 其目的在于提供一个能准确描述信息的机制, 藉以弥补 html 过于描述表现格式的特点。 在这种情况下,消费端的应用更加灵活。生产端服务器提供的信息“服务” , 除了 pc 浏览器外,还有 p2p 软件、java 手机、ia 家电等都可以调用。就连 office 办公软件,也都成为潜在的信息消费者。web 的运行模式,也从之前的 web 1.0 “browser to ap” ,演化到“ap to ap”的 web 2.0 时代。而“web services”这个 名词被选择用来代表这种新的应用模式7。 web services 发展至今,已经受到广泛探讨、应用到了研发的各个技术层面。 web services 和面向服务架构(soa) 中所强调的“服务”与真实世界中的“服务” 是一致的。就以日常生活中邮局、银行的服务柜台来说,我们在临柜前,可以先 在服务台查询服务说明、服务项目,然后得找到正确的办理窗口;在办理前,先 按规定先填单子,照字段格式一项项的填写,还必须出具身份证、密码等身份验 重庆大学硕士学位论文 2 软件服务的实现 6 证,然后交给业务员办理;当业务繁忙、排队的人多的时候,可能会有服务人员 引导我们到相对轻闲的窗口去办理,以加快处理速度;服务的质量,也可能会受 到服务主管的监听和纪录;我们也可以提出反馈意见(例如给服务人员打分)。 这些和服务相关的各项功能,在 web services 和 soa 的领域中,也都一一有 相对应的机制,包括 uddi 和 wsdl(服务查询和描述)、service endpoint(服务窗 口)、 xml schema/xsd(申请单元格式)、 ws-security(身份验证)、 soap(办理动作), 此外还有服务路径路由和负载平衡(办理排队的引导)、 服务监控、 管理、 稽核等。 2.1.1 web services 的发展背景 1) web services 关键协议的发展 web services 的基本结构是建立在 xml 基础之上的。1998 年 2 月 xml 被 w3c 立为标准, web services 是 xml 流行后的一个直接产物8。 2000 年 3 月 ibm 和微软开发了 soap1.1(由“简单对象访问协议”引申而来),这个通信协议为 web services 的远程调用奠定了基础。2000 年 9 月,微软和 ibm 提出 wsdl1.0(web 服务描述语言),用于描述 web services 及函数、参数和返回值。同期,ibm、微 软和 ariba 提出了 uddi(通用描述、发现和集成协议),通过此协议可以宣传、定 位 web services。其中 soap、wsdl、uddi 都是基于 xml 的。 2) 业界巨头对 web services 的支持 随着 web 服务三个主要协议的制定,各大公司及组织纷纷推出了针对于 web services 的解决方案。 2001 年 2 月,sun 公司推出 sunone(open net environment,开放网络环境)。 作为 soap、wsdl、ebxml 等开放标准的支持者,sun 公司已经在其 forte ide 工具集和 iplanet 服务器中增加了对 web services 的支持。 2001年6月, ibm发布websphere应用服务器4.0版。 它支持进行web services 应用方案的开发、发布和部署时所需的多种开放标准与技术。2001 年 8 月发布的 websphere studio technology preview 可以帮助程序员创建、测试和部署 web services 应用方案,并将这些应用方案与现有业务进程连接在一起。 2002年3月, hp将web servicesconversation language(wscl)1.0提交给w3c, 成为 w3c 标准。wscl 可用于描述被交换的 xml 文档以及允许的 xml 文档的 交换序列,还可以和诸如 wsdl 这样的 web services 描述语言协同使用。 2002 年 4 月,ibm、微软和 verisign 共同发布了新的 web services 安全规范 ws-security。这项规范被设计用来实现 soap 级别的加密、授权、身份识别等安 全措施。它通过消息完整性、消息机密性和简单的消息认证来实现消息安全的目 的。 重庆大学硕士学位论文 2 软件服务的实现 7 2002 年 6 月,sun 发布 java web servicesdeveloper pack(java wsdp)和 sun one studio4.0,以支持在 j2ee 平台上开发 web services。 2.1.2 web services 的定义 web services 的目的是能够在 internet 上不同的操作系统、硬件平台和编程语 言之间集成应用软件,它的开发和使用是独立于各种操作系统、编程模型和语言 的。目前,web services 还没有一个标准的定义。下面是大公司和组织对 web services 的定义。 1) 国际标准化组织 w3c: web services 是一个通过 url 识别的软件应用程 序,其界面及绑定能用 xml 文档来定义、描述和发现,并且基于 internet 协议上 的消息传递,使用 xml 支持和其它软件应用程序的直接交互9。 2) 微软公司: web services 是为其它应用提供数据和服务的应用逻辑单元, 应用通过标准的 web 协议和数据格式获得 web services, 如 http、 xml 和 soap 等,每个 web services 如何实现是完全独立的。web services 具有基于构件的开发 和 web 两者的优点,是 microsoft 的.net 程序设计模式的核心。 web services 封装了实现的细节,它有一些和面向对象中相似的基本概念:封 装、消息传递、动态绑定等。web services 实质是部署在 web 上的可编程对象, web services 的各种技术和架构都是基于面向对象理念进行架构的。web services 的主要目标是在现有的各种异构平台的基础上构筑一个通用的与平台无关、语言 无关的技术层。不同平台的应用依靠这个技术层来实现彼此的连接和集成8。 2.2 web services 的关键协议分析 2.2.1 xml-可扩展标记语言 xml(extensible markup language)可扩展标记语言是 web 服务架构的基 石。 xml是数据访问领域的最新技术, 作为下一代internet应用的核心技术之一10。 xml 是标准通用标记语言(sgml)的子集,smgl 是在文本处理系统的基础 上诞生的。1969 年, ibm 开发出一种不依赖于系统的通用标记语言(gml),解决 了系统之间相互读取文件时遇到的问题。到 1974 年,goldfard 证明了“进行合法 性检查的语法分析器”概念的可行性。1978 年到 1986 年之间,goldfard 领导技术 小组把他初期的发明变成了一个完善的国际标准(iso8879)“标准通用标记语言 (sgml)” 。 1989 年 tim berners-lee 提议从 sgml 标准中的一个简单类型例子开始, 开发 出一种超文本版本, 称为超文本标记语言(html)。 html 继承了 sgml 的一些重 要特点,以其简洁性很快被人接受,成为 internet 上发布和共享信息的重要技术。 1996 到 1997 年,w3c 为解决 html 的格式化标记问题,采纳 sgml 的第三个重 重庆大学硕士学位论文 2 软件服务的实现 8 要思想:形式化定义文档类型,提供对文档的合法化检查。w3c 去掉 sgml 中可 选择的特征来精简 sgml 标准, 提供一个用于 web 和 html、 sgml 兼容的标准, 提出了 xml 规约,xml 的特征如下。 1) xml 是一种元语言,允许用户创建自己的标记语言; 2) xml 是一个开放标准,xml 文档与平台和语言无关; 3) xml 将数据和对数据的处理分开; 4) xml 能精确定义数据,不同结构的 xml 文档可以通过 xslt 互相转换。 web services 组成中的各个协议都是使用 xml 来定义的。 2.2.2 soap-由简单对象访问协议引申而来 soap(simple object access protocol)是web services技术的核心之一,用于 web services 调用 xml 消息表示。 soap实现系统之间无缝的进行通信和共享数 据,以“软件软件对话”的方式相互调用,打破了软件应用、网站和各种设备 之间的格格不入的状态, 实现 “基于 web 无缝集成” 的目标。 编写第一个 soap 规范时, 人们计划利用 soap 将分布式对象技术(例如 dcom、 corba 和 rmi) 与本机的 internet 技术(例如 xml和 http)更好的集成起来,目标是要建立一种 管道,以便创建并使用基于 xml 的消息,而不使用由不同的技术支持的各种二 进制消息格式8。 soap 最初代表 “简单对象访问协议” , 如果在几年前问任何一个人 soap 的 含义,他们很可能这样回答:soap 是用来使 dcom 和 corba在互联网上工 作。 原作者们也承认,那时他们注重于“访问对象” 11,但随着时间的推移, 人们希望 soap 能够处理更广泛的情况。 因此,soap 规范的重心很快从对象 转移到通用的 xml 消息处理框架上。这种重心的变化给soap 缩写词中的 o 带来了一点小问题,目前为止soap 1.2 工作组沿用了soap 这个名称,但决定不 再把这个词拼写出来。如今,在最新的 soap 1.2 规范中,其正式的定义并不提 及对象:soap 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信 息6。 这个定义确实体现了 soap 现在的主旨。为此,它提供了一种基于 xml 且 具有以下特性的消息处理框架:1) 可扩展,2) 可通过多种底层网络协议使用,3) 独立于编程模型。 soap 是松散分布式环境中基于 xml 用于信息交换的轻型协议,它包括4个 主要部分:soap 封装、soap 编码规则、soap-rpc 表示和soap 绑定24: 1) soap 封装(envelop) soap 封装定义了一个框架来描述消息的内容是什么,是谁发送的,谁应当接 收并处理它以及如何处理他们。soap 封装是一个定义完整的 xml,它包含一个 重庆大学硕士学位论文 2 软件服务的实现 9 可选的 header 和一个必需的 body。你可以在 header 里定义扩展语义,例如, 调用一个方法时的可信度验证。在 body 部分记录了在服务器上查找类和方法的 必要信息,以处理 web services 请求和处理请求需要的参数数据。 2) soap 编码规则(encoding rules) soap编码规则是可选项,用来表示应用程序的数据类型的实例。 3) soap-rpc 表示(remote procedure call representation) soap-rpc表示定义了一个请求/响应消息交换系统。 4) soap 绑定(binding) soap 绑定是传送 soap 封装的一种方法,它详细说明了 soap 和 http 之间的绑定。soap 绑定是可选项,可以用其他的传输协议例如 smtp,ftp 来 传送 soap 封装。 这四部分是作为一个整体定义的,但他们在功能上是相交的、彼此独立的。信 封和编码规则被定义在不同的 xml 命名空间(namespace)中,使定义更加简单。 soap 的一个主要优点就是简单性,soap 使用 http 作为网络通讯协议, 接受和传送数据参数时采用 xml 作为数据格式,soap 使用 http 传送xml, 尽管 http 不是有效率的通讯协议,而且 xml 还需要额外的文件解析(parse), 两者使得交易的速度大大低于其他方案,但 xml 是一个开发、健全、有语义的 信息机制,而 http能避免防火墙问题,从而使 soap 得到广泛的应用。 2.2.3 wsdl-服务描述语言 wsdl(web services description language),web services 描述语言是 web services 技术的核心之一, 用于描述 web services 的调用接口12。 wsdl 是一种 xml 格式的语言,为服务提供者提供了描述构建在不同协议和编码方式之上的 web services 请求基于格式的方法,用一种和具体语言无关的方法定义了给定 web services 收发的有关操作和消息。 wsdl 用来描述一个 web services 能做什 么,它的位置在哪里,如何调用它等等。 用 wsdl 文档说明 web services,在 wsdl 文档中用“服务”来描述数据 类型的一组元素,服务可收到的“消息”以及关联每条消息的 soap 绑定组成; 抽象部分以独立于平台和语言的方式定义 soap 消息。 本质上,wsdl 描述说明的是 web services 的以下三个基本属性: 1) 服务做些什么-服务所提供的操作(方法); 2) 如何访问服务-数据格式详情以及访问服务操作的必要协议; 3) 服务位于何处-由特定协议决定的网络地址,如 url。 总的来说, wsdl为 web services 提供了一个公共的约定, 支持 web services 的发布和发现。wsdl 被定义为一个“xml 格式的,描述网络服务消息(无论是 重庆大学硕士学位论文 2 软件服务的实现 10 面向文档的还是面向程序的)的一系列端点操作”。 2.2.4 uddi-统一描述、发现和集成7 uddi(universal description,discovery and intergration),统一描述、发现和集 成协议。uddi 是未来电子商务的基石,它使得商业实体能够使用他们自选的应 用软件,快速、方便的发现现有的或潜在的商业伙伴,并与之进行交易13。 一旦部署了 web 服务, 潜在用户就必须能够发现它在什么地方以及它如何工 作。uddi 定义了一项基于 soap 的协议,用于更新和查询 web 服务信息库。 uddi 商业注册包含了关于业务、服务和服务绑定的信息,以及用于进行分类 的其他元数据。从概念上讲,uddi 组织此信息的方式与在带有彩页的电话薄中 组织信息的方式类似。uddi 以电话簿中相同的方式使用白页、黄页和绿页。白 页包括公司名称、地址和联系信息;黄页包括基于标准分类法划分的类别;绿页 包括技术规范和引用(请参见图2.1)。 所有的 uddi 商业注册信息存储在 uddi 商业注册中心, uddi 规范包含了 基于 web services 的位置及其技术信息。uddi 注册中心中的每笔业务都公开了 基本的信息,如名称、地址和联系信息,以及与其服务相关的技术信息。每项服 务都由技术/业务的描述和分类组成。每项服务还公开了描述如何连接到给定服务 并与它进行通讯的绑定模板信息。 程序或程序员通过 uddi 注册中心获得 web services 的位置及其技术信息。 其中对于程序员来说,要对自己的系统实现进行准备,以使自己的系统能和那些 web services 实现访问兼容, 或者描述自己的 web services 能让别人使用。 为此, uddi 定义了一个 api 来与集中式 web 服务信息库进行交互。开发人员可以使 用 uddi 站点注册其服务,并且其他开发人员可以查询该站点以查找信息。 uddi 规范是一个由 web services 所构成的逻辑上的服务,它包括几份相关 文档和一份 xml schema,用来定义基于 soap 的注册和发现 web services 的 协议。这些规范由多家公司的技术人员和管理人员制定而成,这些公司也担负起 实现第一批 uddi 商业注册中心的认为,这些服务将可以被所有人访问,同时其 名称 地址 联系信息 零售 健康 财务 url wsdl tmodel 图 2.1 uddi 页 fig. 2.1 uddi page 重庆大学硕士学位论文 2 软件服务的实现 11 多个合作站点之间能够无缝的共享注册信息。 2.3 本章小结 在“软件作为服务”理念的推动下,internet 环境下的软件系统的形态发生了 巨大的变化,web services 体系结构实现了“软件服务”思想。xml web services 技术和平台主要实现 web services 请求者和提供者之间建立一个沟通渠道,有效 的对 web services 进行说明、收集、查询、发布等等功能。web services 平台主 要技术包括:实现软件服务描述的可扩展标记语言 xml,实现 web services 请 求者和提供者之间通信的 soap 协议, 对 web services 进行说明的 wsdl(万维 网服务描述语言),实现软件服务登记、查询和发布的 uddi(统一、发现、集成) 等等。 我们需要不断的针对实际需求,为软件服务的使用提供各种支撑技术和手段。 面向开发、动态和多变的web应用环境,对 web services 本身管理是其他这种应 用的基础。 重庆大学硕士学位论文 3 软件复用的重点构件库 12 3 构件库的关键技术 3.1 构件库简介 3.1.1 软件复用与构件技术的发展 1) 软件复用 近几年来,软件研究人员逐步认识到:要真正实现软件工业化生产方式,达到 软件产业发展所需的软件生产率和质量,软件复用是一条现实可行的途经。 软件复用概念是在 1968 年 nato 软件工程会议上中提出的。 软件复用就是利 用某些早先开发的对建立新的软件系统有用的软件元素来生产新系统。软件元素 可以包括需求规格说明、设计过程、设计规格说明、程序代码、测试用例等。对 于新的软件开发项目而言,它们或者是构成新软件系统的构件,或者是在软件开 发过程中发挥某种作用2。 软件复用可以区分为横向复用(也称水平复用)和纵向复用(也称垂直复用)。横 向复用是复用不同应用领域中的软件元素,例如数据结构、算法、人机界面构件 等。纵向复用在一类具有较多公共性的应用领域之间复用软件构件。由于在两个 截然不同的应用领域之间进行软件复用的潜力不大,所以纵向复用受到广泛关注, 成为软件复用的重点。 纵向复用活动的主要包括以下三个步骤:a. 领域分析。根据应用领域的特征 及相似性预测软部件的可复用性。b. 软部件的开发。一旦确认了软部件的复用价 值,即可进行软部件的开发并使其大众化,以便它们能够适应新的类似的应用领 域。c.软部件及其文档进入软部件库,成为可供后续项目使用的可复用资源。 自从软件复用思想产生以来, 计算机科学家和软件工程师就致力于软件复用技 术的研究和实践。在 30 多年的时间内,出现多种软件复用技术,如: 库函数,模 板,面向对象、设计模式、组件、框架、构架。目前构件库相关的主要技术如下14: 构件:构件应是抽象的系统特征单元,具有封装性和信息隐蔽,其功能由它的 接口定义;构件可以是原子的,也可以是复合的,因此它可以是函数,过程或对 象类,也可以是更大规模的单元;一个子系统是包含其它构件的构件;构件是可 配置和共享的,这是基于构件开发的基石;构件之间能相互提供服务。 构架:构架是与设计的同义理解,是系统原型或早期的实现;构架是高层次的 系统整体组织;构架是关于特定技术如何合作组成一个特定系统的解释。 框架:如果把软件的构建过程看成是传统的建筑过程;框架的作用相当于为我 们的房屋搭建的“架子”。 框架从复用意义上说, 是一个介于构件和构架之间的一个 概念15。 重庆大学硕士学位论文 3 软件复用的重点构件库 13 其中,软件构件技术是支持产品复用的核心。 2) 构件技术 构件(component)是应用系统中能够明确辨识的构成成分,而可复用构件是指 具有相对独立的功能和复用价值的构件16。可复用软件构件是软件复用的核心技 术,是近几年来迅速发展并受到高度重视的一个分支。可复用软件构件具有以下 属性:有用性:构件必须提供有用的功能; 易用性:构件必须易于理解和使用; 质量:构件及其变体必须能正确运作;适应性:构件应该易于通过参数化等方式 在不同语境中进行配置;可移植性:构件能在不同的硬件平台和软件环境中工作。 随着对软件复用理解的深入,构件的概念已不限于源代码构件,而是延伸到需 求规约、系统和软件的框架、文档、测试计划以及其他对开发活动有用的信息。 基于构件的软件开发体现了软件的构造性和演化性: 新系统是通过复用已有构 件构造出来的;构件在使用之前需要根据需求进行修改(演化),已有系统也要根据 需求的变化而不断演化成新的系统。其主要研究内容包括:构件获取、构件模型、 构件描述、构件组织、标准化等方面17。 经过几年的发展,构件本身的模型及其规范已经提出,较有影响是 ole 的 com 及 corba 的 som。目前已发展到分布式构件规范,主要有 corba、 ole/activex 和 javebeans,其发展日趋明朗,最终将会趋向统一(web services)。 3.1.2 构件库管理系统发展背景 软件构件只有在数量上达到了一定的规模才能真正满足软件复用和基于构件 的软件开发的需求。因此必须有一个强有力的工具来对这些数量庞大的软件构件 进行管理。构件库作为一种支持软件复用的基础设施。它提供对软件构件进行描 述、分类、存储和检索等功能。 软件复用包括生产可复用构件和基于构件的软件开发。生产可复用构件的过 程是面向复用的软件开发活动,而基于构件的软件开发属于基于复用的软件开发 活动,即利用可复用构件生产新系统的过程。由构件库作为面向复用和基于复用 的两个开发过程的衔接纽带。构件库充当了一个中介设施,将面向复用的开发过 程和基于复用的开发过程衔接成一个整体,为构件的分类、组织、存储和查询提 供支持17。 软件复用和构件技术的广泛普及和应用将促使软件产业的合理分化及分工, 软件产业将分化为相对独立又紧密关联的三个部分:软件构件业、系统集成组装 业和信息服务业5。 1) 软件构件业支持面向复用的开发,针对应用领域及系统集成组装业的需求, 从事软件构件的开发和生产,包括通用基本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论