国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

用PowerBuilder建立browser-server結(jié)構(gòu)應(yīng)用程序

2024-07-21 02:10:05
字體:
供稿:網(wǎng)友


用powerbuilder6.0建立browser-server結(jié)構(gòu)應(yīng)用程序
1998.10.20 新疆財(cái)院計(jì)算中心 孫彬 王東
【摘要】本文主要論述powerbuilder6.0實(shí)現(xiàn) browser/server結(jié)構(gòu)的internet解決方案和工作方式,對(duì)實(shí)現(xiàn)該方式的幾種重要模塊的數(shù)據(jù)流程進(jìn)行論述,最后給出實(shí)例。

powerbuilder 6.0實(shí)現(xiàn)“web瀏覽器-數(shù)據(jù)庫服務(wù)器”方案的前提條件是構(gòu)建分布式應(yīng)用體系。將 powerbuilder6.0應(yīng)用分布到internet結(jié)構(gòu)下,也就是把powerbuilder 6.0客戶端應(yīng)用分布到web服務(wù)器上,當(dāng)瀏覽器客戶端向web 服務(wù)器發(fā)出服務(wù)請(qǐng)求時(shí),web服務(wù)器自動(dòng)調(diào)用powerbuilder應(yīng)用軟件系統(tǒng), 從而實(shí)現(xiàn)各種業(yè)務(wù)軟件的internet結(jié)構(gòu)功能。

一、組成browser/server結(jié)構(gòu)的模塊結(jié)構(gòu)。

由上圖所示, 用 powerbuilder6. 0 開發(fā)的各種基于internet的應(yīng)用,是利用powerbuilder6.0 提供的分布式應(yīng)用技術(shù)及powerscripts編程技術(shù)來實(shí)現(xiàn)的,相當(dāng)于編寫分布式應(yīng)用環(huán)境下的服務(wù)器應(yīng)用。例如采用powerscripts語言環(huán)境、數(shù)據(jù)窗口技術(shù)等。其制作流程及工作原理是:

1. 建立及配置 web 服務(wù)器。 powerbuilder 中自帶o'reilly公司基于windowsnt 3.51以上版本和win 95/98平臺(tái)的32位多線程個(gè)人web服務(wù)器website 1.1版。該web 服務(wù)器提供了完整的web服務(wù)創(chuàng)建、管理環(huán)境和安全機(jī)制。

2.在web服務(wù)器上建立可執(zhí)行程序(web.pb)。web.pb(pbcgi60.exe)程序主要功能是調(diào)用powerbuilder應(yīng)用服務(wù)器中預(yù)置的處理程序,包括分析執(zhí)行用戶對(duì)象中的用戶函數(shù),反饋html控制流和生成解釋插入件程序等。

web.pb是用來開發(fā)基于web應(yīng)用的基本部件,該部件本身就是web上的一個(gè)網(wǎng)關(guān)應(yīng)用程序。該工具提供從 web服務(wù)器到powerbuilder應(yīng)用服務(wù)器的訪問,允許用戶在 internet以及intranet下,通過web對(duì)數(shù)據(jù)庫進(jìn)行近于完全的操縱。同時(shí),通過web.pb,動(dòng)態(tài)創(chuàng)建html文檔亦成為可能。web.pb程序是web服務(wù)器和 powerbuilder應(yīng)用服務(wù)器相連接的橋梁。使用web.pb構(gòu)建web應(yīng)用有如下優(yōu)點(diǎn):

a.支持cgi、isapi、nsapi、msapi等多種網(wǎng)關(guān)程序接口。

b.支持powerbuilder中數(shù)據(jù)窗口的引用。

c.易于將以前編寫的powerbuilder應(yīng)用移植到web環(huán)境下。

d.易于創(chuàng)建嵌入powerbuilder應(yīng)用程序的html文件,應(yīng)用服務(wù)器在運(yùn)行環(huán)境下,將根據(jù)用戶需求, 動(dòng)態(tài)生成html語法,發(fā)布完全動(dòng)態(tài)的信息。

e.支持?jǐn)?shù)據(jù)庫連接。powerbuilder所能夠連接到的數(shù)據(jù)庫都可以被瀏覽器用戶訪問到,使得 web服務(wù)與數(shù)據(jù)庫服務(wù)通過powerbuilder 6.0完整地結(jié)合起來。

