转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
PB环境下分布式应用程序的开发         ★★★★

PB环境下分布式应用程序的开发

作者:闵涛 文章来源:闵涛的学习笔记 点击数:629 更新时间:2009/4/22 23:21:06
  【内容提要】传统的数据库应用程序经常采用客户机/服务器结构(即C/S结构),这种结构在技术上已经很成熟了并且应用也很广泛,但这种结构的应用系统有其不足之处,比如查询结果无法共享,即使两个客户发出的请求完全相同也要在服务器上执行两次查询;在客户端存储了具有商业价值的查询算法;数据库服务器负担过重导致效率低下等。如果在服务器和客户机之间再加一个服务器,专门用于存储查询算法和临时查询结果,则问题就得到了很好的解决:一方面不同的客户可以共用临时的查询结果而无须再访问数据库服务器,减轻了服务器的负担;同时在客户端也看不到作为商业机密的查询算法。这就是分布式系统的工作原理,本文将介绍如何应用PowerBuilder进行分布式应用程序的开发。

  一、分布式应用程序概述

  分布式系统的出现源于传统的C/S结构的若干弊病,如效率低,安全性差等,结合到数据库方面来说,全球的DNS(域名解析系统)系统是一个很典型的例子,试想如果把全世界所有的域名都集中到一台服务器中来进行管理,那服务器肯定会因负载过重而无法正常工作,整个互联网也就瘫痪了。

  在编写C/S结构的数据库应用系统时,同样也会遇到这类问题,那就是如果客户数量很多,数据量又都很大的情况下,服务器的负载就会很重,而且重复性工作很多,因为很多客户发出的查询可能完全相同而服务器却需要一一进行查询;同时查询算法存储于客户端,这可能不适合一些商业环境,因为算法本身可能是需要保密的。如果能够在传统的服务器和客户机之间再加一个服务器用于存储查询算法和临时查询结果,则以上问题均得到了解决。这正是分布式系统的工作原理。

  二、在PB环境下如何进行分布式应用程序的开发

  下图是分布式系统的工作原理图:


图(一)

  首先,分布式服务器必须建立与数据库服务器的连接,可以通过ODBC接口来实现,本文不在叙述,下面要讲述客户端如何通过分布式服务器来访问数据。

  在PB环境下要实现分布式的编程,首先在DTS端,需要用到两个对象,一个TransPort对象和一个不可视的用户对象(Classà Custom,Nonvisible Object,以下简称NVO),其中TransPort对象用于响应客户端的连接请求,NVO对象用于和客户端进行实际的数据传输。在客户端也需要用到两个对象,分别是Connection对象和代理对象(NVO-Proxy),其中Connection对象用于建立到DTS的连接,NVO-Proxy实际上是与NVO一一对应的,它只是NVO的一个代理,在客户端通过此代理对象来调用NVO的函数来实现相关功能。
以下是TransPort对象和Connection对象的常用属性及方法:

  1、TransPort对象

  属性:

  Driver:可选的值有四个,分别是WinSock、NamedPipes、OpenClientServer和Local,由于Winsock的通用性,一般情况下都选择Winsock。

  Application:对于Winsock而言指的是端口号,用户可以任意指定,但必须大于4096。

  方法:

  Listen():其调用方法是transport.Listen(),即开始监听,如果调用成功则返回0。

  StopListening():其调用方法是transport.StopListening(),即结束监听,如果调用成功则返回0。

  2、Connection对象

  属性:

  Driver:与Transport对象相同

  Application:与Transport对象相同,但要注意两者必须一致。

  Location:DTS的IP地址

  方法:

  ConnectToServer():其调用方法是connection.ConnectToServer(),即连接DTS,如果调用成功则返回0,显然在调用该函数之前,DTS必须处于监听状态。

  DisconnectServer():其调用方法是connection.DisconnectServer ( ),即断开与DTS的连接。

  CreateInstance():其调用方法是connection.CreateInstance(variable),即建立一个NVO的代理以便调用NVO的相关函数。注意在调用该函数之前,必须保证客户端已经与DTS建立了连接。

  对于NVO和NVO-Proxy对象,在DTS中建好NVO后,为了在客户端设置其代理,可以先在DTS中设置本地代理,然后将此代理输出到客户端。具体设置方法如下:在PB的用户对象画板中,在用户对象上点击鼠标右健,选择"Set Proxy Name",输入代理对象的名称并存盘,打开PB的Library画板,找到刚才保存的代理对象,点击鼠标右健并选择"Export…"将此代理对象保存成文件,最后在客户端将此文件导入即可。导入以后,在客户端就可以通过此代理对象来调用NVO的函数了。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台