数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用PowerBuilder建立browser-server结构应用程序

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

用PowerBuilder6.0建立browser-server结构应用程序
1998.10.20 新疆财院计算中心 孙彬 王东

【摘要】本文主要论述Powerbuilder6.0实现 Browser/Server结构的Internet解决方案和工作方式,对实现该方式的几种重要模块的数据流程进行论述,最后给出实例。

PowerBuilder 6.0实现“Web浏览器-数据库服务器”方案的前提条件是构建分布式应用体系。将 Powerbuilder6.0应用分布到Internet结构下,也就是把PowerBuilder 6.0客户端应用分布到Web服务器上,当浏览器客户端向Web 服务器发出服务请求时,Web服务器自动调用Powerbuilder应用软件系统, 从而实现各种业务软件的Internet结构功能。

一、组成Browser/Server结构的模块结构。

由上图所示, 用 Powerbuilder6. 0 开发的各种基于Internet的应用,是利用PowerBuilder6.0 提供的分布式应用技术及PowerScripts编程技术来实现的,相当于编写分布式应用环境下的服务器应用。例如采用PowerScripts语言环境、数据窗口技术等。其制作流程及工作原理是:

1. 建立及配置 Web 服务器。 PowerBuilder 中自带O'Reilly公司基于WindowsNT 3.51以上版本和Win 95/98平台的32位多线程个人Web服务器WebSite 1.1版。该Web 服务器提供了完整的Web服务创建、管理环境和安全机制。

2.在Web服务器上建立可执行程序(Web.Pb)。Web.pb(Pbcgi60.exe)程序主要功能是调用PowerBuilder应用服务器中预置的处理程序,包括分析执行用户对象中的用户函数,反馈HTML控制流和生成解释插入件程序等。

Web.PB是用来开发基于Web应用的基本部件,该部件本身就是Web上的一个网关应用程序。该工具提供从 Web服务器到PowerBuilder应用服务器的访问,允许用户在 Internet以及Intranet下,通过Web对数据库进行近于完全的操纵。同时,通过Web.PB,动态创建HTML文档亦成为可能。Web.PB程序是Web服务器和 PowerBuilder应用服务器相连接的桥梁。使用Web.PB构建Web应用有如下优点:

a.支持CGI、ISAPI、NSAPI、MSAPI等多种网关程序接口。

b.支持PowerBuilder中数据窗口的引用。

c.易于将以前编写的PowerBuilder应用移植到Web环境下。

d.易于创建嵌入PowerBuilder应用程序的HTML文件,应用服务器在运行环境下,将根据用户需求, 动态生成HTML语法,发布完全动态的信息。

e.支持数据库连接。PowerBuilder所能够连接到的数据库都可以被浏览器用户访问到,使得 Web服务与数据库服务通过Powerbuilder 6.0完整地结合起来。

3.建立PowerBuilder应用服务器。PowerBuilder应用服务器主要是一些用于激活Powerbuilder6.0 业务应用的类库程序组成。创建上图所示的PowerBuilder应用服务器时,须引用Powerbuilder6.0 Web类库,类库中定义了五种定制的类用户对象,封装了创建HTML语法及事务管理所需的函数、结构和实例等多种实体,可用来创建HTML语法、管理客户浏览器连接的状态等。PowerBuilder 6.0应用服务器相当于分布式应用中客户端应用,用于向PowerBuilder6.0业务应用发出调用请求。执行方法是:当Powerbuilder6.0 应用服务器监听到Web.PB的请求后,则启动PowerBuilder应用服务器中已预定义的业务处理程序。

例如,当用户在浏览器端使用Web浏览器(IE或Netscape)浏览页面时,通过在HTML页面中嵌入的 <A>或<FORM>元素,Web服务器可自动激活Web.PB应用。活动的Web服务器首先调用PowerBuilder6.0的Web.PB类程序,作为PowerBuilder 分布式应用中的客户端应用,建立与PowerBuilder 6.0应用服务器的连接,然后调用PowerBuilder6.0应用服务器中定义的各个业务功能,也就是用户自定义对象中封装的用户函数,包括数据库访问和文件处理等数据处理功能。

4.建立PowerBuilder业务应用程序。在用户自定义对象中,创建用户自定义函数。功能要求是根据浏览器端用户的需求,进行业务数据处理,把处理结果以HTML页格式,反馈给web.pb程序,经常用于人事管理、财务管理、信息数据处理和系统管理等业务工作。

PowerBuilder业务应用程序有插入件(Plug_ins)和嵌入HTML文件两种风格。Plug-ins(插入件)的使用方法又分成Window plug-ins和Datawindow plug-ins两种。

