一个无须编程将原vfp软件B-S

更新时间:2023-12-25 10:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一个无须编程将原vfp软件B/S化方案 一、一个日益普遍的需求

随着宽带网日益普及,不少中小企业、特别是大量具有分支机构的小企业,想借此寻找一个现实可行、廉价的办法来建立一个可异地运行分布式管理信息系统。 但现实条件仍比较严峻:

服务器端:宽带上网,虽然获得了速度,但不愿再投资获得固定的IP地址,因而只有临时的IP地址(动态IP地址);客户机端:拨号上网或宽带上网; 与internet建立连接时不可避免的断链。 但对应用软件的要求却没有降低,甚至更高。

如:希望像浏览网页一样,远程只要有浏览器,不要任何软件部署;

即使56k modem拨号上网,速度上相对局域网却不应有明显延迟,至少不应比一般的浏览网页慢; 对与internet建立连接时经常的断链,无论在服务器端还是客户端,都要有充分的容错性——不能对程序的运行产生丝毫的影响。

要支持分支机构即时进行凭证打印,解决在B/S结构中较难的,报表可在客户端打印机上远程打印的问题。 最好还能支持远程的其他外设,如:扫描仪等,或许还想要个多媒体声音效果什么的。 这显然是一个B/S结构的应用系统。对我们foxer来说,这一要求更不容乐观。

html、asp、VBScript…要学习太多的新东西,对vfp来说,还要面对那么多不灵活,蹩脚的东西。 我们的知识准备充分了吗?这可不是随便看两三本书就可以磨出来的功夫。

那么有没有一个捷径?在我们现有的知识结构下,用最小的开发成本下提升我们的vfp应用程序到互联网上?有。确实存在!

她能克服上述的困难,满足上述的全部要求。

想象一下吧,就一个报表打印,无论是通过网页还是本地执行都是丝毫不差的,那就够我们兴奋不已了。 我已经看到你的感动了。 好吧,Let's go !

二、这是一个将原vfp软件B/S化的方案

上图是一个简单示例:一个浏览器窗口,标题是:“dupeiji的vfp在b/s结构中”。窗口中显示一个正在

运行的vfp程序。 1、客户端

通常,浏览器将web服务器传来的HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。

受限于HTML语言的交互性差问题,输入输出的用户互界面不能用纯INTERNET技术规范HTML/HTTP解决,因为INTERNET WWW技术的主要应用是发布信息而不是输入输出,“浏览器”是用于“浏览”而非终端输入输出!所以为了解决浏览器和HTML页面的交互性差问题,以IE为客户端的“B/S”应用软件往往在浏览器中采用微软的VBScript脚本语言和ACTIVEX技术。

对ACTIVEX控件,foxer应不陌生。如同我们经常利用ACTIVEX控件来增强vfp的功能一样,在IE浏览器中,可以用VBScript脚本语言来操纵ACTIVEX控件。如果IE浏览器发觉本地没有页面所需的ACTIVEX控件,他将自动从web服务器下载。

因此,IE浏览器中的界面可以是纯HTML构成,也可以HTML与ACTIVEX混合构成。

一个极端的例子——界面布局只由ACTIVEX构成——这个ACTIVEX控件其实是一个从web服务器下载,由浏览器启动,并在浏览器内运行的客户端程序。

我们的方案就是这样的一个极端例子——通过这个ACTIVEX控件产生vfp界(画)面,呈现给浏览器端远程用户。

当然,不是没有html,我们还时有一个用html生成的前导连接界面以进行服务器登陆,并调出ACTIVEX控件对象。 2、服务器端

在B/S结构中,用户界面由作为第二层或中间层的Web服务器产生,通过internet发送至远端的浏览器。在我们这个体系结构中,用户界面也不能在客户端产生,谁让我们是B/S结构?否则就变成了C/S了。

但我们和一般意义上的B/S不同。

