论文部分内容阅读
摘要:移动终端自适配网页与普通WEB网站的页面,有比较大的差别。自适配网页具有界面元素少,效率高,样式自动适配,一般来讲应用于手机,移动pad等设备上;而普通WEB页面,是重量级的WEB元素载体,元素众多,加载过程比较缓慢,占用的资源多,适用于PC访问,服务器处理等。普通WEB的转换,经常需要构建在Nginx,Tomcat等之上,而自适配网页由于其简单,资源使用少的特性,自适配网页转换可以采用简便的技术框架来实现。
关键词:页面转换;移动终端自适配网页转换;转换技术
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)14-0039-02
目前,许多企业的web服务是架设在企业内网的,而访问和使用web服务的用户处于互联网。 在企业内网和互联网之间,一般不能直接互联。由于企业内部的拓扑架构,网络等不适合暴露给互联网,因此通常的做法是在企业内网和互联网直接,构建一个转换层,作为反向转换服务组件使用,实现外网到内网的访问。如:电信企业使用装维宝APP自身实现某些功能,在展示工单信息时,点击工单连接,能够连接到CRM提供的工单查询页面,展示CRM工单查询自适配网页的内容。
1 移动终端自适配网页的特点分析
移动终端自适配网页是指第5代HTML(超文本标记语言),也指用H5语言制作的一切数字产品。网上的网页,多数都是由HTML写成的。“超文本”是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。而“标记”指的是这些超文本必须由包含属性的开头与结尾标志来标记。浏览器通过解码HTML,就可以把网页内容显示出来[1~3]。
由于自适配网页提供了全新的框架和平台,包括提供免插件的音视频、图像动画、本体存储以及更多酷炫而且重要的功能,许多资源都可以直接在H5框架上承载,因此在进行转换的时候,更要注重资源地址的缓存。
2 网页转换的基本流程
转换实现业务流程分2步:
1) 页面能力注册
类似CRM、集团等平台(以下称为HTTPServer)把需要开放出来给其他系统共用的页面向转换服务器注册,使得服务器能够了解服务端信息,调用地址,URL参数要求等并对外开放。
2) HTTP转换转发
其他需要访问移动终端自适配网页的系统(称为HTTPClient)直接连接到转换服务端,通过转换中间层来访问这些开放的界面。流程图如下:
详细流程:
以下说明HTTPClient、Proxy模块、HTTPServer三者的交互及实现机制约定。
HTTPClient具体功能:
a) 页面集成h5的开放H5界面。
b) 调用Proxy服务,获取令牌。
c) 调用移动终端自适配网页(send http request Header),通过HTTP/HTTPS方式(Post/Get/Connect)获取需要的页面能力,其所请求的URL地址中需要携带access_token以及业务上所需要的参数。
注:对完全开放能力(无须鉴权),则不需要进行token生产,获取。可直接访问开放的移动终端自适配网页。
HTTPServer:提供移动终端自适配网页的服务,当Proxy向HTTPServer请求访问页面时,能根据业务响应结果输出移动终端自适配网页。
Proxy功能:包括
a) 令牌生产服务:Proxy根据一定的算法来生成access_token 。访问网元可以向Proxy请求获取令牌。
b) 实现HTTP转换功能,接收HTTPClient 的请求数据,向HTTPServer发起请求。
c) 接收HTTPServer响应数据,更新数据包中资源地址信息,并输出到HTTPClient.
3 Proxy设计
Proxy实现的流程:
1)令牌生产服务:Proxy根据一定的算法来生成access_token 。访问网元可以向Proxy请求获取令牌。
2)实现HTTP转换功能,接收HTTPClient 的请求数据。
a) HTTPClient向EOPproxy模块发送HttpRequest(GET/POST);
b) Proxy模块读取请求头,抽取出请求的具体目标服务器HOST和PORT;
c) 进行URL解析,并鉴权(包含令牌校验,IP校驗,访问权限校验),转换URL信息(如剔除access_token信息,),生成目标URL地址。
d) Proxy把请求头发送给目标服务器;
e) Proxy建立管道,供客户端和目标服务器通信。(一般是把输入输出IO流的数据双向读写)。
TOKEN令牌生成服务:
Proxy 提供令牌生成服务和令牌校验服务。
1)令牌授权依据一定的时间(不同页面的令牌时间不同,可设置)。
访问者当令牌失效或错误时,可以申请重新生成。
访问方第一次发起时,向Proxy获取令牌,在设置的有效期内可以一直使用。
时间过期后,重新获取。
2)令牌生成规则:
String t=请求网元编号||目标页面能力索引||访问网元的私钥信息|| 获取当前时间||有效期
注意:如果访问网元信息为空,则随机产生一串32位字符串,替换私钥信息的值。
Access_token=MD5(string t)
3)令牌获取作为单独的一个服务存在。
4 高性能的进程设计模式 如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。那么显而易见的,就是会有很多进程在等待中。等什么?最多的应该是等待网络传输。其缺点就是并发程度低,性能不足。
参考nginx 的异步非阻塞工作方式,利用了这点等待的时间。在需要等待的时候,这些等待进程就空闲出来待命了。因此少数几个进程就解决了大量的并发问题。
自适配网页转换模块需要如何利用进程的?举例同样的4个进程,如果采用一个进程负责一个request的方式,那么,同时进来4个request之后,每个进程就负责其中一个,直至会话关闭。在此期间,如果有第5个request进来了。就无法及时反映了,因为4个进程都没干完活。因此,一般有个调度进程,每当新进来了一个request,就新开个进程来处理。因此转换模块不适合这样设计。
自适配网页的转换模块可以采用每进来一个请求,会有一个工作进程去处理。但不是全程的处理,处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。这个处理的工作进程不会这么等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,通知我,我再接着干”,然后休眠该进程。此时,如果再有request 进来,工作进程就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,该进程才会来接手,这个请求才会接着往下走。
由于web server的工作性质决定了每个request的大部分生命都是在网络传输中,实际上花费在服务器上的时间不多。这样几个进程就能解决高并發的性能问题。
5 总结
本文通过分析自适配网页与普通web的差异,提出了一种解决自适配网页转换的资源转换的方案,该方案的实现与现有web转换技术,如Nginx,Tomcat等有着本质上的区别,相对来讲流程更简单,技术实现更方便了,并且提供了令牌的授权机制,能够有效地进行访问控制。最后描述了高性能进程的设计方案,以尽可能提高转换模块的性能。
参考文献:
[1] 杜友福,程彩凤,赵鸣. 搜索引擎中智能代理技术及启发式搜索策略研究[J]. 长江大学学报(自然科学版)理工卷,2009,6(02):63-65 407.
[2] 李绍英. 基于代理技术的比较购物研究[J]. 当代经理人,2006(10):95-96.
[3] 刘正东,张秉权. 实时浏览翻译网站的搜索引擎代理技术[J]. 兵工自动化,2001(02):54-56.
关键词:页面转换;移动终端自适配网页转换;转换技术
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)14-0039-02
目前,许多企业的web服务是架设在企业内网的,而访问和使用web服务的用户处于互联网。 在企业内网和互联网之间,一般不能直接互联。由于企业内部的拓扑架构,网络等不适合暴露给互联网,因此通常的做法是在企业内网和互联网直接,构建一个转换层,作为反向转换服务组件使用,实现外网到内网的访问。如:电信企业使用装维宝APP自身实现某些功能,在展示工单信息时,点击工单连接,能够连接到CRM提供的工单查询页面,展示CRM工单查询自适配网页的内容。
1 移动终端自适配网页的特点分析
移动终端自适配网页是指第5代HTML(超文本标记语言),也指用H5语言制作的一切数字产品。网上的网页,多数都是由HTML写成的。“超文本”是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。而“标记”指的是这些超文本必须由包含属性的开头与结尾标志来标记。浏览器通过解码HTML,就可以把网页内容显示出来[1~3]。
由于自适配网页提供了全新的框架和平台,包括提供免插件的音视频、图像动画、本体存储以及更多酷炫而且重要的功能,许多资源都可以直接在H5框架上承载,因此在进行转换的时候,更要注重资源地址的缓存。
2 网页转换的基本流程
转换实现业务流程分2步:
1) 页面能力注册
类似CRM、集团等平台(以下称为HTTPServer)把需要开放出来给其他系统共用的页面向转换服务器注册,使得服务器能够了解服务端信息,调用地址,URL参数要求等并对外开放。
2) HTTP转换转发
其他需要访问移动终端自适配网页的系统(称为HTTPClient)直接连接到转换服务端,通过转换中间层来访问这些开放的界面。流程图如下:
详细流程:
以下说明HTTPClient、Proxy模块、HTTPServer三者的交互及实现机制约定。
HTTPClient具体功能:
a) 页面集成h5的开放H5界面。
b) 调用Proxy服务,获取令牌。
c) 调用移动终端自适配网页(send http request Header),通过HTTP/HTTPS方式(Post/Get/Connect)获取需要的页面能力,其所请求的URL地址中需要携带access_token以及业务上所需要的参数。
注:对完全开放能力(无须鉴权),则不需要进行token生产,获取。可直接访问开放的移动终端自适配网页。
HTTPServer:提供移动终端自适配网页的服务,当Proxy向HTTPServer请求访问页面时,能根据业务响应结果输出移动终端自适配网页。
Proxy功能:包括
a) 令牌生产服务:Proxy根据一定的算法来生成access_token 。访问网元可以向Proxy请求获取令牌。
b) 实现HTTP转换功能,接收HTTPClient 的请求数据,向HTTPServer发起请求。
c) 接收HTTPServer响应数据,更新数据包中资源地址信息,并输出到HTTPClient.
3 Proxy设计
Proxy实现的流程:
1)令牌生产服务:Proxy根据一定的算法来生成access_token 。访问网元可以向Proxy请求获取令牌。
2)实现HTTP转换功能,接收HTTPClient 的请求数据。
a) HTTPClient向EOPproxy模块发送HttpRequest(GET/POST);
b) Proxy模块读取请求头,抽取出请求的具体目标服务器HOST和PORT;
c) 进行URL解析,并鉴权(包含令牌校验,IP校驗,访问权限校验),转换URL信息(如剔除access_token信息,),生成目标URL地址。
d) Proxy把请求头发送给目标服务器;
e) Proxy建立管道,供客户端和目标服务器通信。(一般是把输入输出IO流的数据双向读写)。
TOKEN令牌生成服务:
Proxy 提供令牌生成服务和令牌校验服务。
1)令牌授权依据一定的时间(不同页面的令牌时间不同,可设置)。
访问者当令牌失效或错误时,可以申请重新生成。
访问方第一次发起时,向Proxy获取令牌,在设置的有效期内可以一直使用。
时间过期后,重新获取。
2)令牌生成规则:
String t=请求网元编号||目标页面能力索引||访问网元的私钥信息|| 获取当前时间||有效期
注意:如果访问网元信息为空,则随机产生一串32位字符串,替换私钥信息的值。
Access_token=MD5(string t)
3)令牌获取作为单独的一个服务存在。
4 高性能的进程设计模式 如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。那么显而易见的,就是会有很多进程在等待中。等什么?最多的应该是等待网络传输。其缺点就是并发程度低,性能不足。
参考nginx 的异步非阻塞工作方式,利用了这点等待的时间。在需要等待的时候,这些等待进程就空闲出来待命了。因此少数几个进程就解决了大量的并发问题。
自适配网页转换模块需要如何利用进程的?举例同样的4个进程,如果采用一个进程负责一个request的方式,那么,同时进来4个request之后,每个进程就负责其中一个,直至会话关闭。在此期间,如果有第5个request进来了。就无法及时反映了,因为4个进程都没干完活。因此,一般有个调度进程,每当新进来了一个request,就新开个进程来处理。因此转换模块不适合这样设计。
自适配网页的转换模块可以采用每进来一个请求,会有一个工作进程去处理。但不是全程的处理,处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。这个处理的工作进程不会这么等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,通知我,我再接着干”,然后休眠该进程。此时,如果再有request 进来,工作进程就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,该进程才会来接手,这个请求才会接着往下走。
由于web server的工作性质决定了每个request的大部分生命都是在网络传输中,实际上花费在服务器上的时间不多。这样几个进程就能解决高并發的性能问题。
5 总结
本文通过分析自适配网页与普通web的差异,提出了一种解决自适配网页转换的资源转换的方案,该方案的实现与现有web转换技术,如Nginx,Tomcat等有着本质上的区别,相对来讲流程更简单,技术实现更方便了,并且提供了令牌的授权机制,能够有效地进行访问控制。最后描述了高性能进程的设计方案,以尽可能提高转换模块的性能。
参考文献:
[1] 杜友福,程彩凤,赵鸣. 搜索引擎中智能代理技术及启发式搜索策略研究[J]. 长江大学学报(自然科学版)理工卷,2009,6(02):63-65 407.
[2] 李绍英. 基于代理技术的比较购物研究[J]. 当代经理人,2006(10):95-96.
[3] 刘正东,张秉权. 实时浏览翻译网站的搜索引擎代理技术[J]. 兵工自动化,2001(02):54-56.