登录注册
请使用微信扫一扫
关注公众号完成登录
2008-08-04 18:38来源:希赛关键词:SOA收藏点赞
我要投稿
面向服务的体系结构(Service-OrientedArchitecture,SOA)强调企业内不同系统间的松散耦合。服务接口结构在SOA中是最重要的,因为设计糟糕的服务接口对需要使用这些接口的所有应用程序都会造成负面影响。设计良好的服务接口能够加速项目计划的执行,从而提高您的SOA解决方案对业务需求的响应能力。本文是本系列的第1部分,重点讨论服务接口设计的最佳实践,包括有关开发方法、服务粒度以及操作签名方面的概述。本系列的后续文章将讨论设计Web服务描述语言(WebServicesDescriptionLanguage,WSDL)文档结构以及错误处理方面的最佳实践。
引言
面向服务的体系结构(Service-OrientedArchitecture,SOA)正快速成为很多企业中的主要体系结构样式。构建SOA解决方案的主要目的是通过松散耦合其系统来对企业进行武装,从而能更好地响应业务需求。在SOA解决方案内设计Web服务的主要目标之一是支持快速构造业务流程。您还希望加速企业内以及与外部业务合作伙伴的应用程序集成。
在实现SOA解决方案的上下文中,服务接口的结构非常重要。设计糟糕的服务接口可能会极大地导致使用此接口的很多服务使用者应用程序的开发过程变得非常复杂。从业务角度而言,设计糟糕的服务接口可能使得业务流程的开发和优化变得复杂。相反,设计良好的服务接口可以加速开发计划的执行,并对业务级别的灵活性起到促进作用。
Web服务从本质上就非常适合用于构造SOA解决方案。Web服务领域的很多现有和未来的行业标准可确保互操作性,此类标准包括SOAP、JavaAPIforXML-basedRPC(JAX-RPC)、WSDL和WS-*规范等等。各种流行的开发环境(如IBM®Rational®ApplicationDeveloper和IBMWebSphere®IntegrationDeveloper)中均包含了基于标准的工具,从而能够加速SOA项目的进行。
本文的重点是服务接口设计抽象层面的东西:
设计与开发方法
服务粒度
操作签名
开发方法
基于XML和Web服务的编程模型和开发工具定义了三种构建Web服务的方法:
自底向上
各种先进的集成开发环境(IntegratedDevelopmentEnvironment,IDE)提供了用于从现有代码(如Java™或COBOL)创建Web服务实现的工具。使用此方法时,开发人员通常将选择现有的JavaBean或EJB组件,并调用向导来生成WSDL文件,以用于将Bean或EJB作为Web服务调用。
自顶向下
使用此方法时,开发人员将首先使用WSDL和XML模式(XMLSchema,XSD)构造定义Web服务接口,然后为服务生成框架实现代码。接下来,开发人员将完成框架服务实现。大多数先进的IDE(如RationalApplicationDeveloperV6和WebSphereIntegrationDeveloperV6)都为此方法提供工具支持。
中间相遇
此方法对前面两个方法进行了结合。开发人员首先使用WSDL和XSD定义服务接口,并为服务生成框架实现。如果有必要,开发人员还可以使用自底向上技术来通过方便的应用程序编程接口(ApplicationProgrammingInterface,API)公开现有代码。然后开发人员将编写在新设计的接口和旧接口之间进行转换的代码。
很多熟练的Java开发人员喜欢使用自底向上技术来加速SOA项目中的Web服务开发。他们将首先用Java开发新服务的实现,然后将使用强大的代码生成向导来为这些服务创建WSDL接口。尽管此方法可以加速各个服务的实现,但这对整个SOA项目通常都意味着问题。
之所以出现问题,是因为自底向上生成经常会得到无法重用的类型定义以及多个定义为表示语义等效信息的类型。
最佳实践:使用自顶向下和中间相遇开发方法,而不使用自底向上技术。使用XSD和WSDL设计您的服务接口,然后生成框架Java代码。
当存在现有遗留代码(例如JavaBeans、EJB、COBOL等)时,就适合使用自底向上开发方法。采用此方法时,应该仔细地复查现有类的接口,然后再生成WSDL接口。如果Java接口仅包含任何以下内容,则可以将其视为弱类型:
作为方法的参数或返回类型使用的java.lang.Object
作为方法的参数或返回类型使用的集合类(例如java.util.Vector)(JAX-RPC约束)
应该考虑对遗留代码进行重构,以确保接口为强类型;或构建中介,以使用强类型接口包装弱类型接口。
Java与WSDL的比较
可以使用Java或WSDL描述您的服务接口。Web服务相关的规范(如SOAP、JAX-RPC和JAX-B)定义了映射,以说明采用Java定义的类型如何映射到WSDL/XSD中以及如何进行反向映射。
最佳实践:使用WSDL和XSD(而不是Java)描述服务接口。服务接口定义是一种WSDL端口类型。
XML模式规范定义范围比Java更广的用于描述消息结构的构造。其中包括各个选择、限制的派生、Annotation及其他。因此,与采用其他方式相比,使用WSDL和XSD定义接口并生成框架Java代码的方式更好。
WSDL和XSD一起形成了与技术无关的可供SOA实现使用的接口定义语言。除了Java之外,WSDL/XSD接口定义可以用于生成采用很多语言(例如COBOL和C )的框架实现。
特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。
凡来源注明北极星*网的内容为北极星原创,转载需获授权。
北极星氢能网获悉,12月12日,全球首款正向开发的氢燃料电池干线物流重卡——海珀特H49的正式发布。“H49,是海珀特带给这个时代清洁运力的最优解。”作为国内首家专注于氢燃料电池商用车运力解决方案的科技型公司,H49融合了海珀特两大创新研发理念,重新定义了智能氢能商用车的发展方向。在硬件技术
即便是已经进入信息化时代,用电难题却依旧可以难倒很多人。一方面电力需求不会固定不变,一般来说白天多夜间少,考虑到开空调的情况,夏天多,冬天少。另一方面,在“碳中和”目标下,风电和光电正在越来越多地进入新一代电力系统,发电波动性问题日益凸显。当发电环节不能满足所有用电高峰期需求,为
我国近年来的环境空气质量明显改善,人民群众蓝天幸福感、获得感显著增强。但仍存在一些大气污染问题,其中,臭氧污染日益凸显。生态环境部等15部门日前联合印发《深入打好重污染天气消除、臭氧污染防治和柴油货车污染治理攻坚战行动方案》,作为总体方案中3个行动方案之一的《臭氧污染防治攻坚行动方
华为全联接大会2022在深圳和线上举办。华为云CEO张平安发表“构筑行业云底座,一切皆服务”主题演讲,分享了华为云在“构建全球存算网”“加速应用现代化”“使能产业上云”三个方面的创新实践,并发布15大云服务新品和能力升级。华为云还联合中国软件行业协会、行业客户、软件提供商、咨询机构等成立
北极星储能网获悉,3月27日,岚图汽车CEO卢放在电动汽车百人会“新一代汽车市场与消费论坛”论坛指出,当前,中国汽车行业正在经历百年未有之大变局,同时,消费逐渐由注重产品的功能和性能,需求“千人一面”,向更重视品牌和产品所带来的情感满足及消费“千人千面”转变。技术升级与消费升级叠加共振
同阳科技积极响应国家环保需求,公司在2012年承担国家重大科学仪器设备开发专项项目的基础上自主研发并陆续推出了系列恶臭监测产品,助力环境空气质量持续改善。
据统计,2018-2020年垃圾处理占全部恶臭/异味投诉的平均比例达11.3%,为近三年恶臭/异味投诉最多的行业。因此如何保障人民宜居安居,把最好的环境资源留给人民值得引起作为城市基层建设者的思考。
针对家具制造业的生产全过程产排污特征,运用清洁生产理念,从源头削减(原辅材料替代)、过程控制、污染物收集、污染物治理、环境管理5个方面研究行业VOCs全过程整治提升方案设计,指导企业开展全过程整治提升,改变当前管理粗放、污染防治水平低的局面,对实现家具制造业的绿色化和清洁化发展将起到至关重要的作用。
随着智慧城市概念的提出,智慧水务也越来越受到重视成为战略发展的重要产业。关于推动智慧水务发展的文件也出台了不少,以助于推动智慧水务更好的发展。为何我国如此的重视智慧水务昵?水资源是人类生存生产不可或缺的资源,我国的淡水资源占全世界淡水资源的5.1%,处于世界淡水资源占有量第六位。这个
指出了长江大保护智慧水务在提升水务服务智能高效的同时,更注重保障生态环境的可持续性。随着5G、物联网、云计算、大数据、人工智能等新技术的发展,为智慧水务的监测感知、巡检运维、污泥管控等方面的智慧应用提供了支持。传统的水务管理模式逐步发生较大改变,形成了技术驱动管理框、业务驱动管理模
摘要挥发性有机物(VOCs)是形成臭氧(O3)和细颗粒物(PM2.5)的重要前体物,当前我国O3污染问题日益凸显,实施VOCs治理攻坚能有效改善大气环境质量,补齐大气污染治理短板,具有显著的环境效益、经济效益和社会效益。目前,我国VOCs治理在政府监管层面上仍存在重视程度不足、监管力度不足、监管能力
请使用微信扫一扫
关注公众号完成登录
姓名: | |
性别: | |
出生日期: | |
邮箱: | |
所在地区: | |
行业类别: | |
工作经验: | |
学历: | |
公司名称: | |
任职岗位: |
我们将会第一时间为您推送相关内容!