powerbuilder:采用Sybase、PowerBuilder、Notes构建B/S应用系统

华中理工大学计算机学院 黄保华 胡和平

---- 采用B/S(浏览器/服务器)模式是目前应用系统设计开发主要特征采用Sybase、PowerBuilder、Notes共同实现B/S模式能够满足各种应用功能要求开发效率高便于原有C/S(客户/服务器)模式应用向B/S模式应用平滑过渡种经济适用B/S模式实现新颖思路方法

---- 1、 从C/S到B/S

---- 传统C/S模式下应用系统般由服务器(Server)和客户端应用(App)组成如图1(略)数据(Data)般存放在服务器上应用般存放在客户端计算机上这样系统虽然解决了数据共享等问题但却具有不易维护、操作风格不致、能够处理数据类型不易扩展等缺点随着网络应用系统发展传统C/S模式应用系统缺点不断暴露出来促使B/S模式应用系统产生和发展

---- B/S模式应用系统由浏览器(Browser)和服务器(Web Server、Other Server、Middle Ware)组成数据(data)和应用(App)都存放在服务器上浏览器功能可以通过下载服务器上应用得到动态扩展服务器具有多层结构B/S系统处理数据类型可以动态扩展以B/S模式开发系统维护工作集中在服务器上客户端不用维护操作风格比较只要有浏览器合法用户都可以十分容易地使用

---- 2、 实现概述

---- Sybase是种成熟商品化数据库管理系统PowerBuilder是业界公认数据库应用最优开发工具的Notes是目前最著名群件系统用这 3个产品共同构建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 ServerCGI脚本在CGI脚本中远行IsqlIsql在Sybase SQL Server 中运行存储过程存储过程使用Pr语句通过标准输入/输出向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     
--数据库数据处理
Pr “< body >”
Pr “The result from Sybase sql server is ”
Pr @stmp
Pr “< /body >”
Pr  “< !—”                   
--和“— >”配合将存储过程执行结果状态屏蔽

---- 3.2、 PowerBuilder和Web
---- PowerBuilder可以采用插件及ActiveXControl控件、Web.pb 等和Web交互插件及ActiveXControl控件都要求在客户端安装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插件应用必须编译成pbdWindow属性指定在浏览器中嵌入窗体名字这个窗体必须是ChildWindow类型但通过本窗体可打开Popup和response类型窗体标记还有可选LIBRARY和COMMANDPAM属性前者用于指定附加pbd后者用于向嵌入窗体传递参数
---- 使用Datawindow插件要在HTML中使用如下格式标记

< EMBED src=test.psr WIDTH=370 HEIGHT=320 >
---- src指定所用psr所在位置spr由Datawindow保存得到因而只能处理静态数据
---- 3.2.2、使用Window ActiveXControl控件

---- 和Window插件相比Window ActiveXControl控件和HTML具有更好互操作性在HTML中可以通过script对Window ActiveXControl控件进行操纵在Window ActiveXControl控件中也可以触发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 ActiveXControl控件PowerBuilder应用必须编译成pbd参数Pbwindow指定要嵌入窗体名
---- 3.2.3、使用Web.pb

---- Web.pb是种应用服务器技术Web.pb以CGI/ISAPI/NSAPI形式充当Web Server和应用服务器的间接口HTML将要应用服务器处理过程以参数形式传递给Web.pbWeb.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 navnamenavname为导航器别名在本表单中包含个表格行本行分两列列含$$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?OpenDatabaseOpenDatabase为Dominal Web Server命令Dominal Web Server将根据Notes数据库启动属性设置确定打开导航器或视图

---- 打开导航器

---- http://www.cggc.com:8888/test.nsf/navtest?OpenNavigatortest.navtest为导航器名称OpenNaviagtor为Dominal Web Server命令

---- 打开视图:

---- http://www.cggc.com:8888/test.nsf/testview?Openviewtestview为视图名OpenView为Dominal Web Server命令

---- 打开文档:

---- http://www.cggc.com:8888/test.nsf/testdocument?OpenDocumenttestdocument为Notes文档编号这个编号通常很长所以般不直接使用这种方式打开文档而是通过Notes视图打开文档

---- Notes Dominal Web Server还支持其他些命令如OpenServerOpenFormOpenAgent等有关这些命令使用可具体参考Notes连机文档

---- 4、 结束语

---- B/S应用在近两年得到了长足发展各种新B/S技术不断涌现但在此的前许多单位已经利用Sybase、PowerBuilder、Notes等开发了大量C/S模式应用以Sybase、PowerBuilder、Notes为基础B/S模式实现思路方法使这些应用只需稍作修改就可以移植到B/S模式保护了这些单位投资同时也使熟悉这些系统开发人员可以轻松开发B/S应用另外这种思路方法从较高层次充分利用各种产品优势进行开发具有很高开发效率 
Tags:  powerbuilder是什么 powerbuilder9.0 powerbuilder powerbuilder

延伸阅读

最新评论

发表评论