国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種網(wǎng)頁(yè)轉(zhuǎn)換技術(shù)的研究

2018-07-12 09:37鄭海能葉阿真
電腦知識(shí)與技術(shù) 2018年14期

鄭海能 葉阿真

摘要:移動(dòng)終端自適配網(wǎng)頁(yè)與普通WEB網(wǎng)站的頁(yè)面,有比較大的差別。自適配網(wǎng)頁(yè)具有界面元素少,效率高,樣式自動(dòng)適配,一般來講應(yīng)用于手機(jī),移動(dòng)pad等設(shè)備上;而普通WEB頁(yè)面,是重量級(jí)的WEB元素載體,元素眾多,加載過程比較緩慢,占用的資源多,適用于PC訪問,服務(wù)器處理等。普通WEB的轉(zhuǎn)換,經(jīng)常需要構(gòu)建在Nginx,Tomcat等之上,而自適配網(wǎng)頁(yè)由于其簡(jiǎn)單,資源使用少的特性,自適配網(wǎng)頁(yè)轉(zhuǎn)換可以采用簡(jiǎn)便的技術(shù)框架來實(shí)現(xiàn)。

關(guān)鍵詞:頁(yè)面轉(zhuǎn)換;移動(dòng)終端自適配網(wǎng)頁(yè)轉(zhuǎn)換;轉(zhuǎn)換技術(shù)

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)14-0039-02

目前,許多企業(yè)的web服務(wù)是架設(shè)在企業(yè)內(nèi)網(wǎng)的,而訪問和使用web服務(wù)的用戶處于互聯(lián)網(wǎng)。 在企業(yè)內(nèi)網(wǎng)和互聯(lián)網(wǎng)之間,一般不能直接互聯(lián)。由于企業(yè)內(nèi)部的拓?fù)浼軜?gòu),網(wǎng)絡(luò)等不適合暴露給互聯(lián)網(wǎng),因此通常的做法是在企業(yè)內(nèi)網(wǎng)和互聯(lián)網(wǎng)直接,構(gòu)建一個(gè)轉(zhuǎn)換層,作為反向轉(zhuǎn)換服務(wù)組件使用,實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的訪問。如:電信企業(yè)使用裝維寶APP自身實(shí)現(xiàn)某些功能,在展示工單信息時(shí),點(diǎn)擊工單連接,能夠連接到CRM提供的工單查詢頁(yè)面,展示CRM工單查詢自適配網(wǎng)頁(yè)的內(nèi)容。

1 移動(dòng)終端自適配網(wǎng)頁(yè)的特點(diǎn)分析

移動(dòng)終端自適配網(wǎng)頁(yè)是指第5代HTML(超文本標(biāo)記語(yǔ)言),也指用H5語(yǔ)言制作的一切數(shù)字產(chǎn)品。網(wǎng)上的網(wǎng)頁(yè),多數(shù)都是由HTML寫成的。“超文本”是指頁(yè)面內(nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素。而“標(biāo)記”指的是這些超文本必須由包含屬性的開頭與結(jié)尾標(biāo)志來標(biāo)記。瀏覽器通過解碼HTML,就可以把網(wǎng)頁(yè)內(nèi)容顯示出來[1~3]。

由于自適配網(wǎng)頁(yè)提供了全新的框架和平臺(tái),包括提供免插件的音視頻、圖像動(dòng)畫、本體存儲(chǔ)以及更多酷炫而且重要的功能,許多資源都可以直接在H5框架上承載,因此在進(jìn)行轉(zhuǎn)換的時(shí)候,更要注重資源地址的緩存。

2 網(wǎng)頁(yè)轉(zhuǎn)換的基本流程

轉(zhuǎn)換實(shí)現(xiàn)業(yè)務(wù)流程分2步:

1) 頁(yè)面能力注冊(cè)

類似CRM、集團(tuán)等平臺(tái)(以下稱為HTTPServer)把需要開放出來給其他系統(tǒng)共用的頁(yè)面向轉(zhuǎn)換服務(wù)器注冊(cè),使得服務(wù)器能夠了解服務(wù)端信息,調(diào)用地址,URL參數(shù)要求等并對(duì)外開放。

2) HTTP轉(zhuǎn)換轉(zhuǎn)發(fā)