通常,浏览器提出处理请求后,Web服务器启动相应的进程来响应,并动态生成一串形成用户界面并经交互的HTML代码、脚本语言代码,其中嵌入处理的结果,返回给客户机的浏览器。

如果客户机提交的请求包括数据的存取,Web服务器还需与后面的应用程序服务器、数据库服务器协同完成这一处理工作——这点非常重要!

对于只由ACTIVEX构成的浏览器,服务器端的WEB服务器在与用户建立连接、发布ACTIVEX控件到客户端后、程序运行结束前,就不再用HTML向远程浏览器端发布信息。

这里,我们的界面是由后面的一个应用服务器产生,它可以并发、多用户地响应浏览器端用户的请求,并在服务器端分析、运算,产生并传送vfp程序的界面。浏览器端用户的请求还可扩展至打印、声音、甚至诸如扫描仪等串并口上的设备。多么伟大、激动人心!

这里,关键是应用服务器(APP SERVER),通过WEB服务器要与连接上来的用户的浏览器所启动的ACTIVEX控件连接。

这里,这个应用服务器(APP SERVER)是什么?很关键,是微软的终端服务!这是一个win32位应用程序运行的平台。 3、应用服务器——终端服务

关于终端你知道吗?Foxer!曾经有一个多用户版的foxbase+曾在XENIX(一个pc版UNIX)下以主机终端的形式运行。记得当时还用什么“国光”终端机…… 不知道?你太年轻了!啊、不,是我老了。

现实中,你应该能看到有许多运用终端的场合——虽然不大容易看到主机。一个典型的应用就是银行。柜台上都是字符型终端机。

随着windows server 2000推出,终端服务已经成为其内核的标准构件,不管终端服务安装与否,这种内核一直内嵌在服务器操作系统内,因而带来了许多的图形终端的应用。 看几则广告:

“近日,由微软发起的“中国Windows终端论坛” (CHINA WBT FORUM)在京举行,众多的技术开发者、微软OEM合作伙伴及微软公司的嵌入式技术专家参加了大会,从而使得该次会议成为2003年Windows终端领域的一大盛会。”

“最新推出的Windows Server 2003作为企业级服务器操作系统平台,集安全、可靠、高效与经济性

于一体,在多用户的终端服务方面,其功能比Windows Server 2000相比,在多媒体支持、数据传输能力和安全控制等方面有了大幅度的改进,使图片、声音等传输变得随心所欲,顺应了服务器?广泛兼容,整合应用?的未来趋势。”

“实达的新一代万维5000系列Windows终端即是目前国内第一个完全符合Windows Server 2003终端服务标准的产品,其优越的性能可充分发挥Windows Server 2003的功能。据有关专家介绍,基于Windows Server 2003的第四代终端技术与方案已经迈向成熟,在功能上不输于商用PC,而在安全、管理及成本上则由于继承了传统哑终端的优点而明显优于商用PC。近几年以来,国内Windows终端市场以每年翻四、五翻的加速度迅速剧增,至今市场总容量已近10万台,广泛应用于银行、保险、电信、电力、税务、铁路、教育等各行业,呈现出良好的发展态势。”

看一些早期业者对微软终端服务的描述:“这种网络体系对服务器硬件有较高的要求,除了要尽量使用高性能的CPU、硬盘、网卡等设备之外,对服务器的内存还有特殊的要求。终端服务器本身运行需要32MB内存,还要为每个客户附加额外的内存,一般每增加一个客户需要占用4~8兆的服务器内存。微软称他们做过测试,一台Pentium II 350MHZ双CPU,512M内存的服务器,能满足50人的日常办公需要。” 以上这些早期文章介绍,在我们今天看来,这些要求根本不高,一个普通的服务器都能满足这些要求——普及性运用终端服务的时代已经到来! 4、vfp

微软的终端服务是一个win32位应用程序运行的平台。Vfp作为标准的win32位应用程序,当然可在其中运行。

这里,我们其实在讨论一个平台,一个vfp可以在其中运行的平台,而不是vfp本身。

