在应用系统中嵌入WWW服务功能的实现方法
(1)主页模板的生成。根据客户显示的需求,采用HTML标准,创建在Web浏览器上可以浏览的主页模板。对于主页模板中需要实时更新的数据和根据客户需求可能会改变的数据,采用相应的变量代替。
(2)公共数据主页的生成。应用系统启动后,将事先生成的主页模板加载到内存中,根据系统的配置,对部分公共变量用实际的内容(如各路通信线路的名称等)进行替换,生成公共数据主页。
(3)更新数据的生成。系统通过各类数据采集板采集各路通信线路中实时变化的接收电压、发送电压和误码等数据,并将这些采集的数据实时送到数据处理器进行处理,生成客户需要的收电平、发电平和误码率等实时更新数据。
(4)公共数据主页的实时更新。数据处理器生成实时更新的数据后,将公共数据主页中该数据的对应项进行更新替换,实现公共数据主页的实时更新。
(5)客户数据主页的生成。当应用系统收到客户请求的发送主页消息后,根据客户的权限和需求对公共数据主页中需要保密、限制的内容以及客户主页的刷新频率进行更新处理,为各级别的客户生成各自的客户数据主页。这样处理后对于不同客户的同一请求,发送的客户主页信息就可能不同。
1.2.2 应答客户请求过程
应答客户请求的过程主要是应用系统在TCP端口(80)上侦听客户的连接。当连接建立后,为该客户的请求建立一个线程,读取并解析客户从Web浏览器发送来的请求,并对请求进行安全和权限控制,应答客户请求,最后关闭此客户的连接并退出该线程。具体过程如下:
(1)侦听客户请求。应用系统启动后首先初始化网络设置,并在80端口打开一个被动的TCP连接,等待接受客户的连接。
(2)创建客户请求处理线程。在收到客户连接后,应用系统为该客户请求创建一个线程,用来解析、处理、应答客户的请求。
(3)解析客户请求。应用系统根据请求消息的格式解读请求消息,如果客户所请求的动作不能实施或者URI无效,返回一个错误状态并关闭该连接,否则对客户进行安全控制。
(4)安全控制。根据客户的IP地址或者登录信息,判别客户的权限。如果客户不具备所请求动作的权限则返回权限不足信息并关闭该连接,否则对客户请求进行处理,同时记录客户请求内容、时间等信息。
(5)处理客户请求。根据客户的权限和请求,对构建于内存中的公共数据主页信息进行进一步处理,生成客户所需要的客户数据主页。
(6)应答客户请求。对于客户的请求为Get方式时,打开该URI所指定的被程序构建于内存之中客户数据主页,在发送以前,应用系统为客户数据主页建立一个适当的题头区,其后放一个空白行,然后将该题头区发送出去,最后发出客户数据主页。对于客户的请求为Post方式时,根据解析后的信息对应用系统进行相应的设置和操作,实现客户的远程控制。
(7)关闭客户连接,退出线程。
2 关键技术
2.1处理客户请求
2.1.1 客户请求
当客户通过Web浏览器向应用系统发出请求时,需要指定一个全球资源定位器(URL)。URL是某个特定资源的Web名,用于定位Internet上面的资源,一个URL的基本格式为:
协议://主机名[:端口]/路径
Web浏览器分析该URL,提取协议(这里是HTTP)、主机名以及全球资源路径(URI),并使用提取的协议向具有该主机名的网络主机发起连接。当连接建立后,Web浏览器发送请求消息,该消息包含一些可选配的题头,用于标识该客户和列出可接受的资源类型。应用系统发送响应消息,该消息有一个状态行,后随一个或多个题头,然后是所请求的资源。
2.1.2 解析客户请求
对客户请求的解析主要是应用系统根据HTTP消息的格式,从客户发送来的请求消息中提取客户请求的内容,并向客户发送响应消息。HTTP消息是客户发给应用系统的请求或者由应用系统传给客户的应答,消息格式为:
Start-line(开始行)
Message-headers(消息题头)
CR LF(换行回车符,即空一行)
Message-body(消息正文)
一个请求包括三部分:开始行、题头以及正文。开始行是必须有的,题头及正文则是可选的。在客户传给应用系统的请求中,开始行就是请求行;在应用系统的应答中,则是状态行。
评论