COM原理及应用----基于COM的程序设计

1、COM的作用

COM作为一种软件模型,提供了程序之间通信的标准,但其最大的贡献在于对程序设计方法的变革。COM结合了对象技术和组件技术两种特性。对象特性使得应用系统的设计和实现更加符合现实世界的面貌;组件特性使得应用系统可以充分发挥组件的优势,以适应现代应用的需要。

2、组件的特性

组件之间可以在二进制级别上进行集成和重用;组件必须被独立地生产、获得和配置。

组件接口描述了组件对外提供的服务,组件和组件之间、组件和客户之间同时通过接口进行交互。组件接口必须是能够自我描述的,组件应该保持接口不变。

3、基于COM的组件化程序设计方法

组件化程序设计方法继承并发展了面向对象程序设计方法。组件化程序设计方法强调真正的软件重用和高度的互操作性。

4、MTS

MTS,Microsoft Transaction Server,它为我们提供基本的组件运行和配置环境。MTS为分布式应用提供了底层的基础设施,它把应用系统的客户程序与应用组件对象以及各种资源有机地组织起来。

在MTS应用中,所有的组件对象都运行在MTS运行环境中,这些组件对象实现了基本的应用逻辑规则。由于MTS把组件对象有机地管理起来,它的运行环境负责所有并发性处理、资源管理、安全性管理、环境管理等系统级特性处理,因此,开发人员在编写组件对象时可以忽略这些要素,只需简单地实现基本的应用逻辑规则即可。

MTS应用可以包括多个MTS服务进程,每个服务进程运行一个或多个组件对象,所以MTS应用的每个组件对象必须是进程内组件对象,它们运行在MTS服务进程中。在MTS服务进程中,除了这些应用组件对象之外,MTS也提供了许多服务,包括线程管理服务、环境管理服务、资源分发管理等等。MTS正是通过这种方式来提供各种系统服务的。

资源管理器是MTS应用管理永久数据的基本手段,它使用了Microsoft的DTC(distributed transaction coordinator,分布式事务协调器)系统服务,通过两阶段提交的方式实现了事务(transaction)功能。

MTS实现了两种资源分发器:ODBC资源分发器和共享属性管理器。

MTS只是一个COM组件对象的管理器,它通过一组内置的服务来简化复杂应用系统的开发。

5、MTS程序设计概念

(1)事务

事务是一个抽象概念,它是指一组数据操作的整体。事务具有四个特性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和永久性(durability),这些特性可简写为ACID。

(2)MTS对象

MTS对象是指运行在MTS环境下的COM组件的一个实例,MTS为每个对象维护一个环境对象。

(3)MTS客户

MTS客户是指MTS对象的客户程序,它可以是一个应用程序,运行在MTS环境之外,这种客户我们称为基客户;MTS客户也可以是另一个MTS对象,所以,MTS客户与对象的概念也是一个相对概念。

(4)安全性控制

MTS推荐使用基于角色的安全模型,角色是MTS安全模型的核心,一个角色定义了用户的逻辑组合。

时间: 2024-07-30 14:58:12

COM原理及应用----基于COM的程序设计的相关文章

基于VB6的网络程序设计

引言 自从Internet技术成熟和普及以来,人们就可以非常方便.快捷地在互联网上进行文件下载.信息发布.在线视频.即时获取信息.电子邮件传送等操作. Internet可以说是21世纪人类电子科技的一大创新,也是新一代媒体的替代物.由于这个重大改变,人们的生活方式也随之受到了非常大的影响,电子购物.网上信息库.网上股市实时交易等如雨后春笋般的出现.那么这些方式是如何在互联网络上实现的呢?本文介绍采用现今比较流行的程序设计语言Visual Basic 6.0独有的网络控件来开发设计Browser及

基于用户的协同过滤推荐算法原理和实现

      在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单.该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤.一直到2000年,该算法都是推荐系统领域最著名的算法.       本文简单介绍基于用户的协同过滤算法思想以及原理,最后基于该算法实现园友的推荐,即根据你关注的人,为你推荐博客园中其他你有可能感兴趣的人. 基本思想       俗话说"物以类聚.人以群分",拿看电影这个例子来说,如果你喜欢<蝙蝠侠&