3.建立powerbuilder應(yīng)用服務(wù)器。powerbuilder應(yīng)用服務(wù)器主要是一些用于激活powerbuilder6.0 業(yè)務(wù)應(yīng)用的類庫程序組成。創(chuàng)建上圖所示的powerbuilder應(yīng)用服務(wù)器時(shí),須引用powerbuilder6.0 web類庫,類庫中定義了五種定制的類用戶對(duì)象,封裝了創(chuàng)建html語法及事務(wù)管理所需的函數(shù)、結(jié)構(gòu)和實(shí)例等多種實(shí)體,可用來創(chuàng)建html語法、管理客戶瀏覽器連接的狀態(tài)等。powerbuilder 6.0應(yīng)用服務(wù)器相當(dāng)于分布式應(yīng)用中客戶端應(yīng)用,用于向powerbuilder6.0業(yè)務(wù)應(yīng)用發(fā)出調(diào)用請(qǐng)求。執(zhí)行方法是:當(dāng)powerbuilder6.0 應(yīng)用服務(wù)器監(jiān)聽到web.pb的請(qǐng)求后,則啟動(dòng)powerbuilder應(yīng)用服務(wù)器中已預(yù)定義的業(yè)務(wù)處理程序。

例如,當(dāng)用戶在瀏覽器端使用web瀏覽器(ie或netscape)瀏覽頁面時(shí),通過在html頁面中嵌入的 <a>或<form>元素,web服務(wù)器可自動(dòng)激活web.pb應(yīng)用。活動(dòng)的web服務(wù)器首先調(diào)用powerbuilder6.0的web.pb類程序,作為powerbuilder 分布式應(yīng)用中的客戶端應(yīng)用,建立與powerbuilder 6.0應(yīng)用服務(wù)器的連接,然后調(diào)用powerbuilder6.0應(yīng)用服務(wù)器中定義的各個(gè)業(yè)務(wù)功能,也就是用戶自定義對(duì)象中封裝的用戶函數(shù),包括數(shù)據(jù)庫訪問和文件處理等數(shù)據(jù)處理功能。

4.建立powerbuilder業(yè)務(wù)應(yīng)用程序。在用戶自定義對(duì)象中,創(chuàng)建用戶自定義函數(shù)。功能要求是根據(jù)瀏覽器端用戶的需求,進(jìn)行業(yè)務(wù)數(shù)據(jù)處理,把處理結(jié)果以html頁格式,反饋給web.pb程序,經(jīng)常用于人事管理、財(cái)務(wù)管理、信息數(shù)據(jù)處理和系統(tǒng)管理等業(yè)務(wù)工作。

powerbuilder業(yè)務(wù)應(yīng)用程序有插入件(plug_ins)和嵌入html文件兩種風(fēng)格。plug-ins(插入件)的使用方法又分成window plug-ins和datawindow plug-ins兩種。

window plug-ins 插入件編制業(yè)務(wù)程序的的方法是 : 在html頁面上,嵌入并顯示powerbuilder6.0中child 類型的窗口對(duì)象,可放置數(shù)據(jù)窗口(datawindow)、樹狀瀏覽(treeview)、tab頁等豐富多彩的控件類型, 豐富html頁面的表現(xiàn)形式。當(dāng)客戶端用瀏覽器瀏覽頁面時(shí),web服務(wù)器將psr文件或pbd文件卸載給客戶,客戶瀏覽器接收到psr文件和pbd文件,將child窗口對(duì)象嵌入在web 頁面中,如果嵌入的是窗口對(duì)象,則窗口上定義的功能在瀏覽器環(huán)境下同樣能使用,如窗口上定義了數(shù)據(jù)庫操縱的功能,則在瀏覽器客戶端能直接連接操縱數(shù)據(jù)庫。plug-ins起到了將powerbuilder6.0對(duì)象嵌入到頁面中的作用,數(shù)據(jù)窗口具有豐富的顯示風(fēng)格,用戶比較歡迎瀏覽器上“powerbuilder child類數(shù)據(jù)窗口”的數(shù)據(jù)表現(xiàn)形式。

window activex的使用方法與window plug-ins類似,用來在html頁面中嵌入并顯示powerbuilder中child 類型的窗口對(duì)象。該組件可以和html中的vbscripts和javascripts交互使用。

單純嵌入html文件的方法是流行的編程趨勢(shì), 也就是說根本不用插入件產(chǎn)品,客戶端只需安裝常規(guī)的web瀏覽器,便能實(shí)現(xiàn)真正“瘦”的 browser/client/server 結(jié)構(gòu)體系。

總之,powerbuilder6.0 應(yīng)用服務(wù)器將業(yè)務(wù)處理程序的執(zhí)行結(jié)果以html格式返回給web服務(wù)器。web服務(wù)器再將html發(fā)布給用戶,客戶瀏覽器端在瀏覽器上接收到結(jié)果。

