2003-01-08 09:18
使用面向服务方法来设计网络服务
在程序设计过程中,数据结构在彼此之间及整个进行机制中都是相互联系而维护整个软件系统。随着程序复杂性的增加,数据结构和运行机制的数量也随之增加。所以在程序设计中,程序复杂性的增加会导致软件难于维护和扩展。
面向对象程序设计,即OOP,为开发人员提供相当完美和成熟的设计原理。在OOP中,包含着状态和事件的对象允许采用一个实体来描述它的和名称和功能。对象与对象之间也是相互关联的。OOP也引入了诸如封装和多态的概念,使复杂程序更容易编写,维护和扩展。
现在,面向服务设计(SOP)已经被使用到程序设计领域,并显示了更加成熟。使用SOP来开发程序能够保证更清晰的概念,提高可调用性,减少错误,提高可扩展性。SOP是建立在面向对象程序设计的基础之上。
服务
服务是数据交换逻辑的核心。服务不包含表达逻辑,也不包含与数据层资源集成的逻辑,如数据库。在一个程序中,服务与其他成员的关联不是很密切。作为独立协议,它们允许被多种方法访问。这就允许服务在一个简单调用中能够执行数据交换逻辑功能并返回结果。GetAccounts服务便是一个很好的例子,这个例子返回的是特定银行的一个使用用户的所用信息。
通常服务是通过配置数据来决定事件,如调用哪一个数据层集成模块。但是各个用户的配置数据不会存储下来。比如,服务不能存储用户的请求问题。这就使得服务具有多用户的安全性。
一般来说,程序的作用在于它的功能,而不是它的名称。正是这个原因,SOP程序直接描述了程序体的功能,而OOP则不同,它集中在描述对象包含的状态和行为等最基本的东西。
在绝大多数的分布成分框架中,如J2EE’的企业JavaBeans (EJBs),数据交换逻辑的主实体是基于OOP成员。因为对象定义了一些事件,如果把相互冲突的成员封装起来肯定会发生匹配矛盾的问题。
在SOP中,程序的描述变得更加自然。程序的每一个功能模块都有可能成为一个服务。
对于企业应用程序方面的开发
在企业应用程序开发中,通常有五个最有代表性的层。
客户层主要针对于程序的用户界面,可以是运行在PC上的程序,与网络连接的浏览器,或一个PDA。
表达层主要负责接受来自客户层的请求,然后解释并发送到数据交换层。
数据交换层是企业应用软件的核心,也是交换数据逻辑的范围。
综合层包含与外部资源进行数据交换的软件模块,这些外部资源包括数据库,路径服务,网络网络,文件系统等。
资源层是一个数据仓库,包含的数据如数据库,其他的企业系统如ERP,CRM等。
这五个层在本质上是逻辑结构,它们在位置上只是一个地址分配问题。例如,在一个小程序中,表达层,数据交换层,综合层可以集中在单机上。而复杂的程序则可能分配在多台机器上。
建立网络服务的一个好方法
采用面向服务方法来开发应用程序可以提高函数功能模块的多次调用。在一个面向服务开发过程中,程序开发包括一个或多个服务模块以致形成一个完整的单元。这一方法能最大程度地减少开发时间,错误和软件维护费用。