查看: 4041|回复: 4

[原创] 浅谈AIA的设计模式

[复制链接]
论坛徽章:
0
发表于 2008-10-31 12:15 | 显示全部楼层 |阅读模式
AIAOracle在应用集成领域SOA实践的产物,其对客户的业务价值已在之前的博客文章中有所阐述。

本文着重和大家分享一下AIA内置的设计模式(Design Pattern)。

谈到设计模式,不得不提克里斯托弗亚历山大(Christopher Alexander),作为建筑模式语言的开山鼻祖,其和他人于1977年合著的《建筑模式语言》(A Pattern Language: Towns, Buildings, Construction)一书,对计算机科学领域中的“设计模式”运动产生了巨大的影响。

设计模式是一套可以被重复使用,分门别类,针对特定问题域寻求相应解决方案的设计经验的总结。AIA内置的设计模式,和大家常见的面向编程的设计模式(譬如有名的GoF模式)有所不同,它是一个混合体,个人理解是更多的阐述架构上的设计。

为什么需要设计模式呢?这是因为它是一个非常有效的手段,可以帮助实践者在不断累积的问题处理过程中,发现问题,重现问题,从而可以借鉴他人的成熟经验,以一种高效实用的机制,分离问题,解决问题。

下图列举了部分AIA倡导并遵循的设计模式:

aia_designpattern.JPG
AIA的集成基础架构包(FPFoundation Pack),涵盖了对这些设计模式的阐述和实践。

下面就其中的几个模式展开,这样,大家会对AIA的设计模式有更深的理解。

aia_designpattern_example.JPG



l
消息交互模式

问题:
如何在服务间交互过程中,解决其远程通信的诸多不足?譬如:

能否在出现网络或系统故障的情况下,消息不会丢失?

能否支持应用在生成业务事件的过程中,无需知道他们会怎样被处理?

能否支持消息通信系统在支持可靠消息传输的同时,无需关心消息什么时候需要它?

能否支持应用在提交业务事件的同时,或许希望收到响应信息?

能否支持消息从不会直接的从源应用抵达目标应用,譬如:是否支持消息在抵达目的地之前存在不同层面的间接环节?是否支持消息在选择不同路径时,可以脱离原先的顺序?

解决方案:
采用异步消息机制,实现:

在服务之间创建队列,允许服务以一种异步,可靠的方式(譬如JMS队列,IBM MQ)进行交互

发送者可以在接收者离线的情况下发送消息

发送者能够在消息通信系统确保的情况下,只允许一个消费者接收该消息

每条队列对应一个业务实体,譬如操作者,条目,资产等

异步的错误通知,支持系统层面的错误重新提交

好处:

可靠交付

高吞吐量和扩展性

松耦合交互

l
服务进化模式

问题:
如何支持常态的服务进化,从而最小化对消费者的业务影响?譬如:

能否支持服务提供者希望在服务更新过程中,无需和服务消费者打交道?

能否支持服务消费者在自己希望的时间表内,更新新业务功能?

能否支持服务的增强或补丁可能会打断客户以前版本的兼容性的情况?

能否支持服务修改可能会涉及其消息结构,接口定义或服务契约改变的情况?

能否支持在线的采纳新版本的服务?

解决方案:
制定版本管理战略,实现:

服务和业务对象进化是多维度的,支持补丁,产品加强,新技术应用和语言完善等

多个主要版本的业务对象和服务可以在一个生态环境下共存

客户可以自动的在无需修改客户代码的情况下实现补丁装载

允许客户在合适的时间段,采用新的服务功能

每个大版本都能持续不断的进化,并支持向后的兼容性

同时,确定具体执行策略,明确:

企业业务服务和企业业务对象库可以不断的累积和充实内容

多版本共存

大版本和大版本之下的小版本

针对服务契约/服务接口,其向后不兼容性的改变会在服务的新的大版本推出时发生

服务设计会和一个大版本的SCHEMA协同工作,同时,支持该版本下的所有不同小版本

好处:

增强组织的敏捷性

在提供者的契约改变的情况下,保护消费者

消除服务消费者和服务提供者必须站在同步的演进路线上

l
AIA资产扩展模式

问题:
如何支持一种安全的升级行为来扩展预制的集成业务流,支撑复杂业务环境下的客户定制能力?譬如:

能否支持附加内容在加入到请求者应用的时候,可能也需要传输给提供者应用?

能否支持消费者在特定场景下添加以下的活动,诸如校验,内容丰富等?

解决方案:
制定AIA资产扩展战略,实现:

通过一种结构性的,安全升级的机制,来确保预制的集成得到扩展

对扩展性提供与生俱来的支持

扩展是持久性的,能够在不断升级的环境中充分保护

有能力去扩展多样化的AIA资产,譬如企业业务对象,企业业务消息,转换,业务流程,企业业务服务,路由规则,端到端业务流等

同时,确定具体执行策略,明确特定资产的扩展性要求,譬如ABCS(应用业务连通服务)的扩展性,支持:

在流程的预定义节点,客户可以注入附加的行为(客户代码)

典型的客户化行为,诸如客户化消息校验机制,客户消息内容丰富等

任一典型的ABCS,支持客户化,从而增加其标准功能的可用性

ABCS架构可以执行这些客户化的行为

综上所述,AIA内置的设计模式,融入了Oracle在应用集成领域的SOA最佳实践,帮助客户在面向应用集成问题时,可以有一种有效的手段,快速高效的搭建其解决方案,从而更好的响应业务的集成需要,同时提高其业务敏捷性。


[相关链接]
设计模式(Design Pattern)的百度词条解释: http://baike.baidu.com/view/66964.htm
设计模式的维基百科英文版解释:http://en.wikipedia.org/wiki/Design_pattern
论坛徽章:
0
发表于 2008-11-6 15:13 | 显示全部楼层
"为什么需要设计模式呢?这是因为它是一个非常有效的手段,可以帮助实践者在不断累积的问题处理过程中,发现问题,重现问题,从而可以借鉴他人的成熟经验,以一种高效实用的机制,分离问题,解决问题。"

设计模式的重要性往往还得不到重视,我们的架构师们往往不断重复别人的错误,才能逐步改善自己的架构。学习AIA还是很有帮助的。

使用道具 举报

回复
论坛徽章:
0
发表于 2008-11-13 10:36 | 显示全部楼层
我来看楼主了,来支持楼主了,加油啊!

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
186
授权会员
日期:2008-07-27 22:25:202014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14版主4段
日期:2015-02-26 02:21:03慢羊羊
日期:2015-03-04 14:51:35
发表于 2008-11-19 09:53 | 显示全部楼层
+U~
Up~

使用道具 举报

回复
论坛徽章:
10
ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152010年世界杯参赛球队:南非
日期:2012-02-23 10:10:542010年世界杯参赛球队:墨西哥
日期:2012-02-23 10:10:542010年世界杯参赛球队:美国
日期:2012-02-23 10:10:542010年世界杯参赛球队:科特迪瓦
日期:2012-02-23 10:10:542010年世界杯参赛球队:喀麦隆
日期:2012-02-23 10:10:542010年世界杯参赛球队:加纳
日期:2012-02-23 10:10:54参与WIN7挑战赛纪念
日期:2012-02-23 10:10:54ITPUB学员
日期:2012-02-23 10:10:54紫蛋头
日期:2012-02-23 16:44:58
发表于 2009-1-6 11:14 | 显示全部楼层
不明白,顶了再说。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时9.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表