已阅读5页,还剩75页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于net的分布式应用系统的分析与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 i 基于.net 的分布式应用系统的 分析与设计 学科:学科:控制理论与控制工程 作者:作者:陈春娥 签名:签名: 导师:导师:王新房 教授 签名:签名: 摘 要 教务管理是学校的重要职能之一,是衡量学校管理水平的重要标准。论文以分布 式系统为研究背景,结合教务管理信息系统的开发实例,系统阐述了构建基于.net 的 分布式应用系统的设计开发方法。 本文首先对分布式系统体系结构和传统的分布式对象技术进行了分析和比较, 然 后对 web 服务、.net 框架进行了介绍,在此基础上,论文结合分布式系统的发展趋势 和.net 框架的特点提出了基于.net 的采用 web 方式的分布式系统的解决方案。论文 接着结合教务管理系统这个实例,重点进行了系统分析、系统设计。在系统分析设计 阶段,对教学计划管理、学籍管理、教师管理、教材管理、选课管理和排课管理几个 模块进行了分析。在设计方面,系统采用面向对象的思想,进行了系统的总体结构、 数据库、子模块、安全性设计。最后给出了系统实现过程中用到的 asp.net 技术、 ado.net、web 服务、xml 等关键技术。通过系统分析和系统设计,证实了系统分析在 系统设计过程中的重要性。 本系统基于微软 windows 平台, 采用 windows 2000 中的 iis5.0 作为 web server, ms sql server 2000 作为 database server,以.net 作为开发平台,vb.net 作为开 发语言, asp.net 作为开发路线。 关键字关键字:分布式系统、web 服务、.net 框架、教务管理 abstract ii the analysis and design of distributed application syatem based on .net the analysis and design of distributed application syatem based on .net specialty:specialty:theory and control engineering author:author: chen chun-e signature:signature: supervisor:supervisor: wang xin-fang prof. signature:signature: abstract abstract teaching activities are, in universities or institutes, one of the main functions and a important standard of high school management level. with the background of distributed system, this thesis systematically expands on the technology of building .net-based distributed application system, combing the teaching activities management information system. at first, the development of distributed system architecture and distributed object technology are analysed and compared. then web service and .net framework are introduced. based on this, this thesis combines the distributed application system developing trends and the typical of .net framework, puts the solving schema of distributed system based on .net and web service. combining teaching activities, system analysis and system design are discussed emphatically in the thesis. in the system analysis section, several modules such as teaching project module,student status management, teacher management, textbook management,course-selecting management are are analysed. in the system design section, the object-oriented design idea are used and the general structure、database、subsystem、system security are designed. finally,ado.net、asp.net、web service、xml etc technology to be used in developing the system are given. from the system analysis and design, the importance of system analysis in the process of system design are confirmed. abstract iii this system is based on windows platform, using iis 5.0 in windows 2000 as web server, ms sql server 2000 as database, vb.net as programming language, asp.net as developing technology. keywords: distributed system、 web service、 .net framework、 teaching activities 绪论 1 1 绪论 1 绪论 1.1 研究背景 1.1.1 分布式系统 1.1.1 分布式系统 分布式系统是由若干个站或叫节点的集合组成的。 这些节点在通讯网 络中连接在一起,每个站点本身是一个独立的计算机系统,有自己的中 央控制器,自己的终端,运行它自己的局部操作系统。实际上,每个站 都有极高的自治性,几乎完全不依赖于任何类型的集中控制或服务。通 过安装了分布式系统软件的网络,这些计算机能够协同工作、共享资源。 这些资源可以是硬件资源、软件资源,或者数据 【1】 。 到目前为之,分布式系统经历了四代发展,第一代称为主机/终端模 式,第二代称为 c/s 模式,第三代称为 b/s 模式,第四代是 web 服务模 式,这是以组件和 web 服务为中心的分布式系统模式。 随着面向对象技术的进一步发展,出现了分布式对象技术。在分布 式对象计算中,通常参与计算的计算体(分布式对象)是对称的,它是 一些独立的代码的封装体,在分布计算的环境下可以是一个简单的对象, 但在大多数情况下是一组相关的对象复合体,提供一定的服务,各对象 之间只能通过预先定义好的接口访问,这些接口构成连接客户机和服务 器的协议。任何对象都可以向其它对象提供服务,也可以请求服务。客 户机只需要知道服务器对象所提供的接口。目前常见的三种分布式对象 技术是:corba、dcom 和 java rmi。 然而 corba、dcom 和 java rmi 不能扩展到 internet,因为该体系的 基础是服务器上的客户端和服务器的紧密连接,它们都需要在服务器和 客户机上使用明确的、同类型基本架构的具体对象模型协议,这就意味 着两者必须是同质的基础体系,如果有任何一端接口发生变化,另一端 程序就会中断。尽管与具体技术紧密结合的实现在一个受控的环境中能 很好的被接受,但当它们在 internet 环境中时就变得不切实际,同时要 西安理工大学硕士学位论文 2 在异构系统之间实现互联也极为困难。 另一方面,绝大多数公司组织都在自己的局域网和 internet 之间设 置了防火墙,而 corba、dcom 和 java rmi 都没有采用现有的标准协议来 进行通信,而是使用各自专一的一种面向对象的 rpc 通信机制,使得基 于这些协议的通信很难穿越防火墙。 为了解决这些问题,一种采用 xml 封装数据和对象、用 soap 作为方 法调用协议的 web 服务模式应运而生。 1.1.2 web 服务1.1.2 web 服务 【2】 web 服务使用基于 xml 的消息处理作为基本的数据通讯方式, 消除使 用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类 系统能够作为单个计算网络协同运行。开发人员可以用象过去在创建分 布式应用程序时使用组件一样的方式创建将来自各种源的 web 服务组合 在一起的应用程序。 web 服务实现的最基本的方案是向它的客户端提供某个基本功能以 供其使用,也可以以复合方式使用 web 服务来集成一组似乎完全不同的 现有应用程序。这样客户端只要知道 web 服务的位置、签名方法和返回 值,而不必知道其它任何关于 web 服务的情况。同时,大多数 web 服务 都通过 http 访问,而几乎所有的防火墙都允许 http80 端口的通信通过, 这样就解决了防火墙问题。 web 服务是建立在一些通用协议的基础上, 如 http, soap, xml, wsdl, uddi、disco 等。这些协议在涉及到操作系统、对象模型和编程语言的选 择时,没有任何倾向,因此将会有很强的生命力。 web 服务是为解决在 internet 环境下,松散耦合的 web 服务之间进 行调用、互相集成而设计的技术框架。 1.1.3 1.1.3 .net 框架.net 框架 【3】 绪论 3 .net 框架是一种新的计算平台,它包含了操作系统上软件开发的所 有层,它提供了微软平台(或者说任何平台上)所曾见过的组件技术、呈 现技术和数据技术的最丰富的集成级别,整个体系结构已经被创建为易 于在高度分布式 internet 环境中的应用程序开发,就像进行传统的桌面 系统开发一样。它是用于建立、部署以及运行 xml web 服务和其它应用 程序的编程模型。 基于.net框架的分布式系统是将.net框架技术与分布式计算结合起 来,利用分布式系统的多层体系结构。将应用组件化,并以 web 服务的 方式把应用逻辑暴露给客户,以此来满足在复杂的分布式环境中不断增 长的系统需求,从而有效的控制分布式系统的开发、管理以及系统维护 的复杂性。 1. 2 论文业务背景 多媒体、网络、面向对象、系统集成和数据库等领域新技术的不断 涌现和融合,深刻改变了现代化信息系统的结构和形式,信息产业处于 日新月异的技术更新阶段,internet 的迅猛发展也使得信息网络化成为 必然趋势,近几年来,各地高校的计算机应用进入了一个暂新的阶段, 校园计算机网络已成为各高校管理的基础设施和必备条件,校园网的应 用提高了教育的现代化水平,为建立信息化学校提供了有力的保证。校 园网是校内各部门联系的纽带,它的建设和使用,为教学、科研、管理 等提供了一个信息港。在日益复杂的异构化网络分布式环境中,众多新 技术的产生使得各种软硬件平台之间可以实现无缝连接,而且分布式处 理能力更加强大和安全,在这种技术背景下,采用分布式处理、对于提 高高校的教务管理水平和工作效率以及高校的对外交流能力是非常有益 的。 高校教务管理信息系统的研究已经有很长时间了,由于各种原因, 不同高校的教务管理都有自身的特点,因此开发的教务管理信息系统也 西安理工大学硕士学位论文 4 不尽相同。同时现有的教务管理系统管理模式是手工处理结合计算机, 但随着学校专业设置的多样化、学校规模的不断扩大以及教学计划的不 断完善,教务管理的数据量急剧增加,传统的管理模式是难以胜任的。 采用分布式管理可以对各个系统的各种信息进行集中统一的管理,并利 用这些信息进行统一分析,适应了管理系统信息化的需要。 所以,建立一个完善的、分布式的教务管理系统是非常必要的。 1.3 论文研究内容 本论文是在充分汲取管理信息系统先进经验的基础上,通过对高校 教务管理实际的调查和研究,根据教务管理的各种信息的要求,在此基 础上结合.net 框架与分布式系统的技术及其特点,提出了基于.net 框架 的高校教务分布式管理系统的解决方案。 论文的内容安排如下: 第一章绪论,简要介绍了分布式系统的发展、web 服务技术及.net 框架技术及其特点,最后介绍了论文的业务背景。 第二章首先介绍了分布式系统的体系结构,然后分析了几种主流分 布式对象技术并进行了比较,提出了基于 web 服务模式的分布式系统技 术,论述了 web 服务并对当前两种主要的 web 服务架构进行了分析比较, 最终决定采用.net 来建立分布式应用系统。 第三章介绍了.net 框架的基本结构、重要组成部分以及新特性,然 后介绍了基于.net 的分布式系统模型。 第四章对教务管理系统进行了分析,提出了系统的设计方案,并结 合对系统的分析对系统进行了具体设计,最后论述了系统的运行平台要 求。 第五章对系统实现过程中的关键技术进行了介绍。 分布式系统技术 5 2 分布式系统技术 2 分布式系统技术 2.1 分布式系统的体系结构 2.1.1 主机/终端模式 2.1.1 主机/终端模式 在 70 年代和 80 年代,应用系统模式以主机/终端结构为主,这是一 种典型的胖服务器/瘦客户机工作模式,提供了高度的集中控制,这种模 式易用性差,过于封闭,系统伸缩性小。 2.1.2 client/server 结构2.1.2 client/server 结构 【4】 到 80 年代末,应用系统模式发展到 client/server 结构,如图 21 所示,它的数据及应用服务集中存储,可通过不同的平台存取,有较好 的系统伸缩性。在此体系结构中,客户层负责可视化界面,进行人机交 互处理;中间件进行业务逻辑处理;而服务器层则负责持久数据的管理。 它把集中管理模式转化为一种服务器与客户机负荷均衡的分布式计算模 式,解决了执行效率和容量不足的问题。 在 c/s 模式下开发的应用系统也有一些方面不够完善,不能适应不 断增长的多方面需求,主要体现以下几点:封闭式系统,不同系统之间 交流困难;用户界面分割各异,不利于推广使用;系统开发和维护复杂; 缺乏系统性的结构框架。 2.1.3 browser/server 结构2.1.3 browser/server 结构 【5】 服务器 中间件 clientclientclient 21 c/s 体系结构 sql 请求 返回结果 西安理工大学硕士学位论文 6 到 90 年代中期, web 技术的出现使 browser/server 结构逐渐成为应 用系统模式最具前景的模式,如图 22 所示。b/s 模式是利用现有的 intranet/web 技术,将应用程序放在 web 服务器上,应用程序做成 web 页的形式。客户统一用 web 浏览器来访问 web 服务器并运行其他程序。 b/s 模式将数据库和应用程序都放在服务器上, 其实质不仅实现了数据处 理的 c/s 方式,还实现了应用程序的 c/s 方式,从而克服了原来 c/s 模 式出现的问题。b/s 模式可以直接接入 internet,具有良好的可扩展性。 此模式具有以下特点:易用性好,易于维护,信息共享度高,扩展 性好,安全性好。 2.1.4 基于 web 的分布式结构2.1.4 基于 web 的分布式结构 【6】 从 client/server 结构的时代开始,基于分布式系统和组件的研究 领域非常活跃,这些研究成果都不断的被纳入到 client/server 结构。 在 90 年代,面向对象的概念变的非常流行,系统的结构化思想逐渐向面 向对象的思想转变,组件模型和分布式组件模型的研究被纳入到 client/server 结构和 web 体系结构之中,把中间层划分为许多服务程 序,将每个服务程序都视为独立的层,这样就形成了 n 层体系结构和 web 分布式计算的概念。从 90 年代中后期开始,分布式组件技术和标准逐渐 融入到 web 体系结构中去,形成了基于 web 的分布式系统环境,如图 2 3 所示。典型的 n 层结构就是基于 web 的应用程序,这种分布式系统模 式继承了 browser/server 模式的特色,同时又增加了分布式组件带来的 好处。 sql 结果 html 结果 数据库 服务器 web 浏览器 web 服务器 http 请求 sql 请求 22 b/s 体系结构 分布式系统技术 7 2.2 分布式对象技术 分布式对象技术主要是在分布式异构环境下建立应用系统框架和对 象构件,在应用系统框架的支撑下,开发者可以将软件功能包装为更易 管理和使用的对象,这些对象可以跨越不同的软硬件平台进行互操作。 分布式对象技术采用面向对象概念组织、管理网络计算,支持面向对象 的多层客户机/服务器模型,可在不同机器的对象间相互传递消息,共同 协作实现系统功能。目前主要的分布式互操作标准有 microsoft 的 com/dcom 标准、sun 公司的 java rmi 标准和 omg 组织的 corba 标准 【7】 。 2.2.1 com/dcom 【8】 dcom 是微软、dec 等公司的分布式计算策略。1996 年 microsoft 提 出的 dcom(分布是组件对象模型)是基于以下一个简单的思想:在 dcom 协议的支持下,不同应用程序可以透过网络进行互操作。这样我们可以 在一个应用程序中(或 dll 连接库)创建对象,而从驻留在另外一台机 器上的程序中通过接口调用此对象的方法。dcom 是原 com 技术的延续, 主要是增加了远程调用 com 部件的功能。另外,由于它结合原来 com 中 的 activex 技术,使得原有的各种 activex 部件也因 dcom 的兼容性而变 成可被远程调用的部件。 com/dcom 的结构如图 24 所示。com/dcom 中客户与被请求对象通 服务器 web 应用程序 clientclientclient 23 基于 web 的 n 层分布式体系结构 web 服务器 数据库服务 服务器层 中间层 中间层 客户层 西安理工大学硕士学位论文 8 信是基于定义的二进制结构,这样只要符合此二进制规范就可以实现不 同编程语言实现的客户和组件之间的互操作性。 dcom 的技术特点在于每个程序模块无需存储各客户端,更无需下载 程序本身在客户端运行,只要在服务器内存放一份 dcom 部件,不同地方 的用户即可通过网络来访问这一 dcom 部件。使用 dcom 部件构成的大型 程序,可以把处理相同工作的部分分割出来交给一个专门的软件模块完 成,而其他程序或其他 dcom 部件只需对其进行调用,即可获得需信息。 当程序流程发生变化时,程序员只要对变更的部分进行修改,即可同时 对其他单位的程序更新,有效地提高了整个系统的灵活性。 2.2.2 java rmi2.2.2 java rmi 【9】 java 语言具有可移植性强、可跨平台工作、完全面向对象、安全性 强等多方面强大的优势,sun 公司在此基础上推出了采用 corba 思想为 java 语言环境设计的分布式对象模型java rmi(remote method invocation,远程方法调用),其主要用于构建小型的分布式应用程序。 java rmi 支持存储于不同地址空间的程序级对象之间彼此进行通信,实 现远程对象之间的无缝远程调用。rmi 目前使用 java 远程消息交换协议 jrmp(java remote messaging protocol)进行通信。用 java rmi 开发 本地服务器进程 com stub本机对象 远程服务器进程 com stub远程对象 本地客户进程 客户应用程序 进程内对象 本地对象代理 远程对象代理 图 24 com/dcom 组成示意图 分布式系统技术 9 的应用系统可以部署在任何支持 jre (java run environment)的平台上。 但由于 jrmp 是专为 java 对象制定的,因此,rmi 对于用非 java 语言开 发的应用系统的支持不足,不能与用非 java 语言书写的对象进行通信。 java rmi 体系结构如图 25 所示。 rmi 应用程序通常包括两个独立的程序:服务器程序和客户机程序。 典型的服务器应用程序将创建多个远程对象,然后等待客户机调用这些 远程对象的方法。而典型的客户机程序则从服务器中得到一个或多个远 程对象的引用,然后调用远程对象的方法。rmi 为服务器和客户机进行通 信和信息传递提供了一种机制。 在与远程对象的通信过程中,rmi 使用标准机制:stub 和 skeleton。 远程对象的 stub 担当远程对象的客户本地代表或代理人角色,调用程序 将调用本地 stub 的方法,而本地 stub 将负责执行对远程对象的方法调 用。 在 rmi 中, 远程对象的 stub 与该远程对象所实现的远程接口集相同。 在远程虚拟机中,每个远程对象都可以有相应的 skeleton,skeleton 负 责将调用分配给实际的远程对象实现。 2.2.3 corba2.2.3 corba 【10】 corba(公共对象请求代理规范)是由 omg(对象管理组织)于 1991 年提出的,它是在不同平台、不同语言之间实现对象通信的模型,它为 分布式应用环境下对象资源共享、代码重用、可移植和对象间相互访问 java 客户机 调用b的方法a 存根对象 a 分布式计算服务 java 服务器 对象b的方法a 骨架对象 a 分布式计算服务 远程对象调用协议 图 25 java rmi 体系结构 西安理工大学硕士学位论文 10 建立了通用标准,同样也为在大量硬件、软件之间实现互操作提供了良 好的解决方案,使不同厂商生产的运行于不同操作系统的对象可以交互 操作。 corba 的核心部件是 orb 和 omg 接口定义语言。orb 包括了确定和定 位对象,进行连接管理和收发数据所必须的所有通讯设施,orb 的基本任 务是把请求从客户方传送到被激活的对象实现中,它给分布式对象提供 了透明地发送请求和接受响应的机制。 omg idl 是一种严格定义的接口定义语言,用它编写的接口定义能完 整的定义接口,并完备地说明每个操作的参数。omg idl 是独立于具体编 程语言的,也是独立于平台的,它是一个纯规约,不涉及实现问题。omg idl 主要的用途是定义应用系统中的重要接口,这些接口是复用、互操作 的关键部分,也是软件体系结构的重要组成部分。 corba 请求发送和响应的方法如上图 26 所示。通过 orb,客户机 可以请求远程对象的操作,这些操作是由 idl 描述的,orb 之间通过因特 网 orb 互联协议(iiop)进行通信。客户机与远程对象发送和接受请求 的方法主要有两种:静态方法和动态方法,对于一般的 corba 应用,静 态方法使用更普遍,上图描述的是静态方法。 2.2.4 三种主流分布式对象技术的比较 2.2.4 三种主流分布式对象技术的比较 客户机进程 客户机 正常调用 orb runtime 代理 桩 iiop 服务器进程 正常调用 orb runtime 正常调用 图 26 corba 请求发送和响应的方法 分布式系统技术 11 前面介绍了三种主流的分布式对象技术,在这三种实现方式中, corba 最受学术界推崇,是分布式对象技术研究的典型,目前也是一个研 究的热点。corba 的内容大而全,具有良好的跨平台性、强壮的编程语言 支持和安全性能,是发展最早也是最完善的,但是,corba 缺少方便的开 发工具和强有力的厂商支持 【11】 。 rmi 直接把分布式对象模型嵌入到 java 语言内部, 使得 java 程序员 可以自然地编写分布式程序,不必离开 java 环境,或者涉及 corba idl 以及 java 到 corba 的类型转换。然而 rmi 不遵守 corba 标准,基本上是 java-to-java 技术,它需要客户方程序和服务方程序都用 java 编写,难 以实现与其它语言编写的对象之间的互操作。 dcom 则是从 com 改造过来的。 microsoft 把 dcom 作为开发 internet 和组件的基础,目前已搭载到 windows nt 4.0 以上版本和 windows 98 中。com 这一技术部分是作为规范,它定义对象实现的二进制标准,用于 单机上应用之间的通信,对象实现与使用的语言无关。dcom 是 com 的分 布式扩展,在 dce rpc 之上构造对象的远程过程调用层支持对远程对象 的访问。一个 dcom 对象(又称为 activex 对象)是支持一个或多个界面 的组件,dcom 界面指预先规定的一组相关函数。dcom 类实现一个或多个 界面, 由一个又一个 128-bit类 id唯一标识。 客户程序通过获得指向 dcom 对象的界面的指针与该对象交互,通过指针调用其操作。客户程序从不 直接访问对象。dcom 对象不支持对象 id,因此,客户程序不能与某个特 定的对象发生联系。 2.3 web 服务技术 新一代的分布式计算是以基于服务的模式为主要特征的,在这种新 的模式中,web 服务迅速取代了单一的、宿于胖客户机的并花费很大精力 维护和管理的软件应用,因此使得 web 服务在互联网中越来越受到重视。 西安理工大学硕士学位论文 12 2.3.1 web 服务概述2.3.1 web 服务概述 【13】 从表面上看,web 服务就是一个应用程序,它向外界暴露出一个能够 通过 web 进行调用的 api,也就是说,能够用编程的方法通过 web 调用来 实现某个功能的应用程序。从深层次上看,web 服务是一种新的 web 应用 程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常 为 web)中被描述、发布、查找以及通过 web 来调用。 web 服务是基于网络的、分布式的模块化组件,它执行特定的任务, 遵守具体的技术规范,这些规范使得 web 服务能与其他兼容的组件进行 互操作。它可以使用标准的互联网协议,如超文本传输协议(http)和 xml,将功能体现在互联网和企业内部网上。web 服务平台是一套标准, 它定义了应用程序如何在 web 上实现互操作性。用户可以用喜欢的任何 语言在喜欢的任何平台上写 web service。它具备了以下特征: 完好的封装性。web 服务既然是一种部署在 web 上的对象,自然具备 对象的良好封装性,对于使用者而言,能且仅能看到该对象提供的功能 列表。 松散耦合。当一个 web 服务的实现发生变更的时候,调用者是不会 感到这一点的,对于调用者来说,只要 web 服务的调用界面不变,web 服务实现的任何变更对他们来说都是透明的。 使用标准协议规范。作为 web 服务,其所有公共的协约完全需要使 用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费 的规范,以便由任意方进行实现。 高度可集成能力。由于 web 服务采取简单的、易理解的标准 web 协 议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异, 任何软件都可以通过这一种标准的协议进行互操作,实现了在当前环境 下最高的可集成性。 2.3.2 web 服务的体系架构 2.3.2 web 服务的体系架构 分布式系统技术 13 web 服务技术是为解决在 internet 环境下,松散耦合的 web 服务间 进行交互调用、互相集成而设计的技术框架。以 xml/soap/wsdl/uddi 为 主干的 web 服务技术赋予了 web 服务一个与传统对象调用技术相似但又 不太相同的体系架构,对于 web 服务而言,其典型的体系架构如图 27 所示。 在 web 服务的体系架构里有三个角色:服务提供者、服务注册中心 和服务请求者。服务提供者是最终提供 web 服务的供应商,它实现了一 个 web 服务,并放置在在线服务器上供别人使用。服务注册中心是一个 web 服务的注册地,汇集了很多在线的 web 服务,一般来说服务提供者将 web 服务安装到在线服务器之后,会将 web 服务发布到服务注册中心去, 从而使得服务注册中心包含了越来越多的 web 服务的技术信息。 对于 web 服务请求者来说,一般情况下,他首先去查询服务注册中心,发现合适 地 web 服务以后,将从服务中心获取这些 web 服务的技术信息引用,通 过这些引用找到真正的 web 服务及其相关的技术信息,从而完成服务请 求者与服务提供者之间的技术绑定。 三个角色通过服务的发布、查找、绑定进行交互。服务提供者通过 用代理者的发布接口让客户能访问服务来通知代理者服务存在。发布信 息描述了服务并说明服务定位在哪儿。服务请求者询问代理者服务的定 位。根据从代理者获得的服务信息,请求者可以绑定或者调用这个服务。 对于这三个角色之间的任意两者间的交互,使用的都是 web 服务的 交互模式(服务中心也是以 web 服务的形式来运行的) ,一般使用 soap。 而这些被调用的 web 服务,其调用界面都是使用 wsdl 来描述的。 服务提供者 服务请求者服务中介者 发布 绑定 查询 图 27 web 服务体系架构 西安理工大学硕士学位论文 14 2.3.3 web 服务的工作流程 2.3.3 web 服务的工作流程 在面向服务的环境下,web 服务的工作流程如图 28 所示。 实现一个完整的 web 服务包括以下步骤: (1)服务提供者设计实现 web 服务,并将调试正确后的 web 服务通 过服务中介者发布,并在 uddi 注册中心注册; (2)服务请求者向服务中介者请求特定的服务,中介者根据请求查 询 uddi 注册中心,为请求者寻找满足请求的服务; (3)服务中介者向服务请求者返回满足条件的用 wsdl 写成的 web 服务描述信息,各种支持 web 服务的机器都能阅读; (4)利用从服务中介者返回的描述信息生成响应的 soap 信息,发送 给服务提供者,以实现 web 服务的调用; (5)服务提供者按照 soap 消息执行响应的 web 服务,并将结果返回 给服务请求者。 2.3.4 web 服务的技术支持 aweb 服务数据 2.3.4 web 服务的技术支持 aweb 服务数据 uddi目录服务 web服务 定位服务 请求发现文档(disco) 请求服务描速(wsdl) 请求服务(soap) 发现文档的连接 返回发现文档(disco) 返回服务描述(wsdl) 返回服务响应(soap) 设计、发布、注册服务 web 服务 开发者 web服务客户 图 28 web 服务的工作流程 分布式系统技术 15 xml(可扩展标志语言)作为一种新的 internet 上的数据交换标准, 其开始设计时的主要目标是用来弥补html作为网络标准语言的不足。 xml 实质上是一个精简的 sgml,它将 sgml 的丰富功能与 html 的易用性结合 到 web 的应用中。xml 保留了 sgml 的可扩展功能,这使 xml 从根本上有 别于 html。xml 要比 html 强大得多,它不再是固定的标记,而是允许定 义数量不限的标记来描述文档中的资料,允许嵌套的信息结构。html 只 是 web 显示数据的通用方法,而 xml 提供了一个直接处理 web 数据的通 用方法。html 着重描述 web 页面的显示格式,而 xml 着重描述的是 web 页面的内容。随着 xml 在 internet 应用中的不断普及,xml 从 web 网站 的内容管理、内容表示开始逐渐扩散到其它基于 internet 的应用中。 xml 解决了在不同平台/系统之间的数据结构/模式的差异, 使得数据 层在 xml 技术的支持下,统一了起来。 bweb 服务活动与通信bweb 服务活动与通信 【14】 为了使模块层能够以一种开放的、自说明的、统一的方式进行集成 和交互,ibm、microsoft 等公司协作制定了简单对象访问协议(soap) 规范。 soap 是序列化调用位于远程系统上的服务所需信息的标准方法,这 些信息可以使用一种远程系统能够读懂的格式通过网络发送到远程系 统,而不必关心远程系统运行于何种平台或者使用何种语言编写。soap 以 xml 格式提供了一个简单、轻量的用于在分散或分布环境中交换结构 化和类型信息的机制。soap 本身并没有定义任何应用程序语义,如编程 模型或特定语义的实现;它通过提供一个有标准组件的包模型和在模块 中编码数据的机制,定义了一个简单的表示应用程序语义的机制,这使 soap 可用于联合各种现有的网络协议和格式,包括 http、smtp 和 mime, 并可被用于消息传递到 rpc 的各种系统。 soap 解决了通过防火墙传送往返于远程应用程序的消息的问题。除 了通过某些预先设定的作为特定用途的端口,防火墙通常禁止通过其它 西安理工大学硕士学位论文 16 端口进行远程通讯。这就出现了一个问题,大部分分布式协议不使用分 配的端口,而是动态地选择端口。微软 soap 技术实现的解决方案是通过 http 的 80 端口传送对远程进程的调用。 这个远程调用使用 xml 定义消息 请求或响应的格式,把调用附加到 http 协议的顶部。这个技术的优点之 一就是降低通过防火墙传送消息的复杂性,但是 80 端口通常还用来作为 web 通信之用,所以可能会降低其效率。 简单的说,soap 提供了使用完全独立于平台的访问服务、对象和服 务器的技术。通过 soap,用户将能够查询服务、调用服务、与服务通讯 并处理服务,而不用去关心远程系统的位置、所在的操作系统或平台到 底是什么样的。 cweb 服务的描述 cweb 服务的描述 web 服务描述语言(wsdl)是用来描述网络(network)服务或终端 (endpoint)的一种 xml 语言,它用于定义 web 服务以及如何调用它们 (描述 web 服务的属性) 。wsdl 文档可用于动态发布 web 服务、查找已发 布的 web 服务以及绑定 web 服务。 在 wsdl 中包含了使用 soap 的服务描述的绑定,也包含了使用简单 http get 和 post 请求的服务描述的绑定,这使得除 web 浏览器以外,其 它应用程序也可以与 web 站点进行直接交互。wsdl 将 web 服务定义成一 系列的端口,每个端口用来表示从抽象端口类型到用于调用 web 服务的 具体通信协议的一个映射。端口类型由一组与 service provider 交换信 息的操作组成,它支持对包含消息的数据类型的定义。 一个完整的 wsdl 服务描述是由一个服务接口和一个服务实现文档 组成的。由于服务接口表示服务的可重用定义,它在 uddi 注册中心被 作为技术规范发布。由于 wsdl 包含了对服务接口的完整描述,所以我们 可以使用它来创建能简化服务访问的存根,该存根为一段代码,它自动 生成了访问 web 服务的类。如果我们需要访问 web 服务,只需调用该类 中对应的方法即可,而不用在客户端程序中再写入配置信息了。 分布式系统技术 17 dweb 服务发现dweb 服务发现 【15】 统一描速、发现和集成协议(uddi)是一套基于 web 的、分布式的、 为 web 服务提供的信息注册中心的实现标准规范,同时也包括一组使用 户能将自身提供的 web 服务注册以使别的企业能够发现的访问协议的实 现标准,它是为了实现在广泛环境内的服务发现和服务集成而产生的。 web 服务是下一代的 www,它允许在 web 站点上放置可编程的元素, 使得能够进行基于 web 的分布式计算和处理。uddi 提供了一种基于分布 式的商业注册中心的方法,该商业注册中心维护了一个企业和企业提供 的 web 服务的全球目录,而且其中的信息描述格式是基于通用的 xml 格 式的。 uddi 为 web 服务在技术层次上提供了三个重要的支持:标准化、透 明的、专门描述 web 服务的机制;调用 web 服务的简单机制;可访问的 web 服务注册中心。 uddi 注册使用的核心信息模型由 xml schema 定义。使用 xml 是因 为它提供了平台无关的数据描述并很自然的描述了数据的层次关系。而 选择 xml schema 是因为它支持丰富的数据类型,便捷的描述方式及其按 信息模型对数据进行验证的能力。 uddi xml schema 定义了五种主要信息类型,它们是技术人员在需 要使用合作伙伴所提供的 web 服务时必须了解的技术信息分别是:商业 实体信息、服务信息、绑定信息、技术规范和关联关系断言的说明信息。 2.3.5 web 服务与传统分布式对象技术的比较 a、web 服务的优势 2.3.5 web 服务与传统分布式对象技术的比较 a、web 服务的优势 以前,分布式的应用程序逻辑需要使用分布式的对象模型,如 microsoft 的分布式组件对象模型(dcom) 、对象管理组织的公共请求代 理程序体系结构(corba)或 sun 的远程调用方法(rmi) 。通过使用这些 基本结构,系统开发人员可拥有使用本地模型所提供的吩咐资源和准确 西安理工大学硕士学位论文 18 性,并可将服务置于远程系统中。 但是这些系统有一个共同的缺陷:那就是它们无法扩展到互联网上。 它们要求客户端与系统提供的服务本身之间必须进行紧密耦合,即要求 一个同类基本结构。这样的系统往往十分脆弱,如果一端的执行机制发 生变化,那么另一端便会崩溃。许多应用程序是基于紧密耦合的基本结 构构建而成的,当各个公司要求相互合作或者信息技术提供商扩大业务 范围的话,很难实现单一而统一的基本结构,无法保证希望与之进行远 程通信的管道的另一端具备所需要的基本结构。 相反,web 服务彼此是松散耦合的。连接中的任何一方均可更改执行 机制,却不影响应用程序的正常运行。从技术角度来讲,人们已经转向 使用一种基于消息的异步技术来实现高可靠性的系统性能,通过使用诸 如 http、简单邮件传输协议(smtp)以及至关重要的 xml 来实现统一的 连接。 web 服务是一个可编程的应用,可以用标准的 internet 协议访问, 它结合了以组件为基础的开发模式以及 web 的出色性能,同时 web 服务 具有黑匣子的功能,可以在不关心功能如何实现的情况下重复使用。 不同于目前的组件技术, web 服务是通过通用网络协议和数据格式来 访问的,如 http 和 xml,并且一个 web 服务的界面是按照 web 服务连接 和生成的消息类型严格定义的,web 服务的用户只要能够创建和使用为 web 服务界面所定义的消息就可以使用任何语言在任何平台上完成功能, binternet 上的应用集成binternet 上的应用集成 在新一代的分布式应用系统中,必须解决不同组件模型、开发工具、 程序语言和应用系统之间在 internet 环境中互相沟通和合作的问题,因 此必须要有一种标准的沟通机制,这种机制就是 soap。 soap 是独立于任何厂商的一种标准协议,它是以 xml 的标准格式来 封装通信信息的一种沟通机制,其中封装的通信信息以文本形式来表达, 任何组件模型、开发工具、程序语言、应用系统和操作系统只要支持 xml 分布式系统技术 19 和文本格式,就可以支持 soap,这使得 soap 成为了在 internet 上应用 系统集成的关键。如果在系统中使用 soap 来沟通和交换数据,在系统开 发中使用 web 服务,那么就可以重复使用 internet 上各个企业提供的功 能和资源,实现在 internet 上的无缝集成。 soap/web 服务具有强大的集成能力,所有的引用系统和设备可以通 过其标准来沟通、协调并互相调用。在 web 服务中可以封装好不同的服 务提供者提供的服务,让客户端通过一致的接口调用,不再需要使用特 定的 api 接口;而服务的核心本身可以使用 soap/web 服务技术动态的调 整和集成,这样的结构非常适合于使用 internet 和动态的环境中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆市血液中心非在编采血护士招聘1人模拟试卷含答案详解(基础题)
- 2026年安徽农业大学茶业学院管理助理招聘考前冲刺密卷及参考答案详解(黄金题型)
- 2026年河南省事业单位招聘联考开封市龙亭区考察笔试题库附参考答案详解(典型题)
- 2026四川大学校聘非事业编制岗位招聘14人笔试题库附完整答案详解(名师系列)
- 2026河北石家庄市艺术学校招聘兼职教师16人笔试题库附参考答案详解【典型题】
- 中地国际工程有限公司2027届土建技术员(海外岗)招聘10人模拟试卷及参考答案详解【培优A卷】
- 2026云南楚雄州永仁县教育系统选调校医1人笔试题库【原创题】附答案详解
- 中地国际工程有限公司2027届土建技术员(海外岗)招聘10人笔试题库【名师系列】附答案详解
- 2026江西南昌安义县工投商业管理有限公司第二批招聘工作人员1人模拟试卷【综合卷】附答案详解
- 2026(第四期)广东顺德人资企业管理有限公司招聘14人笔试题库附参考答案详解(精练)
- 2025年茂名港集团有限公司招聘笔试真题
- 2026安徽师范大学专职辅导员招聘3人(第二批)笔试参考题库及答案详解
- 2026年车险查勘定损人员上岗考核试卷及答案
- 成都教科附属2026初一入学语文分班考试真题含答案
- 2026书记员面试题目及答案
- 2026-2027北师大版七(上)数学第一章 丰富的图形世界 单元测试卷
- 2026中煤华利新疆炭素科技有限公司招聘16人笔试历年典型考点题库附带答案详解
- 中国骨科大手术vte预防指南(2025版)
- 肺癌病人营养支持护理
- 2026年江苏省安全员C1证(机械类)考试真题(含答案解析)
- 2026中医养生精益化管理课件
评论
0/150
提交评论