`

WebServices秘诀:设计SOA

阅读更多

WebServices秘诀:设计SOA

关键字: webservice

【IT168 技术文档】

    过去六个月以来,我在RCG信息科技公司使用网络服务(Web services)和企业流程管理工具来建置一套服务导向架构 (SOA,Service-Oriented Architecture)。这个经验让我更有信心与你分享打造绝佳SOA的秘诀。

  以下经验将会让贵公司降低对ERP应用的依赖,不再受应用与供货商的牵制。你的公司将可开始在实时的环境下运作,从此批处理(batch)这个字也会跟打卡(punch card)一样进入IT部门的历史词汇中。

  中间件不再是代罪羔羊

  最初建立SOA时,我们把每样东西都放入中间件中,它可针对目标网络服务进行XSL转换,并向UDDI查询目标网络服务的位置,甚至还启动目标网络服务。于是,似乎只要出了任何问题只需归咎于「中间件」就行了

  因此,我们决定绕过中间件,让中间件只当作连接应用程序的「联机管道」而已;中间件接受来源地的XML档案,并进行XML语法分析(parse),找出意欲前往的目的地,再将XML传送给预定的目标,而预定目标则会负责转换XML的工作。

  这里学到的教训是:移除所有可能在中间件中的东西,你只能把它当作商业流程,或作为传送XML的管道。

  利用XSLT将数据转为任何格式

  XSLT(可延伸样式表语言转换)对于跨应用的通讯来说是很重要的。我们还没有发现导入XSLT之后,系统和系统之间无法沟通的例子。XSLT是种典范转移(paradigm shift),若你是第一次使用,你必须先从小部分功能开始着手,然后再逐步扩展。笔者推荐名为Beginning XSLT的工具书,作者为Jeni Tennison,该书包含9成常用的XSLT。

  以邮件自动通知问题点

  每天都会发生网络断线、数据库损毁、应用服务器当机、XML档案不完整、XSLT和你想要的功能有所出入,还有,你的中间件有些小问题。因此,要准备好能够每天自动处理这些问题,不要手动处理这类问题,否则要是相关人员度假去或改转移至其它新项目时就会出现问题。你可利用下列方式来处理:

  •   以系统或是整合点(integration point)为基础来设定邮件群组
  •   列出系统可能会发生的全部错误,和曾被你忽略的问题细节
  •   允许使用者为他们的系统设定错误
  •   以系统或是整合点为基础,允许使用者和开发人员管理他们想要被知会的错误信息

  因为信息通知将会开始塞爆使用者的收件箱,可以预见,使用者将会央求解决所有的错误。当然,开发人员不能忽视且让这样的情况发生。

  在建置完成的前几周中,我们统计了每个整合点的错误排名,藉此评估哪些错误应该优先处理。目前,我们的开发人员已经很少收到错误通知了。

  •   我们建立队列(queue)和行动(action)来处理错误
  •   我们使用先进/先出(first in/first out)队列来处理应用程序当机
  •   我们通知来源系统重送那些没有被目标系统收到的记录

如果有人输入错误的WSDL档案位置,我们设定UDDI会每隔一段时间重新检索,如此开发人员便可直接更新UDDI即可,而不用重送记录。

  现在整个SOA便可平顺运作了,因为即使有问题发生,中间件与队列也会处理错误。现在开发人员仅需处理一些例外状况,并可专注在其它商业开发项目上,在维护旧系统上则不用耗费时间。

  好用的动态启动

  如果你已开始建立SOA,不妨顺便学习动态启动网络服务的方式。藉由传递WSDL档案位置、你想要启动的方法、客户端程序的适当参数,你就可利用一个网络服务客户端程序启动任何的目标网络服务,这样也可以减少维护成本。我们在这个计划中使用Apache的WSIF。如果你为每个网络服务都建立一个客户端程序,那每次网络服务一有变动,你就要每个程序都去修改了。

  UDDI:企业的服务目录

  我们使用Systinet旗下的WASP UDDI建立一企业级UDDI,这与SOA或企业级的SOA不同。UDDI可当作搜寻网络服务的企业目录,开发人员会与这些网络服务紧密结合在一起,如此一来,其它系统的开发人员若需密码或合作测试,就有接触管道。我们整理了一份「如何连上企业」的手册,好让开发人员得知新近合并的公司。

  开发人员可依唯一识别键(unique key)来查询网络服务的位置。如果产品服务器当机,我们可以将所有的识别键指向产品备份服务器上的网络服务。

  SOAP信息侦错

  网络服务主要就是进行SOAP信息的接收与传送。我传递一个SOAP信息给你,这个信息就像信纸放在信封中寄出一样,而SOAP的主体被包装在SOAP信封里面。SOAP主体是由我这端来控制,直到我放到信封内寄出为止,之后目标系统能够打开信封,它就能够控制SOAP主体。然而,目标系统偶尔无法辨识出SOAP信封为有效的SOAP信息。这种情况在Java以动态启动方式传送给.NET的网络服务时尤其明显,因为该SOAP信息是为你动态产生的。

  还好市面上有SOAP监视软件,可捕捉在应用程序之间所传送的信息。你可以从来源系统中了解SOAP信息是如何建构的,而且还能够修改它。我们使用Apache.org旗下的Axis(SOAP Server)所附赠的免费SOAP监视软件,它甚至可以其侦错.NET SOAP信息。

  成功的秘诀

  以下有几个使用网络服务设计SOA的建议:

  •   只把中间件当作传递两边(来源与目的地)信息的管道。
  •   一旦数据格式被系统接受后,善用XSLT来解读数据。
  •   建立错误通报系统
  •   熟悉动态启动网络服务以减少维护成本
  •   取得SOAP监视软件,让开发人员可了解来源系统到底传递什么给予目标系统
  •   成为处理SOAP信息的专家
  •   若要建立企业级的SOA,首要研究如何取得UDDI

原文地址:http://tech.it168.com/j/2007-09-10/200709101404970.shtml

分享到:
评论

相关推荐

    ORACLE 培训资料:ORACLE SOA 架构Web Services的安全

    ### ORACLE SOA 架构Web Services的安全 #### 引言与背景 随着服务导向架构(Service-Oriented Architecture, SOA)在全球范围内的广泛应用,其开放性和灵活性为企业的业务流程整合提供了极大的便利。然而,SOA的...

    基于Web Services和Java EE的SOA实现.pdf

    基于Web Services和Java EE的SOA实现 本文研究了SOA、Web Services和Java EE三者之间的关系,然后在Java EE的体系结构之上,利用Web Services技术,对SOA思想进行实践,实现了SOA提出面的服务以及低耦合等特点。 ...

    SOA, Web Services

    - **WS (Web Services)**:Web 服务,是实现 SOA 的一种关键技术手段。 #### SOA 利益相关者 SOA 的实施涉及多个利益相关者,包括 CEO、CIO/CTO、架构师、开发者、项目经理和业务所有者等。每个角色都有其特定的...

    RESTful Web Services 中文版 高清 PDF 电子书

    RESTful Web Services概念:RESTful Web Services是一种基于Web的架构风格和设计模式,用于构建可扩展和灵活的网络应用。REST即表现层状态转换(Representational State Transfer),由Roy Fielding在其博士论文中...

    基于WebServices的SOA架构设计方法的研究.

    基于WebServices的SOA架构设计方法的研究

    Developing Java Web Services: Architecting and Developing Secure Web Services Using Java

    Developing Java Web Services: Architecting and Developing Secure Web Services Using Java

    SOA 与Web Services 管理解决方案

    在探讨“SOA与Web Services管理解决方案”这一主题时,我们深入分析了服务导向架构(SOA)与Web服务管理的复杂性和重要性。SOA作为一种设计思想,旨在通过将应用程序的不同功能单元(称为服务)通过通信协议进行链接...

    SOA实践指南-分布式系统设计的艺术.pdf

    不管你的项目是包含一套巨大的、基于Web Services的组件集,还是需要将老 系统和更现代化的业务流程连接起来,《SOA实践指南》都阐明了SOA如何满足你的需 要。 目录 第1章:动机 1.1 大型分布式系统的特征  ...

    java webservices.jar

    在java开发services中,会用到: 1.webservices-api.jar 2.webservices-extra.jar 3.webservices-rt.jar 4.webservices-tools.jar 5.webservices-extra-api.jar 此压缩文件里就是这五个jar文件。

    Java Web Services Up and Running(2nd) 无水印pdf

    Java Web Services Up and Running(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有...

    Web Services资料大全

    而“Web Services资料”这个文件可能包含了关于Web服务的广泛知识,包括基本概念、设计模式、最佳实践以及相关的技术文档和教程。 总的来说,Web服务是一种强大的工具,它促进了系统的互操作性和可重用性。通过掌握...

    Soa And Web services

    ### Soa And Web services #### 重要知识点概览 本篇文档主要围绕服务导向架构(Service-Oriented Architecture,简称SOA)与Web服务展开,深入探讨了如何设计基于Web服务的服务导向架构,并通过实际案例进行了...

    Understanding SOA with Web Services.part1

    网上见到许多soa厂商大吹soa,看了许多资料也不知所云,本教程带你进入soa世界....

    java web services教程

    【Java Web Services 教程】 Java Web Services 是一种利用 Java 技术开发网络服务的方式,它使得不同系统之间能够通过互联网进行数据交换和功能调用。这个教程将深入讲解 Java Web Services 的核心概念和技术,...

    Oracle Web Services Manager_ Securing your Web Services

    在IT领域,尤其是在企业级应用的安全管理中,Oracle Web Services Manager (OWSM)扮演着至关重要的角色。根据给定文件的标题与描述“Oracle Web Services Manager: Securing your Web Services”,我们可以深入探讨...

    RESTful WebServices中文版 完整清晰版

    本书包括以下内容: ·强调Web基础技术的力量 —— HTTP应用协议、...·关注实际问题,诸如怎样设计和实现RESTful Web services与客户端等 《RESTful Web Services》是对真实Web services运用REST设计哲学的第一本书。

    building restful web services with spring 5 2e

    Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 Find out how to implement the REST architecture to build resilient ...

    WEB SERVICES原理与研发实践

    WEB SERVICES原理与研发实践

    Exchange Web Services 2.2

    Exchange Web Services 2.2

Global site tag (gtag.js) - Google Analytics