如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第六讲网络环境中的软件质量一、公共服务二、事务服务三、安全服务四、性能服务一、公共服务公共服务是中间件提供的重要功能用于对应用的约束性需求进行支持ObjectRequestBrokerDNA(DistributedNetworkArchitecture)J2EE(Java2Platform,EnterpriseEdition)公共服务与构件公共服务的接口定义了公共服务的调用格式公共服务接口的定义方法与构件的定义方法基本相同例如:OMG不仅用IDL定义应用对象还用IDL定义公共服务SUN采用Java语言的interface声明构件的接口也用它来声明底层服务的接口由于实现功能的复杂性一个公共服务往往包含多个接口分别用于代表公共服务内的一组有意义的操作例如:OMG的命名服务包含两个接口:NamingContextBindingIteratorSUN的JTA包含5个接口:UserTransactionTransactionManagerTransactionSynchronizationXAResource公共服务的具体实现方式是十分丰富的:(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:结束一个事务取消事务过程所做的所有修改BeginFlatTransactionMainTransaction(4)事务的支持机制单机环境下:并发控制(2PL)多机环境下:全局控制(分布式事务:2PC)3、并发控制可串行化(Serializability)避免死锁(DeadlockFreedom)公平(Fairness)并发粒度(DegreeofConcurrency)复杂度(Complexity)2)两阶段锁锁是一个标记,标明一个进程正在以某种模式访问一个资源最小的锁模式为:读、写锁被用来指示多个并发进程对某一资源的当前使用状态加锁:Locking锁的兼容性锁冲突死锁锁粒度层次锁锁的透明性3)乐观并发控制4)比较4、分布式事务1)基本概念单机环境:单阶段提交(不加控制):客户直接向各结点发出提