分布式应用:用VB开发分布式应用



微软推出vb是个功能强大开发平台它在“代码重用性”上地加强是个引人注目特点我们可以将需要多次重复使用功能单元开发成activex组件(activex control,activex exe,activex dll)然后在新中象使用vb标准Control控件及类样使用这些组件 activex组件给开发网络应用带来很大方便我们可以将这些组件分布在网络区别机器上构成分布式应用就好象所有组件都在同台机器上很多朋友都有开发本地activex组件经验本文将结合例子介绍下如何将activex组件分布在网络上构成分布式应用

、概述

   “activex\"是微软为分布式计算制定套标准前身就是大家所熟知“ole automation\"当分布式应用通过网络通讯时activex可以使用两种区别机制对客户请求作出响应种称为“分布组件对象模式(dcom)”只可以在windows nt和windows 95上使用;另种是“远程自动化(remote automation)\"它可以在16位环境下构造分布式应用

   这两种分布式机制有着极其引人特点:和组件物理位置无关性也就是说当你构造个activex组件时无需知道它将分布在那台机器上同样组件即可以将它放在本机也可以将它分布在其它机器上而不需要从新编译这样根据网络性能和网络结构变化我们可以方便调整组件分布策略

   当然用activex构建分布式应用各个独立组件还有其它优点:

   构造远程组件和构造本地组件编程思路方法无须特殊工程经验可以用activex组件在服务器端实现复杂商业规则比起用dbms(如sql server)来完成同样工作我们有更好地编程、维护、排错手段

   有大量商业组件可以使用而且这样组件会越来越多我们只需将特殊商业规则开发成组件和购买组件配合使用

2、开发和调试

   开发分布式组件和开发本地组件相同调试也可以在本地完成本文不在赘述(可以参看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在系统注册表中有注册此文件和注册有关

   属性应设为mutiuse以便多个客户应用可以使用它

3、生成安装盘

   服务器端组件及客户端将安装在区别机器上应利用up wizard分别生成安装

   当生成客户端安装盘时需提供服务器组件所在机器名(以后可以修改)这将影响客户端机器注册项这些注册项告诉客户端到那里去寻找相应服务(即服务器端组件提供服务)微软提供了工具可以根据需要随时修改这些注册项如果使用remote automation机制可使用remauto connection manager;如使用dcom机制可使用dcom configuration managerremauto connector manager在vb软件Software包中即有在生成安装盘时将自动包括它windows nt 4.0中包含dcom configuration manager可直接使用对于windows95需从www.microsoft.com下载dcom95.exe及dcom95cfg.exe并运行可得到dcom configuration manager(注意要重新启动机器)

   利用上述工具可实现如下功能:

   1.可以随时切换服务器组件是在本地还是远程这样可以方便在本机调试远程组件

   2.可随时改变服务器组件安装位置

   如何生成服务器端安装:

   1.使用up wizard按要求指明project文件所在路径并指明“产生安装

   2.在进入“share active application”画面时选择“安装为个共享组件”如果你准备使用remote automation在画面下方选择“yes\";如使用dcom选择“no”如果使用remote automationremauto connection manager(racmgr32.exe)、remote automation manager(autmgr32.exe)将自动包含在安装

   如何生成客户端安装:

1.使用up wizard按要求指明project文件所在路径并指明“产生安装

2.进入“activex组件”画面时按add remote按纽指定服务器组件对应vbr文件(包含服务器组件object id等注册信息)

3.这时会弹出“remote connection details”对话框选择使用remote automation或dcom;输入服务器机器名如果使用remote automation还需确定通讯协议如tcp/ip等验证级别用来保证客户端和服务器间通讯安全性这是个较为复杂问题为了简化期间选择none即可

4.返回“activex server components”画面如果你使用多个远程组件可逐加入相关本地组件可按“add local”加入注意系统缺省会将些组件当作本地组件不要将同组件即当作远程组件又当作本地组件

4、安装和使用

   windows nt 4.0支持dcom可直接安装dcom分布式应用对于windows 95需要安装附加以支持dcom分布式应用windows 95可直接安装remote automation应用

remote automation模式:

   分别在服务器及客户端机器上安装相应在服务器端要先启动automation manager(autmgr32.exe安装会自动将该文件拷到系统目录下)客户端才可建立连接这种模式对操作系统要求较低windows 3.1,windows 95,windows nt等均可做服务器或客户端

   本思路方法提供安全性较差无法限制那些用户可以连接或不可以连接不过系统还是提供了许多安全管理措施读者在学习时不妨做简化处理:

   在服务器端启动remote automation connection manager(racmgr32.exe)在左侧选相应server组件在右侧client access栏目下选择allow all remote creates

   有关客户端安装我们前面作过讨论利用remote automation connection manager(racmgr32.exe)在server connection栏目下我们可以随时调整服务器组件分布位置



   remote automation这种模式提供了很大灵活性在安全性要求不高场合可以使用该模式

dcom模式:

   要构造dcom应用服务器端最好使用windows nt server或windows nt workstation客户端可使用windows nt或windows95这也符合实际应用策略server component要求有较高可靠性般分布在专用服务器上
   在服务器组件安装完毕后要确定rpc service是启动在客户端能够建立连接的前还需要配置访问权限

   为了简单期间你可以这样做:

1.运行dcomcfg.exe(在系统目录下)

2.选择相应组件设置其properties

3.在location栏目下设为:run app on this computer;在security栏目下选择定制安全性并将权限给everyone full control

   在客户端机器上通过dcomcfg.exe在location栏目下可以指定服务器组件安装位置
在windows 95下构建dcom应用特殊考虑:

   如果使用windows 95做客户端应从vb光盘或从www.microsoft.com找如下两个文件:dcom95.exe,dcm95cfg.exe安装并重新启动机器即可

   如server端使用windows 95须考虑下列问题:

1.安全性将受到限制

2.应手工在startup中加进server组件启动

3.运行rpcss.exe后客户端才可建立连接

4.由于server component是当没有客户参照它时它会自动终止可是windows 95没有自动启动它机制所以要保证server component不会从内存卸载办法是:在server component中加入个formvisible为false从form启动

5.应从vb光盘或从www.microsoft.com找如下两个文件:dcom95.exe,dcm95cfg.exe安装并重新启动机器

6.手工改变注册表:hkey_local_machine\\software\\microsoft\\ole\\enable remote connection改为“y\"否则会出现“run time error,active component cannot be create”

7.如同在windows nt上运行dcomcfg.exe并进行配置
Tags:  分布式开发 分布式应用程序 分布式计算与应用 分布式应用

延伸阅读

最新评论

发表评论