ESB与可插拨系统的思考

    今天看了很多关于SOA中的ESB的内容,但还是没有搞明白ESB是用来做什么的.为什么ESB在JAVA SOA中这么多介绍但是在MS中没有看到什么介绍呢,我看很多内容说ESB就是用来做系统的集成方面的工作的,也不知道是不是这样,但我想"存在总是合理的"吧.也不知道是不是这样.
    看的同时我又就在想这个问题:如果我们是直接采用.NET的WCF来建立SOA的应用程序,理想的情况当然是一个服务一个服务的增量式开发,但开发新的服务肯定会与以前的服务产生一些交互问题,这种交互有可能是新的SERVICE依赖于前面的这SERVICE这种情况应当说是最常见的也是问题最好解决的,简单点的办法就是直接在后面的服务中直接使用前面的服务就可以了,但是会不会有这样一种情况,就是前面我们已经开发了一个系统,并且这个系统也使用很好,使用到前面的这个SERVICE,但因为来新服务的加上,而前面系统执行一个业务时会对后面的服务产生影响,假设这里有一个客户关系管理的程序,这其中公布有部分服务,但后来我们又做了一个新的销售管理的程序,这其中前面的客户关系管理程序运行得很好,这里当添加了销售管理系统后,其中的部分客户工作可能会产生新的定单之类的,那么这个时候怎么样来解决这个问题呢.我想可能以有以下的办法:
  • 修改销售管理系统,在这种特殊情况产生后直接调用销售管理中的服务.
  • 当客户管理中指定服务的每时定条件达到时自动调用这个服务,完成这个工作.
    在前一种情况下实现很简单,但会对前面的系统产生强烈的耦合关系,如果这个销售管理后来不做了,那必然需要将程序修改回来.不利用系统的维护,也没有真正的实现SERVICE的可插拨部署,如果这个用于开发一个二个这种系统当然不会有问题,但如果需要实现一个产品系列,其中有很多的产品那又怎么样来实现呢.
    而后一种实现又怎么样能够做到呢?这个问题需要解决可能有很大的难度啊,但想一想设计模式中的OBSERVER好像也可以解决这个问题,但理论与实际总是有差别的啊,具体怎么做,难道说ESB就是用来解决这个问题的吗?
    SOA的概念很简单也就是我经常在想的问题,复杂的问题原理都是简单的,比如相对论公式简单吗,但很多国家花了举国之力不还是没有将原子弹造也来吗.

posted on 2008-01-11 22:04  蓝色游骑兵  阅读(259)  评论(0编辑  收藏  举报

导航