【三层架构】——COM/DCOM初识

2024-01-02 00:18
文章标签 初识 架构 com 三层 dcom

本文主要是介绍【三层架构】——COM/DCOM初识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:

   在学习三层架构的时候,知道三层分为UI层(表现层)、BLL层(业务逻辑层)、DAL层(数据访问层),相对于传统的二层架构(客户端和数据库)来说,多了一个中间层BLL(业务逻辑层),处于UI层和DAL层之间,起到承上启下的作用,客户端并不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,在经中间层与数据库进行交换。读到这里的时候,问题就来了,什么是COM/DCOM通讯?它在三层架构体系中起到什么作用……

【COM】

      COM是Component Object Model (组件对象模型)的缩写,是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术,是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。COM是个开放的组件标准,有很强的扩充和扩展能力。COM规定了对象模型和编程要求,使COM对象可以与其他对象相互操作。这些对象可以用不同的语言实现,其结构也可以不同。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。

   我的理解:COM为组件对象的一种模型,一种对于组件对象主要特征的描述,并不是真正的产品或商品,基于这个模型,开发人员才能开发出较为完整和规范的实际产品,研究出COM的目的是方便开发人员开发出各种组件,真正地可以实际应用到系统开发中。

【区分组件和对象】

      组件(Component)是系统中一种物理的、可代替的部件、它封装了实现并提供了一系列可用的接口。一个组件代表一个系统中实现的物理部分,包括软件代码(源代码,二进制代码,可执行代码)或者一些类似内容,如脚本或者命令文件。简而言之,组件就是对象,是对数据和方法的简单封装。

     对象(Object)是指现实世界中客观存在的事物。

     组件基于对象,同时又是对象的一种,可插入系统中的对象。

   组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用;
   组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序;
   组件为模块重用,而对象为代码重用。

     我的理解:组件相对于对象来说,更加复杂化,更加整合,它可以被当作一个独立的主体拿来用,在不同的系统中实现组件的替换,组件的粒度大于对象,组件是对对象的一种装饰,将简单的对象根据不同的需求加以封装成单一功能的组件,使用起来更加方便灵活,组件的粒度大于对象,组件之间是通过接口实现交互,接口内含有多个信息,而对象之间交互是单个信息,用信件传送信息时,对象需要一封一封的传送,而组件则是将所有信息一次性传送完,再举一个生活化的例子:盖房子的时候需要用到水泥、沙土、石子等原材料,而有一种材料叫做混凝土,它是用水泥作胶凝材料,砂、石作集料,加上一定比例的水制成的一种材料,前者可以看做是对象,后者可以看做是组件,而不同的粒度也因此显现出来。

     有两个问题:关于组件和对象的关系有没有更为精准的描述词语?面向组件技术优于面向对象技术吗?

     关于面向组件和面向对象技术的知识还有许多,期待大家继续去探索……

【COM的优点】

     1. 用户一般希望能够定制所用的应用程序,而组件技术从本质上讲就是可被定制的,因而用户可以用更能满足他们需要的某个组件来替换原来的那个。

     2.由于组件是相对应用程序独立的部件,我们可以在不同的程序中使用同一个组件而不会产生任何问题,软件的可重用性将大大的得到增强。      3.随着网络带宽及其重要性的提高,分布式网络应用程序毫无疑问的成为软件市场上越来越重要的买点。组件价构可以使得开发这类应用程序的过程得以简化。

【DCOM】

     分布式组件对象模型(Microsoft Distributed Component Object Model)的简称,是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在Windows95或者其后的版本上)。

       DCOM相对于OCM来说就多了一个单词Distrbuted,它的意思是分布式的,分散式的。分布式是指一个业务分拆多个子业务,部署在不同的服务器上。 而集群是指将几台服务器集中在一起,实现同一业务。

      DCOM为分布在网络不同节点的两个COM组件提供了互操作的基础结构。DCOM增强COM的分布处理性能,支持多种通信协议,加强组件通信的安全保障,把基于认证Internet安全机制同基于Windows NT的C2级安全机制集成在一起。DCOM自动建立连接、传输信息并返回来自远程组件的答复。DCOM在组件中的作用有如PC机间通信的PCI和ISA总线,负责各种组件之间的信息传递,如果没有DCOM,则达不到分布计算环境的要求。

    

   我的理解:DCOM是为了方便两个COM之间的沟通连接,分布式的提出,就要求分散在两台计算机上的COM组件之间相互通信,COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口,而DCOM支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。借助DCOM你的应用程序将能够任意进行空间分布。

