主动服务的发布与发现描述
在当今的软件开发领域,面向服务架构(SOA)已经成为一种主流的架构风格。然而,传统的SOA服务大多是被动的,而主动服务的概念逐渐受到关注。本文将深入探讨主动服务的相关内容,包括其概念、建模、发布描述以及在SOA中的应用。
1. 引言
面向服务架构(SOA)是一种将程序功能逻辑组织成服务的架构风格,这些服务通过明确定义的接口实现通用访问,同时具备发布和发现可用功能以及与服务进行通信的机制。理想情况下,服务应提供在特定上下文中相对独立的功能,这种功能组织方式旨在提高功能的复用程度,通过保持服务接口与功能实现的独立性、与其他服务接口的独立性以及实现通用访问来达成这一目标。
不过,当代SOA中的服务由于受客户端 - 服务器范式的影响,本质上是被动的。通信的主动权始终掌握在客户端手中,服务器端仅负责响应请求。我们之前的研究探讨了主动服务的概念,认为SOA中的服务应具备不限于单向主动性的功能。本文将继续研究主动服务在SOA中的应用,重点关注其发布和发现问题。
2. 主动服务
当代SOA中的典型服务通常是被动的,其提供的功能仅在被调用时执行。在这种情况下,“服务请求”通常用于描述对服务声明接口中可用操作的调用。SOA的服务概念源于Web服务技术,与WSDL声明的接口概念紧密相关,而WSDL仅限于描述接口的静态调用细节。因此,HTTP的客户端 - 服务器范式在SOA的服务模型中占据主导地位。
然而,有一类丰富的服务具有主动性质,其功能不仅可以由客户端调用,还能主动向客户端发起操作。例如,经典的电话服务,用户既可以发起呼叫,也可以接收呼叫。同样,许多描述高级上下文感知服务的场景,展示了主动服务的功能并非天生被