其他需要訪問移動(dòng)終端自適配網(wǎng)頁(yè)的系統(tǒng)(稱為HTTPClient)直接連接到轉(zhuǎn)換服務(wù)端,通過轉(zhuǎn)換中間層來訪問這些開放的界面。流程圖如下:

詳細(xì)流程:

以下說明HTTPClient、Proxy模塊、HTTPServer三者的交互及實(shí)現(xiàn)機(jī)制約定。

HTTPClient具體功能:

a) 頁(yè)面集成h5的開放H5界面。

b) 調(diào)用Proxy服務(wù),獲取令牌。

c) 調(diào)用移動(dòng)終端自適配網(wǎng)頁(yè)(send http request Header),通過HTTP/HTTPS方式(Post/Get/Connect)獲取需要的頁(yè)面能力,其所請(qǐng)求的URL地址中需要攜帶access_token以及業(yè)務(wù)上所需要的參數(shù)。

注:對(duì)完全開放能力(無須鑒權(quán)),則不需要進(jìn)行token生產(chǎn),獲取??芍苯釉L問開放的移動(dòng)終端自適配網(wǎng)頁(yè)。

HTTPServer:提供移動(dòng)終端自適配網(wǎng)頁(yè)的服務(wù),當(dāng)Proxy向HTTPServer請(qǐng)求訪問頁(yè)面時(shí),能根據(jù)業(yè)務(wù)響應(yīng)結(jié)果輸出移動(dòng)終端自適配網(wǎng)頁(yè)。

Proxy功能:包括

a) 令牌生產(chǎn)服務(wù):Proxy根據(jù)一定的算法來生成access_token 。訪問網(wǎng)元可以向Proxy請(qǐng)求獲取令牌。

b) 實(shí)現(xiàn)HTTP轉(zhuǎn)換功能,接收HTTPClient 的請(qǐng)求數(shù)據(jù),向HTTPServer發(fā)起請(qǐng)求。

c) 接收HTTPServer響應(yīng)數(shù)據(jù),更新數(shù)據(jù)包中資源地址信息,并輸出到HTTPClient.

3 Proxy設(shè)計(jì)

Proxy實(shí)現(xiàn)的流程:

1)令牌生產(chǎn)服務(wù):Proxy根據(jù)一定的算法來生成access_token 。訪問網(wǎng)元可以向Proxy請(qǐng)求獲取令牌。

2)實(shí)現(xiàn)HTTP轉(zhuǎn)換功能,接收HTTPClient 的請(qǐng)求數(shù)據(jù)。

a) HTTPClient向EOPproxy模塊發(fā)送HttpRequest(GET/POST);

b) Proxy模塊讀取請(qǐng)求頭,抽取出請(qǐng)求的具體目標(biāo)服務(wù)器HOST和PORT;

c) 進(jìn)行URL解析,并鑒權(quán)(包含令牌校驗(yàn),IP校驗(yàn),訪問權(quán)限校驗(yàn)),轉(zhuǎn)換URL信息(如剔除access_token信息,),生成目標(biāo)URL地址。

d) Proxy把請(qǐng)求頭發(fā)送給目標(biāo)服務(wù)器;

e) Proxy建立管道,供客戶端和目標(biāo)服務(wù)器通信。(一般是把輸入輸出IO流的數(shù)據(jù)雙向讀寫)。

TOKEN令牌生成服務(wù):

Proxy 提供令牌生成服務(wù)和令牌校驗(yàn)服務(wù)。

1)令牌授權(quán)依據(jù)一定的時(shí)間(不同頁(yè)面的令牌時(shí)間不同,可設(shè)置)。

訪問者當(dāng)令牌失效或錯(cuò)誤時(shí),可以申請(qǐng)重新生成。

訪問方第一次發(fā)起時(shí),向Proxy獲取令牌,在設(shè)置的有效期內(nèi)可以一直使用。

時(shí)間過期后,重新獲取。

2)令牌生成規(guī)則:

String t=請(qǐng)求網(wǎng)元編號(hào)||目標(biāo)頁(yè)面能力索引||訪問網(wǎng)元的私鑰信息|| 獲取當(dāng)前時(shí)間||有效期

注意:如果訪問網(wǎng)元信息為空,則隨機(jī)產(chǎn)生一串32位字符串,替換私鑰信息的值。

Access_token=MD5(string t)

3)令牌獲取作為單獨(dú)的一個(gè)服務(wù)存在。

