SOA,面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
为了实现SOA,应用程序和基础架构都必须支持SOA原则。从最基本的层次来看,使用SOA做基础架构,就要涉及到如何按SERVICE把应用进行包装和如何把服务请求传递给正确的服务提供者。SOA不仅需要根据标准指定服务接口,而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调用服务,同时在服务的提供者和消费者之间进 行传输数据格式的自动改变。这样的服务路由和格式转换是就是企业服务总线(ESB)的重要功能。ESB构成了连接SOA框架下各种服务的骨干,企业范围内的各种服务,通过ESB连接起来,服务请求者通过ESB来调用服务提供者,完成业务处理。
通过MQ作为ESB的基础架构来实现SOA,就要使用MQ在整个企业内建立各种不同软硬件平台、不同通信协议、不同编程语言的应用系统的连接,对企业的业务Service进行划分和定义,把每个Service功能以在某个特定队列守侯的服务程序方式实现,这样整个MQ通信覆盖的范围之内,任何应用只要向这个队列发送一个服务请求消息,就能够调用这个业务服务,达到业务重用和快速实施的效果。一旦某种业务以服务方式公布 出来,未来的任何应用系统中,都可以十分方便地通过调用实现这种业务功能,只要这个系统里部署了MQ。
在以MQ作为基础架构的企业服务总线之上,还可以使用WebSphere Message Broker for z/OS来为ESB提供更加丰富的功能。通过Message Broker可以更方便地实现客户端程序以独立于所涉及的服务位置和通信协议的方式来调用服务,同时在服务的提供者和消费者之间进行传输数据格式的自动转换,例如在Cstructure、COBOL copybook、XML、SOAP等格式间自动的转换。
目前我正使用MQ做一个集成项目,系统处于单向调试的状态,所有数据的处理比以前写代码要方便很多,基本上直接通过MB中的节点进行处理,配置一些数据项即可,大大提高了开发效率,使得业务流程的开发更加简单易懂。当然,在开发过程中也遇到一些很困惑的问题。比如说MB封装webservice时端口的设置、自定义邮件内容及附件、数据格式转换和节点必备属性的设置等。
对于这些麻烦的问题,一般建议3种解决方法:
1. 如果购买了IBM MQ,那就可以直接打电话问IBM的技术支持,他们会一般帮忙找错的。不过,其技术支持有的人提解决方案的,有的人是提供技术
2. 去websphere MQ中文网上发帖求助,很多高手也是很愿意提供帮助。
3. 自己摸索尝试解决,前提是项目要求的时间不是很紧。一般通过设置断点查看错误消息。但如果节点缺少必备属性时候,有时候未必会出现异常。
在MB流程配置过程中,尽量减少代码的开发,使用MB节点来代替,因为,使用代码的话其可维护行不好,如果一个流程中要多次操作数据库的话,那岂不是写很多代码?此外,随着对MQ的更加了解,学会使用命令也是很重要的。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
总线技术究竟该不该用?
曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。