信息化 频道

让企业SOA项目更可控之必备十大戒条

  10.不到最后不要扔掉基础设施

  为什么要担心基础设施?

  SOA就是要使基础设施从业务中分离开来,不只是在功能上,而且还在项目管理上:项目经理应该能够把思想集中在他负责开发的服务的商业附加值上,而不是担心基础设施。业务项目经理应该去组织开发一个作为项目一部分的新授权服务,而不是去构建一个新电话局,这不会荒谬到哪里去。让项目经理承担类似这些事情会导致他要协调的事物数目增加,从而进一步导致其工作复杂性不成比例的增加。就算让他等待直到其他项目经理把基础设施交付了,这也是应该尽可能去避免的。

  上述评论适用于硬件基础设施也同样适用于基础设施服务。计算能力和网络容量应该总要超过需求,这样的话实施新服务的项目经理就不用担心基础设施是否能够为比原先预想更多的每天上千个服务请求提供支持。鉴于软件开发一般都比IT基础设施要贵出一个数量级,我们最不想要的就是:系统开发项目由于那些需要确保IT基础设施可用性的官僚性流程而被纠缠停滞不前。

  基础设施:SOA有何不同

  好消息是用SOA的方式去提出你的要求然后静观其变会得到简单、稳定的基础设施服务接口。这也就是为什么在你没有启动任何业务项目前,没有必要去实施世界上非常先进的基础设施服务。这些服务的复杂性不在于用来调用它们的接口,而在于它们从其他来源——或者从自我维护中——要求的信息,以便生产一个优化的结果。因此,完全可行的办法是有了初步的基础设施服务就启动项目,然后在业务项目中花足够多的时间去使用这些服务来做测试和生产。

  坏消息是SOA会导致更多的功能被分类为基础设施。尤其是,每个琐事引起一个通用的服务,而这一服务必须作为基础设施的一部分而不是成为需要它的每个业务功能的一部分来实现。虽然就本身来说不算很坏,但这的确导致了一个新问题:对于基础设施的每个部分来说,如何去组织安排各项事宜才能使既拥有权限又具有资源的人去确保它能按时可供使用而且具备了适当的功能和容量。组织若是不能妥善处理这一问题的话,就不能很好地实施SOA——事情就这么简单。

  敢问路在何方?

  虽然组成SOA的要素已存在多时,但SOA本身是全新的。就像集装箱一样,它不只是一种全新的处理我们一直以来所做事情的方法,因为它使得我们能以新的规模合作。而且SOA根本不是一项新技术,而是一种新的思维方式。SOA与我们现在考虑问题的方式是如此不同,所以要是你通读本文几遍才开始理解其中的意思,你并不用感到难为情。你对此的自然倾向是,你会觉得这些建议不切实际或没有必要或者两者皆是,而使你根本无法对它作出评估,在这之前你还需要适应一段时间。

  公正地说,也会出现SOA方案对你不直接起作用的情况。比如,你可能会从一些厂商那边以打包的形式获得你所有的系统,而那些厂商对采用本文中提到的方式来应用SOA一点特别的兴趣都没有。那样的话,把本文中所给的建议作为指南:使用它们来判定是否你做的选择会把你带向正确的方向。

  SOA是如此之新,所以并不是所有为了充分利用SOA而被我们需要的概念、工具及标准都已经可用了。我们不能期待现行的关守(gatekeeper)像一个SOA关守(SOA gatekeeper)一样为我们代劳一切,现行的用户接口设备对于封装的XML有困难。更糟的是,正如本文表明的那样,当前SOA世界里存在很多扑朔迷离、多余或者错误的东西。目前,SOA概念和技术的应用无论在哪里都没有达到SOA互操作性能力所能够达到的层次。我们遇到的互操作性问题往往都是由于其他一些人选择了实现稍有不同的众多WS-*标准中的子集。那些数以百万计的多方通信的可能方案已经减少到很少的一把了,但依然还是实在太多了。

  不管怎样,我们开了个好头。接下来我们可以沿着这条路继续走。SOA也同样如此。我们不需要为了进步而要去了解我们还不能了解的东西。向前看,我们有极大的潜力去使得事情更简单、更可靠,更具可预测性以及功能更丰富。是时候出发了。

0
相关文章