微软推出的vb是一个功能强大的开发平台。它在“代码重用性”上地加强是一个引人注目的特点。我们可以将需要多次重复使用的功能单元开发成activex组件(activex control,activex exe,activex dll),然后在新程序中象使用vb标准控件及类一样使用这些组件。 activex组件给开发网络应用带来很大方便。我们可以将这些组件分布在网络的不同机器上,构成分布式应用,就好象所有组件都在同一台机器上一样。很多朋友都有开发本地activex组件的经验,本文将结合实例介绍一下如何将activex组件分布在网络上构成分布式应用。
一、概述
“activex"是微软为分布式计算制定的一套标准,它的前身就是大家所熟知的“ole automation"。当分布式应用通过网络通讯时,activex可以使用两种不同的机制对客户请求作出响应。一种称为“分布组件对象模式(dcom)”,只可以在windows nt和windows 95上使用;另一种是“远程自动化(remote automation)",它可以在16位环境下构造分布式应用。
这两种分布式机制,有着极其引人的特点:与组件物理位置的无关性。也就是说,当你构造一个activex组件时,无需知道它将分布在那一台机器上。同样的组件,即可以将它放在本机,也可以将它分布在其它机器上而不需要从新编译。这样,根据网络的性能和网络结构的变化,我们可以方便的调整组件的分布策略。
当然,用activex构建分布式应用的各个独立组件,还有其它优点:
构造远程组件和构造本地组件的编程方法一模一样,无须特殊的工程经验。可以用activex组件在服务器端实现复杂的商业规则。比起用dbms(如sql server)来完成同样的工作,我们有更好地编程、维护、排错手段。
有大量的商业组件可以使用。而且这样的组件会越来越多。我们只需将特殊的商业规则开发成组件,与购买的组件配合使用。
二、开发和调试
开发分布式组件和开发本地组件相同,调试也可以在本地完成,本文不在赘述。(可以参看vb所带的例子:\sample\clisvr\booksale\client\book_cli.vbp客户端程序;\sample\clisvr\booksale\client\book_svr.vbp服务器程序。)在开发分布式服务器段组件时,请注意下列问题:
服务器端的project应为activex exe(进程外的activex组件)。这也很容易理解,不可能在两台机器上完成同一个进程,所以,不可能使用activex dll(进程内的组件)。
在project properties对话框的组件栏目下,应设为remote server file。这样,在程序编译时会生成一个vbr文件,在生成安装盘时要用。大家知道,windows程序在系统注册表中有注册,此文件与注册有关。
class属性应设为mutiuse,以便多个客户应用可以使用它。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器