• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 采用Sybase、PowerBuilder、Notes構建B/S應用系統

    發表于:2008-04-30來源:作者:點擊數: 標簽:系統NotesSybasePowerBuilder構建
    采用B/S(瀏覽器/ 服務器 )模式是目前應用系統設計 開發 的主要特征,采用Sybase、PowerBuilder、Notes共同實現B/S模式能夠滿足各種應用功能要求,開發效率高,便于原有C/S(客戶/服務器)模式應用向B/S模式應用平滑過渡,是一種經濟適用的B/S模式實現新穎方
    采用B/S(瀏覽器/服務器)模式是目前應用系統設計開發的主要特征,采用Sybase、PowerBuilder、Notes共同實現B/S模式能夠滿足各種應用功能要求,開發效率高,便于原有C/S(客戶/服務器)模式應用向B/S模式應用平滑過渡,是一種經濟適用的B/S模式實現新穎方法。

      1. 從C/S到B/S

      傳統的C/S模式下應用系統一般由服務器(Server)和客戶端應用程序(App)組成。數據(Data)一般存放在服務器上,應用程序一般存放在客戶端計算機上。這樣的系統雖然解決了數據共享等問題,但卻具有不易維護、操作風格不一致、能夠處理的數據類型不易擴展等缺點。隨著網絡應用系統的發展,傳統C/S模式應用系統的缺點不斷暴露出來,促使B/S模式應用系統的產生和發展。

      B/S模式應用系統由瀏覽器(Browser)和服務器(Web Server、Other Server、Middle Ware)組成。數據(data)和應用程序(App)都存放在服務器上,瀏覽器功能可以通過下載服務器上應用程序得到動態擴展,服務器具有多層結構,B/S系統處理的數據類型可以動態擴展。以B/S模式開發的系統維護工作集中在服務器上,客戶端不用維護,操作風格比較一致,只要有瀏覽器的合法用戶都可以十分容易地使用。

      2. 實現概述

      Sybase是一種成熟的商品化數據庫管理系統,PowerBuilder是業界公認的數據庫應用最優開發工具之一,Notes是目前最著名的群件系統,用這三個產品共同構建B/S模式應用,Sybase完成結構化數據管理,PowerBuilder開發的應用完成數據庫結構化數據的維護, Notes完成數據流的管理和非結構化復合文檔管理。這樣的B/S實現方法可以重用原有C/S原代碼,重用開發人員經驗和知識,具有很高的開發效率。

      3. 技術細節

      3.1 Sybase與Web

      Sybase與Web雖然可以通過Sybase提供的工具(如Web.SQL等)進行交互,但很多情況下需要更經濟實用的解決辦法。這里介紹一種利用Sybase固有工具Isql進行交互的方法,這種方法對傳統C/S開發人員很有用,因為他們可以利用已有知識進行Web編程。本方法實現思路為Web Server調用CGI腳本,在CGI腳本中運行Isql,Isql在Sybase SQL Server 中運行存儲過程,存儲過程使用Print語句通過標準輸入/輸出向Web Server返回需要的數據。下面是一個在Sun Solaris環境下Web與Sybase交互的例子

    URL:http://www.cggc.com/cgi-bin/test.cgi?abced
    Test.cgi內容為
    #!$ #用Unix Shell執行CGI
    Echo “html/plain” #CGI返回html文本
    Echo “”
    Echo “< html >< title >Test < /title >”
    Echo pweb_test > $REMOTE_ADDR
    #將存儲過程名寫入用請求者IP地址為名創建的文件
    Echo $QUERY_STRING > > $REMOTE_ADDR
    #將參數追加到創建的文件中
    Echo go > > $REMOTE_ADDR
    Isql –Uhttpuser –Phttpuserpassword < $REMOTE_ADDR
    #運行Isql并以創建的文件為輸入
    Rm $REMOTE_ADDR
    #刪除創建的文件
    Echo “-- >”
    #與“< !--”配合將存儲過程執行結果狀態屏蔽
    Echo “< /html >”
    Pweb_test的創建腳本內容為
    create procedure pweb_test @qstr char(100)
    As
    Declare @stmp char(100)
    Select @stmp = field2 from test where field1=@qstr
    --數據庫數據處理
    Print “< body >”
    Print “The result from Sybase sql server is ”
    Print @stmp
    Print “< /body >”
    Print “< !—”
    --與“— >”配合將存儲過程執行結果狀態屏蔽

      3.2 PowerBuilder與Web

      PowerBuilder可以采用插件及ActiveX控件、Web.pb 等與Web交互。插件及ActiveX控件都要求在客戶端安裝PowerBuilder運行時刻動態連接庫和連接數據庫。Web.pb沒有這些要求,但不能直接處理復雜用戶界面,因為Web.pb一般返回HTML。

      3.2.1 使用插件

      PowerBuilder提供Window插件和Datawindow插件。使用Window插件要在HTML中使用如下格式標記 < EMBED SRC=test.pbd WIDTH=300 HEIGHT=200 WINDOW=w_test >

      SRC屬性指定插件使用的pbd位置,利用Window插件的應用必須編譯成pbd。Window屬性指定在瀏覽器中嵌入窗體的名字,這個窗體必須是ChildWindow類型,但通過本窗體可打開Popup和response類型窗體。標記還有可選的LIBRARY和COMMANDPAM屬性,前者用于指定附加的pbd,后者用于向嵌入的窗體傳遞參數。

      使用Datawindow插件要在HTML中使用如下格式標記
    < EMBED src=test.psr WIDTH=370 HEIGHT=320 >

      src指定所用psr所在的位置,spr由Datawindow保存得到,因而只能處理靜態數據。

      3.2.2 使用Window ActiveX控件

      與Window插件相比,Window ActiveX控件與HTML具有更好的互操作性,在HTML中可以通過script對Window ActiveX控件進行操縱,在Window ActiveX控件中也可以觸發script運行。以下是一個使用Window ActiveX的實例:

    < OBJECT NAME="PBRXtest" WIDTH=225 HEIGHT=83
    CLASSID="CLSID:CEC58653-C842-11CF-A6FB-00805FA8669E"
    PARAM NAME="PBWindow" VALUE="w_test" PARAM NAME="LibList" VALUE="test.pbd;" … >

      參數LibList指定使用的pbd列表,pbd間用逗號分隔,采用Window ActiveX控件的PowerBuilder應用必須編譯成pbd。參數Pbwindow指定要嵌入的窗體名。

      3.2.3 使用Web.pb

      Web.pb是一種應用服務器技術,Web.pb以CGI/ISAPI/NSAPI的形式充當Web Server與應用服務器之間的接口,HTML將要調用的應用服務器處理過程以參數的形式傳遞給Web.pb,Web.pb調用應用服務器中的相應處理過程并將處理結果返回給Web Server。在這種集成模式中,數據庫連接發生在應用服務器,客戶端可以做得很“瘦”。應用服務器是用PowerBuilder編程實現的,編程過程中與數據庫的交互與通常PowerBuilder編程方法相同,與Web.pb交互要用到Transport對象,被Web.pb調用的用戶對象成員函數要聲明為接口。具體的實現過程可以參考PowerBuilder IT目錄下的實例。

      3.3 Notes與Web

      Notes通過其Dominal Web Server實現與Web的無縫連接,Web用戶可以直接通過Domianl Web Server打開Notes數據庫、導航器、視圖、文檔等。實現Notes與Web交互的過程如下:

      3.3.1 配置Dominal Web Server

      打開服務器通信錄,選擇“Server”下的“服務器”項,打開服務器文檔,選擇“Http服務器”節,設置TCP/IP端口(如“8888”)、缺省字符集(如“簡體中文”)等,保存服務器文檔。修改Notes.ini,在“ServerTasks=”行最末尾加入“,http”,重新啟動Notes服務器。

      3.3.2 B/S模式下Notes數據庫設計

      Notes數據庫設計包括視圖、導航器、表單設計及相應編程。為便于瀏覽器訪問,Notes數據庫的啟動屬性可以設為“打開一指定導航器”。

      瀏覽器可以訪問的Notes導航器必須包含一個背景圖片,然后可以放其它導航部件。為使導航器在瀏覽器中能夠正確顯示,要為導航器創建導航器模板表單,起名為$$NavigatorTemplate for navname,navname為導航器別名,在本表單中包含一個表格行,本行分兩列,一列含$$NavigatorBody域,另一列含$$ViewBody域,各列寬度將代表導航行部分和視圖部分所占的寬度,將導航器所用視圖名稱作為$$ViewBody域缺省值。

      Web訪問對視圖和表單設計沒有特殊要求,按通常Notes設計方法設計既可。

      3.3.3 Html中連接Notes資源

      通過Notes Dominal Web Server可以直接訪問Notes數據庫、導航器、視圖和文檔,方法如下,URL中test.nsf為Notes庫名稱。

      打開數據庫: http://www.cggc.com:8888/test.nsf?OpenDatabase

      OpenDatabase為Dominal Web Server命令。Dominal Web Server將根據Notes數據庫啟動屬性的設置確定打開導航器或視圖。

      打開導航器:http://www.cggc.com:8888/test.nsf/navtest?OpenNavigator

      test.navtest為導航器名稱,OpenNaviagtor為Dominal Web Server命令

      打開視圖: http://www.cggc.com:8888/test.nsf/testview?Openview

      testview為視圖名,OpenView為Dominal Web Server命令。

      打開文檔: http://www.cggc.com:8888/test.nsf/testdocument?OpenDocument
     
      testdocument為Notes文檔編號,這個編號通常很長,所以一般不直接使用這種方式打開文檔,而是通過Notes視圖打開文檔。

      Notes Dominal Web Server還支持其他一些命令,如OpenServer,OpenForm,OpenAgent等,有關這些命令的使用可具體參考Notes連機文檔。

      4.結束語

      B/S應用在近兩年得到了長足發展,各種新的B/S技術不斷涌現,但在此之前許多單位已經利用Sybase、PowerBuilder、Notes等開發了大量C/S模式應用,以Sybase、PowerBuilder、Notes為基礎的B/S模式實現方法使這些應用只需稍作修改就可以移植到B/S模式,保護了這些單位的投資,同時也使熟悉這些系統的開發人員可以輕松開發B/S應用。另外這種方法從較高層次充分利用各種產品優勢進行開發,具有很高的開發效率。


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>