【DCOM的特点】

      1.组件复用

         任何为分布式应用开发的组件都有可能在将来被复用,DCOM能够直接且透明地改进现存的对COM组件和工具的投资。对各种各样组件需求的巨大市场使得将标准化的解决方案集成到一个普通的应用系统中成为可能。

      2.位置独立

      DCOM中配置的细节并不是在源码中说明的,DCOM使得组件的位置来说完全透明,在任何情况下,客户连接组件和调用组件的方法的方式都是一样的。DCOM不仅无需改变源码,而且无需重新编译程序。一个简单的再配置动作就改变了组件组件之间相互连接的方式。

      3.语言无关 

      作为COM的扩展,DCOM DCO具有语言独立性。任何语言都可以用来创建COM组件,并且这些组件可以使用更多的语言和工具。Java,Microsoft Visual C++,Microsoft Visual Basic,Delphi,PowerBuilder和Micro Focus COBOL都能够和DCOM很好地相互作用。

        4.连接管理

        DCOM通过给每个组件保持一个索引计数来管理对组件的连接问题,这些组件有可能是仅仅只连到一个客户上,也有可能被多个客户所共享。使用DCOM,任何组件都既可以是功能的提供者,又能是功能的使用者。通讯的两个方向都用同一种机制来管理使得完成对等通讯和客户机/服务器之间的相互作用一样容易。

        5.可扩展性

   DCOM通过使用Windows NT对于对称性多进程处理的高级支持功能就能轻易地将应用从一个单处理机扩展到庞大的多处理机系统上去。

       6.灵活配置

    使用DCOM,可以很容易地改变客户进程同组件以及组件之间的连接方式。同一组件无需作别的改动甚至无需重新编译就可以被动态地重新配置。所有必须做的工作只是更新登记、文件系统以及所涉及的组件所在的数据库而已。

       7.带宽问题

  DCOM自己将网络循环时间最小化,使得避免网络中潜在的拥塞成为可能。DCOM选择了TCP/IP协议套件中的无连接UDP协议作为自己的传输协议。协议的无连接特性使得D  COM能够将许多低级别的确认包和实际的数据以及地址合法性检查(pinging)信息混合起来从而改善了性能。

       8.共享连接

   DCOM对每台机器使用一个keep-alive消息。即使一台客户机使用了某一台服务器上的100个组件,仅仅只要一条ping消息就能使所有这些客户连接保持活跃状态。为了将所有的ping消息组合起来,DCOM使用delta pinging机制来将这些ping消息的大小最小化。

       9.优化网络

 DCOM使得组件开发者能够轻易地执行批量技术而无需客户端也使用批量形式的API。DCOM的marshling机制使得组件可以将代码加到客户端,这叫作“代理对象”,它可以拦截多个方法调用并将其捆绑到一个远程调用中去。如果需要的话,DCOM甚至允许将组件插入任意一个传统的协议中,这个协议可以使用不在DCOM机能范围内的方法。组件可以使用传统的配置方法将任意的代理对象放到客户进程中,此进程能够使用任何协议将信息传回组件。

      10.负载平衡

   DCOM促进负载平衡的几种不同的技术:并行配置,分离关键组件和连续进程的pipelining技术。

      11.容错性

   DCOM在协议级提供了对容错性的一般支持。前面的“应用系统间的共享式连接管理”部分所描叙的一种高级pinging机制能够发现网络以及客户端的硬件错误。如果网络能够在要求的时间间隔内恢复,DCOM就能自动地重新建立连接。

【三层中的应用】

        三层体系中的中间层也叫组件层,而COM/DCOM为客户端和组件层之间进行通讯提供了方便,三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理,涉及到业务逻辑的处理,就需要多个组件之间相互通讯,而DCOM还会使负载平衡,所有客户都连接到指示组件,指示组件中包含所有的配置信息,它向每个客户返回合适的组件。只需改动指示组件就可以改变所有的客户。

【总结】

     COM/DCOM是一种简单的分布式组件对象模型,它的编程模型非常简洁明了,使用该模型可以方便地将处于不同组件中的功能组合起来,以最简单的方法规范了组件之间的交互。除了COM/DCOM之外,现在比较流行的是COM+通讯技术,它更优于COM/DCOM,想了解更多,多去探索,多去发现……

    在学习三层的时候看到了这个COM/DCOM这个名词,不是很懂,就查了一下,参照百度和别人的经验写完的这篇博客,许多内容不是很明白,希望路过的你多多提意见,相互交流看,共同进步!

     

这篇关于【三层架构】——COM/DCOM初识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560875

相关文章

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

【系统架构设计师】黑板架构详解

黑板架构(Blackboard Architecture)是一种软件架构模式,它模仿了多个专家系统协作解决问题的场景。在这种架构中,“黑板”作为一个中央知识库,存储了问题的当前状态以及所有的解决方案和部分解决方案。黑板架构特别适合于解决那些没有确定算法、需要多个知识源(或称为“专家”)共同作用才能解决的复杂问题。 一、黑板架构的组成 黑板架构主要由以下几个部分组成: 黑板(Blackboa