对SEDA,SOA 与 P2P 的哲学分析
SOA,WEB SERVICE, CORBA, EJB, 工作流,面向对象的局部性与面向服务的全局性和松耦合性。 松耦合性的需要来源于对业务变更的灵活性需求。 软件系统应用之初,人们认为软件使得电脑可以象人一样工作。于是把所有的权力都给了它。后来在使用过程中,才逐渐发现,软件其实并不能胜任所有的工作。它也许真的可以拥有智能,但却永远也不可能取代人的决策者地位。这一点是由两个重要因素决定的: 一,软件能接收与理解的信息是有限的。基于有限的信息,很难做出正确的决策。一个不能做出正确决策的行为主体,当然很难赢得信任。所以说,信任是第一个问题; 二,一个在能力上不能被信任的人,当然就不能担当太重大的责任。所以,当软件最终被发现是个白痴的时候,人们要求收回它做决定的权力。 更重要的是,即使软件有朝一日真的能拥有人的智慧,我们仍然需要掌握一定程度上的决策权。因为这个原因,工作流被从以往被认为是万能的软件系统中抽取出来,以使人们重新掌握对业务的控制能力。 在SPRING里面,也有个相似的东西叫做“控制反转”即IOC。与工作流的产生背景一样。人们喜欢权力。 在编程方法中,要求尽量将定义与实现分离。这样的目的是为了提高系统的应变能力。这种方法其实也是最初的SOA思想来源。 与软件的可变性相似的一个概念为可扩展性。 可扩展性与可变性意思是不同的。可变性是针对现有系统而言的