2022年的分布式开发系统-理论篇 .pdf
《2022年的分布式开发系统-理论篇 .pdf》由会员分享,可在线阅读,更多相关《2022年的分布式开发系统-理论篇 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、理论篇 : 面向对象的分布式开发系统- 理论篇(2)疯狂代码 http:/CrazyC ?:http:/CrazyC 3. 布式系统关键技术 3.1 面向对象技术 Object-Oriented 客户 / 服务器模式是典型分布式计算模型在此模式下客户端建立连接到服务器通过相互约定协议通讯以达到交换信息目 SoftEngine 核心通讯通道封装了这些复杂底层细节通过多层封装技术将底层对象和应用对象完全隔离SoftEngine 只在组件区域为应用提供了些抽象类作为软总线 接口如下图所示 : alt=/ 图表 2 Abstract is the erface of Soft-Bus. Applica
2、tion Objects : 应用对象 Objects: 系统对象 Infrastructure Objects: 底层对象 Abstract Class: 抽象类 设计个可重用面向对象软件Software 不是简单事个分布式重用系统更是困难事在SoftEngine 基础的上却很容做到其本身体系结构是对象化设计也是可重用 在组件区域内开发人员只需关注应用业务继承接口抽象类实现所定义业务流程通过发布例子化应用对象构造应用系统这种面向对象开发模式对员来讲是非常简单非常有效也可从繁重体力劳动( 编码) 中解脱出来更多精力用于设计工作 组件区域中应用对象是可被重用按照定发布方式可以在区别SoftEng
3、ine 系统中再次利用可被重用性不再取决于编码质量而在于如何设计出好应用业务逻辑流程有关这点我们将在后续流水线式设计模式中讨论 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 3.2 任务驱动 Task-Driven 在 SoftEngine 内部采用是任务驱动在这里所提到任务驱动概念不完全相同于些专业任务驱动论文更接近事件驱动 (Event-Driven) 也就是说所有对象在没有任务时处于空闲状态;直到有任务( 事件) 到达对
4、象运行模式才会转变为激活状态 在区别对象间传递任务是合作(collaborate) 唯方式合作模式有两种 : 完全独立模式 (Individual) 松散耦合模式 (Loosely Coupled) 下面图示了其中区别: width=358 alt=/ 图表 3 Individual and loosely coupled collaboration 对象 A 和对象 B 有次序地处理同个任务对象B 必须等待对象 A 处理结果对象 A 和对象 B 合作关系称为 : 松散藕合模式 对象 B 和对象 C 分别处理区别任务这种关系称为: 完全独立模式也就是说对象C 需要任务不总是来自于对象B 它们的
5、间没有必要关联 在完全独立模式对象C 由于功能相对独立无须等待想关数据所以效率比较高具有很高实时性但存在功能相对集中适应性比较差被可重用可能性也相对减少不足松散耦合模式为完成任务将处理步骤/ 功能细分为区别对象使对象 A 和B 功能相对专适应性增强可重用性也增加了同时更据区别功能效率可以方便作负载均衡(Loadbalancing) 调整但是任务多次投递以及相对耦合关系也降低了局部处理性能就如下图所显示两者性能比较: width=316 alt=/ 图表 4 Performance of collaboration 在实际应用开发中如果选择完全独立模式 或 松散耦合模式取决于在设计阶段如何定义应
6、用业务流程这将在名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 后续章节 : 流水线式设计模式中再次阐述 每个被传送中任务都具有自己生存周期(Live cycle)从产生到被丢弃如下图生存周期图: width=161 alt=/ 图表 5 Live-cycle of task Created : 被产生 Forward: 正向传送 Backward: 回送 Pending: 悬挂 Timeout: 超时 Operating:处理
7、 Droped:被丢弃 个任务由某个功能对象产生并传送(forward)到下个目对象在那里将被处理的后这个任务会被丢弃或被返回(backward) 到源对象这是个常规任务生存周期但如果在任务传递途中发生如目标对象不可到达等阻碍该任务将会被悬挂 (pending) 直到继续传送或超时 (timeout)被丢弃任务在传递中安全问题将会在后续数据安全主题中讨论 3.3 分布式对象 Distributed Object 在上文提到 SoftEngine 由区别种类对象构造在发布实施角度上看可分为 3 种: 本地(Local) 对象远地 (Remote) 对象虚拟 (Virtual) 对象 width=
8、392 alt=/ 图表 6 Local, Remote and Virtual Object 在上图中 : 本地对象 Local Object : 指分布在同个 SoftEngine 独体系统中对象互称为本地对象如: 在系统 I 中对象 A 和B 互为本地对象 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 远地对象 Remote Object : 指分布在区别 SoftEngine 系统中对象 ( 同个群体系统 ) 如: 对
9、象A 和C 以及B 和C 互为远地对象对于系统 II 中C 系统I 中A 和B 属于远地对象 虚拟对象 Virtual Object : 区别于本地和远地对象虚拟对象不属于真实对象而是个虚设类型真正操作不在虚拟对象本身只是远地对象在本地映射如: 虚拟对象 A是A 在系统 II 中映射对象 C 向A发送任务会转送到远地对象A而C 不知道也没有必要知道同理如果对象B 需要发送任务到 C 在系统 I 中可定义 C 虚拟对象 本地和远地对象是相互关系而虚拟对象只是种映射用于关联本地和远地对象起到分布和 负载均衡作用 3 者的间关系在开发中无须关心只有在系统部署中通过配置发布环境来确 定或改变以下图为例
10、介绍负载均衡: width=410 alt=/ 图表 7 A load balance system 在个分布系统中有两个独立运行系 统 I 和II 其中有相同对象 A1, A2, A3, A4 被分别发布他们所被加载类是相同只是被定义发布名称区别如果再定义个虚拟对象A 同时映射到 A1 - A4 同时配置区别策略如负载均衡循环法(Round-Robin) 或冗余法 (Hi-Available)发送到 A 任务会按照区别策略分发到A1-A4 上 在应用对象开发测试完成后部署策略包括: 系统配置、对象配置、对象发布等信息被定义在每个独体系统配置文件中通过这些配置文件将会动态地构建出个分布网状系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年的分布式开发系统-理论篇 2022 分布式 开发 系统 理论
限制150内