| |
---|---|
(点击题目可以在互联网中搜索该题目的相关内容) 日期:2006-8-8 22:22:32 来源: 作者: 点击: | |
组态软件实现组件间通信的一种典型技术 1 引言 组态软件作为用户可定制功能的软件平台工具,目前已经在各个行业和领域得到了广泛应用。组态软件伴随着DCS及计算机控制技术的发展而逐渐成熟进来,组件化、分布式已经成为组态软件的基本特征。优秀的组态软件大多将它的实时数据库、HMI、I/O服务器、数据服务器等几个主要部分设计成分别可独立运行的组件。这些组件可以同时运行在一台计算机内,也可以分布式地运行在不同的计算机内,通过网络等方式实现组件间的通信。这种体系结构可以让用户灵活地配置自己的系统,合理地分配各个服务器的运算负荷。 但实现组件化同时也带来了软件设计上的复杂性。特别是如何实现组件间的高效、实时、可靠地通信成为一个关键问题。 2 组件间通信技术 组件间在实现通信过程时,包括两种方式:本地方式和远程方式。在设计时,可以考虑将本地方式作为远程方式的基础。或者说,实现了本地通信,也就实现了远程通信。因为可以将组件间交换的数据通过远程方式,传送到目的机后,再通过本地方式与远程组件通信。下面我们分别讨论如何实现组件间的本地通信和远程通信。 3 本地通信 组件间实现本地通信时,在底层上要解决的本质问题上是进程间通信问题。进程间通信是一种与OS密切相关的技术。本文所介绍的方法是以微软的Windows操作系统为基础的。Windows各个版本的操作系统都提供了丰富的进程间通信手段。从早期版本提供的管道、邮件槽、DDE技术,到后来推出的COM技术,以及目前最新的“.NET”中提供的全新方法等。本文介绍的技术属于“传统”技术,它的基础是Windows的消息传递功能,同时辅助内存文件映射和信号量技术。笔者认为这种方法有以下几个优点: 1)、实现简便。因为涉及的技术都不很复杂,因此实现起来比较容易。 2)、实时性高。这种方法使用的都是OS的底层技术,中间环节少,运行效率高,可以实现快速数据通信。 3)、移植性好。因为采用的是OS底层技术,这种方法受OS版本升级的影响很小,也很容易移植到非Windows操作系统上。而某些进程间通信技术,如DDE,在新版的Windows操作系统上已经不再被支持。其它一些技术也因OS升级在接口形式和实现方法上发生了很大变化,使应用程序受到影响。 4)、功能可控性好。这里的可控性是指开发人员在使用一种技术时,能否有效地控制这种技术的运用。例如,开发人员在选用一种技术时,如果这种技术作了过多的封装,虽然应用简单,但要实现自己的灵活控制时就会处处受缚。 5)、可靠性易控。这一点与上面提到的可控性是相关的。操作系统越是底层的技术,可靠性就越强。封装得越多的技术,其可靠性就越无法控制。 6)、对系统环境的适应能力强。这个问题可以用一个简单的例子说明:用过基于COM/DCOM技术开发的软件产品(如:OPC类软件)的用户,很多人都经历过因不同系统环境而必须面对COM/DCOM复杂配置的困惑。 本地通信在计算模式上仍然属于C/S结构。主要问题是如何实现多个Client与Server之间快速、并发式的数据交换。下面结合实例进行说明。 假设Client和Server是采用这种技术的客户端和服务器端程序,它们都是基于窗口的独立进程。每次进行数据交换时Client向Server发送一个请求报文,Server收到请求报文后,再向Client回复一个应答报文,如此不断往复。 因为可能有多个Client与同一Server同时进行快速数据交换,因此上述交互过程必须采用异步方式方能保证可靠性和并发性。为了实现方便,需要抽象一个专用于进程通信的中间件ICom以供各个Client同时调用。ICom提供3个最基本的接口: 1)、Open()。在这个接口里ICom实现的功能包括:初始化用于数据交换的内存映射文件、创建上行(Client到Server)和下行(Server到Client)事件通知的信号量对象、创建用于防止共享冲突的信号量对象,启动服务线程,同时Client向Server发送消息进行身份认证和注册。 本新闻共2页,当前在第1页1 2 | |
上一篇: 10种软件滤波实现方法及性能分析! 下一篇: 标准PID源程序 |