作者:孟岩 来源:CSDN博客 酷勤网收集 2007-11-30
SOA监管(SOA Governance)是SOA实施中的一个重要话题,但是很多人都搞不清楚其含义。我采访过很多人,也阅读过一些资料,才基本弄明白。总的感觉是,如果 直白地去讲SOA监管的问题,必然引进大量的新术语,一般开发者实在不容易听懂。如果能够举一个例子,那么大家就容易理解得多。恰好昨天在书上看到一个真 实的故事,很形象地说明了SOA监管的意义。所以不妨跟大家分享一下。这个故事是关于Sun的,当然这类事情实际上曾经发生在很多大型公司里。
在90年代后期,Sun推出了一系列产品,包括Java、Solaris等,他们希望能够尽可能地鼓励用户去使用这些产品,但是当时网速太慢,通过 Internet下载几百兆的软件根本不现实,于是Sun在网站上推出一个电子商务服务,下面我们不妨称之为服务A,你只要通过信用卡付10-20美刀快 递费用,就可以免费获赠Sun的超值产品光盘。被叫去编写这个电子商务服务的程序员当时隶属与内部IT部门,他写了一个在线服务,用来完成信用卡付账交 易。当然,这是一个“子服务”,我们不妨称其为服务Z,这个在线服务Z运行在内网上,采用了今天看来都不落后的体系结构——直接通过HTTP传输加密的 XML消息。很快,服务A对用户见面了,并且工作得很好。
不久之后,这个程序员被调到了Java开发组。当时Sun的Java网站提供一个类似MSDN的Java产品光盘订阅服务,下面不妨称之为服务B,这个服 务每季度向订阅者寄送最新的Java产品光盘。当然,订阅者也要通过信用卡付订阅费。碰巧这项工作又交给了这位程序员来完成。他当然不愿意重写那个很麻烦 的信用卡结帐服务Z,既然原来的那个服务是通过HTTP暴露在内网里的,何不复用之?他就简单地复用了这个信用卡结帐服务Z,完成了任务。这样,在90年 代后半期,这位程序员就率先实现了企业服务的复用。而十年后,服务的复用正是今天SOA追求的目标之一。
这样就形成了一个有趣的局面,即服务A中包含一个子服务Z,而服务B又依赖于服务Z,Z实际上成为了一个公共服务,但是这个秘密只有那个程序员和少数几个人知道,Sun的经理们对此懵然不知。
几年之后,这位程序员离开了Sun,随着他的离去,这个秘密变得更加不为人知。
随着互联网的发展,人们已经习惯于从网上直接下载软件,服务A已经变得越来越过时了。于是终于有一天,Sun的一个经理决定,关闭服务A。结果意想不到的事情发生了,随着A的关闭,服务Z也被关闭了,这就导致服务B全面崩溃,所有的订阅者都无法付款了。
这就是一个缺乏监管的情况下产生的典型事故。在传统的企业IT架构里,当系统仅仅是部门级烟囱系统时,软件模块之间的关系简单,监管不是一个很突出的问 题。而当各部门系统进行整合时,如果采用EAI/ETL方案,则也不大有监管的问题。只有在实施SOA的时候,把传统的烟囱系统打散成为一个个可复用的服 务时,监管的问题就突出了。SOA监管的意图,就是要让各种服务以清晰有条理的方式组合协作起来,并清晰地度量每一个服务的开销,评估每一个服务的开发和 维护所需的技术,确定当服务失效时采取的必要措施。总之,就是要把服务管起来,让它们有组织有纪律的共同工作。如果没有一个监管的制度和计划,那么就会出 现这样的局面:服务与服务之间有什么关系?不知道。服务之间彼此是否依赖?不知道。这两个服务的功能是否重复?不知道。这个服务是否冗余?不知道。开发维 护这个服务需要什么技能?不知道。当用户量增加时,维持这一服务的QoS所需的硬件消耗怎么变化?不知道。当服务崩溃时,谁来接替?往谁那里打电话?是否 有手工流程紧急应对?不知道!一大堆无法无天的服务以谁也想不到的方式攒在一起,任何一个点风吹草动都有可能会天下大乱。这就是缺乏监管的SOA将发生的 局面。这样的SOA,与其说是一个系统,不如说是一团乱麻,一场灾难。
因此,SOA监管对SOA来说,不是可选的,而是必须的,甚至是决定SOA实施成败的关键。
来自:http://blog.csdn.net/myan/archive/2007/08/09/1734343.aspx
评论
lyanry 发表于2007-08-10 10:31:44 IP: 202.110.209.*| 埃,读过之后,还是没法明白 SOA 是个什么东西。 现在有众多基于 apache 的服务,比如 svn、mediawiki 等,那么 apache 也算是一个公共服务了吧,这个也叫做 SOA 么? 实在无法感知 SOA 的先进性在哪里。特别是对于那些不是搞 WEB 的人。 |
应该好理解 发表于2007-08-10 11:08:22 IP: 220.187.38.*| 应该好理解,SOA,你理解PC的硬件总线结构吗?声卡,CPU等都是可插拔的小的有机体,只使这类软件产品个人用户很少会接触的到! |
myan 发表于2007-08-10 11:08:42 IP: 221.218.160.*| to lyanry: 看来SOA的概念普及还是很不够。不过也请不必着急,以后这方面的信息肯定会越来越多、越来越丰富,你迟早会明白的。 Apache这个例子不算SOA意义里的服务。 其实纯搞Web的人可能更不容易明白SOA的真谛,搞企业IT的人应该最容易理解SOA。 |
wishfly 发表于2007-08-10 11:19:21 IP: 221.218.28.*| >>myan 能否说说SOA与组件编程的本质区别? 感觉是一回事啊! |
zcpro 发表于2007-08-10 12:44:43 IP: 125.120.229.*| to sishfly: 我的理解是其实soa里的服务就是粗粒度的组件,是应用级别的组件,而传统的组件粒度更小。soa里基本的服务可以是由传统的组件实现的。 |
wishfly 发表于2007-08-10 13:03:55 IP: 221.218.28.*| >>zcpro 什么是应用级别的组件?组件聚合/包容别的粒度小的接口,然后以粗粒度的接口暴露给用户,这个接口因该可以达到所谓"应用级别"吧. 另外,既然要将SOA成为革命,这种"接口粒度的大小"上的分别,好像说服力不够! 其实我的理解,SOA就是将组件Internet化了.使得"接口或或者说服务"可以透过防火墙,实现远程快平台的组件调用. 不知这样理解对不对? |
宇文拓 发表于2007-08-10 13:31:07 IP: 220.231.23.*| 要是有像主外键一样对服务进行约束就好了 |
winking 发表于2007-08-10 20:19:54 IP: 58.33.101.*| 写得不错,但是实际上SOA Governance远远不止dependancy, 更重要的包括policy, contract management等等。 |
pass86 发表于2007-08-10 21:13:59 IP: 60.212.244.*| 不知是否可以用Windows的服务类比呢? |
shoutor 发表于2007-08-11 19:05:00 IP: 221.222.27.*| 不错,面向服务的系统整合,监管的确是非常重要 |
天下有敌 发表于2007-08-13 09:33:53 IP: 220.248.123.*| SOA一般应该实在系统整合的时候发挥作用吧, 如果是新开发的系统SOA有什么知道意义吗? |
hackee 发表于2007-08-13 13:45:54 IP: 218.22.16.*| 觉得SOA就是个对外的接口,跟一些企业的那啥客户服务热线类似,一旦实施便不能轻易地撤销的. 大粒度的东西 |
blackbrod 发表于2007-08-13 16:56:44 IP: 207.46.55.*| 明白了一点点,如果在具体举个服务中的例子,就完美了,谢了,大哥, |
烟雨.江南 发表于2007-08-13 20:34:42 IP: 221.222.190.*| 哥们,不错的例子,我是一家SOA厂商的工程师,感觉有时候的确不好向客户解释SOA监管的意义,呵呵! |
firingme 发表于2007-08-13 22:25:23 IP: 219.236.32.*| 搞了老半天,服务 A 和 服务 B 都依赖于 服务 Z 这样的事实竟然只有写代码的程序员一个人知道?而且更可怕的是服务 Z 还是牵涉到信用卡付款这么关键的环节。如果那个写程序的程序员在服务 Z 里面埋了后门,那可能所有在 Sun 消费的消费者的信用卡号都已经被盗了。 而这样的一个问题的根源并不在于原来采用的技术有多么的落后,更本质的原因是大公司一贯的“官僚习气“以及“反正总有人会知道”的思想导致了这样的恶果。 SOA 解决不了这样的问题,我相信也没有一个技术能够解决这样的问题。 |
helloworld 发表于2007-08-14 00:51:51 IP: 222.85.76.*| CSDN Blog:Webå¼€å ‘(è„šæœ¬å’ŒåŠ¨æ€ è¯è¨€) http://blog.csdn.net/rsspages/46.xml 通过google reader 订阅web方面blog文章的时候 全是乱码 怎么办呢? |
1000copy 发表于2007-08-16 17:16:41 IP: 220.167.25.*| 例子举的形象生动. |
danoyang 发表于2007-08-17 09:57:51 IP: 222.212.209.*| SOA监管是一个单独的职务,还是CIO的工作职责之一 听了这个例子之后,我觉得是后者,CIO应该组织好每个业务的验收测试,类似这样的服务终止活动,验收测试应该先于最终用户暴露问题吧 |
gcq5506@163.com 发表于2007-08-22 14:10:25 IP: 122.6.67.*| 求助:孟先生,您好。财帮子是您开发的是吗?谢谢!确实好用。可是为什么我的电脑无法登陆了,输入用户名和密码后,显示为“非法请求”。在别的电脑上却很正常,急! |

