版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
目錄
1.項目建設方案..............................................3
1.1.項目建設原則..........................................3
1.1.1.先進性原則......................................3
1.1.2.標準性原則.......................................3
1.1.3.可用性原則.......................................3
1.1.4.經(jīng)濟、實用性原則................................3
1.1.5.開放式、組件化設計原則..........................4
1.1.6.安全、可靠性原則.................................4
L2.總體設計...............................................4
1.2.1.總體架構設計.....................................4
1.2.2.總體技術架構.....................................6
1.2.3.系統(tǒng)安全設計....................................41
1.2.4.系統(tǒng)性能設計....................................45
1.2.5.系統(tǒng)部署設計...................................53
1.3.安全建設方案..........................................56
1.3.1,安全建設需求分析................................56
1.3.2.安全建設目標....................................57
1.3.3.安全設計架構....................................57
1.3.4.基礎設施安全....................................60
1.3.5.平臺安全........................................74
1.4.技術管理與項目保障....................................91
1.4.1.項目進度控制...................................91
1.4.2.實施開發(fā)方法...................................94
1.4.3.項目建設過程..................................114
1.4.4.項目階段交付物................................126
1.5.售后服務及質(zhì)保措施..................................129
1.5.1.售后服務內(nèi)容及措施............................129
2.對本項目的實施意見及重點、難點控制.........................148
2.1.項目建設優(yōu)化建議.....................................148
2.1.1.項目建設階段分析................................148
2.1.2.風險評估........................................153
2.1.3.項目優(yōu)化建議....................................154
2.2.項目建設改進措施.....................................157
2.2.1.針對項目安全的改進..............................157
2.2.2.針對項目風險指定的風險緩解方案..................160
2.2.3.針對項目性能的改進..............................161
2
1.項目建設方案
LL項目建設原則
在保證平臺安全可靠的前提下,使應用平臺易用、可維護、可擴
展。具體地講,我們在進行平臺應用軟件的設計中遵循以下主要原則:
1.1.1.先進性原則
采用目前國際上先進而成熟的計算機軟、硬件技術,使系統(tǒng)具有
較高的技術水平和較長的生命周期。它同時也保證了平臺具有良好的
開放性、可靠性及可擴展性,能夠滿足未來企業(yè)發(fā)展的需要。
1.L2.標準性原則
平臺所采用的產(chǎn)品和技術,滿足ISO標準。平臺軟件、硬件、編
碼、文檔、操作平臺、網(wǎng)絡協(xié)議等以及所采用的開發(fā)技術遵循相應的
國際標準和國家標準。
1.1.3.可用性原則
應用的可用性指平臺是否具有簡單、易用,和功能完善的可管理
性。應用應具有友好的用戶界面,使用戶便于掌握、能方便地解決具
體的實際問題。應用還應具有使用方便的日常維護和管理工具,可根
據(jù)管理制度和規(guī)程的要求,對一些諸如權限管理、應用配置等進行調(diào)
整。另外還包括應用的可維護性和可擴充性等。
1.1.4.經(jīng)濟、實用性原則
經(jīng)濟、實用性包括三個方面。一是盡可能保障現(xiàn)有的資源(包括
硬件資源和軟件資源)能夠得到充分利用,在保證平臺性能并達到要
求的前提下,盡量使平臺投資最省。二是確保平臺具有良好的性能、
3
較高的處理效率,且配置和使用靈活。三是以實際各管理業(yè)務流程為
基礎,但不是成為手工系統(tǒng)的仿真,而是加以提煉并提高,使其對管
理水平的提高有所幫助。
1.L5.開放式、組件化設計原則
使應用保持開放性以便于應用的擴展,平臺具備擴充的接口與手
段,在應用的規(guī)模與功能需要增長時,可以保證平臺的平滑升級與擴
充。體現(xiàn)在軟件的設計上表現(xiàn)在應用基礎平臺設計、數(shù)據(jù)結構設計、
軟件構件化程序、軟件文檔的實用和規(guī)范,以及公共部件,應用類庫
的開放程度等方面。
1.1.6.安全、可靠性原則
建立完整嚴密的網(wǎng)絡資源和應用數(shù)據(jù)的存取控制體系,嚴格區(qū)分
網(wǎng)絡用戶的權限,防止越權使用數(shù)據(jù)信息。同時,采用高度可靠和穩(wěn)
定的企業(yè)級網(wǎng)絡操作系統(tǒng)、操作平臺和相應的硬件平臺,并從軟硬件
兩方面采取一定策略保證信息存儲和訪問可靠。同時,保障應用具備
安全備份和恢復的功能。
1.2.總體設計
1.2.1.總體架構設計
通過對項目需求的理解分析,我們認為項目總體架構應該從基礎
設施、數(shù)據(jù)資源、組件支撐、功能應用和對外展現(xiàn)幾個方面統(tǒng)籌考慮。
項目總體架構設計具體如下:
4
(1)基礎設施層
基礎設施層定位于為項目提供基礎軟硬件支持,由本項目提供主
機、存儲、網(wǎng)絡等云平臺服務,同時部署負載均衡設備、下一代防火
墻、態(tài)勢感知平臺等安全設備。
(2)數(shù)據(jù)資源層
數(shù)據(jù)資源層定位于平臺信息資源資源中心,匯聚各類數(shù)據(jù)資源,
并實現(xiàn)數(shù)據(jù)資源采集、資源處理、資源建模、資源存儲、資源管理、
資源監(jiān)管等數(shù)據(jù)資源的全生命周期管理。項目按照XXXX工業(yè)有限責
任公司通用的資源分類方法對資源進行存儲和管理,通用的分類包括
信息發(fā)布庫、功能服務庫、用戶信息庫、用戶行為庫、資源目錄庫、
數(shù)據(jù)開放庫等。
(3)支撐層
支撐層是支撐移動平臺各項功能的核心,是保障平臺安全、高效、
穩(wěn)定運行的關鍵所在。支撐層包括兩部分,一部分是技術支撐組件,
包括服務發(fā)布引擎、ETL數(shù)據(jù)整合軟件、圖形數(shù)據(jù)庫引擎、分布式消
息組件等技術組件;另一部分是應用支撐,可實現(xiàn)對平臺各類應用的
5
統(tǒng)一標準化支撐與管理,包括統(tǒng)一服務管理、統(tǒng)一身份認證、統(tǒng)一用
戶管理、統(tǒng)一權限管理、統(tǒng)一表單管理、統(tǒng)一安全審計、統(tǒng)一流程管
理、統(tǒng)一業(yè)務支撐等。
(4)應用層
應用層提供移動平臺的各項應用功能,平臺應用功能包括4大部
分,分別是移動審批、綜合管理類應用、安全質(zhì)保類應用以及生產(chǎn)管
理類應用。
(5)展現(xiàn)層
移動平臺的各類應用支持PC端、移動端等多種方式統(tǒng)一調(diào)用、
統(tǒng)一展現(xiàn)。
1.2.2.總體技術架構
1.2.2.1.云計算視角的技術架構設計
項目總體技術采用云計算技術,我方提供的平臺產(chǎn)品采用微服務
和分布式架構進行構建。軟件平臺體系架構具備良好的靈活性與開放
性,能夠方便部署新的業(yè)務系統(tǒng)或者新增功能模塊,能夠方便地和關
聯(lián)系統(tǒng)的軟件、硬件系統(tǒng)進行整合,實現(xiàn)數(shù)據(jù)共享和聯(lián)通。從云計算
的角度,本平臺分為laaS層、DaaS層、PaaS層和SaaS層,)
系統(tǒng)采用JAVA語言開發(fā),支持Tomcat>WebLogic>WebSphere
等多種應用服務器運行平臺,遵循通用瀏覽器規(guī)范實現(xiàn),支持HTML、
DHTML等通用的標準。采用成熟的后端開發(fā)框架并支持多數(shù)據(jù)源應用,
提供插件庫,能夠將上傳、下載、即時通信、內(nèi)存數(shù)據(jù)庫等功能組件
化,形成對應的插件庫。并形成標準API,能夠快速實現(xiàn)業(yè)務形態(tài)調(diào)
6
整。數(shù)據(jù)庫采用oracle大型關系型數(shù)據(jù)庫。
(1)laaS層服務設計
laaS層基礎設施即服務(Infrastructureasaservice)。提
供給用戶的服務是對所有計算基礎設施的利用,包括處理計算、存儲、
網(wǎng)絡和其它基本的硬件資源,用戶能夠部署和運行有需要軟件,包括
操作系統(tǒng)和應用程序。用戶不管理或控制任何云計算基礎設施,但能
控制操作系統(tǒng)的選擇、存儲空間、部署的應用。laaS層由專業(yè)云服
務廠商提供云主機、云存儲、云網(wǎng)絡、云安全、云管理等基礎設施層
服務。
(2)DaaS層服務設計
DaaS層數(shù)據(jù)即服務(Data-as-a-service)。提供分布式數(shù)據(jù)庫、
全文數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫、緩存數(shù)據(jù)庫、分布式文件系統(tǒng)等數(shù)據(jù)相
關的服務,實現(xiàn)數(shù)據(jù)資源采集、資源處理、資源建模、資源存儲、資
源管理、資源監(jiān)管等數(shù)據(jù)資源的全生命周期管理。
(3)PaaS層服務設計
PaaS層平臺即服務(Platfornras-a-Service)。PaaS承擔了“承
上啟下”的重要使命,銜接了上層應用功能,對接調(diào)度下層基礎資源,
是整個平臺建設的核心能力支撐層。平臺采用微服務架構進行構建,
將業(yè)務系統(tǒng)完全組件化和服務化,可輔以容器技術將各類應用封裝為
統(tǒng)一的、標準的容器鏡像,屏蔽了不同模塊之間的差異化,使得平臺
微服務化應用的開發(fā)、部署與運維變得簡單方便。同時提供文本分析
引擎、內(nèi)容發(fā)布、智能檢索、身份認證、監(jiān)控、日志、消息隊列等基
7
礎應用支持,為系統(tǒng)的高效穩(wěn)定運行、資源彈性伸縮提供了良好的支
撐。
(4)SaaS層服務設計
SaaS層軟件即服務(Software-as-a-Service)。SaaS層應用服
務體系包括了移動審批、綜合管理類應用、安全質(zhì)保類應用以及生產(chǎn)
管理類應用等四部分,重點提供采購管理、合同管理、生產(chǎn)運行管理、
公文文檔管理等應用。
系統(tǒng)總體采用混合云模式構建,混合云是一種IT架構,在
兩個或更多環(huán)境中進行某種程度的工作負載移植、編排和管理。
當計算和處理需求波動時,混合云計算使企業(yè)能夠將其本地基礎
設施無縫擴展到公共云以處理任何溢出,而無需提供第三方數(shù)據(jù)
集中訪問整個數(shù)據(jù)。組織可以獲得公共云的靈活性和計算能力,
用于基本和非敏感計算任務,同時將業(yè)務關鍵型應用程序和數(shù)據(jù)
安全地部署在組織防火墻之后。它允許企業(yè)根據(jù)自己對特定功能
的獨特成本效益分析來定制其IT基礎設施。這些可能包括對經(jīng)濟
實惠的高速處理(可能僅通過云計算提供商提供)以及在內(nèi)部維
護某些關鍵任務數(shù)據(jù)或應用程序的愿望,因此即使是互聯(lián)網(wǎng)連接
問題也不會減慢企業(yè)正常運作的速度。混合云能夠為親們提供更
好的安全性,因為它在同一環(huán)境下結合使用公共和私有云服務。
所有敏感方面都可以通過由組織完全控制的私有云系統(tǒng)來處理。
可以輕松調(diào)整和配置混合云,無需依賴任何各種外部公共云服務
提供商(麻煩、繁瑣、步驟多、流程多、操作復雜)。所以,混
8
合云是邊緣計算的基礎。這種互聯(lián)體現(xiàn)了工作負載的移動方式、
統(tǒng)一管理的方式,以及流程的編排方式。這些連接的完善程度,
直接影響著混合云的工作效果。
1.2.2.2,微服務和分布式視角的技術架構設計
移動平臺的技術架構重點關注如何滿足平臺的技術要求、安全要
求、性能要求、可伸縮性要求、部署要求、靈活性要求等,從微服務
和分布式的視角,
本項R將采用微服務框架,把一個大型的單個應用程序和服務拆
分為數(shù)個甚至數(shù)十個的支持微服務,它可擴展單個組件而不是整個的
應用程序堆棧,從而滿足服務等級協(xié)議。本項目將圍繞業(yè)務領域組件
來創(chuàng)建應用,這些應用可獨立地進行開發(fā)、管理和迭代。在分散的組
件中使用云架構和平臺式部署、管理和服務功能,使產(chǎn)品交付變得更
加簡單。
本項目中的N個組件和UI之間通過APIGateway進行訪問與調(diào)
度,其作用包括:
①提供統(tǒng)一服務入口,讓微服務對前臺透明
②聚合后臺的服務,節(jié)省流量,提升性能
③提供安全,過濾,流控等API管理功能
所有的微服務組件都是獨立的Java進程跑在獨立的虛擬機上,
服務間的通信可通過異步消息中心完成(Kafka,Notify,MQ等)。異步
消息的方式在分布式系統(tǒng)中有特別廣泛的應用,他既能減低調(diào)用服務
之間的耦合,又能成為調(diào)用之間的緩沖,確保消息積壓不會沖垮被調(diào)
9
用方,同時能保證調(diào)用方的服務體驗,繼續(xù)干自己該干的活,不至于
被后臺性能拖慢。從根本上解決突發(fā)性、臨時性的特殊活動期間大規(guī)
模并發(fā)訪問,導致系統(tǒng)性能下降或應用無法提供服務的情況。=導致
系統(tǒng)后臺運行緩慢并發(fā)隊列延遲等待的問題也將得以解決。
在微服務架構中,每個組件有自己獨立的業(yè)務邏輯,可以根據(jù)自
身的訪問壓力和存儲特點進行分布式多節(jié)點部署與擴展。一般每一個
服務都是有多個拷貝,來做負載均衡。一個服務隨時可能下線,也可
能應對臨時訪問壓力增加新的服務節(jié)點。服務之間相互感知和管理通
過zookeeper等類似技術做服務注冊信息的分布式管理。當服務上線
時,服務提供者將自己的服務信息注冊到ZK(或類似框架),并通
過心跳維持長鏈接,實時更新鏈接信息。服務調(diào)用者通過ZK尋址,
根據(jù)可定制算法,找到一個服務,還可以將服務信息緩存在本地以提
高性能。當服務下線時,ZK會發(fā)通知給服務客戶端。
1.2.2.3.項目關鍵技術路線
項目總體技術采用云計算技術。平臺產(chǎn)品采用微服務和分布式架
構進行構建。軟件平臺體系架構具備良好的靈活性與開放性,能夠方
便部署新的業(yè)務系統(tǒng)或者新增功能模塊,能夠方便地和公司關聯(lián)系統(tǒng)
的軟件、硬件系統(tǒng)進行整合,實現(xiàn)數(shù)據(jù)共享和聯(lián)通。
1.2.2.4.云計算
云計算(CloudComputing)是分布式計算
(DistributedComputing)、并行計算(ParalleiComputing)、效
用計算(UtilityComputing)、網(wǎng)絡存儲
10
(NetworkStorageTechnologies)、虛擬化(Virtualization)、負
載均衡(LoadBalance)>熱備份冗余(HighAvailable)等傳統(tǒng)計算
機和網(wǎng)絡技術發(fā)展融合的產(chǎn)物。云計算是一種按使用量付費的模式,
這種模式提供可用的、便捷的、按需的網(wǎng)絡訪問,進入可配置的計算
資源共享池(資源包括網(wǎng)絡,服務器,存儲,應用軟件,服務),這
些資源能夠被快速提供,只需投入很少的管理工作。云計算是通過使
計算分布在大量的分布式計算機上,而非本地計算機或遠程服務器
中,這使得用戶業(yè)能夠將資源切換到需要的應用上,根據(jù)需求訪問計
算機和存儲系統(tǒng)。云計算特點如下:
(D超大規(guī)模
“云”具有相當?shù)囊?guī)模,Google云計算已經(jīng)擁有100多萬臺服
務器,Amazon、IBM、微軟、Yahoo等的“云”均擁有幾十萬臺服務
器。企業(yè)私有云一般擁有數(shù)百上千臺服務器?!霸啤蹦苜x予用戶前所
未有的計算能力。
(2)虛擬化
云計算支持用戶在任意位置、使用各種終端獲取應用服務。所請
求的資源來自“云”,而不是固定的有形的實體。應用在“云”中某
處運行,但實際上用戶無需了解、也不用擔心應用運行的具體位置。
只需要一臺筆記本或者一個手機,就可以通過網(wǎng)絡服務來實現(xiàn)我們需
要的一切,甚至包括超級計算這樣的任務。
(3)高可靠性
“云”使用了數(shù)據(jù)多副本容錯、計算節(jié)點同構可互換等措施來保
11
障服務的高可靠性,使用云計算比使用本地計算機可靠。
(4)通用性
云計算不針對特定的應用,在“云”的支撐下可以構造出千變?nèi)f
化的應用,同一個“云”可以同時支撐不同的應用運行。
(5)高可擴展性
“云”的規(guī)??梢詣討B(tài)伸縮,滿足應用和用戶規(guī)模增長的需要。
(6)按需服務
云計算環(huán)境下,軟件技術、架構將發(fā)生顯著變化。首先,所開發(fā)
的軟件必須與云相適應,能夠與虛擬化為核心的云平臺有機結合,適
應運算能力、存儲能力的動態(tài)變化;二是要能夠滿足大量用戶的使用,
包括數(shù)據(jù)存儲結構、處理能力;三是要互聯(lián)網(wǎng)化,基于互聯(lián)網(wǎng)提供軟
件的應用;四是安全性要求更高,可以抗攻擊,并能保護私有信息;
五是可工作于移動終端、手機、網(wǎng)絡計算機等各種環(huán)境。
1.2.2.5.微服務架構
微服務的基本思想在于考慮圍繞著業(yè)務領域組件來創(chuàng)建應用,這
些就應用可獨立地進行開發(fā)、管理和加速。在分散的組件中使用微服
務云架構和平臺使部署、管理和服務功能交付變得更加簡單。
微服務架構它提倡將單一應用程序劃分成一組小的服務,服務之
間互相協(xié)調(diào)、互相配合,為用戶提供最終價值。每個服務都圍繞著具
體業(yè)務進行構建,并且能夠被獨立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。
另外,應盡量避免統(tǒng)一的、集中式的服務管理機制,對具體的一個服
務而言,應根據(jù)業(yè)務上下文,選擇合適的語言、工具對其進行構建。
12
微服務架構提倡將單一應用程序劃分成一組小的服務,服務之間
互相協(xié)調(diào)、互相配合,為用戶提供最終價值。每個服務運行在其獨立
的進程中,服務于服務間采用輕量級的通信機制互相溝通(通常是基
于HTTP的RESTfulAPI)。每個服務都圍繞著具體業(yè)務進行構建,
并且能夠被獨立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。微服務架構新特
性如下:
(1)單一職責
微服務架構中的每個服務,都是具有業(yè)務邏輯的,符合高內(nèi)聚、
低耦合原則以及單一職責原則的單元,不同的服務通過“管道”的方
式靈活組合,從而構建出龐大的系統(tǒng)。
(2)輕量級通信
服務之間通過輕量級的通信機制實現(xiàn)互通互聯(lián),而所謂的輕量
級,通常指語言無關、平臺無關的交互方式。
對于輕量級通信的格式而言,我們熟悉的XML和JSON,它們是
語言無關、平臺無關的;對于通信的協(xié)議而言,通?;贖TTP,能
讓服務間的通信變得標準化、無狀態(tài)化。目前大家熟悉的REST
(RepresentationalStateTransfer)是實現(xiàn)服務間互相協(xié)作的輕
量級通信機制之一。使用輕量級通信機制,可以讓團隊選擇更適合的
語言、工具或者平臺來開發(fā)服務本身。
(3)獨立性
在微服務架構中,每個服務都是獨立的業(yè)務單元,與其他服務高
度解耦,只需要改變當前服務本身,就可以完成獨立的開發(fā)、測試和
13
部署。微服務架構提供自主管理其相關的業(yè)務數(shù)據(jù),這樣可以隨著業(yè)
務的發(fā)展提供數(shù)據(jù)接口集成,而不是以數(shù)據(jù)庫的方式同其他服務集
成。另外,隨著業(yè)務的發(fā)展,可以方便地選擇更合的工具管理或者遷
移業(yè)務數(shù)據(jù)。
(4)進程隔離
在微服務架構中,應用程序由多個服務組成,每個服務都是高度
自治的獨立業(yè)務實體,可以運行在獨立的進程中,不同的服務能非常
容易地部署到不同的主機上。
理論上所有服務可以部署在同一個服務器節(jié)點,但是并不推薦這
么做,因為微服務架構的主旨就是高度自治和高度隔離。
(5)技術多樣性
微服務架構中,提倡針對不同的業(yè)務特征選擇合適的技術方案,
有針對性的解決具體業(yè)務問題,而不是像單塊架構中采用統(tǒng)一的平臺
或技術來解決所有問題。
(6)基礎設施自動化
在微服務架構的實踐過程中,對持續(xù)交付和部署流水線的要求很
高,將促進企業(yè)不斷尋找更高效的方式完成基礎設施的自動化及
DevOps運維能力的提升。
微服務架構與單體架構的對比如下:
微服務架構與單體架構對比
對比點微服務架構單體架構結論
上手難API接口調(diào)用數(shù)據(jù)庫共享或本地程序單體架
14
度調(diào)用構勝
開發(fā)效早期設計和溝通的工作
早期工作量小,隨著項目
率(簡量加大,隨著項目規(guī)模和單體架
規(guī)模和時間的推移,效率
單項時間的推移,效率變化不構勝
大幅度下降
目)大
開發(fā)效早期設計和溝通的工作
早期工作量小,隨著項目
率(復量加大,隨著項目規(guī)模和微服務
規(guī)模和時間的推移,效率
雜項時間的推移,效率變化不架構勝
大幅度下降
目)大
以包的形式對代碼進行
系統(tǒng)設每個業(yè)務單獨包裝成一
模塊劃分,控制得當即可
計(高個微服務,數(shù)據(jù)和代碼都微服務
實現(xiàn)高內(nèi)聚。但最終都是
內(nèi)聚低從物理上隔離開來,實現(xiàn)架構勝
在數(shù)據(jù)層面將整個系統(tǒng)
耦合)高內(nèi)聚低耦合相對容易
耦合在一起
系統(tǒng)設
獨立開發(fā)新模塊,通過A在現(xiàn)有系統(tǒng)上修改,與現(xiàn)微服務
計(擴
PI與現(xiàn)有模塊交互存業(yè)務邏輯高度耦合架構勝
展性)
需求變各個微服務組件獨立變需要了解整個系統(tǒng)才可
微服務
更響應更,容易實施敏捷開發(fā)方以正確修改,容易導致不
架構勝
速度法相關模塊的意外失敗
系統(tǒng)升各個微服務組件獨立升需要了解整個系統(tǒng)才可微服務
級效率級,上手和開發(fā)效率高,以正確修改,容易導致不架構勝
15
影響面小相關模塊的意外失敗
大系統(tǒng)被拆分為多個小
系統(tǒng),部署和運維難度加
運維效單體架
大,但可以利用DevOps簡單直接
率構勝
等方式將運維工作自動
化
微服務組件可以在新項
知識積一般以共享庫的形式復微服務
目中直接復用,包括前端
累用后臺代碼架構勝
頁面
硬件需
一個系統(tǒng)需部署多個微
求(簡整個系統(tǒng)只需要一個運單體架
服務,需要啟動多個運行
單項行容器構勝
容器
目)
硬件需
求(高按需為不同業(yè)務模塊伸為整個系統(tǒng)分配資源,導微服務
要求項縮資源節(jié)點致冗余架構勝
目)
項目成
本(簡項目早期和后期,成本變項目早期成本低,后期成單體架
單系化曲線平緩本大構勝
統(tǒng))
16
項目成
本(復項目早期和后期,成本變項目早期成本低,后期成微服務
雜系化曲線平緩本大架構勝
統(tǒng))
為單獨的微服務按需調(diào)
非功能為整個系統(tǒng)調(diào)優(yōu),牽一發(fā)微服務
優(yōu),甚至更換實現(xiàn)方式和
需求而動全身架構勝
程序語言
擁有明確的職責劃分,主
職責、職責不明確,容易產(chǎn)生扯微服務
人翁意識和成就感加強,
成就感皮行為架構勝
容易形成自組織型團隊
大系統(tǒng)被拆分為小系統(tǒng),
風險可被控制在小系統(tǒng)系統(tǒng)是一個整體,一榮俱微服務
風險
內(nèi),但也引入了各小系統(tǒng)榮,一損俱損架構勝
之間的交互風險
L2.2.5.1.分布式系統(tǒng)
分布式軟件系統(tǒng)是支持分布式處理的軟件系統(tǒng),是在由通信網(wǎng)絡
互聯(lián)的多處理機體系結構上執(zhí)行任務的系統(tǒng)。它包括分布式操作系
統(tǒng)、分布式程序設計語言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分
布式數(shù)據(jù)庫系統(tǒng)等。
?分布式文件系統(tǒng):具有執(zhí)行遠程文件存取的能力,并以透明方
式對分布在網(wǎng)絡上的文件進行管理和存取。
?分布式數(shù)據(jù)庫系統(tǒng):由分布于多個計算機結點上的若干個數(shù)據(jù)
17
庫系統(tǒng)組成,它提供有效的存取手段來操縱這些結點上的子數(shù)據(jù)庫。
分布式數(shù)據(jù)庫在使用上可視為一個完整的數(shù)據(jù)庫,而實際上它是分布
在地理分散的各個結點上。當然,分布在各個結點上的子數(shù)據(jù)庫在邏
輯上是相關的。
分布式系統(tǒng)要比其他體系結構如處理機和共享存儲器多處理機
更優(yōu)越。
分布式系統(tǒng)優(yōu)勢
本地自治不依賴于中心場地
可連續(xù)操作性位置獨立性
分片獨立性復制獨立性
分布式查詢處理分布式事務管理
硬件獨立性操作系統(tǒng)獨立性
網(wǎng)絡獨立性DBMS獨立性
1.2.2.5.2.大數(shù)據(jù)
一、大數(shù)據(jù)的基木概念
大數(shù)據(jù)(BigData),指無法在一定時間范圍內(nèi)用常規(guī)軟件工具
進行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強
的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的
信息資產(chǎn)。
.數(shù)據(jù)
關于數(shù)據(jù)的定義,大概沒有一個權威版本。為方便,此處使用一
18
個簡單的工作定義:數(shù)據(jù)是可以獲取和存儲的信息。
直觀而言,表達某種客觀事實的數(shù)值是最容易被人們識別的數(shù)據(jù)
(因為那是“數(shù)”)。但實際上,人類的一切語言文字、圖形圖畫、音
像記錄,所有感官可以察覺的事物,只要能被記下來,能夠查詢到,
就都是數(shù)據(jù)(data)。
不過數(shù)值是所有數(shù)據(jù)中最容易被處理的一種,許多和數(shù)據(jù)相關的
概念,例如下面的數(shù)據(jù)可視化和數(shù)據(jù)分析,最早是立足于數(shù)值數(shù)據(jù)的。
傳統(tǒng)意義上的數(shù)據(jù)一詞,尤其是相對于今天的“大數(shù)據(jù)”的“小
數(shù)據(jù)”,主要指的就是數(shù)值數(shù)據(jù),甚至在很多情況下專指統(tǒng)計數(shù)值數(shù)
據(jù)。這些數(shù)值數(shù)據(jù)用來描述某種客觀事物的屬性。
2.數(shù)據(jù)可視化
對應英語的datavisulization(或可譯為數(shù)據(jù)展示),指通過圖
表將若干數(shù)字以直觀的方式呈現(xiàn)給讀者。比如非常常見的餅圖、柱狀
圖、走勢圖、熱點圖、K線等等,目前以二維展示為主,不過越來越
多的三維圖像和動態(tài)圖也被用來展示數(shù)據(jù)。
3.數(shù)據(jù)分析
這一概念狹義上,指統(tǒng)計分析,即通過統(tǒng)計學手段,從數(shù)據(jù)中精
煉對現(xiàn)實的描述。例如:針對以關系型數(shù)據(jù)庫中以table形式存儲的
數(shù)據(jù),按照某些指定的列進行分組,然后計算不同組的均值、方差、
分布等。再以可視化的方式講這些計算結果呈現(xiàn)出來。目前很多文章
中提及的數(shù)據(jù)分析,其實是包括數(shù)據(jù)可視化的。
4.數(shù)據(jù)挖掘
19
這個概念的定義也是眾說紛紜,落到實際,主要是在傳統(tǒng)統(tǒng)計學
的基礎上,結合機器學習的算法,對數(shù)據(jù)進行更深層次的分析,并從
中獲取一些傳統(tǒng)統(tǒng)計學方法無法提供的Insights(比如預測)o
簡單而言:針對某個特定問題構建一個數(shù)學模型(可以把這個模
型想象成一個或多個公式),其中包含一些具體取值未知的參數(shù)。我
們將收集到的相關領域的若干數(shù)據(jù)(這些數(shù)據(jù)稱為訓練數(shù)據(jù))代入模
型,通過運算(運算過程稱為訓練),得出那些參數(shù)的值。然后再用這
個已經(jīng)確定了參數(shù)的模型,去計算一些全新的數(shù)據(jù),得出相應結果。
這一過程叫做機器學習。
機器學習的算法紛繁復雜,最常用的主要有回歸分析、關聯(lián)規(guī)則、
分類、聚類、神經(jīng)網(wǎng)絡、決策樹等。
二、大數(shù)據(jù)和大數(shù)據(jù)分析
大數(shù)據(jù)首先是數(shù)據(jù),其次,它是具備了某些特征的數(shù)據(jù)。目前公
認的特征有四個:Volumne,Velocity,Variety,和Value,簡稱4V。
Volume:大量。就目前技術而言,至少TB級別以下不能成大數(shù)據(jù)。
Velocity:高速。1TB的數(shù)據(jù),十分鐘處理完,叫大數(shù)據(jù),一年
處理完,就不能算“大”了。
Variety:多樣。就內(nèi)容而言,大數(shù)據(jù)已經(jīng)遠遠不局限數(shù)值,文字、
圖片、語音、圖像,一切在網(wǎng)絡上可以傳輸顯示的信息,都屬于此列。
從結構而言,和存儲在數(shù)據(jù)庫中的結構化數(shù)據(jù)不同,當前的大數(shù)據(jù)主
要指半結構化和非結構化的信息,比如機器生成信息(各種日志)、自
然語言等。
20
Value:價值。如果不能從中提取出價值,不能通過挖掘、分析,
得到指導業(yè)務的insights,那這些數(shù)據(jù)也就沒什么用。不過現(xiàn)在還有
另外一種提法:只要是數(shù)據(jù)就都有用,能不能獲得價值,是分析人員
的能力問題。
大數(shù)據(jù)分析,顧名思義,就是將前述的數(shù)據(jù)可視化、數(shù)據(jù)分析、
數(shù)據(jù)挖掘等方法作用到大數(shù)據(jù)之上。
從某種意義上講,大數(shù)據(jù)可謂機器學習的福音,很多原有的簡單
粗糙的機器學習模型,僅僅因為訓練數(shù)據(jù)量級的增加就大幅提高了準
確性。還有一些模型則因為準確性隨著數(shù)據(jù)量增加而增加的勢頭尤其
明顯,得以脫離默默無聞而被廣泛使用。
另一方面,大數(shù)據(jù)分析對于運算量的需求激增,原有的基于單機
的運算技術顯然已經(jīng)不能滿足需求,這就催生了一些列新技術。
三、大數(shù)據(jù)技術
抽象而言,各種大數(shù)據(jù)技術無外乎分布式存儲+并行計算。具
體體現(xiàn)為各種分布式文件系統(tǒng)和建立在其上的并行運算框架。這些軟
件程序都部署在多個相互連通、統(tǒng)一管理的物理或虛擬運算節(jié)點之
上,形成集群(cluster)。因此不妨說,云計算是大數(shù)據(jù)的基礎。下
面介紹幾種當前比較流行的大數(shù)據(jù)技術:
1.Hadoop
Hadoop無疑是當前最知名的大數(shù)據(jù)技術了。
2003年到2004年間,Google發(fā)布了關于GFS、MapReduce和
BigTable三篇技術論文(這幾篇論文成為了后來云計算、大數(shù)據(jù)領域
21
發(fā)展的重要基石)。當時一位因公司倒閉賦閑在家的程序員Doug
Cutting根據(jù)前兩篇論文,開發(fā)出了一個簡化的山寨版GFS-HDFS,
以及基于其的MapReduce計算框架,這就是Hadoop最初版本。后來
Cutting被Yahoo雇傭,得以依賴Yahoo的資源改進Hadoop,并將其
貢獻給了Apache開源社區(qū)。
簡單描述Hadoop原理:數(shù)據(jù)分布式存儲,運算程序被發(fā)派到各個
數(shù)據(jù)節(jié)點進行分別運算(Map),再將各個節(jié)點的運算結果進行合并歸
-(Reduce),生成最終結果。相對于動輒TB級別的數(shù)據(jù),計算程序
一般在KB-MB的量級,這種移動計算不移動數(shù)據(jù)的設計節(jié)約了大
量網(wǎng)絡帶寬和時間,并使得運算過程可以充分并行化。
在其誕生后的近10年里,Hadoop憑借其簡單、易用、高效、免
費、社區(qū)支持豐富等特征成為眾多企業(yè)云計算、大數(shù)據(jù)實施的首選。
2.Storm
Hadoop雖好,卻有其“死穴”.其一:它的運算模式是批處理。
這對于許多有實時性要求的業(yè)務就無法做到很好的支持。因此,
Twitter推出了他們自己的基于流的運算框架--Storm.不同于
Hadoop一次性處理所有數(shù)據(jù)并得出統(tǒng)一結果的作業(yè)(job),Storm對
源源導入的數(shù)據(jù)流進行持續(xù)不斷的處理,隨時得出增量結果。
3.Spark
Hadoop的另一個致命弱點是:它的所有中間結果都需要進行硬盤
存儲,I/O消耗巨大,這就使得它很不適合多次迭代的運算。而大多
數(shù)機器學習算法,恰恰要求大量迭代運算。
22
2010年開始,UCBerkeleyAMPLab開始研發(fā)分布式運算的中間
過程全部內(nèi)存存儲的Spark框架,由此在迭代計算上大大提高了效
率。也因此成為了Hadoop的強有力競爭者。
4.NoSQL數(shù)據(jù)庫
NoSQL數(shù)據(jù)庫可以泛指非關系型數(shù)據(jù)庫,不過一般用來指稱那些
建立在分布式文件系統(tǒng)(例如HDFS)之上,基于key-value對的數(shù)據(jù)
管理系統(tǒng)。
相對于傳統(tǒng)的關系型數(shù)據(jù)庫,NoSQL數(shù)據(jù)庫中存儲的數(shù)據(jù)無需主
鍵和嚴格定義的schema.于是,大量半結構化、非結構化數(shù)據(jù)可以在
未經(jīng)清洗的情況下直接進行存儲。這一點滿足了處理大量、高速、多
樣的大數(shù)據(jù)的需求。當前比較流行的NoSQL數(shù)據(jù)庫有
MongoDB,Redis,Cassandra,HBase等。
NoSQL并不是沒有SQL,而是不僅僅有(notonly)SQL的意思。為
了兼容之前許多運行在關系型數(shù)據(jù)庫上的業(yè)務邏輯,有很多在NoSQL
數(shù)據(jù)庫上運行SQL的工具涌現(xiàn)出來,最典型的例如Hive和Pig,它們
將用戶的SQL語句轉化成MapReduce作業(yè),在Hadoop上運行。
四、大數(shù)據(jù)的影響
大數(shù)據(jù)概念的興起正在對我們的社會產(chǎn)生多方面的影響:
1.定量分析
因“大數(shù)據(jù)”而使得人們開始關注“數(shù)據(jù)”,可謂最首要的影響。
尤其對于國內(nèi)而言,越來越多的決策者開始重視數(shù)據(jù)的力量,會在決
斷同時參考各類統(tǒng)計、分析報表,而不再是憑直覺拍腦袋。
23
2.從必然到相關
相對于傳統(tǒng)的小數(shù)據(jù)統(tǒng)計,大數(shù)據(jù)更關注與發(fā)現(xiàn)事物之間的相關
性,而非因果關系。人類歷經(jīng)百萬年基于數(shù)據(jù)貧乏的現(xiàn)狀而形成的“因
為……所以……”的思維習慣,在大數(shù)據(jù)時代,會向“……有關聯(lián)……”
轉變。
3.信息安全
以今日的技術,一個人的個人信息、網(wǎng)頁瀏覽記錄、購物記錄、
對圖書影片等內(nèi)容的偏好,在瀏覽不同頁面時的行為習慣,如此種種,
都可以輕易被商家或某些機構獲取。在大數(shù)據(jù)的籠罩之下,每個人都
將無所遁形。那么,對于每個人本該擁有的隱私權,該如何保護都是
需要思考的問題。
新技術解決了許多之前無法解決的問題,然而,新生事物也帶來
了新的問題。像所有技術一樣,大數(shù)據(jù)也是一把“雙刃劍”.能否用
其利除其弊,有賴于全社會的共同努力。
1.2.2.5.3.NLP
NLP是計算機科學領域與人工智能領域中的一個重要方向。它研
究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方
法。自然語言處理是一門融語言學、計算機科學、數(shù)學于一體的學科。
NLP由兩個主要的技術領域構成:自然語言理解和自然語言生成。
語言處理的研究也是充滿魅力和挑戰(zhàn)的。隨著計算機和互聯(lián)網(wǎng)的
廣泛應用,計算機可處理的自然語言文本數(shù)量空前增長,面向海量信
息的文本挖掘、信息提取、跨語言信息處理、人機交互等應用需求急
24
速增長,自然語言處理研究必將對我們的生活產(chǎn)生深遠的影響。
NLP是神經(jīng)語言程序學(Neuro-LinguisticProgramming)的英
文縮寫。在香港,也有意譯為身心語法程式學的。
N(Neuro)指的是神經(jīng)系統(tǒng),包括大腦和思維過程。
L(Linguistic)是指語言,更準確點說,是指從感覺信號的輸
入到構成意思的過程。
P(Programming)是指為產(chǎn)生某種后果而要執(zhí)行的一套具體指
令。即指我們思維上及行為上的習慣,就如同電腦中的程式,可以透
過更新軟件而改變。
故此,NLP也可以解釋為研究我們的大腦如何工作的學問。知道
大腦如何工作后,我們可以配合和提升它,從而使人生更成功快樂。
也因此,把NLP譯為“身心語法程式學”或“神經(jīng)語言程式學”。
NLP典型應用如下:
情感傾向分析
針對帶有主觀描述的中文文本,可自動判斷該文本的情感極性類
別并給出相應的置信度。情感極性分為積極、消極、中性。情感傾向
分析能幫助企業(yè)理解用戶消費習慣、分析熱點話題和危機輿情監(jiān)控,
為企業(yè)提供有力的決策支持。
評論觀點抽取
自動分析評論關注點和評論觀點,并輸出評論觀點標簽及評論觀
點極性。各類產(chǎn)品用戶評論的觀點抽取,包括美食、酒店、汽車、景
點等,可幫助商家進行產(chǎn)品分析,輔助用戶進行消費決策。
25
詞義相似度計算
用于計算兩個給定詞語的語義相似度,基于自然語言中的分布假
設,即越是經(jīng)常共同出現(xiàn)的詞之間的相似度越高。詞義相似度是自然
語言處理中的重要基礎技術,是專名挖掘、query改寫、詞性標注等
常用技術的基礎之一。
詞法分析
詞法分析向用戶提供分詞、詞性標注、命名實體識別三大功能。
該服務能夠識別出文本串中的基本詞匯標注和詞匯的詞性,并進一步
識別出命名實體,詞法分析的算法效果大幅領先已公開的主流中文詞
法分析模型。
短文本相似度
能夠提供不同短文本之間相似度的計算,輸出的相似度是一個介
于T到1之間的實數(shù)值,越接近1則相似度越高。這個相似度值可
以直接用于結果排序,也可以作為一維基礎特征作用于更復雜的系
統(tǒng)。
DNN語言模型
語言模型是通過計算給定詞組成的句子的概率,從而判斷所組成
的句子是否符合客觀語言表達習慣。在機器翻譯、拼寫糾錯、語音識
別、問答系統(tǒng)、詞性標注、句法分析和信息檢索等系統(tǒng)中都有廣泛應
用。
詞向量表示
詞向量表示表示是通過訓練的方法,將語言詞表中的詞映射成一
26
個長度固定的向量。詞表中所有的詞向量構成一個向量空間,每一個
詞都是這個詞向量空間中的一個點,利用這種方法,實現(xiàn)文本的可計
算。
依存句法分析
利用句子中詞與詞之間的依存關系來表示詞語的句法結構信息
(如主謂、動賓、定中等結構關系),并用樹狀結構來表示整句的的結
構(如主謂賓、定狀補等)。
1.2.2.5.4.緩存技術
在移動平臺建設過程中,建議采用緩存技術來應對大負載、高并
發(fā)的查詢訪問。Memcached(或redis等緩存數(shù)據(jù)庫)是高性能的分
布式內(nèi)存緩存服務器。一般的使用目的是,通過緩存數(shù)據(jù)庫查詢結果,
減少數(shù)據(jù)庫訪問次數(shù),以提高動態(tài)Web應用的速度、提高可擴展性。
Memcached(或redis等緩存數(shù)據(jù)庫)是以Key/Value的形式單個對
象緩存。
RemoteDictionaryServer(Redis)是一個開源的由Salvatore
Sanfilippo使用ANSIC語言開發(fā)的key-value數(shù)據(jù)存儲服務器。其
值(value)可以是字符串(String),哈希(Map),列表(list),集
合(sets)和有序集合(sortedsets)等類型,所以它通常也被稱為
數(shù)據(jù)結構服務器。
27
姿redis
緩存數(shù)據(jù)庫架構
FMiber6clients
Redis與memcache性能壓力測試比較
Redis的典型應用場景
1、緩存熱點數(shù)據(jù)
熱點數(shù)據(jù)(經(jīng)常會被查詢,但是不經(jīng)常被修改或者刪除的數(shù)據(jù)),
首選是使用redis緩存,redis的性能非常優(yōu)秀。
2、計數(shù)器
諸如統(tǒng)計點擊數(shù)、訪問數(shù)、點贊數(shù)、評論數(shù)、瀏覽數(shù)等應用,由
28
于單線程,可以避免并發(fā)問題,保證數(shù)據(jù)的正確性,并且100%毫秒
級性能,同時開啟Redis持久化,以便于持久化數(shù)據(jù)。
3、單線程機制
驗證前端的重復請求,可以自由擴展類似情況),可以通過redis
進行過濾,比如,每次請求將RequestIP、參數(shù)、接口等hash作為
key存儲?redis(幕等性請求),設置多長時間有效期,然后下次請
求過來的時候先在redis中檢索有沒有這個key,進而驗證是不是一
定時間內(nèi)過來的重復提交;再比如,限制用戶登錄的次數(shù),比如一天
錯誤登錄次數(shù)10次等。
秒殺系統(tǒng),基于redis是單線程特征,防止出現(xiàn)數(shù)據(jù)庫超賣;
全局增量ID生成等;
4、排行榜
誰得分高誰排名在前,比如點擊率最高、活躍度最高、銷售數(shù)量
最高、投票最高的前10名排行等等。
5、分布式鎖
使用redis可以實現(xiàn)分布式鎖,為了確保分布式鎖可用,我們至
少要確保鎖的實現(xiàn)同時滿足以下四個條件:
互斥性,在任意時刻,只有一個客戶端能持有鎖。
不會發(fā)生死鎖,即使有一個客戶端在持有鎖的期間崩潰而沒有主
動解鎖,也能保證后續(xù)其他客戶端能加鎖。
具有容錯性,只要大部分的Redis節(jié)點正常運行,客戶端就可以
加鎖和解鎖。
29
解鈴還須系鈴人,加鎖和解鎖必須是同一個客戶端,客戶端不能
解他人加的鎖。
6^Session存儲
使用Redis的進行會話緩存(sessioncache)是非常常見的一
種場景。用Redis緩存會話比其他存儲(如Memcached)的優(yōu)勢在于:
Redis提供持久化,目前大量的方案均采用了redis作為session的
存儲方案。
1.2.2.5.5.HTML5技術
HTML5是Web中核心語言HTML的規(guī)范,用戶使用任何手段進行
網(wǎng)頁瀏覽時看到的內(nèi)容原本都是HTML格式的,在瀏覽器中通過一些
技術處理將其轉換成為了可識別的信息。HTML5在從前HTML4.01的
基礎上進行了一定的改進,雖然在技術人員在開發(fā)過程中可能不會將
這些新技術投入應用,但是對于該種技術的新特性開發(fā)技術人員是必
須要有所了解的。
HTML5技術結合了HTMK4.01的相關標準并革新,符合現(xiàn)代網(wǎng)絡
發(fā)展要求,在2008年正式發(fā)布。HTML5由不同的技術構成,其在互
聯(lián)網(wǎng)中得到了非常廣泛的應用,提供更多增強網(wǎng)絡應用的標準機。與
傳統(tǒng)的技術相比,HTML5的語法特征更加明顯,并且結合了SVG的
內(nèi)容。這些內(nèi)容在網(wǎng)頁中使用可以更加便捷地處理多媒體內(nèi)容,而且
HTML5中還結合了其他元素,對原有的功能進行調(diào)整和修改,進行標
準化工作。HTML5在2012年已形成了穩(wěn)定的版本。
HTML5將Web帶入一個成熟的應用平臺,在這個平臺上,視頻、
30
音頻、圖像、動畫以及與設備的交互都進行了規(guī)范。
智能表單
表單是實現(xiàn)用戶與頁面后臺交互主要組成部分,HTML5在表單的
設計上功能更加強大。input類型和屬性的多樣性大大地增強了HTML
可表達的表單形式,再加上新增加的一.些表單標簽,使得原本需要
JavaScript來實現(xiàn)的控件,可以直接使用HTML5的表單來實現(xiàn);一
些如內(nèi)容提示、焦點處理、數(shù)據(jù)驗證等功能,也可以通過THML5的智
能表單屬性標簽來完成。
繪圖畫布
HTML5的canvas元索可以實現(xiàn)畫布功能,該元索通過自帶的API
結合使用JavaScript腳本語自在網(wǎng)頁上繪制圖形和處理,擁有實現(xiàn)
繪制線條、弧線以及矩形,用樣式和顏色填充區(qū)域,書寫樣式化文本,
以及添加圖像的方法,且使用JavaScript可以控制其每一個像素。
HTML5的canvas元索使得瀏覽器無需Flash或Silverlight等插件
就能直接顯示圖形或動畫圖像。
多媒體
HTML5最大特色之一就是支持音頻視頻,在通過增加了〈audio》、
〈video》兩個標簽來實現(xiàn)對多媒體中的音頻、視頻使用的支持,只要
在Web網(wǎng)頁中嵌入這兩個標簽,而無需第三方插件〔如Flash)就可
以實現(xiàn)音視頻的播放功能。HTML5對音頻、視頻文件的支持使得瀏覽
器擺脫了對插件的依賴,加快了貞面的加載速度,擴展了互聯(lián)網(wǎng)多媒
體技術的發(fā)展空間。
31
地理定位
現(xiàn)今移動網(wǎng)絡備受青睞,用戶對實時定位的應用越來,要求也越
來越高。HTML5通過引人Geolocation的API可以通過GPS或網(wǎng)絡信
息實現(xiàn)用戶的定位功能,定位更加準確、靈活。通過HTML5進行地位,
除了可以定位自己的位置,還可以在他人對你開放信息的情況下獲得
他人的定位信息。
數(shù)據(jù)存儲
HTML5較之傳統(tǒng)的數(shù)據(jù)存儲有自己的存儲方式,允許在客戶端實
現(xiàn)較大規(guī)模的數(shù)據(jù)存儲。為了滿足不同的需求,HTML5支持D0M
Storage^0WebSQLDatabase兩種存儲機制。其中,DOMStorage適
用于具有key/value對的基本本地存儲;而WebSQLDatabase是適用
于關系型數(shù)據(jù)庫的存儲方式,開發(fā)者可以使用SQL語法對這些數(shù)據(jù)進
行查詢、插入等操作。
多線程
HTML5利用WebWorker將Web應用程序從原來的單線程業(yè)界中
解放出來,通過創(chuàng)建一個WebWorker對象就可以實現(xiàn)多線程操作。
JavaScript創(chuàng)建的Web程序處理事務都是在單線程中執(zhí)行,響應時
間較長,而當JavaScript過于復雜時,還有可能出現(xiàn)死鎖的局面。
HTML5新增加了一個WebWorkerAPI,用戶可以創(chuàng)建多個在后臺的線
程,將耗費較長時間的處理交給后臺面不影響用戶界面和響應速度,
這些處理不會因用戶交互而運行中斷。使用后臺線程不能訪問頁面和
窗口對象,但后臺線程可以和貞面之間進行數(shù)據(jù)交互。子線程與子線
32
程之間的數(shù)據(jù)交互,大致步驟如下:①先創(chuàng)建發(fā)送數(shù)據(jù)的子線程;②
執(zhí)行子線程任務,把要傳遞的數(shù)據(jù)發(fā)送給主線程;③在主線程接受到
子線程傳遞回的消息時創(chuàng)建接收數(shù)據(jù)的子線程,然后把發(fā)送數(shù)據(jù)的子
線程中返回的消息傳遞給接收數(shù)據(jù)的子線程;④執(zhí)行接收數(shù)據(jù)子線程
中的代碼。
1.2.2.5.6.頁面靜態(tài)化
靜態(tài)的HTML頁面嚴格地由標準的HTML標示語言構成,并不需要
服務器端即時運算生成。這意味著,對一個靜態(tài)HTML文檔發(fā)出訪問
請求后,服務器端只是簡單地將該文檔傳輸?shù)娇蛻舳?。從服務器運行
的那個時間片來看,這個傳輸過程僅僅占用了很小的CPU資源。
頁面靜態(tài)化就是采用效率最高、消耗最小的純靜態(tài)化的html頁
面來替換動態(tài)頁面。我們盡可能使上的頁面采用靜態(tài)頁面來實現(xiàn),這
個最簡單的方法其實也是最有效的方法。
同時,HTML靜態(tài)化也是某些緩存策略使用的手段,對于系統(tǒng)中
頻繁使用數(shù)據(jù)庫查詢但是內(nèi)容更新很小的應用,可以考慮使用HTML
靜態(tài)化來實現(xiàn),這些信息其實大量被前臺程序調(diào)用,但是更新頻率很
小,可以考慮將這部分內(nèi)容進行后臺更新的時候進行靜態(tài)化,這樣避
免了大量的數(shù)據(jù)庫訪問請求。
1.2.2.5.7.采用J2EE架構
J2EE是Java2EnterpriseEdition的簡稱,繼承了Java平臺無
關性的特點,是一種功能完備、穩(wěn)定可靠、安全快速的企業(yè)級計算平
臺,
33
J2EE平臺適用多層次分布式應用模型,采用基于組件的方式來
設計、開發(fā)、組裝和部署企業(yè)應用系統(tǒng),以及基于可擴展標記語言
(XML)的數(shù)據(jù)交換、統(tǒng)一的安全模式和靈活的事務控制。
Client-SideServer-SideServer-SideEnterprise
PresentationPresentationBusinessLogicInformation
J2EE開發(fā)平臺
J2EE作為主流技術體系已成為一個工業(yè)標準,圍繞著J2EE有眾
多的廠家和產(chǎn)品,其中不乏優(yōu)秀的軟件產(chǎn)品,合理集成以J2EE為標
準的軟件產(chǎn)品構建市級平臺,可以得到較好的穩(wěn)定性、高可靠性和擴
展性。J2EE技術的基礎是JAVA語言,JAVA語言的與平臺無關性,保
證了基于J2EE平臺開發(fā)的應用系統(tǒng)和支撐環(huán)境可以跨平臺運行。
J2EE作為主流技術體系已成為一個工業(yè)標準,圍繞著J2EE有眾
多的廠家和產(chǎn)品,其中不乏優(yōu)秀的軟件產(chǎn)品,合理集成以J2EE為標
準的軟件產(chǎn)品構建市級平臺,可以得到較好的穩(wěn)定性、高可靠性和擴
展性。
J2EE技術的基礎是JAVA語言,JAVA語言的與平臺無關性,保證
了基于J2EE平臺開發(fā)的應用系統(tǒng)和支撐環(huán)境可以跨平臺運行。
J2EE相對具有較好的開放性、較好的可移植性、較好的跨平臺
34
和企業(yè)級應用支持能力,建議在整體框架和應用支撐平臺中結合采用
J2EE技術標準和相關產(chǎn)品。
應用客戶端其他支持HTTPCORBAHOP
的技術分布式組件
應用客戶端
容器RMMIOPJMS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學大一(生物技術)邏輯思維能力測試卷
- 2025年大學大一(生物技術)細胞基礎認知階段測試卷
- 初三生物(專項訓練)2025-2026年下學期期中測試卷
- 深度解析(2026)《GBT 18310.9-2003纖維光學互連器件和無源器件 基本試驗和測量程序 第2-9部分試驗 沖擊 》
- 深度解析(2026)《GBT 18114.4-2010稀土精礦化學分析方法 第4部分:氧化鈮、氧化鋯、氧化鈦量的測定 電感耦合等離子體發(fā)射光譜法》
- 深度解析(2026)《GBT 17980.96-2004農(nóng)藥 田間藥效試驗準則(二) 第96部分殺菌劑防治香蕉貯藏病害》
- 茂名職業(yè)技術學院《綠色建筑與節(jié)能技術》2025-2026學年第一學期期末試卷
- 龍的傳人課件
- 龍炎飛的課件
- 醫(yī)患關系的價值反思
- 機械圖樣繪制與識讀智慧樹知到期末考試答案章節(jié)答案2024年沈陽職業(yè)技術學院
- DLT817-2014立式水輪發(fā)電機檢修技術規(guī)程
- 高三下學期二模語文試卷匯編:寫作專題
- 外科學手術器械的維護與保養(yǎng)
- 自愿放棄入伍承諾書
- 鋁板拆除施工方案
- 植入式靜脈給藥裝置(輸液港)-中華護理學會團體標準2023
- 0031預防成人經(jīng)口氣管插管非計劃性拔管護理專家共識
- THMSRX型實訓指導書
- 原發(fā)性支氣管肺癌教案
- GB/T 23280-2009開式壓力機精度
評論
0/150
提交評論