4 高性能的進(jìn)程設(shè)計(jì)模式

如果一個(gè)server采用一個(gè)進(jìn)程負(fù)責(zé)一個(gè)request的方式,那么進(jìn)程數(shù)就是并發(fā)數(shù)。那么顯而易見的,就是會(huì)有很多進(jìn)程在等待中。等什么?最多的應(yīng)該是等待網(wǎng)絡(luò)傳輸。其缺點(diǎn)就是并發(fā)程度低,性能不足。

參考nginx 的異步非阻塞工作方式,利用了這點(diǎn)等待的時(shí)間。在需要等待的時(shí)候,這些等待進(jìn)程就空閑出來待命了。因此少數(shù)幾個(gè)進(jìn)程就解決了大量的并發(fā)問題。

自適配網(wǎng)頁(yè)轉(zhuǎn)換模塊需要如何利用進(jìn)程的?舉例同樣的4個(gè)進(jìn)程,如果采用一個(gè)進(jìn)程負(fù)責(zé)一個(gè)request的方式,那么,同時(shí)進(jìn)來4個(gè)request之后,每個(gè)進(jìn)程就負(fù)責(zé)其中一個(gè),直至?xí)掙P(guān)閉。在此期間,如果有第5個(gè)request進(jìn)來了。就無法及時(shí)反映了,因?yàn)?個(gè)進(jìn)程都沒干完活。因此,一般有個(gè)調(diào)度進(jìn)程,每當(dāng)新進(jìn)來了一個(gè)request,就新開個(gè)進(jìn)程來處理。因此轉(zhuǎn)換模塊不適合這樣設(shè)計(jì)。

自適配網(wǎng)頁(yè)的轉(zhuǎn)換模塊可以采用每進(jìn)來一個(gè)請(qǐng)求,會(huì)有一個(gè)工作進(jìn)程去處理。但不是全程的處理,處理到可能發(fā)生阻塞的地方,比如向上游(后端)服務(wù)器轉(zhuǎn)發(fā)request,并等待請(qǐng)求返回。這個(gè)處理的工作進(jìn)程不會(huì)這么等著,他會(huì)在發(fā)送完請(qǐng)求后,注冊(cè)一個(gè)事件:“如果upstream返回了,通知我,我再接著干”,然后休眠該進(jìn)程。此時(shí),如果再有request 進(jìn)來,工作進(jìn)程就可以很快再按這種方式處理。而一旦上游服務(wù)器返回了,就會(huì)觸發(fā)這個(gè)事件,該進(jìn)程才會(huì)來接手,這個(gè)請(qǐng)求才會(huì)接著往下走。

由于web server的工作性質(zhì)決定了每個(gè)request的大部分生命都是在網(wǎng)絡(luò)傳輸中,實(shí)際上花費(fèi)在服務(wù)器上的時(shí)間不多。這樣幾個(gè)進(jìn)程就能解決高并發(fā)的性能問題。

5 總結(jié)

本文通過分析自適配網(wǎng)頁(yè)與普通web的差異,提出了一種解決自適配網(wǎng)頁(yè)轉(zhuǎn)換的資源轉(zhuǎn)換的方案,該方案的實(shí)現(xiàn)與現(xiàn)有web轉(zhuǎn)換技術(shù),如Nginx,Tomcat等有著本質(zhì)上的區(qū)別,相對(duì)來講流程更簡(jiǎn)單,技術(shù)實(shí)現(xiàn)更方便了,并且提供了令牌的授權(quán)機(jī)制,能夠有效地進(jìn)行訪問控制。最后描述了高性能進(jìn)程的設(shè)計(jì)方案,以盡可能提高轉(zhuǎn)換模塊的性能。

參考文獻(xiàn):

[1] 杜友福,程彩鳳,趙鳴. 搜索引擎中智能代理技術(shù)及啟發(fā)式搜索策略研究[J]. 長(zhǎng)江大學(xué)學(xué)報(bào)(自然科學(xué)版)理工卷,2009,6(02):63-65+407.

[2] 李紹英. 基于代理技術(shù)的比較購(gòu)物研究[J]. 當(dāng)代經(jīng)理人,2006(10):95-96.

[3] 劉正東,張秉權(quán). 實(shí)時(shí)瀏覽翻譯網(wǎng)站的搜索引擎代理技術(shù)[J]. 兵工自動(dòng)化,2001(02):54-56.