Window plug-ins 插入件编制业务程序的的方法是 : 在HTML页面上,嵌入并显示PowerBuilder6.0中Child 类型的窗口对象,可放置数据窗口(DataWindow)、树状浏览(TreeView)、Tab页等丰富多彩的控件类型, 丰富HTML页面的表现形式。当客户端用浏览器浏览页面时,Web服务器将PSR文件或PBD文件卸载给客户,客户浏览器接收到PSR文件和PBD文件,将Child窗口对象嵌入在Web 页面中,如果嵌入的是窗口对象,则窗口上定义的功能在浏览器环境下同样能使用,如窗口上定义了数据库操纵的功能,则在浏览器客户端能直接连接操纵数据库。Plug-ins起到了将PowerBuilder6.0对象嵌入到页面中的作用,数据窗口具有丰富的显示风格,用户比较欢迎浏览器上“Powerbuilder Child类数据窗口”的数据表现形式。

Window ActiveX的使用方法与Window plug-ins类似,用来在HTML页面中嵌入并显示PowerBuilder中Child 类型的窗口对象。该组件可以和HTML中的VBScripts和JavaScripts交互使用。

单纯嵌入HTML文件的方法是流行的编程趋势, 也就是说根本不用插入件产品,客户端只需安装常规的Web浏览器,便能实现真正“瘦”的 Browser/Client/Server 结构体系。

总之,Powerbuilder6.0 应用服务器将业务处理程序的执行结果以HTML格式返回给Web服务器。Web服务器再将HTML发布给用户,客户浏览器端在浏览器上接收到结果。

二、简单的Internet应用实例

1.选用Web服务器,配置Web.pb程序。Web服务器种类很多,在此选用Websuit1.1服务器,其它种类的Web 服务器类似。Web.pb程序包括pbcgi60.exe、psisa60.dll、pbnsl60.dll、pbns260.dll、webbagent.dll和pbweb.ini等文件。 注意:设置映射目录/scripts/为c:\ website\ cgi-shl;将上述Web.pb文件复制到/scripts/目录下;将pbweb.ini文件拷贝到WINDOWS NT或WINDOWS 95 的系统目录下;在webpb.ini文件中加入以下内容:

[pb60]

driver=winsock

application=10082

location=202.201.208.6

2.在Powerbuilder6.0开发平台上,选取Internet选项,创建 Powerbuilder6. 0 应用服务器。 技术要点是:建立Internet应用,加入webpb.pbl 类库文件并作启动服务器的脚本,内容是:

transport.mytransport

mytransport=create transport

mytransport="winsock"

my transport.location="202.201.208.6"

//PowerBuilder6.0应用服务器监听地址

mytransport.application="10082"

//服务端口号

mytransport.listen()

//启动监听服务

return

3、设置业务数据库服务器和sybase SQL Anywhere本地库wedpb.db的连接。其中业务数据存放到数据库服务器,例如:SQL6.5、Sybase 11、Informix 6.0、Ingres和DB2等类型的数据库;本地库webpb.db中,只存放PowerBuilder 6.0应用服务器的控制信息。

4、创建用户对象,并为该用户对象编写处理脚本。例如:创建用户对象ur,并给constructor事件编写如下脚本:

mytransaction=create transaction

mytransaction.dbms='ODBC"

mytransaction.dbparm="Connectstring='DSN=WebPb'"

Connect using mytransaction;

if mytransaction.sqlcode<>0 then

messagebox("mytransaction.error="+string(mytransaction. &

sql_dbcode),mytransaction.sqlerrtext)

end if

sqlca.dbms="MSS (Msoft) SQL Server 6.5"

sqlca.DataBase="xyw"

sqlca.Userid="sa"

sqlca.ServerName="Server"

sqlca.logid="sa"

Connect using sqlca;

if sqlca.sqlcode<>0 then

messagebox("sqlca.error="+string(sqlca.sql_dbcode),sqlca.sqlerrtext)

end if

给destructor事件编写如下脚本:

disconnect using mytransaction

disconnect using sqlca

目的是:当Web.pb调用Powerbuilder6.0服务器时,用户对象自动先建立与数据库的连接,调用结束后断开连接。

5、编写用户自定义函数,各种业务工作的数据处理都由该类函数来完成。例如,在用户对象UR上,创建一查询功能的函数fp(),其内容是:

string return_html

long ii

datastore data_fp

data_fp=create datastore

data_fp.dataobject="dw_fp"

//dw_fp为已经做好的查询数据窗口

data_fp.settransobject(mytransaction)

ii=date_fp.retrieve()

//检索到的记录数存入变量ii

if ii>=1 then

return_html+=data_fp.object.datawindow.data.htmltable

else

return_html="没有检索到满足条件的数据"

end if

return return_html

6、启动服务器,再启动Powerbuilder6.0应用服务器; 在客户浏览器端浏览含有如下HTML语法的页面:

<h2>查询页面实例</h2>

<A href="/scripts/pbcgi60.exe/pb60/ur/fp?"> 查询开始</A>

这样Powerbuilder6.0数据窗口dw_fp的内容就可以通过点击超文本链接“查询开始”而显示在客户浏览器界面上,完成一个简单的“瘦”的browser/server应用。




相关文章

相关软件