与传统主机系统操作持续相连的全球信息网仿真器的 服务器和全球信息网浏览器的终端仿真器 【发明领域】
本发明一般涉及电子系统领域,特别是,涉及用于连到传统主机系统(legacyhost system)的全球信息网/仿真器的服务器和全球信息网浏览器的终端仿真器(web/emulator server and web browser terminal emulator),以及操作方法。发明背景
多种结构操作包括传统主机系统的计算机网络环境,其中所述传统主机系统存储数据并提供对该结构的操作来说是重要的应用。这种传统主机系统可以包括IBM大型机(MVS、VM和VSE环境)、IBM AS/400系统和UNIX主机系统。
对于这些结构,理想的是,通过在分布式客户系统(诸如,个人电脑和计算机工作站)上的终端会话与传统主机系统连接。与传统主机系统相连能使该客户系统的客户访问在传统主机系统上的数据和应用程序。这些终端会话可以包括3270、5250、NVT和VT220型终端会话。
用于提供终端会话的一种传统的方法是对运用TCP/IP套接字直接连到主传统系统的客户系统执行终端仿真器应用。另一种传统的方法是通过把标准传统数据流转换成HTML网页,通过全球信息网浏览器应用提供连接。然而,这种传统的全球信息网浏览器方法不能对用户屏幕进行实时主机更新,以及其它重大问题。例如,基于表单地HTML/TN3270数据组不能克服与公共HTML结构相关的大量问题,诸如,对用户屏幕的实时主机更新或找到用户的浏览器平台在网络上的地址。发明概述
根据本发明,提供一种用于连到传统主机系统的全球信息网/仿真器的服务器和全球信息网浏览器的终端仿真器和操作方法,它实质上消除或减小了与先前发展的方法相关的缺点和问题。
根据本发明的一个方面,提供允许运用全球信息网/仿真器的服务器把客户系统与传统主机系统相连的计算机网络环境。计算机网络环境包括具有TCP/IP连接性的传统主机系统。传统主机系统能够支持终端会话,以访问传统主机系统。计算机网络环境还包括在全球信息网/仿真器的服务器下执行客户线程的服务器系统。客户线程能够通过持续TCP/IP套接字连接与传统主机系统进行通信。计算机网络环境还包括在全球信息网浏览器下执行小应用程序处理的客户系统。小应用程序处理能够通过另一个持续TCP/IP套接字连接与客户线程进行通信,而且能够向客户系统的用户提供终端会话。由允许与传统主机系统进行实时双向通信的持续连接支持该终端会话。
根据本发明的一个方面,提供一种拥有提供在客户系统和传统主机系统之间的持续连接的全球信息网/仿真器的服务器。所述全球信息网/仿真器的服务器包括:能够通过第一持续TCP/IP套接字连接与传统主机系统进行通信的客户线程。全球信息网/仿真器的服务器还包括能够建立在客户系统上在全球信息网浏览器下进行操作的小应用程序处理的小应用程序代码。当执行时,小应用程序能够通过第二持续TCP/IP套接字连接与客户线程进行通信并向客户系统的用户进行终端会话。全球信息网/仿真器的服务器能够响应于接收与传统主机系统相关的统一资源定位器,把小应用程序代码下载到客户系统。
根据本发明的另一个方面,提供一种运用全球信息网/仿真器的服务器,把客户系统与传统主机系统相连的方法。从在客户系统上执行的全球信息网浏览器中选择与传统主机系统相关的统一资源定位器。由在服务器系统上执行的全球信息网/仿真器的服务器接收统一资源定位器。把用于小应用程序处理的可执行代码下载到客户系统。在客户系统上,在全球信息网浏览器下执行小应用程序处理。通过第一持续TCP/IP套接字连接,把小应用程序处理连到在全球信息网/仿真器的服务器下执行的客户线程。通过第二持续TCP/IP套接字连接,把客户线程连到与统一资源定位器相关的传统主机系统。通过第一持续TCP/IP套接字连接,在客户线程和传统主机系统之间进行通信。通过第二持续TCP/IP套接字连接,在客户线程和小应用程序处理之间进行通信。由小应用程序处理向客户系统的用户提供终端会话,终端会话允许通过与传统主机系统的持续连接,与传统主机系统进行实时双向通信。
本发明的技术优点在于,当通过与传统主机系统的持续TCP/IP套接字连接时,运用全球信息网浏览器,能够允许用户从客户机诸如台式个人计算机和计算机工作站访问传统的诸如,来自IBM大型机的数据的主机系统数据。这保证与传统主机系统(诸如,实时主机更新、保密、加密、帮助屏支持)的持续双向连接,而且可以支持其它实时特征。本发明的一个实施例运用SUN MICROSYSTEMS的JAVA技术,而且包括能在JAVA环境中使用的全球信息网浏览器,并加入JAVA小应用程序处理以提供到分布式客户系统的终端会话连接。
本发明的另一个技术优点在于,通过全球信息网浏览器提供到传统主机系统的连接,而无需使用特定的仿真软件将它手工安装在每个客户计算机系统上,也无需用户编程。
本发明的另一个技术优点在于,运用现存网络能力,允许将访问从现存客户系统扩展到在传统主机系统上的现存数据和应用。本发明提供网络环境,它允许运用全球信息网浏览器环境(具有全球信息网浏览器工具,诸如,JAVA工具和全球信息网服务),通过互连网或内部网络,将互连网类技术加入现存网络结构中。附图说明
图1是根据本发明的构思,允许运用全球信息网/仿真器的服务器将客户系统连到传统主机系统的计算机网络环境的方框图;
图2是根据本发明的构思,用于运用全球信息网/仿真器的服务器把客户系统连到传统主机系统的方法的流程图;和
图3是根据本发明的构思,负载均衡多个全球信息网/仿真器的服务器的方框图。本发明的详细描述
图1是计算机网络环境的方框图(一般用10表示)。网络环境10包括传统/SNA环境12、TCP/IP环境14和公共互连网/内部网络(intranet)环境16。
传统/SNA环境12包括一个或多个传统主机系统,诸如,IBM主机系统18和UNIX主机系统19。IBM主机系统18可以包括IBM大型机(MVS、VM和VSE环境)或者IMB AS/400系统。UNIX主机系统19可以包括在UNIX型环境中运行的计算机工作站或服务器。
网关系统(gateway system)20可通过连接22耦连到IBM主机系统18。连接22可包括附在1BM主机系统18上的SNA或信道。网关系统20提供在传统/SNA环境12和TCP/IP环境14之间的界面。网关系统20可以与IBM主机系统18集成在一起,或者可以是分开的、用于扩大IBM主机系统18的功能性的可增加系统(add-on system)。例如,网关系统20可以包括OC SERVER ⅡTM网关器产品(可从OPENCONNECT SYSTEMS购得)。UNIX主机系统19和一些IBM主机系统18可建立在TCP/IP连通性上,从而不必运用网关系统20。
TCP/IP环境14包括服务器系统24、服务器系统24执行一个或多个全球信息网/仿真器的服务器26。全球信息网/仿真器的服务器26提供在TCP/IP环境14和公共互连网/内部网络环境16之间的界面,而且可用于执行一个或多个客户线程28。全球信息网/仿真器的服务器26可用于通过持续TCP/IP套接字连接30连到网关系统20、连到IBM主机系统18和连到UNIX主机系统19。服务器系统24包括存储小应用程序码34的数据存储装置32。小应用程序码34包括用于小应用程序处理的可执行代码。全球信息网/仿真器的服务器26可以包括OC://WEBCONNECTTM服务器(可从OPENCONNECT SYSTEMS购得)。而且小应用程序码34可以包括JAVA小应用程序,以供在SUN MICROSYSTEM的JAVA环境内使用。
公共互连网/内部网络环境16包括一个或多个客户系统36。客户系统36可以包括台式计算机,诸如,个人电脑或者计算机工作站。客户系统36可用于建立虚拟计算机40,以执行小应用程序处理42。小应用程序处理42包括由全球信息网/仿真器的服务器26下载到客户系统36的小应用程序码34的例子。通过持续TCP/IP套接字连接44,把小应用程序处理42连到客户线程28上。全球信息网浏览器38可以包括商业上可获得的全球信息网浏览器应用,诸如能够在JAVA环境内使用的NETSCAPE NAVIGATOR,而且小应用程序处理42可能包括JAVA小应用程序。
在操作过程中,全球信息网/仿真器的服务器26、客户线程28和小应用程序处理42形成全球信息网浏览器的终端仿真器,它们提供在客户系统36和传统主机系统(诸如,IBM主机系统18或UNIX主机系统19)之间的持续双向连接。小应用程序处理42通过持续TCP/IP套接字连接44与客户线程28进行通信。客户线程28通过持续TCP/IP套接字连接30与适当的传统主机系统(或者IBM主机系统18或者UNIX主机系统19)进行通信。客户线程28和小应用程序处理42运行客户系统36的用户使用全球信息网浏览器38来进行终端会话以在传统主机系统上访问数据和应用。每个全球信息网/仿真器的服务器26可用于管理与多个小应用程序处理42相关的多个客户线程28。在本发明的一个实施例中,每个全球信息网/仿真器的服务器26能够管理上千个这样的连接。
客户线程28在全球信息网/仿真器的服务器26下执行,并且能够通过持续TCP/IP套接字连接30与传统主机系统进行通信。客户线程28能够在TCP/IP环境14和公共互连网/内部网络环境16之间连接。小应用程序处理42在全球信息网浏览器38下执行,而且能够通过持续TCP/IP套接字连接44与客户线程28进行通信。在本发明的一个实施例中,客户线程28和小应用程序处理42运用全球信息网/仿真器的数据流。小应用程序处理42还能够向客户系统36的用户提供终端会话。终端会话可以包括3270、5250、NVT或XT220型终端会话。由持续TCP/IP套接字连接支持由小应用程序处理42和客户线程28提供的终端会话,其中所述持续TCP/IP套接字连接运行与传统主机系统进行实时双向通信。
在本发明的一个实施例中,小应用程序处理运用三个线程来执行终端会话。小应用程序处理运用READ线程、WRITE线程和EMULATION线程。READ线程提供到TCP/IP套接字连接44的缓冲区接口,而且从套接字中读取信息。WRITE线程提供到持续TCP/IP套接字连接44的缓冲区接口,而且写到套接字。EMULATION线程提供代表在传统主机系统上的终端会话的用户界面。在本实施例中,小应用程序处理和客户线程根据在APPENDIX A中提出的通信协议,运用全球信息网/仿真数据流进行通信。
根据本发明,客户系统36的用户可以运用全球信息网浏览器38,在传统主机系统上访问数据和应用,同时通过持续双向连接访问传统主机系统。持续TCP/IP套接字连接30和44提供到IBM主机系统18或UNIX主机系统19的这种持续双向连接,从而支持实时主机更新、保密、解密、帮助屏支持(help-desksupport)和其它实时特性。本发明的一个实施例运用SUN MICROSYSTEMS的JAVA技术,并包括能在JAVA环境内使用的全球信息网浏览器38和嵌入JAVA小应用程序处理42以提供到客户系统36的终端会话连接性。
本发明通过全球信息网浏览器38提供到传统主机系统(诸如,IBM主机系统18和UNIX主机系统19)的连接,而无需将特定仿真软件手工安装在每个客户系统36上,而且无需用户编程。当由用户选择传统主机系统的统一资源定位器(uniform resource locator)(URL),全球信息网/仿真器的服务器26将小应用程序代码34下载到客户系统36。它被自动完成,无需服务人员将软件装到客户系统36上。
本发明还允许运用现存网络能力,将访问范围扩展到在来自现存客户系统36的传统主机系统上的现存数据和应用。本发明提供网络环境,它允许运用具有全球信息网浏览器工具(诸如,JAVA工具)和网络服务的公共互连网/内部网络环境16,以通过互连网或内部网络,运用现存网络结构,加入互连网类技术。于是,可以实现基于全球信息网浏览器38访问传统主机系统(诸如,IBM主机系统18和UNIX主机系统19)的结构,而无需拆卸或大量重建现存网络资源。
图2是根据本发明的构思,用于运用全球信息网/仿真器的服务器将客户系统连到传统主机系统的方法的流程图。
在步骤50中,从在客户系统上执行的全球信息网浏览器中选出与传统主机系统相关的统一资源定位器(URL)。全球信息网浏览器可以包括上述能在JAVA环境下使用的NETSCAPE NAVIGATOR全球信息网浏览器。在步骤52中,由全球信息网/仿真器的服务器接收所选的统一资源定位器。在步骤54中,全球信息网/仿真器的服务器把用于小应用程序处理的可执行代码下载到客户系统,以连到传统主机系统。在步骤56中,客户系统在全球信息网浏览器下执行小应用程序处理。小应用程序处理可以包括用于在JAVA虚拟计算机内在NETSCAPENAVIGATOR全球信息网浏览器内操作的JAVA小应用程序。
在步骤57中,小应用程序处理连到由全球信息网/仿真器的服务器执行的客户线程,而且客户线程通过持续TCP/IP套接字连接连到传统主机系统。在步骤58中,客户线程通过持续TCP/IP套接字连接与传统主机系统进行通信。这种通信允许客户线程建立和保持与传统主机系统之间的终端连接。在步骤60中,客户线程通过持续TCP/IP套接字连接与小应用程序处理进行通信。可运用全球信息网/仿真器的数据流(诸如,根据在APPENDIX A中所述的通信协议)执行这种通信。
在步骤62中,小应用程序处理向客户系统的用户提供终端会话。根据本发明,这种终端会话允许通过传统主机系统的持续TCP/IP套接字连接,与传统主机系统进行双向通信。如上所述,该终端会话可以包括3270、5250、NVT或VT220型终端会话。
客户系统的用户根据其需要可以终止终端会话。在步骤64中,当终止终端会话时,终止小应用程序处理和客户线程。在一个实施例中,在终止之后,从执行存储器中除去小应用程序处理,而且不再出现在客户系统上。在另一个实施例中,可将用于小应用程序的可执行代码存储在与客户系统相关的数据存储装置上。在这个实施例中,根据本发明说明书,全球信息网/仿真器的服务器可以检测客户系统以确定是否需要将用于小应用程序的新可执行代码下载到客户系统的数据存储装置上(如果有的话)。
本发明通过持续TCP/IP套接字连接,提供到传统数据流(诸如,远程登录(telnet,TN)数据流)的界面,以允许用户在终端会话(3270、5250、NVT和VT220型终端会话)中,支持双向访问传统主机系统数据。根据本发明,由从全球信息网/仿真器的服务器下载的小应用程序可执行代码部分地提供终端仿真。用户可以通过全球信息网浏览器数据套(诸如,NETSCAPE的NETSCAPENAVIGATOR)选择传统主机系统统一资源定位器(URL),而且明显地接收正在执行的小应用程序代码,并开始适当的终端会话。
本发明允许客户系统的用户运用全球信息网浏览器访问实时传统主机系统数据和运用。全球信息网/仿真器的服务器系统把标准传统数据流转换成全球信息网/仿真器的数据流,反之亦然,允许多种会话、多个协议对传统数据的访问和应用。小应用程序处理把全球信息网/仿真器的数据流转换成终端会话以向用户显示。如上所述,全球信息网浏览器可以包括能够在JAVA环境中使用的全球信息网浏览器,小应用程序处理可以是JAVA小应用程序,而且全球信息网/仿真器的数据流可以根据在Appendix A中所述的协议。本发明的这个实施例可以把由SUN MICROSYSTEMS的JAVA驱动的全球信息网浏览器与具有TCP/IP连接的传统主机系统相混合,以允许在任何客户系统平台上的用户通过3270、5250、NVT和VT220型终端仿真连到并访问传统主机系统。
图3是根据本发明的构思,负载均衡多个全球信息网/仿真器的服务器的方框图。把HTTP服务器70耦连到客户系统72上。HTTP服务器70接收来自客户系统72的以统一资源定位器(URL)的形式的请求信息,REQUEST,并向客户系统72提供重定向信息,REDIRECT。然后,根据重定向信息,把客户系统72耦连到多个全球信息网/仿真器的服务器74中的一个上。通过这种方法,HTTP服务器70可以重定向由多个客户系统72执行的访问,以管理在全球信息网/仿真器的服务器74上的负载,从而保证均衡所有可供使用的全球信息网/仿真器的服务器74。
这种负载均衡可对客户系统72的用户保持高透明度。用户进入与传统主机系统相关的统一资源定位器。把该信息发送到HTTP服务器70,作为请求。HTTP服务器70解释请求、识别所选的传统主机系统并选择全球信息网/仿真器的服务器74以管理连接。对全球信息网/仿真器的服务器74的这种选择可根据每个全球信息网/仿真器的服务器74的当前加载的信息。HTTP服务器70很明显地向客户系统72提供重定向信息,它识别所选全球信息网/仿真器的服务器74的统一资源定位器。然后,客户系统72通过所选全球信息网/仿真器的服务器启动上述终端会话,而且所选全球信息网/仿真器的服务器74连到上述传统主机系统。
本发明提供全球信息网浏览器连接,它的初始和重现(initial and recurring)成本相对较低。不需要根据每个特定客户系统的各个仿真软件产品。这消除了多个技术支持、帮助屏和软件分发问题,包括版本级别控制和配置管理问题。由于全球信息网浏览器一般提供直觉公共用户界面(intuitive common user interface),并已被许个用户所知,所以不再需要广泛的用户训练。通过利用现存的广泛安装的全球信息网浏览器基站,可改进实施时间。特别是,由JAVA结构提供的平台独立(platform independence)允许本发明的全球信息网浏览器的终端仿真器避免计算机环境之间的操作不同所带来的问题。此外,当前,可由每个全球信息网/仿真器的服务器支持多个用户。例如,OC://WEBCONNECTTM产品(由OPENCONNECT SYSTEMS生产)可以每次支持上千个用户。
本发明提供从任一客户系统(诸如,个人计算机或计算机工作站)到传统主机系统(诸如,大型机或中等范围系统)的连接性,而无需昂贵的重设计或者重建立传统应用。分布式客户/服务器类数据交换的好处在于可以不需要系统重设计便可实现它。这种方法意味着,可将互连网类访问和功能性的多个优点简单地与组织的网络结构相结合,从而保护现存信息技术的基础结构和投资。
虽然详细描述本发明,但是应理解,可以进行多种变换和替换,而不偏离本发明的构思和所附权利要求书所限定的范围。
附录A
下面提供用于在客户线程和小应用程序处理之间的全球信息网/仿真数据流的通信协议的一个实施例。(对于长度的值,长度=0表示不存在字段。所有字段是字节值。)
用户(小应用程序处理)到服务器(客户线程)
连接对话
/S/emutype/hostlen/hostname.../lumanelen/
luname.../portnolen/portno.../sessionlen sessionname... emutype:仿真类型以创建01=3270,02=5250,04@VT220 hostle,
hostname:网关连接主机名的长度和内容以与lunamelen相连,
luname:用于对话的luname名称的长度和内容
portnolen,portno:网关连接sessionlen的端口号的长度和内容(以
ASCII码文本),
sessionname:对话名称字段更新的长度和内容
字段更新
/F/reason/reasonparm/curposhigh/curposlow/fieldcounthigh/fieldcountlow/
bufposhigh/bufposlo lengthy/lengthlow/fieldchars
reason:字段更新的理由。01=非请求应答型(unsolicited),02=回
答服务器的询问字段更新。
reasonparm:如果reason=用户的01,AID值。如果reason=02,
来自服务器的询问字段更新命令的reasonparm。
curposhigh,curposlow:在更新时的光标位置
fieldcounthigh,fieldcountlow:字段计数
bufposhigh,bufposlow:字段的缓冲区位置
lengthy,lengthlow:字段数据的长度(16比特)
fieldchars:以ASCII码的字段数据
row,column,length,fieldchars…是重复字段计数的次数。
NVT击键(keystroke)
/N/asciikey
asciikey:作为ASCII字符的击键值运行脚本(script)
/R/scriptnamelen/scriptname...
scriptnamelen,scriptname:要执行的TCL脚本的长度和名称询问帮助屏 /H/处理仿真击键 /K/keyvaluehigh I keyvaluelow
keyvaluehigh I keyvaluelow:要处理的仿真键值服务器(客户线程)到客户(小应用程序处理)擦除显示 /E/设置显示尺寸 /S/rows/columns
rows:显示的行数
columns:显示的列数设置光标位置 /C/bufposhigh,bufposlow
bufposhigh,bufposlow:光标显示文本的位置显示文本 /D/bufposhigh Ibufposlow I lengthhigh Ilenthlow I text...
bufposhigh,bufposlow:文本(当处于NVT模式下被忽略)的位置,
lengthhigh、lengthlow:文本的长度(1en-th)(16比特)
text:用于显示的ASCII码文本OIA文本 /0/column/length/oiatext...字段列表 /F/fieldcounthigh/fieldcountlow/bufposhigh/bufposlow/fieldattr/xattr/ lengthhigh/lengthlow
fieldcounthigh,fieldcountlow:字段数(0=非格式化屏幕)
bufposhigh,bufposlow:字段fieldattr的起始位置:字段属性字节
3270 定义所用的比特数
0 更新的数据特征(I@更新的字段)
0 保存(0)
2-3 00=显示/不可检测的,01=显示/可检测的,10=亮度增强
显示/可检测,11=不显示/不可检测
4 0=文字数字的,1=数字的
5 0=不受保护的,1=受保护的xattr:字段扩展属性字节3270定义
3270 定义所用的比特数
7 字段掩码
6 未使用
5 透明/不透明
4-3 加亮(00=缺省(default),01=闪烁,10=反显(reverse),11=
加下划线(underline))
2-0 颜色(001=蓝色,010=红色,011=粉红色,100=绿色,
101=青绿色,110=黄色,111=白色)
lengthhigh,lengthlow:字段的长度(16比特,可能删除(wrap off)第一
行)
bufposhigh,btifposlow,fieldattr,lengthhigh,lengthlow是fieldcounthigh,
fieldcountlow的重复次数字符覆盖属性列表(character override attribute list) /A/attrcounthigh/attrcountlow/bufposhigh/bufposlow/lengthhigh/lengthlow/ attrbytelbufposhigh,biifposlow:属性位置lengthhigh,lengthlow:字段长度(16比特,可能删除第一行)attrbytel:属性字节1
3270 定义所用比特数
0-2 颜色位(1=蓝色,2=红色,3=粉红色,4=绿色,5=青绿
色,6=黄色,7=白色)
3-4 扩展的加亮(互斥)(01=闪烁,10=反显,11=加强)
7 字段掩码(1=字段起始位置)bufposhigh,bufposlou,lengthhigh,lengthlow,attrbytel是attrcounthigh,attrcountlow的重复次数询问字段更新 /Q/reasonparm
reasonparm:在来自用户的字段更新消息中返回的原因值(reason value)设置NVT模式 /N/nvtmode
nvtmode:00=仿真模式,01=NVT模式键盘锁定状态/K/mode
mode:00=KB空,01=KB锁定声音警报/B/length/filenametext... length-文件名的长度 filenametext:警报的音频文件名误差消息/M/length/messagetext... 1ength,messagetext:误差消息的长度和内容协议版本/V/verhigh/verlow verhigh,verlow:协议版本号帮助屏应答/H/ length/versionstr:服务器版本 sessionIDhigh/sessionIDlow:对于这种客户连接的服务器对话ID emulationtype:01=3270,02=5250(如果仿真类型是3270)
displaytype:00=3278.01=3279,02=3179,03=3472
status:00=非自身拥有的,01=SSCP,02=LULU
defauItPartition.-缺省模型尺寸2-5
alternatepartition:交替模型尺寸2-5
currentpartition:当前模型尺寸2-5
(如果仿真类型是5250)
displaytype:00=3477,01=3179,02=5151,03=3196
screensize:屏幕尺寸,2或5
ocserver:01=连到OC服务器,00=其它类型的服务器
ptsoverride:01=passthru屏幕覆盖,00=不覆盖
monochrome:00=颜色,01=单色的
protocoltypel:01=RUI,02=TN
(如果协议类型所RUI)
length/requstedLUname:构造的LU名字
length/grantedLUname:由服务器返回的LU名字
length/ruiversion:正在使用的RUI支持的版本
sessIDhigh I sessIDlow:RUI对话ID
(如果协议类型是T-N)
length,termTypeString:终端类型
与TN服务器交涉的字符串是
TN3270EI:00=不是3270E,01=运用3270E length,deviceame:正在使用的装置名称
length,puLuName:对话的PU/LU名称(仅对OCS网关)
transporttype.00=无(如果协议是RUI,有效),01=网络(如果传输类型是网络)
length,configuredHostName:在对话结构中的主机名
length,configuredport:在对话结构中的端口
length,connectedHostName:在实际应用中的主机名(ip地址)
length,connectedport:实际应用中的端口 更新完成 /W/