vfp通过在这个平台中运行,由终端服务完成与远程浏览器中的ACTIVEX的界面传递,与用户交互。 vfp本身依f/s或C/S方式,直接存取dbf或依其调用的不同连接存取后端大型数据库(如SQL SERVER,ORANCLE等)返回vfp端。

啊,看到这里,你会说,不就是终端服务吗?老兄,绕什么弯啊。我早就会。我甚至也可以为远程用户配置专用Windows终端!

但朋友,别忘了,你的服务器没有固定ip地址。你靠什么连到你的服务器?每天打长途电话,报告你新启动后的ip地址?——本方案除了在客户端可零部署外,更重要的是只有利用浏览器+花生壳——这种B/S躯壳,才能将一个固定域名随时解析到服务器的临时ip地址上,以此连接到服务器! 三、

怎样?明白了吗?那好,现在让我们来部署吧!

说到部署终端服务,实在是太简单了。我都不好意思说了。但反过来,对我们foxer来说,不就是要的简单、实用吗?

好,言归正传说部署。

1、首先客户端,哈!不好意思,说漏嘴了。客户端还要部署吗? 2、那就只有服务器端了。服务器端有几个层次。

首先作为web服务器,IIS必须部署。道理前面已讲了。Windows server 2000已将IIS作为标准构件。如何部署?我就不再这里多啰嗦了。资料不要太多噢。

接下来,安装最重要的东西——在你的Web服务器安装一组网页,称之为“终端服务WEB客户端”(或叫“远程桌面 Web 连接”),其中当然还包括并将同时安装最重要的 ActiveX 客户端控件!这些网页构成了前导连接界面以进行服务器登陆,并调出ACTIVEX控件对象。 好,给点掌声!

东西哪里来?噢,微软早已已给我们准备好了。下载地址:http://www.microsoft.com/windowsxp/pro/downloads/rdwebconn.asp 选择chinese(simplifie)简体中文 go!下载。

运行获得的安装文件“tswebsetup.exe”。默认的,相关文件将被安装到2K所在盘的“c:\\Inetpub\\wwwroot\\TSWeb”目录中。“c:\\Inetpub\\wwwroot” 目录一般为IIS安装后默认web站点的主目录。“TSWeb”显然是其下级目录。可选默认选项。安装完成后根据提示重新启动计算机。 做一下测试:

在任何一台客户机(也可以是服务器)上打开IE浏览器,输入如“

http:// lss-ef2c38ndces/tsweb”(假设“dupeiji”为服务器的计算机名)或“

http://210.38.240.150/tsweb”(假设“看到了吗?

http://192.168.0.1”为服务器的局域网ip地址),再回

车!提示将下载一个控件。这就是前面一直描述那个ActiveX 控件。确认接受(以后将不再出现提示)。 好,

一个登录界面?这就对了!

这是你,从服务器默认web站点主目录,的下级目录“TSWeb”获得的,前面所安装的,登录网页。 如果你的服务器通过宽带已直接连上了internet,开IE浏览器,可输入:“http://www.e786.com/ip/index.php”。这将看到自己服务器的公网ip地址,形如“61.170.67.173”。 用另外一台有

modem

的计算机,拨号上网。开

IE

浏览器,输入:

“61.170.67.173/tsweb”(61.170.67.173应替换为你服务器公网ip地址)。回车! 稍慢……又是这个登录界面? 对了!你已通过internet连接到了自己的服务器。 比邻若天涯,天涯若比邻。

3、公网ip地址每次在宽带断开再次连接后都要改变怎办?装“花生壳”(或采用其他免费的动态域名解析服务提供商)啊!见:

http://www.oray.net/products/PeanutHull.asp

申请一个3级域名形如dupeiji.vicp.net,或将自己原有的域名转至“花生壳”,在服务器上下载并启动“花生壳”客户端软件。这样远程客户浏览器只要始终键入固定的形如dupeiji.vicp.net的域名就能链上一直变化ip地址的web服务器。你不用每天打长途电话,报告你新启动后的ip地址了。

