第1章:蓝月亮
商业和市场对软件系统新的功能性需求看起来无比贪婪。我曾经听到一个产品经理在一个产品发布会后河我说:“这个产品可以做客户想做的任何事情;下一个版本没什么可设计的。我们都会老家吧”。发布日期到来的时候,你最可能听到的就是,“不,这个版本不干不了这个,我们或许可以再下一个版本之后加上这个功能。”在软件的世界里,这些功能性需求偶然的集中到一起,远处看来就貌似一个通用的需求。有时候,其中一个普通的需求就产生了一个携带满足这个通用需求诺言的新的通用概念。一旦时机到来,对新技术的兴趣会推动一个新技术的发展,这个新技术可以使得开发者把这个概念应用到他们的应用中,因此进而可以满足那个通用需求。每次这种百年一遇的时机,通用需求,通用概念和随之而来的新技术如此巨大和重要,迫使我们不得不重新考虑软件的设计。我不确定你是否注意到这些,但是微软WCF的发布影意义重大。是我们应该重新思考如何设计和构造分布式应用的时候了。
注释:The moon is Blue,月亮是蓝色的:这个话需要了解西方国家的文化背景,这个表示千载难逢或者百年一遇的事情。通常是极少有的影响巨大的事情,具有化时代的疑义,比如相对论的提出。人类第一次登月等等。作者使用这个标题来强调WCF的出现具有深远的意义。详细参才文章末尾文章的解释。
普遍需求:
绝大大部分来说,商业不再去寻求能够解决他们所有计算问题的神奇应用系统。随着时间推移,许多软件厂商,比如打的企业资源规划(ERP)和中间件厂商已经不同程度地成功卖出了这种系统。商业,然而,提出了如此多的需求,以至于没有那个软件厂商的产品可以满足全部需求。此外,随着商业的发展,它们经常需要概念自己的基础结构和流程去适应成长。软件可以在公司100人规模的时候运行,然后却不一定能在1000个员工的时候正常工作。当考虑并购和收购的时候问题会更加复杂。迁移一个收购的公司去使用总公司的软件系统式非常痛苦、乏味和代价昂贵的。
结果是大部分公司的计算架构包含的是一个既能满足部门级又能满足企业级需求的应用混合系统。这个混合经常被称作非主流架构。最可能是就是这些系统是由内部或者外部的供应商开发,去解决特定的业务问题,并且每个系统都经常管理隔离的信息。偶尔这些非主流架构也被标准化运行在特定的硬件、操作系统和平台上,但是这种标准化通常难以推广。更多的是,这些企业内的计算系统经常由独立的、隔离的应用系统组成,它们运行在不同的硬件,操作系统和平台,为了改进企业的业务(但愿)。如果你看到右边的图片,就也许会记起 M. C. Escher的绘画。
从商业角度来看,应用系统很少会独立存在,正如他们之间紧密的联系,在某些形态和样子上去帮助商业更加高效地运转。结果,一些人免不了要求,以削减成本、增加销售、或者变相的要求:“我想在应用系统A里知道系统B的一些东西。”这种需求的变现说法就是连接。
连接很显然有两种方式:应用-应用和应用-企业。只不过,应用-应用是连接两个应用,比如应收账款系统和运输系统。一个应用-企业的例子就是航线想发布每次一个飞机起飞和降落信息给所有关心它的应用系统。这些信息都会深远地影响企业,包括运营,员工调度,和质量保证。人、市场和商业现在的需求关键点就是他们系统之间的连接,这已经非常普遍。不管你为软件厂商还是公司内部IT部门工作,你很可能已经看过这种系统互联的要求。如果这个是你第一次听说,只需要读一些这些主流软件公司的评论,然后记下他们关于未来如软件产品和服务的发布的话。几乎没有例外,你至少会听到和看到关于集成、互联和互操作这些词语。这些都暗示着连接。简而言之,连接时新的普遍需求。