首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 移动开发 | 游戏开发 | 数据库开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  开发语言首页 | VB开发 | VC开发 | VFP开发 | Delphi开发 | Power Builder | C++ Builder | C/C++ | 汇编
  您现在的位置:天新网 > 软件开发 > 开发语言 > Power Builder
采用Sybase、PowerBuilder、Notes构建B/S应用系统
http://dev.21tx.com 2005年05月18日

每日文章精萃
.Net:C#中利用正则表达式实现字符串搜索 Java:全面解析JDBC(9)
ASP:ASP 五大高效提速技巧 PHP:在PHP的图形函数中显示汉字
JSP:在JSP页面中实现检索数据的分页显示 CGI:Perl教学 第九篇 关联数组(哈希表)
VB:Microsoft Access秘密、技巧和陷阱 VC:COM编程入门(一)

---- 采用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是目前最著名的群件系统,用这三个产品共同构建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应用。另外这种方法从较高层次充分利用各种产品优势进行开发,具有很高的开发效率。 

上一篇: PB中打印预览的实现
下一篇: PowerBuilder的数据窗口

编辑推荐
相关内容
·在PB中如何使用Microsoft Outlook发送邮件
·PowerBuilder集成环境
·PowerBuilder控件
·PowerBuilder动态数据窗口 B
·将人民币金额转换成大写的金额
·透明文本的实现
·在pb中用语音读金额
·用PB编写邮件应用程序
·用PB生成GUID解决主键重复
·PB动态报表的实现
·pb函数库之注册(Registry)函数
·pb函数库之文件操作函数
·pb函数库之库管理函数
·pb函数库之窗口操作函数
·如何制作PB安装程序
·如何在程序启动默认浏览器与电子邮件系统
·判断Windows OS 版本类型的方法
·PB所支持的Oracle 的版本
·不用安装客户端连接sql server 2000
·将数据窗口保存为完整的Excel表格
最近更新
人气最热
·PB中打印预览的实现
·PowerBuilder的数据窗口
·自适应屏幕分辨率的基类窗口
·PB中协调多数据窗口数据操纵的一种解决方法
·PB数据窗口中按钮的封装
·在PB中实现分段打印功能
·PB中的数据窗口自动刷新技术
·PB中如何得到Crosstab中的列名
·用IS5.0将数据库的DSN自动添加ODBC中
·在PB中实现数据录入维持序号连续性的简单实
·在PB中如何实现数据模糊查询
·PB代码优化
·PowerBuilder实用技巧八则
·用PB开发多媒体数据库管理系统
·PowerBuilder数据窗口与数据库
·用PowerBuilder实现多层C/S系统
·低级键盘钩子屏蔽Win键、Alt+Tab键的响应
·用PB编写邮件应用程序
·实现PB数据窗口的多表更新
·PB中打印预览的实现

 
·[硬件]千兆尤物 华为S1216交换机卖3100元
·[数码]选择我们喜欢的配件 以白色iPod的名义
·[汽车]全国汽车场地赛?珠海站:陈旭称王康巴
·[开发]只能输入汉字的输入框
·[资讯]心理学专家造情绪计算公式 1月23日最郁
·[游戏]《大话II》仙加攻玩
·[本本]把AMD逼入死角 Sonoma誓占一半市场
·[办公]爱普生新款扫描仪打印机“抢注”试用
·[手机]旋转摄头只为3G而生 三星Z140多图欣赏
·[考试]成考政治命题预测试卷(五)
·[学院]windows 2003菜鸟使用手记
·[娱乐]Bboguri 3
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net