为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

高级软件工程11(DNA、MTS、MSMQ)

2010-10-21 45页 ppt 707KB 35阅读

用户头像

is_082674

暂无简介

举报
高级软件工程11(DNA、MTS、MSMQ)nullnull三、分布式系统的软件体系结构软件的体系结构有一个范围、视角问题 即: 在什么样的范围内 以什么样的视角 看待 软件的体系结构 传统的方法主要 在单机环境中 从系统功能角度 看待 软件的体系结构 随着软件系统规模的增长及底层机制的完善 需要新的软件体系结构描述方法null分布式系统对软件的需求 自治性 Autonomy 可靠性 Reliability 可接受性 Availability 可扩展性 Scalability 互操作性 Inte...
高级软件工程11(DNA、MTS、MSMQ)
nullnull三、分布式系统的软件体系结构软件的体系结构有一个范围、视角问题 即: 在什么样的范围内 以什么样的视角 看待 软件的体系结构 传统的方法主要 在单机环境中 从系统功能角度 看待 软件的体系结构 随着软件系统规模的增长及底层机制的完善 需要新的软件体系结构描述方法null分布式系统对软件的需求 自治性 Autonomy 可靠性 Reliability 可接受性 Availability 可扩展性 Scalability 互操作性 Interoperability null自治性 应用程序的自治性是指 应用程序有能力控制其自身的关键资源 关键资源是应用程序作为独立的实体完成其功能时 所需要的珍贵资源 例如:RDBMS 连接 大型机连接 事务等 null可靠性 可靠性是指应用程序提供准确结果的能力 在一个多用户的环境中确保准确的结果是困难的 例子: 从一个帐户(A1) 向另一个帐户(A2)转一笔帐(M) 需要将A1减去M 并同时将A2增加M null可接受性 可接受性指应用程序的响应时间能够被用户接受 这依赖于许多因素: 硬件可接受性 软件可接受性 网络可接受性 等 资源冗余可以提高响应时间null可扩展性 可扩展性是对处理能力能够与资源的增加 呈线性增长的一种期望 这使得应用程序在从支持10个用户 发展为支持10000个用户时 只要 增加必要的资源 扩大应用程序的规模即可 null互操作性 互操作性是指应用程序访问其它平台上的 应用程序、数据等资源的能力 许多企业环境支持多种不同的硬件与软件 它们必须协同工作 以共同为企业的运作服务null 目前存在三种描述分布式环境中软件体系结构的模型: DNA:Distributed interNet Application Architecture OMA: Object Management Architecture EJB;Enterprise JavaBean nullDNA、OMA、EJB皆是 在分布式环境中 从系统底层角度 看待 软件的体系结构 它们 解决的问题是类似的 分布式系统的软件体系结构 解决问题的方式也是类似的 基于互操作模型(构件间交互) 分离出公共功能(构件) 由于EJB与OMA很类似,不予详述null核心业务功能横向人机交互数据服务DNA倡导:3-Tier Applicationnull纵向OS ORBServicesFacilitiesDomain ObjectsOMA倡导: Layered ApplicationnullDNA与OMA互相渗透: DNA在3层结构中不断地增加公共服务 例如: MTS MSMQ 负载平衡 等 OMA在公共服务之上也定义了水平服务 例如: User Interface Information Management System Management Task Management 等 null内 容 1、DNA 2、MTS 3、MSMQ四、DNADNAnullDNA是Windows 平台上的应用程序开发模型 用以指导如何: 利用Windows平台开发 强壮、可扩展、分布式的应用程序; 扩展现有的数据与外部应用程序 以支持Internet; 支持不同类型的客户设备 以增加应用程序的范围 由于DNA依赖于由Windows平台提供的综合、集成的服务 开发者可以 省缺分布式应用程序所需要的 基础设施的开发 而将精力集中在业务问题上1、DNADNAnull DNA设计原则: Internet ready. 开发方案能完全利用 平台的灵活性 Internet的优势 通讯能力 Faster time to market. 快速开发、部署应用程序,不需要对开发者进行重新培训 降低开发者必须写的代码 True interoperability. 各模块皆具有互操作能力,以方便地向现有系统增加功能 符合开放的协议与,以集成其它厂商的产品 DNAnullReduced complexity. 将关键服务直接集成到操作系统中 并通过构件以一般的方式提供服务 降低对IT专家的依赖 以集中精力解决业务问题 Language, tool and hardware independence. 提供语言中立的构件模型 使开发者可以使用任务专用的工具 以个人计算为基本模型 客户可以在大量可用的硬件上部署程序 Lower total cost of ownership. 开发的程序易于部署且易于维护DNAnullDNAnullDNAnullDNAnullDNA 提供多种示服务 开发者可以根据具体情况选择最佳方案 基于Windows的构件 各种Internet技术 等 HTML Scripting DHTML Components Win32 API 以支持丰富的界面与客户环境 从手持无线设备到高端工作站DNAnullDNAnullWeb Services Internet Information Server (IIS) 可用于 开发基于Web的商务应用系统 这样的系统便于扩展、便于部署 作为IIS技术之一的Active Server Pages(ASP) 具有 语言中立 编译省缺 的特点 是服务器端脚本环境 用于创建、运行动态且交互的Web服务器应用程序 利用ASP脚本及其它协调构件构造的应用程序 可以与现有的系统、应用程序及数据协同工作DNAnull Component Services 基于互操作模型 Component Object Model(COM) 增强分布处理功能 Microsoft Transaction Server (MTS) 目前已发展为COM+ 通过降低为利用底层系统服务而编写的代码量 使开发分布式应用系统更为 快速 容易 廉价DNAnullCOM+ 服务包括新的或增强的服务包括: Bring your own transaction. COM 构件可以参与由非COM+ 事务处理环境管理的事务 只要它支持Transaction Internet Protocol (TIP) Load balancing. 基于构件的应用程序可以以客户透明的方式 在应用程序群中分布工作负载 In-memory database. 内存数据库是一个事务性数据库系统 用以支持对数据的快速访问DNAnullQueued components. 异步执行在网络环境下是不可避免的 队列可以对异步执行提供良好支持 Event notification. COM+ 事件是同时支持单播/多播、发布/订阅的事件机制 允许多个客户“订阅”由各种服务器“发布”的事件 Expanded security. 支持基于角色的安全与处理访问许可安全 COM+ 增加了方法级安全 Centralized administration. Component Services Explorer提供了一致的管理模型 减少了部署、管理及监控 n层的应用程序DNAnull Messaging Services Microsoft Message Queue Server 提供 松耦合、可靠的通讯服务 通过实现 push 风格的商务事件方便了应用系统的集成 在不可靠、代价低的网络上建立起可靠的应用系统 Microsoft Message Queue Server 还提供了 与其它消息队列产品的无缝连接 例如:IBM’s MQSeries等 DNAnull 向大型机事务处理扩展 通过使用COM构件及COM Transaction Integrator (TI) 开发者可以扩展 大型机上的事务程序 例如: Customer Information Control System (CICS) Information Management System (IMS) 等 COM TI包括一系列的开发工具与服务 可以自动“封装”IBM的事务功能 所有的 COM TI 处理皆在Windows NT Server上进行DNAnull 关键的Application Server Technologies包括: Microsoft Transaction Server Active Server Pages Microsoft Internet Information Server Microsoft Message Queue Server Microsoft Component Object Model DNAnullDNAnull 企业需要从分布的数据与信息中获取最大的商业利益 Universal Data Access 提供对各种信息资源的高性能访问 包括关系、非关系数据 提供独立于工具与语言的编程接口 Universal Data Access 基于开放的工业规范 得到了工业界及数据库厂商的广泛支持 DNAnull DNA中基于Universal Data Access的框架包含两层: 在系统层: OLE DB 定义了一个基于构件的体系结构 封装了各种数据库管理系统服务 OLE DB 不对数据源进行约束 在应用层: ActiveX Data Objects (ADO) 提供了高层接口 使开发者可以从任何编程语言访问数据 在每一层: Extensible Markup Language (XML)使开发者 可以在应用程序客户之间进行 描述、交付、交换结构化数据 XML 也可以在服务器之间进行结构化数据的传送DNAnullDNA优点总结: 为分布式应用程序的开发提供集成、综合的平台 将开发者从底层工作中解放出来 方便地与现有系统、数据等协作 保护对现有系统的投资 提供构件模型、共性服务以及支持工具 减少开发分布式系统的时间DNAnull3、MTS什么是事务 事务是一个不可分割的工作单元 在一个不可靠的环境中 事务是保证系统获得准确结果的有效措施 一个事务 可以正常完成 也可以被终止,并“卷回”到初始状态 如果一个过程的执行满足上述“事务”特性 则我们称该过程是“事务性”的DNAnull事务的四个特性 (ACID) : 原子性 (Atomicity) : 包含在事务中的活动或者全部有效,或者全部无效 一致性(Consistency) : 事务涉及的各种数据必须保持一致性 分离性 (Isolation) : 不同事务之间互不干扰 永久性 (Durability) : 只要事务成功完成,则其结果一定有效 其中: 一致性是开发者需关注的 原子性、分离性、持续性 由底层的事务处理系统提供DNAnullMTS (Microsoft Transaction Server ) MTS 是 一个基于构件的运行时基础设施 是 开发、部署、管理分布式服务应用程序的 事务处理系统 MTS是 台式机的灵活性、代价低 与高端大型机系统的业务关键处理 的结合 MTS还是 构件管理器 负责将应用系统的客户程序 与应用构件对象 以及各种资源 有机地结合起来DNAnullMTS对象 与 MTS客户 MTS对象是指运行在MTS环境下的COM构件实例 MTS为每个对象维护了一个环境对象 MTS对象与其环境对象具有同样的生存周期 环境对象实现了 IObjectContext接口 环境对象通过该接口提供事务、安全控制等能力 MTS客户是指MTS对象的客户程序 可以是一个运行于MTS环境之外的应用程序 也可以是另一个MTS对象DNAnullIObjectContext : public IUnknown { public: virtual HRESULT CreateInstance( REFCLSID rclsid, REFIID riid, LPVOID __RPC_FAR *ppv) = 0; virtual HRESULT SetComplete( void) = 0; virtual HRESULT SetAbort( void) = 0; virtual HRESULT EnableCommit( void) = 0; virtual HRESULT DisableCommit( void) = 0; virtual BOOL IsInTransaction( void) = 0; virtual BOOL IsSecurityEnabled( void) = 0; virtual HRESULT IsCallerInRole( BSTR __MIDL_0000, BOOL __RPC_FAR *__MIDL_0001) = 0; };DNAnull其中: CreateInstance 函数用来创建另一个MTS对象 SetComplete 函数结束一次操作并指示一次事务被提交 SetAbort 函数结束一次操作并指示一次事务被取消 EnableCommit 函数允许事务提交操作 DisableCommit函数禁止事务提交操作 IsInTransaction函数判断当前对象是否在事务状态下运行 IsSecurityEnabled 函数判断对象的安全许可 IsCallerInRole 函数指定对象的调用者 是否在当前服务进程的安全角色中DNAnullMTS特性 事务管理器 简化数据库应用对数据的操作 对分布式数据库的支持尤为明显 对象管理器 为基于COM的构件应用应用系统提供 配置和管理的基础 及时激活(Just-In-Time Activation) 为提高服务器资源的利用率 在客户一致持有对象引用的前提下 激活、去活对象 器 MTS提供基于NT安全的分布式安全服务 防止对业务应用的未授权访问DNAnull4、MSMQ (Microsoft Message Queue )MSMQ 提供了一种异步通信服务 解决在 不可靠或者慢速网络连接 远地用户 异构应用程序 等环境中的问题DNAnull两个应用程序之间进行通信时存在三种可能的情形: 当一个应用程序向另一个应用程序发出消息后 它可能: ® 等待一个直接的应答 ® 在一定的时间内等待应答 但在这段时间内执行其它工作 ® 不等待应答 第一种情况即为同步通信 而第二种、第三种情况为异步通信DNAnullMessage Queuing的优点 ® 交付可靠 消息可以存放在基于磁盘的队列中 以在失败时进行恢复 ® 路由 当发送者与接受者之间的直接连接不通时 消息队列系统可以存储并转发消息 ® 连接无关性 发送者与接受者不必一致处于连接状态 应用程序的性能基本不受网络流量的影响 ® 基于事务 消息可以与事务进行集成 以保证只有在事务成功时才被发送 ® 优先级处理 消息可以被赋予优先级 优先级高的消息将首先被处理DNAnull应用程序通过MSMQ API 访问消息队列 任何可以调用COM对象并利用MSMQ API的语言 皆可以获得一个MSMQ对象模型 MQCreateQueue MQDeleteQueue MQLocateBegin MQLocateNext MQLocateEnd MQOpenQueue MQSendMessage MQReceiveMessage MQCreateCursor MQCloseCursor MQCloseQueue MQSetQueueProperties …...DNAnullMSMQ Queue TypesDNAnull 消息与应答队列 这是应用程序使用的两个主要队列 分别用于存放应用程序发送与接收的消息 管理队列 管理队列包含由MSMQ产生的回应消息 包括发送成功、发送失败两类消息 期刊队列 用于保存应用程序消息的备份 以进行日志、审计及恢复 无效消息队列 保持哪些因超时或者目的地错误而未发出的消息 报告队列 用于跟踪消息被发送的过程 报告队列接收MSMQ产生的报告消息DNA
/
本文档为【高级软件工程11(DNA、MTS、MSMQ)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索