首页 > 范文大全 > 正文

浅谈PowerBuilder分布式技术在系统开发中的应用

开篇:润墨网以专业的文秘视角,为您筛选了一篇浅谈PowerBuilder分布式技术在系统开发中的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文介绍了C/S结构和分布式结构的特点,重点以powerbuilder的EAServer组件应用为例,论述了分布式结构的诸多优点。

关键词:分布式计算;客户应用程序;服务器应用程序;EAServer

中图分类号:TP311.13文献标识码:A文章编号:1007-9599 (2012) 04-0000-02

一、引言

软件的体系结构主要分为客户/服务器(C/S)体系结构和分布式体系结构,客户/服务器(C/S)结构是目前公司信息管理系统较多采用的体系结构,这种体系结构的应用能基本满足用户需求,但在使用中出现一系列问题,如性能低、安全性差、客户端的工作负荷过重等等。而分布式结构是将应用程序的用户接口和商务处理逻辑分离开来,商务逻辑组件放在中间服务器,所以减少了客户端的工作负荷并提高了对重要数据的控制能力。是当前流行的一种软件体系结构,也是一种先进的软件开发技术

二、C/S应用体系结构

C/S结构也称为两层体系结构,在这种结构体系的应用中,数据库放在服务器上,而用户接口和商务逻辑一起驻留在客户计算机上,运行过程中出现一些问题。

(一)性能问题

采用这种结构时,每一个客户端在访问服务器上的数据之前,都需要事先建立连接,而建立一次连接会在服务器端有比较复杂的准备工作。为了减少与数据库服务器重复建立连接带来的额外开销,客户端通常与服务器保持长时间的连接,当客户端数量不大时,数据访问的速度和性能不会受到太大影响,但当客户端数量不断增多时,这种结构的性能将受到严重的影响,也给数据库服务器增加了负荷。

(二)安全性问题

两层结构客户端与数据库服务器直接连接,无法阻止其它用户绕过客户端应用的限制直接操作数据库,存在一定的安全漏洞。

(三)客户机的工作负荷问题

由于用户接口和商务逻辑都驻留在客户机上,逻辑处理和输出显示同时在客户机上执行,当应用程序相当复杂时,大大增加了客户端的工作负荷,降低了应用的使用效率。

三、分布式应用体系结构

分布式应用体系结构也称为三层体系结构,它将应用程序的用户接口和商务处理逻辑自然分离开来。用户接口驻留在客户端,商务处理逻辑驻留在中间服务器或组件事务服务中,应用程序要求的数据层仍然存放在数据库服务器上。这三层只是在概念和功能上加以区分,功能层既可以和数据层放在同一台服务器上,也可以分别放在不同的服务器上,同时还可以把它与表示层一起放在客户端。

在分布式应用中,客户机和服务器一起工作来完成商务服务,客户端处理与用户的各种交互工作,而中层服务器用于处理客户端与数据层的关系,最典型的是中间服务器完成大多数数据处理工作和数据库操作任务。通过调用一个驻留在服务器端并与该服务关联的方法组件来提供用户端所需要的某种服务。

处理逻辑与用户接口的分享减轻了客户端的工作量;而业务逻辑由程序服务器控制,可以有效地控制用户对数据的存取,数据安全性得到一定的解决;当应用程序接口需要修改或更新时,业务逻辑处理层不会受到影响,也减轻了应用程序维护的工作量,同时降低了应用程序维护难度。

四、PowerBuilder分布式应用的支持及应用实例

PowerBuilder是开发传统C/S结构的优秀工具,同时PowerBuilder也为开发分布式应用提供了相关技术,如EAServer、MTS/COM等。PowerBuilder支持两种中层服务器,Sybase Enterprise Application Server(EAServer)和Microsoft Transaction Server(MTS),PowerBuilder开发者可以在客户端触发EAServer服务和MTS服务,接着在这些服务器中构造一些组件或对象执行商务逻辑。PowerBuilder与EAServer服务器是完全集成的,PowerBuilder应用程序可以作为EAServer组件服务器的客户端;同时,EAServer服务器的中间层也可以包含PowerBuilder定制类可见的用户对象。

EAServer应用实例(PowerBuilder11.5下测试通过):

在指定工作空间下新建EAServer Componet,命名为MyEAServer,Package Name为P_MyEAServer,Server Host为EAServer服务器的连接配置名,设为任意可用的EAServer服务器连接,这时在工作空间下会自动新增名为eascomp的pbl,其下有名为n_eascomp的不可视对象,在其下新增函数of_test实现返回一个字符串的功能(也可以编写更复杂的功能代码),Deploy新增的EAServer组件,同时在EAServer服务器的Packages目录下可以看到P_MyEAServer,,表明已成功Deploy。

新建一窗口,放一按钮Clicked事件填加如下代码:

integer ll_rb,ll_rc

string ls

gnv_conn = create connection

gnv_conn.driver = "jaguar"

gnv_conn.location = "10.5.7.244:9000"

gnv_conn.application = "n_easerver"

gnv_conn.userID = "test"

gnv_conn.password = "test"

ll_rc = gnv_conn.ConnectToServer()

IF ll_rc 0 THEN

MessageBox("Connection failed", ll_rc)

END IF

ll_rb = gnv_conn.CreateInstance(gnv_eas,"n_eascomp")

IF ll_rb 0 THEN

MessageBox("CreateInstance failed", ll_rc)

END IF

ls = gnv_eas.of_test()

MessageBox("result",ls)

运行程序,单击按钮,会返回一字符串,表明组件运行成功。Connection有五个重要参数:Driver、Location、Application、UserID、Password其含义如下:

Driver:连接的通信驱动,连接到EAServer,指定为”Jaguar”。

Location:EAServer服务器的主机名和端口号,格式”主机IP地址:端口号”。

Application:EAServer组件的Package Name,如本例的P_MyEAServer,。

UserID:连接到EAServer服务器的用户名。

PassWord:连接到EAServer服务器的密码。

PowerBuilder的分布式组件的使用原理:组件编写处理逻辑代码到组件服务器,连接组件服务器,调用组件函数。在系统的信息管理开发中,采用EAServer分布式组件,关于数据处理、存取及逻辑处理的以EAServer组件到EAServer服务器,客户端只保留显示功能,通过调用EAServer组件函数进行数据显示、处理及逻辑处理。数据库服务器与EAServer服务器分别放在不同的计算机,对于客户端来说,大大减轻工作负担,有利于数据安全,并且程序维护工作量也降低很多。

五、结束语

C/S结构的应用适用于客户数量少、客户群相对固定的企业局域网内部,在客户数量众多、客户群不断变化的外网上使用,暴露诸多问题,所以C/S结构的应用升级到三层结构成为软件开发趋势。随着PowerBuilder的分布式技术不断进步,最新版开始支持多种分布式组件,并且与Java等流行开发工具接口透明,这给以后C/S结构的应用升级到三层结构应用提供了快速有效的技术支持。

参考文献:

[1]张英杰,曹岩,曾高强.PowerBuilder应用工程软件开发指南