1.1 引 言
最初的计算机研究是基于集中式架构的,很少考虑编程方面所遇到的挑战,但是在相关技术方面已经取得了很大进步,例如以健壮的、可重用的模式来设计数据结构和算法。虽然目前的企业级系统大多采取分布式的计算结构,但是所有的系统架构都是由组件构成,每个组件都必须以健壮的方式进行开发,所以已经提出的方法仍然是有价值的。
分布式系统技术能够使企业中相互隔离的信息组合起来,从而被更好地使用。但是,在克服了网络方面的低层次挑战之后,系统在向分布式迁移时面临着一个痛苦的事实:难以将目前所存在的各个信息孤岛连接起来以获取额外价值。这里的一个关键问题就是异构性,也就是说,在不同信息源中存储的信息会出现语义不匹配。最为常见的是,根本无法对语义进行建模,协调各种不同的资源十分困难,甚至是不可能的。处理上述各种异构设置的最佳方法,就是采用静态信息模型或数据库模式对各种不同的资源进行建模,然后将这些模型集成起来。模型集成在处理异构信息系统时很少起作用,因为任何单个模型的变化都会导致整个集成模式的失效。
我们这里所讨论的系统是开放的,因为它们反映了组织本身所具有的开放性。在开放环境中,组件模式不但是异构的,而且是自治的,可能会快速地改变,各个组件也没有被要求一定要进行合作。开放架构的特点是可以对自主异构的组件进行动态增加和删除。随着电子商务的普及,开放架构正在变得越来越普及,其中最经典的一个应用就是Web服务。
Web服务架构把每个组件看做一个服务,服务所提供的一系列能力被定义为方法(Curberaet等,2002a)。服务可以被调用,也可以交换文档。在Web服务中,被调用的参数、结果和交换的文档,都需要按照XML协议进行结构化(Box等,2000)。开放架构所面临的一个独特挑战就是对所需的组件进行发现和定位。在Web服务中,这一点通过“统一描述发现和集成标准(Universal Description Discovery and Integration,UDDI)”中的“注册”概念来实现。服务被它们的实现者和推广者发布为一个注册项。潜在的消费者(即寻求支持特定接口服务的人)就会尝试着联系注册项,以找到匹配的服务实现。注册项将会提供一个满足给定要求的所有服务实现列表。消费者能够选择其中的一个服务实现,把它作为自己的合适选择。Web服务架构能够对大型系统进行灵活动态的配置,正在快速成为构建大型系统的事实标准,但是它仍然有一些缺点。首先,没有对所要处理的信息和服务语义进行编码,匹配过程是依据语法条件进行处理。其次,在特定的环境中缺乏可信度和适用性的概念,这些问题被留给用户自己去解决。
就某种特定意义而言,“计算”所存在的基本商业和组织环境并没有随着现代技术的发展而改变。例如,在“计算”出现的几个世纪之前,就已经出现了供应链。即使从计算的角度出发,供应链也能同早期出现的计算系统相适应。从实际意义上讲,现代技术在很大程度上也影响了商业和组织。这种“一分为二”的观点可以通过下面这个例子来理解。以前供应链中存在着很多问题,早期的“计算”主要是帮助改善供应链的建造、运行和效率检测。但这些是比较死板的方法,有很多缺点,无法很好地把握机会和处理异常,这在很大程度上限制了它们在实际应用中的效率。进一步,人们期望能够通过改进计算和通信基础机制来获得下列属性:效率、灵活性、敏捷性和健壮性。
面对当前环境下的实际挑战,传统的计算机科学无法提供强有力的抽象和灵活的技术。这些问题要求采用一种更为宽广的视野来看待“计算”,不仅要坚持科学原则,还要考虑计算发生时所处的组织环境,理解用户的需求,即计算所服务的对象。换言之,真正的世界在某种意义上一直都是开放的,只是我们采用构建和管理过程的技术对它们施加了一定的限制。现在所需的就是引入一种技术来避免这些限制,这就是Agent出现的原因。Web服务的层次架构在许多方面都很自然地体现了Agent的重要特征。如果把Agent系统开发看做是Web服务的上层结构,对于探索它们的现有特征,改进Web服务架构都是很有价值的。值得注意的是,应该避免在Web服务中试图复制Agent的每一个思想,这样会使系统出现冗余,变得难以理解,尤其是对于大量的软件开发人员而言。