大前端开发者需要了解的基础编译原理和语言知识

在我刚刚进入大学,从零开始学习 C 语言的时候,我就不断的从学长的口中听到一个又一个语言,比如 C++.Java.Python.JavaScript 这些大众的,也有 Lisp.Perl.Ruby 这些相对小众的.一般来说,当程序员讨论一门语言的时候,默认的上下文经常是:"用 xxx 语言来完成 xxx 任务".所以一直困扰着的我的一个问题就是,为什么完成某个任务,一定要选择特定的语言,比如安卓开发是 Java,前端要用 JavaScript,iOS 开发使用 Objective-C

Socket 通信原理(Android客户端和服务器以TCP&amp;amp;&amp;amp;UDP方式互通)

ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那

OAuth 2.0 认证的原理与实践

原文同步至https://waylau.com/principle-and-practice-of-oauth2/ 使用 OAuth 2.0 认证的的好处是显然易见的.你只需要用同一个账号密码,就能在各个网站进行访问,而免去了在每个网站都进行注册的繁琐过程. 本文将介绍 OAuth 2.0 的原理,并基于 Spring Security 和 GitHub 账号,来演示 OAuth 2.0 的认证的过程. 什么是 OAuth 2.0 OAuth 2.0 的规范可以参考 : RFC 6749 OAu

C++程序设计教学材料-2011级

本课2014级的方案更完整,且有完整讲课视频,请有需求的人士,移步到---->2014C++ 请看续集:C++程序设计教学材料-2012级 计114-34班学生,他们的博客地址:请[点击进入....]. 教师:贺利坚 CSDN博客首页 新浪博客 网络习题课--贺老师的视频教程,补齐课堂上落下的课,解除做题中的困扰. [课程总结] 我的总结,见<这一年,与84个写代码的菜鸟相伴而行> 大一菜鸟学习c++后的精彩总结,见<C++课上的作文题> 学生如何看待我们共同的经历,如何看待

Flink 原理与实现:Session Window

在上一篇文章:Window机制中,我们介绍了窗口的概念和底层实现,以及 Flink 一些内建的窗口,包括滑动窗口.翻滚窗口.本文将深入讲解一种较为特殊的窗口:会话窗口(session window).建议您在阅读完上一篇文章的基础上再阅读本文. 当我们需要分析用户的一段交互的行为事件时,通常的想法是将用户的事件流按照"session"来分组.session 是指一段持续活跃的期间,由活跃间隙分隔开.通俗一点说,消息之间的间隔小于超时阈值(sessionGap)的,则被分配到同一个窗口,

Android Monkey原理探讨

0x0 概述 本文不涉及如何使用monkey,官网说得够详细了,网上资料也一大堆.本文着重探讨monkey的实现原理,以及基于这些原理,我们可以做些什么?本文涉及的Monkey的源码位于AOSP的development项目的cmds目录下. 0x1 Monkey事件触发原理 Monkey的主要作用是,发送一些随机交互事件模拟人的随机操作.它是如何触发各种事件的呢? 1.1 触摸事件 触摸事件包括屏幕以及物理键的触摸,滑动,点击事件.我们可以通过发送一些adb命令模拟这些事件.不过Monkey实现

公开课总结发布《云数据库实现原理和海量运维方法》

0.导读 UCloud数据库高级研发工程师姜建剑老师分享<云数据库实现原理和海量运维方法>. 1.活动总结 上周四晚上,知数堂培训邀请到Ucloud数据库高级研发工程师姜建剑老师分享<云数据库实现原理和海量运维方法>主题.让我们得以了解Ucloud的RDS实现原理,以及基于RDS的海量数据库实例运维方法. 本次分享的音视频.PPT相关资料已经上传到百度云盘,链接:https://pan.baidu.com/s/1ge4fdIz ,欢迎转存及转发(扫描下方二维码识别) 知数堂培训全新