二、簡(jiǎn)單的internet應(yīng)用實(shí)例

1.選用web服務(wù)器,配置web.pb程序。web服務(wù)器種類很多,在此選用websuit1.1服務(wù)器,其它種類的web 服務(wù)器類似。web.pb程序包括pbcgi60.exe、psisa60.dll、pbnsl60.dll、pbns260.dll、webbagent.dll和pbweb.ini等文件。 注意:設(shè)置映射目錄/scripts/為c:/ website/ cgi-shl;將上述web.pb文件復(fù)制到/scripts/目錄下;將pbweb.ini文件拷貝到windows nt或windows 95 的系統(tǒng)目錄下;在webpb.ini文件中加入以下內(nèi)容:

[pb60]

driver=winsock

application=10082

location=202.201.208.6

2.在powerbuilder6.0開發(fā)平臺(tái)上,選取internet選項(xiàng),創(chuàng)建 powerbuilder6. 0 應(yīng)用服務(wù)器。 技術(shù)要點(diǎn)是:建立internet應(yīng)用,加入webpb.pbl 類庫文件并作啟動(dòng)服務(wù)器的腳本,內(nèi)容是:

transport.mytransport

mytransport=create transport

mytransport="winsock"

my transport.location="202.201.208.6"

//powerbuilder6.0應(yīng)用服務(wù)器監(jiān)聽地址

mytransport.application="10082"

//服務(wù)端口號(hào)

mytransport.listen()

//啟動(dòng)監(jiān)聽服務(wù)

return

3、設(shè)置業(yè)務(wù)數(shù)據(jù)庫服務(wù)器和sybase sql anywhere本地庫wedpb.db的連接。其中業(yè)務(wù)數(shù)據(jù)存放到數(shù)據(jù)庫服務(wù)器,例如:sql6.5、sybase 11、informix 6.0、ingres和db2等類型的數(shù)據(jù)庫;本地庫webpb.db中,只存放powerbuilder 6.0應(yīng)用服務(wù)器的控制信息。

4、創(chuàng)建用戶對(duì)象,并為該用戶對(duì)象編寫處理腳本。例如:創(chuàng)建用戶對(duì)象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

目的是:當(dāng)web.pb調(diào)用powerbuilder6.0服務(wù)器時(shí),用戶對(duì)象自動(dòng)先建立與數(shù)據(jù)庫的連接,調(diào)用結(jié)束后斷開連接。

5、編寫用戶自定義函數(shù),各種業(yè)務(wù)工作的數(shù)據(jù)處理都由該類函數(shù)來完成。例如,在用戶對(duì)象ur上,創(chuàng)建一查詢功能的函數(shù)fp(),其內(nèi)容是:

string return_html

long ii

datastore data_fp

data_fp=create datastore

data_fp.dataobject="dw_fp"

//dw_fp為已經(jīng)做好的查詢數(shù)據(jù)窗口

data_fp.settransobject(mytransaction)

ii=date_fp.retrieve()

//檢索到的記錄數(shù)存入變量ii

if ii>=1 then

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

else

return_html="沒有檢索到滿足條件的數(shù)據(jù)"

end if

return return_html

6、啟動(dòng)服務(wù)器,再啟動(dòng)powerbuilder6.0應(yīng)用服務(wù)器; 在客戶瀏覽器端瀏覽含有如下html語法的頁面:

<h2>查詢頁面實(shí)例</h2>

<a href="/scripts/pbcgi60.exe/pb60/ur/fp?"> 查詢開始</a>

這樣powerbuilder6.0數(shù)據(jù)窗口dw_fp的內(nèi)容就可以通過點(diǎn)擊超文本鏈接“查詢開始”而顯示在客戶瀏覽器界面上,完成一個(gè)簡(jiǎn)單的“瘦”的browser/server應(yīng)用。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 张家口市| 修水县| 五原县| 湛江市| 长白| 光泽县| 宁都县| 武鸣县| 石河子市| 隆德县| 永城市| 乌兰浩特市| 海晏县| 黄山市| 湘乡市| 射洪县| 京山县| 屯留县| 巴东县| 临沧市| 连州市| 什邡市| 丽江市| 福鼎市| 进贤县| 济阳县| 璧山县| 商南县| 儋州市| 马关县| 新安县| 泰州市| 本溪| 都昌县| 遂川县| 东乡族自治县| 津南区| 华池县| 洛隆县| 湘潭县| 富蕴县|