通过对web services的学习,得到一些对SOA的理解。
SOA是软件面向服务的构架体系,web services是一个典型实例。SOA是面向服务的,它关心不是服务的程序实现,而是服务的通信和协作。
SOA有三大要素:服务提供者,服务注册中心,服务使用者。一个服务在系统的部署访问过程:当服务的提供者有个能够提供某些功能的程序,想对外提供服务时,实现根据提供服务的平台,写好或由他自己对程序生成该程序的部署文档(例如:web services中。Wsdd文件)。通过部署文档把程序部署到服务平台上,服务提供者根据统一服务描述语言(例:wsdl)对服务生成服务描述文档,于是就形成了一个服务。在系统中,或网络中,甚至是Internet,为了管理很多服务,便于对这些服务的访问和服务协调使用,采用服务注册机制,系统创建服务注册中心,对用户按权限提供包括服务的更新,注销,注册,查询等多种等功能。服务提供者可以用服务描述文档把服务发布到服务注册中心上。服务使用者根据服务名到服务注册中心上查询服务,获得服务入口。即SWDL文档地址,获取WSDL文档,找到服务地址,调用服务方法,与服务进行通信(通常采用跨平台的通信协议)。
SOA的实质是为系统或网络提供软件间协作访问和向各种用户提供各种服务。这样它为软件的部署提供构架。它不同于传统的系统构架方式,它构架的系统是松散耦合,粗粒度的,而且通信的方式是使用通用的协议(例如SOAP)和通用的数据格式(例如XML)。在SOA中服务和构件框架的下的构件有相同之处,但构件是属于系统为构件门面提供后台服务,它是一个没有进一步作为服务来部署和发布的程序,特点在于系统的构架层次,业务清晰,软件的重用性好;而服务则是逻辑更高层次的表示,它的特点系统的分布,松散,服务应用的通用性和移植性。