悆高级软件工程 网络环境中的软件质量11/197 2、公共服务的接口 公共服务的接口定义了公共服务的调用格式 公共服务接口的定义方法与构件的定义方法基本相同 例如:OMG不仅用IDL定义应用对象 还用IDL定义公共服务 SUN采用Java语言的 linterface声明构件的接口 也用它来声明底层服务的接口
高级软件工程 网络环境中的软件质量 11/197 公共服务的接口定义了公共服务的调用格式 公共服务接口的定义方法与构件的定义方法基本相同 例如:OMG不仅用IDL定义应用对象 还用IDL定义公共服务 SUN采用Java语言的interface声明构件的接口 也用它来声明底层服务的接口 2、公共服务的接口
悆高级软件工程 网络环境中的软件质量12/197 由于实现功能的复杂性 个公共服务往往包含多个接口 分别用于代表公共服务内的一组有意义的操作 例如:OMG的命名服务包含两个接口: Naming context Bindinglterator SUN的JTA包含5个接口: UserTransaction Transaction Manager Transaction Synchronization XAResource
高级软件工程 网络环境中的软件质量 12/197 由于实现功能的复杂性 一个公共服务往往包含多个接口 分别用于代表公共服务内的一组有意义的操作 例如:OMG的命名服务包含两个接口: NamingContext BindingIterator SUN的JTA包含5个接口: UserTransaction TransactionManager Transaction Synchronization XAResource
悆高级软件工程 网络环境中的软件质量13/197 3、公共服务的实现 公共服务的具体实现方式是十分丰富的 (1)公共服务可以在应用服务器内实现 (2)公共服务可以由另外一个单独的中间件产品实现 (3)公共服务可以在局域网内的另一个应用服务器实现 这主要是因为在局域网内的许多资源需要统一管理 例如负载共享服务、命名服务、安全服务等等 (4)公共服务可以作为一种网络基础设施 在因特网范围内对各种应用服务器进行支持 在下一代因特网中这种趋势十分突出 许多公共服务被实现为网络的基础设施 例如:身份认证、主体标识等等
高级软件工程 网络环境中的软件质量 13/197 公共服务的具体实现方式是十分丰富的: (1)公共服务可以在应用服务器内实现 (2)公共服务可以由另外一个单独的中间件产品实现 (3)公共服务可以在局域网内的另一个应用服务器实现 这主要是因为在局域网内的许多资源需要统一管理 例如负载共享服务、命名服务、安全服务等等 (4)公共服务可以作为一种网络基础设施 在因特网范围内对各种应用服务器进行支持 在下一代因特网中这种趋势十分突出 许多公共服务被实现为网络的基础设施 例如:身份认证、主体标识等等 3、公共服务的实现
悆高级软件工程 网络环境中的软件质量14/197 应用服务器容器一 构件 网络基础设施 公共服务的实现
高级软件工程 网络环境中的软件质量 14/197 a c d 构件 容器 应用服务器 网络基础设施 b 公共服务的实现
悆高级软件工程 网络环境中的软件质量15/197 4、公共服务的使用方式 如何向公共服务发出一条符合公共服务接口的消息 以最终实现功能约束 1)代码直接调用式的使用方式 在应用程序代码中直接调用服务接口 存在使用直接、效率较高等优点 也存在一些不足 例如:不利于程序代码的复用 不利于在运行过程中根据约束性需求的变化 调整具体的实现策略 这些不足可以通过声明式的使用方式克服!
高级软件工程 网络环境中的软件质量 15/197 如何向公共服务发出一条符合公共服务接口的消息 以最终实现功能约束 1) 代码直接调用式的使用方式 在应用程序代码中直接调用服务接口 存在使用直接、效率较高等优点 也存在一些不足 例如:不利于程序代码的复用 不利于在运行过程中根据约束性需求的变化 调整具体的实现策略 这些不足可以通过声明式的使用方式克服! 4、 公共服务的使用方式