亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2815 | 回復(fù): 0
打印 上一主題 下一主題

PB系列--用PB6建立B/S結(jié)構(gòu)應(yīng)用 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-01-20 20:10 |只看該作者 |倒序瀏覽
************轉(zhuǎn)載自<軟件世界>; 孫彬、王東 ****************


【摘要】本文主要論述Powerbuilder6.0實現(xiàn) Browser/Server結(jié)構(gòu)的Internet解決方案和工作方式,對實現(xiàn)該方式的幾種重要模塊的數(shù)據(jù)流程進(jìn)行論述,最后給出實例。

  PowerBuilder 6.0實現(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ù)請求時,Web服務(wù)器自動調(diào)用Powerbuilder應(yīng)用軟件系統(tǒng), 從而實現(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ù)來實現(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平臺的32位多線程個人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í)行用戶對象中的用戶函數(shù),反饋HTML控制流和生成解釋插入件程序等。

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

  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ù)用戶需求, 動態(tài)生成HTML語法,發(fā)布完全動態(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ù)器時,須引用Powerbuilder6.0 Web類庫,類庫中定義了五種定制的類用戶對象,封裝了創(chuàng)建HTML語法及事務(wù)管理所需的函數(shù)、結(jié)構(gòu)和實例等多種實體,可用來創(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)用請求。執(zhí)行方法是:當(dāng)Powerbuilder6.0 應(yīng)用服務(wù)器監(jiān)聽到Web.PB的請求后,則啟動PowerBuilder應(yīng)用服務(wù)器中已預(yù)定義的業(yè)務(wù)處理程序。

  例如,當(dāng)用戶在瀏覽器端使用Web瀏覽器(IE或Netscape)瀏覽頁面時,通過在HTML頁面中嵌入的 〈A〉或〈FORM〉元素,Web服務(wù)器可自動激活Web.PB應(yī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ù)器中定義的各個業(yè)務(wù)功能,也就是用戶自定義對象中封裝的用戶函數(shù),包括數(shù)據(jù)庫訪問和文件處理等數(shù)據(jù)處理功能。

  4.建立PowerBuilder業(yè)務(wù)應(yīng)用程序。在用戶自定義對象中,創(chuàng)建用戶自定義函數(shù)。功能要求是根據(jù)瀏覽器端用戶的需求,進(jìn)行業(yè)務(wù)數(shù)據(jù)處理,把處理結(jié)果以HTML頁格式,反饋給web.pb程序,經(jīng)常用于人事管理、財務(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 類型的窗口對象,可放置數(shù)據(jù)窗口(DataWindow)、樹狀瀏覽(TreeView)、Tab頁等豐富多彩的控件類型, 豐富HTML頁面的表現(xiàn)形式。當(dāng)客戶端用瀏覽器瀏覽頁面時,Web服務(wù)器將PSR文件或PBD文件卸載給客戶,客戶瀏覽器接收到PSR文件和PBD文件,將Child窗口對象嵌入在Web 頁面中,如果嵌入的是窗口對象,則窗口上定義的功能在瀏覽器環(huán)境下同樣能使用,如窗口上定義了數(shù)據(jù)庫操縱的功能,則在瀏覽器客戶端能直接連接操縱數(shù)據(jù)庫。Plug-ins起到了將PowerBuilder6.0對象嵌入到頁面中的作用,數(shù)據(jù)窗口具有豐富的顯示風(fēng)格,用戶比較歡迎瀏覽器上“Powerbuilder Child類數(shù)據(jù)窗口”的數(shù)據(jù)表現(xiàn)形式。

  Window ActiveX的使用方法與Window plug-ins類似,用來在HTML頁面中嵌入并顯示PowerBuilder中Child 類型的窗口對象。該組件可以和HTML中的VBScripts和JavaScripts交互使用。

  單純嵌入HTML文件的方法是流行的編程趨勢, 也就是說根本不用插入件產(chǎn)品,客戶端只需安裝常規(guī)的Web瀏覽器,便能實現(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é)果。


  二、簡單的Internet應(yīng)用實例


   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ā)平臺上,選取Internet選項,創(chuàng)建 Powerbuilder6. 0 應(yīng)用服務(wù)器。 技術(shù)要點是:建立Internet應(yīng)用,加入webpb.pbl 類庫文件并作啟動服務(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ù)端口號

  mytransport.listen()

  //啟動監(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)建用戶對象,并為該用戶對象編寫處理腳本。例如:創(chuàng)建用戶對象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. &amp;

  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ù)據(jù)庫的連接,調(diào)用結(jié)束后斷開連接。

  5、編寫用戶自定義函數(shù),各種業(yè)務(wù)工作的數(shù)據(jù)處理都由該類函數(shù)來完成。例如,在用戶對象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

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

  〈h2〉查詢頁面實例〈/h2〉

  〈A href="/scripts/pbcgi60.exe/pb60/ur/fp?"〉 查詢開始〈/A〉

  這樣Powerbuilder6.0數(shù)據(jù)窗口dw_fp的內(nèi)容就可以通過點擊超文本鏈接“查詢開始”而顯示在客戶瀏覽器界面上,完成一個簡單的“瘦”的browser/server應(yīng)用。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP