企业级信息系统开发技术_第1页
企业级信息系统开发技术_第2页
企业级信息系统开发技术_第3页
企业级信息系统开发技术_第4页
企业级信息系统开发技术_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

企业级信息系统开发技术 第10章WebServices开发 学习要点 1 掌握WebServices的基础知识 2 熟悉构建WebService的过程 绪 为什么需要分布式 EJB 分布式部署应用程序 客户端 Web端 EJB组件1 EJB组件2 EJB组件3 EJB组件n DB 绪 为什么需要分布式 分布式应用 中心端服务器JavaEE 地区端服务器 net 地区端服务器 net 地区端服务器 net 地区端服务器 net 地区端服务器JavaEE 地区端服务器JavaEE 地区端服务器JavaEE 地区端服务器JavaEE EJB 情景 为什么要使用WebServices 两个应用系统之间需要交互数据 通信 如果是同一种语言Java EJB RMI IIOP Net NETRemoting RPC 如果是使用了不同的语言 Java调用 Net提供的功能 Java Net DB 这种方式有什么弊端 情景 为什么要使用WebServices 什么是服务 Services 传统上 我们把计算机后台程序提供的功能 称为 服务 service 通俗地说 服务 就是计算机可以提供的某一种功能 根据来源的不同 服务 又可以分成两种 本地服务 使用同一台机器提供的服务 不需要网络 网络服务 使用另一台计算机提供的服务 必须通过网络才能完成 情景 为什么要使用WebServices Web服务是一种面向服务的架构的技术 通过标准的Web协议提供服务 目的是保证不同平台的应用服务可以互操作 根据W3C的定义 Web服务应当是一个软件系统 用以支持网络间不同机器的互动操作 网络服务通常是许多应用程序接口 API 所组成的 它们透过网络 例如国际互联网 Internet 的远程服务器端 执行客户所提交服务的请求 WebService架构的基本思想 就是尽量把非核心功能交给其他人去做 自己全力开发核心功能 Java Net stub存根 skeleton骨架 HTTP XML SOA与WebServices SOA是什么SOA是指为了解决在Internet环境下业务集成的需要 通过连接能完成特定任务的独立功能实体实现的一种软件系统架构 面向服务是一种理念 面向服务的架构是基于这种理念的架构方法 面向服务在不少方面是以面向对象为基础 当前典型的面向服务的解决方案由服务和面向对象的组件构成 SOA与WebServices 一个典型的电子商务流程 电子商务门户 销售商 工厂 支付宝 物流公司 SOA与WebServices 业务层 服务 电子商务门户 订单 支付 确认支付 销售商 支付宝 浏览 工厂 物流公司 组合服务 服务 清单 订单 下单 发货 支付 确认支付 交货 业务层 服务 SOA与WebServices 服务之间是松耦合的服务可独立存在 网购电子商务门户 订单 支付 确认支付 销售商 支付宝 浏览 工厂 物流公司 组合服务 服务 清单 订单 下单 发货 支付 确认支付 交货 服务可独立存在 接口和实现可分离的 服务隐藏了服务实现内部复杂逻辑和技术 服务之间是松散耦合的 服务之间通过消息交互 SOA与WebServices 在架构人员眼中 一切皆服务 技术 业务 管理人员业务人员 设计人员开发人员 客户 合作伙伴 构件技术 分布对象技术 应用服务器技术 架构人员 SOA与WebServices SOA一个架构方法 将应用程序的不同功能单元 服务 通过这些服务之间定义良好的接口和契约联系起来 接口是采用中立的方式进行定义的 它应该独立于实现服务的硬件平台 操作系统和编程语言 构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互 SOA与WebServices WebServices从外部的使用者的角度而言 Web服务是一种部署在Web上的对象 组件 它有一个或多个端口 Port 这些端口用于接收客户端的请求 并返回响应 Web服务的特点 Web服务是基于标准的 WSDL UDDI SOAP XML TCP HTTP SMTP Web服务是跨平台 跨语言的Web服务是面向消息的Web服务获得了广泛的支持 SOA与WebServices WebServices应用 SOA与WebServices SOA架构 第10章WebService开发 10 1Web服务概述10 2WEBService基础10 3XML基础10 4使用JAX WS构建简单的WebService 10 1WebService概述 简单来说 WebService就是一个向外界暴露出接口的能够通过网络进行远程调用的应用程序 更准确地说 一方面WebService是一种部署在Web上的对象 另一方面WebService是建立在以XML为主的 开放的Web标准协议规范的基础上的分布式应用新平台 也就是说WebService的实质是一套标准 它定义了应用程序如何在Web上实现互操作 只需要遵守这一套标准 人们可以用任何语言 在任何平台上实现所需要的WebService 并且可以顺利地同网络上任何其它亦遵守上述协议的WebService组件进行互操作 从而可以实现一种高效 低廉的异构平台上应用的集成 对于从事企业应用开发来讲 学习WebService技术是相当必要的 10 1WebService概述 WebServices Web服务 定义 WebService是一种新的Web应用程序分支 它们是自包含 自描述 模块化的应用 可以在网络 通常为Web 中被描述 发布 查找以及通过Web来调用 使用标准的互联网协议 像超文本传输协议HTTP和XML Webservice平台是一套标准 它定义了应用程序如何在Web上实现互操作性 你可以用任何你喜欢的语言 在任何你喜欢的平台上写Webservice 10 1WebService概述 WebService的特点跨平台的可互操作性跨防火墙的通信应用程序集成B2B的集成软件和数据重用普遍 易用性 10 1 1WebService的核心标准 WebService的核心标准XMLSOAPWSDLUDDI 10 1 1WebService的核心标准 XML和XMLSchemaXML eXtensibleMarkupLangugage 即可扩展标记语言 是WebService技术架构的基石 它是WebService中表示数据的基本格式 XMLSchema定义了一套标准的数据类型 并给出了一种语言来扩展这套数据类型 WebService平台就是用XMLSchema作为其数据类型系统的 XML XML XMLSchema XMLSchema 10 1 1WebService的核心标准 SOAPSOAP SimpleObjectAccessProtocol 简单对象访问协议 提供了标准的RPC 远程过程调用协议 方法来调用WebService SOAP规范中定义了SOAP消息的格式 以及怎样通过HTTP协议来使用SOAP SOAP是基于XML和XSD XMLSchemasDefinition 的 其中XML是SOAP的数据编码方式 10 1 1WebService的核心标准 WSDLWSDL WebServicesDescriptionLanguage WebServices描述语言 是一种基于XML的 用于描述WebService及其操作 参数和返回值的语言 一些最新的开发工具既能根据WebService生成WSDL文档 又能通过导入WSDL文档 生成调用相应WebService的代码 10 1 1WebService的核心标准 UDDIUDDI UniversalDescriptionDiscoveryIntegration 统一描述 发现和集成协议 是WebService架构下核心的服务描述 发现和集成机制 其目的是在网上自动查找WebService 一旦WebService注册到UDDI 客户就可以很方便地查找和定位到所需要的WebService 10 1 2WebService体系架构 服务提供者 ServiceProvider 从企业的角度看 这是服务的所有者 从体系结构的角度看 这是托管被访问服务的平台 服务请求者 ServiceRequestor 从企业的角度看 这是要求满足特定功能的企业 从体系结构的角度看 这是寻找并调用服务 或启动与服务交互的应用程序 服务请求者角色可以由浏览器来担当 由人或无用户界面的程序 例如 另一个WebService 来控制它 服务注册中心 ServiceRegistry 这是可搜索的服务描述注册中心 服务提供者在此发布他们的服务描述 10 1 2WebService体系架构 Bind 绑定 服务请求者通过绑定调用服务提供者提供的服务 Find 查找 服务请求者可以通过服务注册中心查找特定种类的服务 Publish 发布 服务提供者发布服务描述以使服务可访问并且服务请求者可以查找它 第10章WebService开发 10 1Web服务概述10 2WEBService基础10 3XML基础10 4使用JAX WS构建简单的WebService 10 2 1SOAP SOAP SimpleObjectAccessProtocol 简单对象访问协议 是在分散或分布式的环境中交换信息的简单的协议 是一个基于XML的协议 SOAP在WebService中作为用于XML消息传递的一种非常普遍的协议 它包括四个部分 SOAP封装 envelop 封装定义了一个描述消息中的内容是什么 是谁发送的 谁应当接受并处理它以及如何处理它们的框架 SOAP编码规则 encodingrules 用于表示应用程序需要使用的数据类型的实例 SOAPRPC表示 RPCrepresentation 表示远程过程调用和应答的协定 SOAP绑定 binding 使用底层协议交换信息 虽然这四个部分都作为SOAP的一部分定义的 但它们在功能上是相交的 彼此独立的 特别的 信封和编码规则是被定义在不同的XML命名空间 namespace 中 这样使得定义更加简单 10 2 1SOAP SOAP的两个主要设计目标是简单性和可扩展性 这就意味着有一些传统消息系统或分布式对象系统中的某些性质将不是SOAP规范的一部分 SOAP可简单地理解为这样一个开放协议的组合SOAP RPC HTTP XML 采用HTTP作为底层通讯协议 RPC作为一致性的调用途径 XML作为数据传送的格式 允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互 RPC的描叙可能不太准确 因为SOAP一开始构思就是要实现平台与环境的无关性和独立性 每一个通过网络的远程调用都可以通过SOAP封装起来 包括DCE DistributedComputingEnvironment RPCCALLS COM DCOMCALLS CORBACALLS JAVACALLS等等 10 2 1SOAP 客户发送请求时 不管客户是什么平台 首先把请求转换成XML格式 SOAP网关可自动执行这个转换 为了保证传送时参数 方法名 返回值的唯一性 SOAP协议使用了一个私有标记表 从而服务器的SOAP网关可以正确地解析 而使用XML作为编码表现形式 提供了更高层次上的抽象 从而实现与平台和环境的无关 10 2 2WSDL WSDL WebServiceDescriptionLanguage 即Web服务器描述语言 是用XML文档来描述Web服务的标准 是Web服务的接口定义语言 由Ariba Intel IBM Microsoft等共同提出 通过WSDL 可描述Web服务的三个基本属性 服务做些什么 服务所提供的操作 方法 如何访问服务 和服务交互的数据格式以及必要协议服务位于何处 协议相关的地址 如URL 10 2 2WSDL WSDL文档在WebService的定义中使用下列元素 Types 数据类型定义的容器 Message 通信消息的数据结构的抽象类型化定义 Operation 对服务中所支持的操作的抽象描述 PortType 对于某个访问入口点类型所支持的操作的抽象集合 Binding 特定端口类型的具体协议和数据格式规范的绑定 Port 定义为协议 数据格式绑定与具体Web访问地址组合的单个服务访问 Srvice 相关服务结点的集合 10 2 3UDDI UDDI UniversalDescription DiscoveryandIntegration 即统一描述 发现与集成协议标准 是一个非常重要的创新 它是第一个由平台提供者 软件开发者 交易市场运营者 电子商务企业和全球商务领头羊为解决B2B电子商务的发展的局限性而一起提出的跨行业的解决方案 是一套基于Web的 分布式的 为Web服务提供的信息注册中心的实现标准规范 同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准 10 2 3UDDI UDDI计划是一个广泛的 开放的行业计划 它使得商业实体能够 1 彼此发现 2 定义它们怎样在internet上互相作用 并在一个全球的注册体系架构中共享信息 UDDI是这样一种基础的系统构筑模块 它使商业实体能够快速 方便地使用它们自身的企业应用软件来发现合适的商业对等实体 并以其实施电子化的商业贸易 UDDI同时也是Web服务集成的一个体系框架 它包含了服务描述与发现的标准规范 UDDI规范利用了W3C和Internet工程任务组织 IETF 的很多标准作为其实现基础 比如XML HTTP和域名服务 DNS 这些协议 10 2 3UDDI 通过这个开放性的计划 企业可以发布他们所期望的在Web上实现商务流程对接的方式的相关信息和技术规范 这潜在地为B2B商务的成长提供了动力 UDDI将通过创建一个全球的 独立平台 运用Internet发现商机 描述服务和综合商务的开放式框架 使所有的贸易都从中获利 UDDI计划不由任何一家现有的公司实际运作 同时它也不是一个标准的实体或者是一个新的公司 UDDI商业注册中心被作为一个支持UDDI规范的Web服务来运作 最初 Ariba IBM和Microsoft将运作这个分布式的服务 但是额外的注册中心的访问入口仍然被期待着 一个访问入口的委员会 OperatorCouncil 将协助制定访问入口的方针和服务质量等问题 10 2 3UDDI 从UDDI可以获得的直接收益包括 具备UDDI能力的企业可以在Internet上通过他们首选的企业应用 快速便捷地发现合适的商业实体并实现彼此之间的互操作 这将最终推动企业自身的经济收益 为企业迅疾地参与全球化的Internet经济提供了一个方便的发展道路 提供了一个为商业在一个简单的开放式环境中 循序渐进地描述他们的服务和商业流程的途径 提供了一组规范 使企业能够在Internet上调用服务并为他们的首选客户提供增值服务 小节 Web服务基础 SOAP SimpleObjectAccessProtocol 简单对象访问协议WSDL WebServiceDescriptionLanguage 即Web服务器描述语言UDDI UniversalDescription DiscoveryandIntegration 即统一描述 发现与集成协议标准 第10章WebService开发 10 1Web服务概述10 2WEBService基础10 3XML基础10 4使用JAX WS构建简单的WebService 10 3XML基础 XML eXtensibleMakeupLanguage 即可扩展标记语言 是一种简单灵活的文本格式 可以作为创建新的标记语言的基础 以便在文档发布和数据交换中使用 XML基于万维网联盟 W3C 的工作小组发布的一系列标准 因此 非常适合 且不限于 在基于Web的应用程序中使用 XML是一套定义语义标记的规则 这些标记将文档分成许多部件并对这些部件加以标识 它也是元标记语言 即定义了用于定义其它与特定领域有关的 语义的 结构化的标记语言的句法语言 10 3XML基础 关于XML要理解的第一件事是 它不只是像超文本标记语言 HypertextMarkupLanguage HTML 或是格式化的程序 XML是一种元标记语言 用户可以定义自己需要的标记 这些标记必须根据某些通用的原理来创建 但是在标记的意义上 也具有相当的灵活性 XML定义了一套元句法 与特定领域有关的标记语言 如MusicML MathML和CML 都必须遵守 如果一个应用程序可以理解这一元句法 那么它也就自动地能够理解所有的由此元语言建立起来的语言 关于XML要了解的第二件事是 XML标记描述的是文档的结构和意义 它不描述页面元素的格式化 可用样式单为文档增加格式化信息 文档本身只说明文档包括什么标记 而不是说明文档看起来是什么样的 10 3XML基础 HotCopbyJacquesMoraliHenriBeloloandVictorWillisProducer JacquesMoraliPublisher PolyGramRecordsLength 6 20Written 978Artist VillagePeople HotCopJacquesMoraliHenriBeloloVictorWillisJacquesMoraliPolyGramRecords6 20978VillagePeople 10 3XML基础 XML是一种类似于HTML的标记语言 但是它是被设计用来描述数据的 重点是什么是数据 如何存放数据 与描述信息相关 而HTML是被设计用来显示数据的 重点是显示数据以及如何显示数据更好 与显示信息相关 XML不是HTML的替代品 XML和HTML是两种不同用途的语言 XML被设计成什么都不做的 它只是用来组织 存储和发送信息 XML是自由的 可以扩展的 XML使用文档类型定义 DTD 或者模式 Schema 来描述数据 XML是一种跨平台的 与软 硬件无关的 处理信息的工具 10 3XML基础 XML的主要应用 作为配置文件 SpringStrutsHibernateWeb应用Tomcat的server xmlJBossEJB作为数据传输的标准 AJAXWebService 10 3 2DTD DTD DocumnetTypeDefinition 即文件类型定义 是XML1 0版规格的一部分 它是XML文件的验证机制 属于XML文件组成的一部分 DTD在XML文件所扮演的角色就是定义XML文件的元素架构 元素标记和属性 DTD是一种保证XML文档格式正确的有效方法 可以通过比较XML文档和DTD文件来看文档是否符合规范 元素和标签使用是否正确 一个DTD文档包含 元素的定义规则 元素间关系的定义规则 元素可使用的属性 可使用的实体或符号规则 10 3 2DTD 调用DTD文件的方法有两种 直接包含在XML文档内的DTD这种方法只需要在DOCTYPE声明中插入一些特别的说明就可以了 调用独立的DTD文件这种方法将DTD文档存为后缀为 dtd的文件 然后在DOCTYPE声明行中调用 XML轻松学习手册ajie XML轻松学习手册ajie 10 3 2DTD DTD的常用的术语如下 Schema 规划 schema是数据规则的描述 主要完成两件事 a 它定义元素数据类型和元素之间的关系 b 它定义元素所能包含的内容类型 DocumentTree 文档树 文档树是文档元素分级结构的形象表示 一个文档结构树包含根元素 根元素是最顶级的元素 ParentElement ChildElement父元素是指包含有其它元素的元素 被包含的元素称为它的子元素 Parser 解析器 Parser是一种检查XML文档是否遵循DTD规范的工具软件 XML的parser发展为两类 一种是 非确认类parser 只检测文档是否遵守XML语法规则 是否用元素标识建立了文档树 另一种是 确认类parser 它不但检测文档语法 结构树 而且比较解析用户使用的元素标识是否遵守了相应DTD文件的规范 10 3 3XMLSchema XMLSchema与DTD一样是负责定义和描述XML文档的结构和内容模式的 它可以定义XML文档中存在哪些元素和元素之间的关系 并且可以定义元素和属性的数据类型 XMLSchema本身是一个XML文档 它符合XML语法结构 可以用通用的XML解析器解析它 DTD的缺陷 描述能力有限没有数据类型的支持约束定义能力不足不够结构化未使用XML作为描述手段 DTD没有标准的编程接口 10 3 3XMLSchema XMLSchema的优点有 XMLSchema基于XML 没有专门的语法XML可以象其它XML文件一样解析和处理XMLSchema支持一系列的数据类型 int float Boolean date等 XMLSchema提供可扩充的数据模型XMLSchema支持综合命名空间XMLSchema支持属性组XMLSchema文档后缀名是 xsd 完全符合XML语法 根元素是 命名空间是xmlns xsd 用元素定义实例文档中的元素 10 3 3XMLSchema 例1 XMLSchema greeting xsd HelloWorld 10 3 3XMLSch

温馨提示

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

评论

0/150

提交评论