网络环境中的软件质量.ppt

网络环境中的软件质量

第 六 讲 网络环境中的软件质量;一、公共服务 二、事务服务 三、安全服务 四、性能服务;一、公共服务;公共服务是中间件提供的重要功能 用于对应用的约束性需求进行支持 ; ;Object Request Broker;DNA(Distributed Network Architecture);J2EE(Java 2 Platform, Enterprise Edition); ;公共服务与构件 ;公共服务的接口定义了公共服务的调用格式 公共服务接口的定义方法与构件的定义方法基本相同 例如:OMG不仅用IDL定义应用对象 还用IDL定义公共服务 SUN采用Java语言的interface声明构件的接口 也用它来声明底层服务的接口;由于实现功能的复杂性 一个公共服务往往包含多个接口 分别用于代表公共服务内的一组有意义的操作 例如:OMG的命名服务包含两个接口: NamingContext BindingIterator SUN的JTA包含5个接口: UserTransaction TransactionManager Transaction Synchronization XAResource;公共服务的具体实现方式是十分丰富的: (1)公共服务可以在应用服务器内实现 (2)公共服务可以由另外一个单独的中间件产品实现 (3)公共服务可以在局域网内的另一个应用服务器实现 这主要是因为在局域网内的许多资源需要统一管理 例如负载共享服务、命名服务、安全服务等等 (4)公共服务可以作为一种网络基础设施 在因特网范围内对各种应用服务器进行支持 在下一代因特网中这种趋势十分突出 许多公共服务被实现为网络的基础设施 例如:身份认证、主体标识等等; ;如何向公共服务发出一条符合公共服务接口的消息 以最终实现功能约束 1) 代码直接调用式的使用方式 在应用程序代码中直接调用服务接口 存在使用直接、效率较高等优点 也存在一些不足 例如:不利于程序代码的复用 不利于在运行过程中根据约束性需求的变化 调整具体的实现策略 这些不足可以通过声明式的使用方式克服!;2) 后期声明式的使用方式 应用程序代码不直接调用公共服务 而是由容器(截取器)进行调用 容器调用的依据是应用系统开发人员 在系统组装或者部署阶段对应用程序的声明 这种声明可以是针对一个类进行的 也可以是针对一个具体的方法进行的 声明式的使用方式也存在一些不足 例如:效率有所损失,使用点受到限制等 实际过程中可以结合使用两种使用方式 以取得最满意的效果;二、事务服务;1、动因;硬件的可靠性变化:;逻辑越来越复杂 集成带来的特征交互越来越多;如何面对错误?;访问冲突;更新丢失问题;客户C1:从帐号A向帐号B 转 ¥400 将帐号A上的金额减 ¥400 将帐号B上的金额加 ¥400;不一致的读取问题;客户C1:从帐号A向帐号B转 ¥400 将帐号A上的金额减 ¥400 将帐号B上的金额加 ¥400;解决上述问题需要掌握如下信息: 该操作包括哪些低层操作? 这些低层操作涉及哪些持久数据? 这些操作的运行结果如何? 如果出现错误怎样处理?;2、事务概念及特性;(1)事务的ACID属性; 原子性(Atomicity) 事务 或者被全部执行 或者任何修改都不起作用 事务的起点 是 回卷点 也是 重复执行的起点 事务的终点 是下一个事务的起点;共享的资源(的状态)需要保持一致 在下面情形中容易产生不一致的状态: 多个并发事务在互相不知晓的情况下结束 应用系统 定义一致性,并负责保证一致性 如果事务不能解决不一致问题 事务可以被终止 ; 分离性(Isolation); 持久性(Durability);Begin: 启动一个新事务 Commit: 结束一个事务 存储事务过程所做的修改 使得修改可以被其它事务访问 Abort: 结束一个事务 取消事务过程所做的所有修改 ;Begin;Flat Transaction;Main Transaction;(4)事务的支持机制 单机环境下:并发控制(2PL) 多机环境下:全局控制(分布式事务:2PC) ;3、并发控制;可串行化(Serializability) 避免死锁(Deadlock Freedom) 公平(Fairness) 并发粒度(Degree of Concurrency) 复杂度(Complexity);2)两阶段锁;锁是一个标记,标明一个进程正在以某种模式访问一个资源 最小的锁模式为:读、写 锁被用来指示多个并发进程对某一资源的当前使用状态;加锁:Locking;锁的兼

文档评论(0)

1亿VIP精品文档

相关文档