还是用另外一台有modem的计算机,拨号上网。开IE浏览器,输入:“dupeiji.vicp.net/tsweb”(假设dupeiji.vicp.net应替换为你服务器的固定域名)。回车! 稍慢……仍是那个登录界面? 呵,你成功了!

好,够了!测试到这里先暂停一下,你不能再继续了。接下来,你得先安装终端服务,才能继续后面的测试。

4、安装前我们应先确定文件系统应采用NTFS格式。同时,我们将终端服务安装在独立服务器或成员服务器上,而不是在主域服务器上(如果安装在主域服务器上,连接时老是会出现服务器忙的提示)。 添加终端服务组件:选“控制面板→添加/删除程序→添加/删除Windows组件”,把“终端服务”和“终端服务授权”两项均选中,再选“确定”则开始安装所选组件。

此后会出现一个使用模式选项界面:远程管理模式和应用程序服务器模式。我们应该选应用程序服务器模式。对于以后的的提示,可选其默认选项即可。

安装成功后,按提示重新启动后,则可在“开始→程序→管理工具”中看到相关组件,包括“终端服务授权”、“终端服务管理器”、“终端服务客户端生成器”及“终端服务配置”四项。 5、接下来我们应进行终端服务的设置:

在“开始→程序→管理工具→终端服务配置”中,打开“终端服务配置”窗口,依次选“连接→右边面板→RDP-Tcp→右键→属性”,出现有“常规”、“登录设置”、“会话”、“环境”、“远程控制”、“客户端设置”、“网卡”、“权限”8个页标签的选项表单。 需要特别设置(改变默认设置)的有: “环境”页标签:

“在用户登录时,启动下列程序”项设置要使用的vfp应用程序。

如果这里不设置,用户登录后将会直接出现windows 2000(或2003)的桌面。不建议置空。 若有多个程序需选择运行,可编一个前导选择界面程序作为本项选择。或有能力的话,可自己动手修改下载的登录网页,使其有多项选择,这时本项选择可置空。 本标签的另一个关键选项——“开始位置”,应该置空。

“开始位置”往往是vfp应用程序的默认工作目录,运行时会产生一些中间文件。C/S环境下,由于客户端程序在不同的机器上,即使工作目录相同也不会冲突,而这里必然会。那置空后工作目录在哪里呢?放心,终端服务会自动为每个用户建立不同的目录。

注意,在我们的程序中,也不要出现指定用户写入临时文件的工作目录的语句。这大概是我唯一要求你修改程序的地方。

那这还叫不修改程序的B/S化方案?那我以为你程序中原来就没有指定过工作目录噢。 还有“禁用墙纸”应选择。可节省资源。

“登录设置”页标签:

应选“使用客户端提供的登录信息”并选“总是提示密码”——来鉴别用户的合法身份。 “会话”页标签:

一般选“替代用户设置”(由服务器来控制设置,)并选“从不”定时强制断开——定时强制断开可能会破坏系统。

“权限”页标签:

将允许使用终端服务的用户(或组)名“添加”进列表中。 安装完毕,我们继续刚才的测试。 在一台客户机上打开IE浏览器, 输入如“ 或“

http://dupeiji/tsweb”(“dupeiji”为服务器的计算机名) http://192.168.0.1/tsweb”(“

http://192.168.0.1”为服务器的局域网ip地址)

或“61.170.67.173/tsweb”(61.170.67.173应替换为你服务器公网ip地址) 或“dupeiji.vicp.net/tsweb”(dupeiji.vicp.net应替换为你服务器的固定域名)。 回车!出现终端登录界面。 继续以下测试。

在“服务器”一栏输入2000服务器的名字(或索性空白,不输入),在“大小”中选择合适的分辨率(或索性“全屏”),再单击“连接”按钮。

在随后出现的终端登录窗口中输入:

输入相应的用户名和密码,再按“确定”。

哇,vfp应用程序出现在了浏览器里。一阵眩晕。克制。试着点击菜单,输入、查询一切如常。连接打印机,开始打印。从遥远的地方传来了凭证、报表,丝毫不差。 怎么?反而没动静了? 嗨,欢呼吧! 四、

再回到开头,看看我们的需求满足了吗?也算总结吧。 远程只有浏览器,软件零部署了吗?

是的。最关键的那个ActiveX控件只要部署在web服务器端,浏览器中的网页会检查本地有否该控件,没有,就会提示从web下载并调出——实际是一种自动部署。 浏览器执行了vfp程序了?

没有。否则就叫C/S了。vfp程序在是终端服务器内多用户地执行,通过那个ActiveX控件返回给浏览器vfp程序的交互界面,同时接收浏览器端ActiveX控件中用户的键盘、鼠标信息。就和早期安装有SCO UNIX或专用操作系统的大型机、中型机,下面都是终端机的情形相像。

即使56k modem拨号上网,速度上相对局域网却不明显延迟,至少不比一般的浏览网页慢?

是的。网络上仅传输的是变化了的,经压缩的,对图像采用缓存技术的vfp程序的交互界面和用户的键盘、鼠标信息。传输量很有限。

对与internet建立连接时经常的断链,无论在服务器端还是客户端,都有充分的容错性?对程序的运行不产生丝毫的影响?

是的。因为vfp程序在是终端服务器内执行,断链发生在终端服务器外部,因而对程序运行本身不会产生丝毫的影响。如果说影响的话,那就是中断了当前的连接,影响了浏览器交互界面的传输。不要紧,当用原来的用户名重新登录时,还是原来的程序界面(可能中间计算已完毕)正等着你呢。 通过internet,能远程支持分支机构的打印机进行即时凭证打印?报表格式丝毫不差?

是的。终端服务器默认设置“登录时连接客户端打印机”,这样会使客户端打印机映射到终端服务器上。注意,它是通过并口映射来完成的,对于那些自创打印端口的激光打印机,我试下来却不支持。 还能支持远程的其他外设,如:扫描仪等,或许还想要个多媒体声音效果什么的?

是的。终端服务器能够设置并口和串口映射,因而能远程支持串并口设备。至于声音效果必须在windows server 2003上才能被支持。

服务器没有固定ip地址,不用每天打长途电话,报告你新启动后的ip地址,靠什么连到服务器? 因为利用浏览器+花生壳——这种B/S躯壳,因此能将一个固定域名随时解析到服务器的临时ip地址上,以此连接到服务器!

浏览器窗口内操作不方便,能否全屏显示?像真正的vfp程序一样? 可以。按Ctrl+Alt+Break,就可在浏览器窗口和全屏显示间进行切换。 这个方案是B/S吗?

难道不是吗?看你对B/S怎么定义了。他符合你的定义吗?我也只说是B/S化。 关于终端服务授权:

windows servre 2000提供90天试用期;windows servre 2003提供120天试用期。超期怎么办?不在此讨论之列。别让我犯错误哦。 关于色彩:

windows servre 2000只支持256色,而 windows servre 2003已经能支持真彩色了。但这时传输信息量会增多。自己试着调试一下。 关于网络中的服务器:

如果是一个C/S系统,承载终端服务的计算机最好与数据库服务器分开,来降低终端服务的计算机的负荷。但可与Web服务共处同一计算机,否则,你要进行端口映射——将Web服务器的3389端口映射到终端服务的计算机上。另外,不要在终端服务的计算机上设主域控制器,否则,连接时老是会出现服务器忙的提示。

关于改变登录界面的外观:

登录界面是我们在浏览器中看到的首个界面。那是个真正的html网页。现在用的是我们下载的一个微软预制的标准网页,我们可以为我们的应用系统个性化,就像我改的标题:“dupeiji的vfp在b/s结构中”。可能的话,试试看吧。

本文来源:https://www.bwwdw.com/article/w8yx.html

Top