移動應用管理平臺項目投標方案_第1頁
移動應用管理平臺項目投標方案_第2頁
移動應用管理平臺項目投標方案_第3頁
移動應用管理平臺項目投標方案_第4頁
移動應用管理平臺項目投標方案_第5頁
已閱讀5頁,還剩157頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

目錄

1.項目建設方案..............................................3

1.1.項目建設原則..........................................3

1.1.1.先進性原則......................................3

1.1.2.標準性原則.......................................3

1.1.3.可用性原則.......................................3

1.1.4.經濟、實用性原則................................3

1.1.5.開放式、組件化設計原則..........................4

1.1.6.安全、可靠性原則.................................4

L2.總體設計...............................................4

1.2.1.總體架構設計.....................................4

1.2.2.總體技術架構.....................................6

1.2.3.系統安全設計....................................41

1.2.4.系統性能設計....................................45

1.2.5.系統部署設計...................................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.實施開發方法...................................94

1.4.3.項目建設過程..................................114

1.4.4.項目階段交付物................................126

1.5.售后服務及質保措施..................................129

1.5.1.售后服務內容及措施............................129

2.對本項目的實施意見及重點、難點控制.........................148

2.1.項目建設優化建議.....................................148

2.1.1.項目建設階段分析................................148

2.1.2.風險評估........................................153

2.1.3.項目優化建議....................................154

2.2.項目建設改進措施.....................................157

2.2.1.針對項目安全的改進..............................157

2.2.2.針對項目風險指定的風險緩解方案..................160

2.2.3.針對項目性能的改進..............................161

2

1.項目建設方案

LL項目建設原則

在保證平臺安全可靠的前提下,使應用平臺易用、可維護、可擴

展。具體地講,我們在進行平臺應用軟件的設計中遵循以下主要原則:

1.1.1.先進性原則

采用目前國際上先進而成熟的計算機軟、硬件技術,使系統具有

較高的技術水平和較長的生命周期。它同時也保證了平臺具有良好的

開放性、可靠性及可擴展性,能夠滿足未來企業發展的需要。

1.L2.標準性原則

平臺所采用的產品和技術,滿足ISO標準。平臺軟件、硬件、編

碼、文檔、操作平臺、網絡協議等以及所采用的開發技術遵循相應的

國際標準和國家標準。

1.1.3.可用性原則

應用的可用性指平臺是否具有簡單、易用,和功能完善的可管理

性。應用應具有友好的用戶界面,使用戶便于掌握、能方便地解決具

體的實際問題。應用還應具有使用方便的日常維護和管理工具,可根

據管理制度和規程的要求,對一些諸如權限管理、應用配置等進行調

整。另外還包括應用的可維護性和可擴充性等。

1.1.4.經濟、實用性原則

經濟、實用性包括三個方面。一是盡可能保障現有的資源(包括

硬件資源和軟件資源)能夠得到充分利用,在保證平臺性能并達到要

求的前提下,盡量使平臺投資最省。二是確保平臺具有良好的性能、

3

較高的處理效率,且配置和使用靈活。三是以實際各管理業務流程為

基礎,但不是成為手工系統的仿真,而是加以提煉并提高,使其對管

理水平的提高有所幫助。

1.L5.開放式、組件化設計原則

使應用保持開放性以便于應用的擴展,平臺具備擴充的接口與手

段,在應用的規模與功能需要增長時,可以保證平臺的平滑升級與擴

充。體現在軟件的設計上表現在應用基礎平臺設計、數據結構設計、

軟件構件化程序、軟件文檔的實用和規范,以及公共部件,應用類庫

的開放程度等方面。

1.1.6.安全、可靠性原則

建立完整嚴密的網絡資源和應用數據的存取控制體系,嚴格區分

網絡用戶的權限,防止越權使用數據信息。同時,采用高度可靠和穩

定的企業級網絡操作系統、操作平臺和相應的硬件平臺,并從軟硬件

兩方面采取一定策略保證信息存儲和訪問可靠。同時,保障應用具備

安全備份和恢復的功能。

1.2.總體設計

1.2.1.總體架構設計

通過對項目需求的理解分析,我們認為項目總體架構應該從基礎

設施、數據資源、組件支撐、功能應用和對外展現幾個方面統籌考慮。

項目總體架構設計具體如下:

4

(1)基礎設施層

基礎設施層定位于為項目提供基礎軟硬件支持,由本項目提供主

機、存儲、網絡等云平臺服務,同時部署負載均衡設備、下一代防火

墻、態勢感知平臺等安全設備。

(2)數據資源層

數據資源層定位于平臺信息資源資源中心,匯聚各類數據資源,

并實現數據資源采集、資源處理、資源建模、資源存儲、資源管理、

資源監管等數據資源的全生命周期管理。項目按照XXXX工業有限責

任公司通用的資源分類方法對資源進行存儲和管理,通用的分類包括

信息發布庫、功能服務庫、用戶信息庫、用戶行為庫、資源目錄庫、

數據開放庫等。

(3)支撐層

支撐層是支撐移動平臺各項功能的核心,是保障平臺安全、高效、

穩定運行的關鍵所在。支撐層包括兩部分,一部分是技術支撐組件,

包括服務發布引擎、ETL數據整合軟件、圖形數據庫引擎、分布式消

息組件等技術組件;另一部分是應用支撐,可實現對平臺各類應用的

5

統一標準化支撐與管理,包括統一服務管理、統一身份認證、統一用

戶管理、統一權限管理、統一表單管理、統一安全審計、統一流程管

理、統一業務支撐等。

(4)應用層

應用層提供移動平臺的各項應用功能,平臺應用功能包括4大部

分,分別是移動審批、綜合管理類應用、安全質保類應用以及生產管

理類應用。

(5)展現層

移動平臺的各類應用支持PC端、移動端等多種方式統一調用、

統一展現。

1.2.2.總體技術架構

1.2.2.1.云計算視角的技術架構設計

項目總體技術采用云計算技術,我方提供的平臺產品采用微服務

和分布式架構進行構建。軟件平臺體系架構具備良好的靈活性與開放

性,能夠方便部署新的業務系統或者新增功能模塊,能夠方便地和關

聯系統的軟件、硬件系統進行整合,實現數據共享和聯通。從云計算

的角度,本平臺分為laaS層、DaaS層、PaaS層和SaaS層,)

系統采用JAVA語言開發,支持Tomcat>WebLogic>WebSphere

等多種應用服務器運行平臺,遵循通用瀏覽器規范實現,支持HTML、

DHTML等通用的標準。采用成熟的后端開發框架并支持多數據源應用,

提供插件庫,能夠將上傳、下載、即時通信、內存數據庫等功能組件

化,形成對應的插件庫。并形成標準API,能夠快速實現業務形態調

6

整。數據庫采用oracle大型關系型數據庫。

(1)laaS層服務設計

laaS層基礎設施即服務(Infrastructureasaservice)。提

供給用戶的服務是對所有計算基礎設施的利用,包括處理計算、存儲、

網絡和其它基本的硬件資源,用戶能夠部署和運行有需要軟件,包括

操作系統和應用程序。用戶不管理或控制任何云計算基礎設施,但能

控制操作系統的選擇、存儲空間、部署的應用。laaS層由專業云服

務廠商提供云主機、云存儲、云網絡、云安全、云管理等基礎設施層

服務。

(2)DaaS層服務設計

DaaS層數據即服務(Data-as-a-service)。提供分布式數據庫、

全文數據庫、NoSQL數據庫、緩存數據庫、分布式文件系統等數據相

關的服務,實現數據資源采集、資源處理、資源建模、資源存儲、資

源管理、資源監管等數據資源的全生命周期管理。

(3)PaaS層服務設計

PaaS層平臺即服務(Platfornras-a-Service)。PaaS承擔了“承

上啟下”的重要使命,銜接了上層應用功能,對接調度下層基礎資源,

是整個平臺建設的核心能力支撐層。平臺采用微服務架構進行構建,

將業務系統完全組件化和服務化,可輔以容器技術將各類應用封裝為

統一的、標準的容器鏡像,屏蔽了不同模塊之間的差異化,使得平臺

微服務化應用的開發、部署與運維變得簡單方便。同時提供文本分析

引擎、內容發布、智能檢索、身份認證、監控、日志、消息隊列等基

7

礎應用支持,為系統的高效穩定運行、資源彈性伸縮提供了良好的支

撐。

(4)SaaS層服務設計

SaaS層軟件即服務(Software-as-a-Service)。SaaS層應用服

務體系包括了移動審批、綜合管理類應用、安全質保類應用以及生產

管理類應用等四部分,重點提供采購管理、合同管理、生產運行管理、

公文文檔管理等應用。

系統總體采用混合云模式構建,混合云是一種IT架構,在

兩個或更多環境中進行某種程度的工作負載移植、編排和管理。

當計算和處理需求波動時,混合云計算使企業能夠將其本地基礎

設施無縫擴展到公共云以處理任何溢出,而無需提供第三方數據

集中訪問整個數據。組織可以獲得公共云的靈活性和計算能力,

用于基本和非敏感計算任務,同時將業務關鍵型應用程序和數據

安全地部署在組織防火墻之后。它允許企業根據自己對特定功能

的獨特成本效益分析來定制其IT基礎設施。這些可能包括對經濟

實惠的高速處理(可能僅通過云計算提供商提供)以及在內部維

護某些關鍵任務數據或應用程序的愿望,因此即使是互聯網連接

問題也不會減慢企業正常運作的速度。混合云能夠為親們提供更

好的安全性,因為它在同一環境下結合使用公共和私有云服務。

所有敏感方面都可以通過由組織完全控制的私有云系統來處理。

可以輕松調整和配置混合云,無需依賴任何各種外部公共云服務

提供商(麻煩、繁瑣、步驟多、流程多、操作復雜)。所以,混

8

合云是邊緣計算的基礎。這種互聯體現了工作負載的移動方式、

統一管理的方式,以及流程的編排方式。這些連接的完善程度,

直接影響著混合云的工作效果。

1.2.2.2,微服務和分布式視角的技術架構設計

移動平臺的技術架構重點關注如何滿足平臺的技術要求、安全要

求、性能要求、可伸縮性要求、部署要求、靈活性要求等,從微服務

和分布式的視角,

本項R將采用微服務框架,把一個大型的單個應用程序和服務拆

分為數個甚至數十個的支持微服務,它可擴展單個組件而不是整個的

應用程序堆棧,從而滿足服務等級協議。本項目將圍繞業務領域組件

來創建應用,這些應用可獨立地進行開發、管理和迭代。在分散的組

件中使用云架構和平臺式部署、管理和服務功能,使產品交付變得更

加簡單。

本項目中的N個組件和UI之間通過APIGateway進行訪問與調

度,其作用包括:

①提供統一服務入口,讓微服務對前臺透明

②聚合后臺的服務,節省流量,提升性能

③提供安全,過濾,流控等API管理功能

所有的微服務組件都是獨立的Java進程跑在獨立的虛擬機上,

服務間的通信可通過異步消息中心完成(Kafka,Notify,MQ等)。異步

消息的方式在分布式系統中有特別廣泛的應用,他既能減低調用服務

之間的耦合,又能成為調用之間的緩沖,確保消息積壓不會沖垮被調

9

用方,同時能保證調用方的服務體驗,繼續干自己該干的活,不至于

被后臺性能拖慢。從根本上解決突發性、臨時性的特殊活動期間大規

模并發訪問,導致系統性能下降或應用無法提供服務的情況。=導致

系統后臺運行緩慢并發隊列延遲等待的問題也將得以解決。

在微服務架構中,每個組件有自己獨立的業務邏輯,可以根據自

身的訪問壓力和存儲特點進行分布式多節點部署與擴展。一般每一個

服務都是有多個拷貝,來做負載均衡。一個服務隨時可能下線,也可

能應對臨時訪問壓力增加新的服務節點。服務之間相互感知和管理通

過zookeeper等類似技術做服務注冊信息的分布式管理。當服務上線

時,服務提供者將自己的服務信息注冊到ZK(或類似框架),并通

過心跳維持長鏈接,實時更新鏈接信息。服務調用者通過ZK尋址,

根據可定制算法,找到一個服務,還可以將服務信息緩存在本地以提

高性能。當服務下線時,ZK會發通知給服務客戶端。

1.2.2.3.項目關鍵技術路線

項目總體技術采用云計算技術。平臺產品采用微服務和分布式架

構進行構建。軟件平臺體系架構具備良好的靈活性與開放性,能夠方

便部署新的業務系統或者新增功能模塊,能夠方便地和公司關聯系統

的軟件、硬件系統進行整合,實現數據共享和聯通。

1.2.2.4.云計算

云計算(CloudComputing)是分布式計算

(DistributedComputing)、并行計算(ParalleiComputing)、效

用計算(UtilityComputing)、網絡存儲

10

(NetworkStorageTechnologies)、虛擬化(Virtualization)、負

載均衡(LoadBalance)>熱備份冗余(HighAvailable)等傳統計算

機和網絡技術發展融合的產物。云計算是一種按使用量付費的模式,

這種模式提供可用的、便捷的、按需的網絡訪問,進入可配置的計算

資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務),這

些資源能夠被快速提供,只需投入很少的管理工作。云計算是通過使

計算分布在大量的分布式計算機上,而非本地計算機或遠程服務器

中,這使得用戶業能夠將資源切換到需要的應用上,根據需求訪問計

算機和存儲系統。云計算特點如下:

(D超大規模

“云”具有相當的規模,Google云計算已經擁有100多萬臺服

務器,Amazon、IBM、微軟、Yahoo等的“云”均擁有幾十萬臺服務

器。企業私有云一般擁有數百上千臺服務器。“云”能賦予用戶前所

未有的計算能力。

(2)虛擬化

云計算支持用戶在任意位置、使用各種終端獲取應用服務。所請

求的資源來自“云”,而不是固定的有形的實體。應用在“云”中某

處運行,但實際上用戶無需了解、也不用擔心應用運行的具體位置。

只需要一臺筆記本或者一個手機,就可以通過網絡服務來實現我們需

要的一切,甚至包括超級計算這樣的任務。

(3)高可靠性

“云”使用了數據多副本容錯、計算節點同構可互換等措施來保

11

障服務的高可靠性,使用云計算比使用本地計算機可靠。

(4)通用性

云計算不針對特定的應用,在“云”的支撐下可以構造出千變萬

化的應用,同一個“云”可以同時支撐不同的應用運行。

(5)高可擴展性

“云”的規模可以動態伸縮,滿足應用和用戶規模增長的需要。

(6)按需服務

云計算環境下,軟件技術、架構將發生顯著變化。首先,所開發

的軟件必須與云相適應,能夠與虛擬化為核心的云平臺有機結合,適

應運算能力、存儲能力的動態變化;二是要能夠滿足大量用戶的使用,

包括數據存儲結構、處理能力;三是要互聯網化,基于互聯網提供軟

件的應用;四是安全性要求更高,可以抗攻擊,并能保護私有信息;

五是可工作于移動終端、手機、網絡計算機等各種環境。

1.2.2.5.微服務架構

微服務的基本思想在于考慮圍繞著業務領域組件來創建應用,這

些就應用可獨立地進行開發、管理和加速。在分散的組件中使用微服

務云架構和平臺使部署、管理和服務功能交付變得更加簡單。

微服務架構它提倡將單一應用程序劃分成一組小的服務,服務之

間互相協調、互相配合,為用戶提供最終價值。每個服務都圍繞著具

體業務進行構建,并且能夠被獨立地部署到生產環境、類生產環境等。

另外,應盡量避免統一的、集中式的服務管理機制,對具體的一個服

務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建。

12

微服務架構提倡將單一應用程序劃分成一組小的服務,服務之間

互相協調、互相配合,為用戶提供最終價值。每個服務運行在其獨立

的進程中,服務于服務間采用輕量級的通信機制互相溝通(通常是基

于HTTP的RESTfulAPI)。每個服務都圍繞著具體業務進行構建,

并且能夠被獨立地部署到生產環境、類生產環境等。微服務架構新特

性如下:

(1)單一職責

微服務架構中的每個服務,都是具有業務邏輯的,符合高內聚、

低耦合原則以及單一職責原則的單元,不同的服務通過“管道”的方

式靈活組合,從而構建出龐大的系統。

(2)輕量級通信

服務之間通過輕量級的通信機制實現互通互聯,而所謂的輕量

級,通常指語言無關、平臺無關的交互方式。

對于輕量級通信的格式而言,我們熟悉的XML和JSON,它們是

語言無關、平臺無關的;對于通信的協議而言,通常基于HTTP,能

讓服務間的通信變得標準化、無狀態化。目前大家熟悉的REST

(RepresentationalStateTransfer)是實現服務間互相協作的輕

量級通信機制之一。使用輕量級通信機制,可以讓團隊選擇更適合的

語言、工具或者平臺來開發服務本身。

(3)獨立性

在微服務架構中,每個服務都是獨立的業務單元,與其他服務高

度解耦,只需要改變當前服務本身,就可以完成獨立的開發、測試和

13

部署。微服務架構提供自主管理其相關的業務數據,這樣可以隨著業

務的發展提供數據接口集成,而不是以數據庫的方式同其他服務集

成。另外,隨著業務的發展,可以方便地選擇更合的工具管理或者遷

移業務數據。

(4)進程隔離

在微服務架構中,應用程序由多個服務組成,每個服務都是高度

自治的獨立業務實體,可以運行在獨立的進程中,不同的服務能非常

容易地部署到不同的主機上。

理論上所有服務可以部署在同一個服務器節點,但是并不推薦這

么做,因為微服務架構的主旨就是高度自治和高度隔離。

(5)技術多樣性

微服務架構中,提倡針對不同的業務特征選擇合適的技術方案,

有針對性的解決具體業務問題,而不是像單塊架構中采用統一的平臺

或技術來解決所有問題。

(6)基礎設施自動化

在微服務架構的實踐過程中,對持續交付和部署流水線的要求很

高,將促進企業不斷尋找更高效的方式完成基礎設施的自動化及

DevOps運維能力的提升。

微服務架構與單體架構的對比如下:

微服務架構與單體架構對比

對比點微服務架構單體架構結論

上手難API接口調用數據庫共享或本地程序單體架

14

度調用構勝

開發效早期設計和溝通的工作

早期工作量小,隨著項目

率(簡量加大,隨著項目規模和單體架

規模和時間的推移,效率

單項時間的推移,效率變化不構勝

大幅度下降

目)大

開發效早期設計和溝通的工作

早期工作量小,隨著項目

率(復量加大,隨著項目規模和微服務

規模和時間的推移,效率

雜項時間的推移,效率變化不架構勝

大幅度下降

目)大

以包的形式對代碼進行

系統設每個業務單獨包裝成一

模塊劃分,控制得當即可

計(高個微服務,數據和代碼都微服務

實現高內聚。但最終都是

內聚低從物理上隔離開來,實現架構勝

在數據層面將整個系統

耦合)高內聚低耦合相對容易

耦合在一起

系統設

獨立開發新模塊,通過A在現有系統上修改,與現微服務

計(擴

PI與現有模塊交互存業務邏輯高度耦合架構勝

展性)

需求變各個微服務組件獨立變需要了解整個系統才可

微服務

更響應更,容易實施敏捷開發方以正確修改,容易導致不

架構勝

速度法相關模塊的意外失敗

系統升各個微服務組件獨立升需要了解整個系統才可微服務

級效率級,上手和開發效率高,以正確修改,容易導致不架構勝

15

影響面小相關模塊的意外失敗

大系統被拆分為多個小

系統,部署和運維難度加

運維效單體架

大,但可以利用DevOps簡單直接

率構勝

等方式將運維工作自動

微服務組件可以在新項

知識積一般以共享庫的形式復微服務

目中直接復用,包括前端

累用后臺代碼架構勝

頁面

硬件需

一個系統需部署多個微

求(簡整個系統只需要一個運單體架

服務,需要啟動多個運行

單項行容器構勝

容器

目)

硬件需

求(高按需為不同業務模塊伸為整個系統分配資源,導微服務

要求項縮資源節點致冗余架構勝

目)

項目成

本(簡項目早期和后期,成本變項目早期成本低,后期成單體架

單系化曲線平緩本大構勝

統)

16

項目成

本(復項目早期和后期,成本變項目早期成本低,后期成微服務

雜系化曲線平緩本大架構勝

統)

為單獨的微服務按需調

非功能為整個系統調優,牽一發微服務

優,甚至更換實現方式和

需求而動全身架構勝

程序語言

擁有明確的職責劃分,主

職責、職責不明確,容易產生扯微服務

人翁意識和成就感加強,

成就感皮行為架構勝

容易形成自組織型團隊

大系統被拆分為小系統,

風險可被控制在小系統系統是一個整體,一榮俱微服務

風險

內,但也引入了各小系統榮,一損俱損架構勝

之間的交互風險

L2.2.5.1.分布式系統

分布式軟件系統是支持分布式處理的軟件系統,是在由通信網絡

互聯的多處理機體系結構上執行任務的系統。它包括分布式操作系

統、分布式程序設計語言及其編譯(解釋)系統、分布式文件系統和分

布式數據庫系統等。

?分布式文件系統:具有執行遠程文件存取的能力,并以透明方

式對分布在網絡上的文件進行管理和存取。

?分布式數據庫系統:由分布于多個計算機結點上的若干個數據

17

庫系統組成,它提供有效的存取手段來操縱這些結點上的子數據庫。

分布式數據庫在使用上可視為一個完整的數據庫,而實際上它是分布

在地理分散的各個結點上。當然,分布在各個結點上的子數據庫在邏

輯上是相關的。

分布式系統要比其他體系結構如處理機和共享存儲器多處理機

更優越。

分布式系統優勢

本地自治不依賴于中心場地

可連續操作性位置獨立性

分片獨立性復制獨立性

分布式查詢處理分布式事務管理

硬件獨立性操作系統獨立性

網絡獨立性DBMS獨立性

1.2.2.5.2.大數據

一、大數據的基木概念

大數據(BigData),指無法在一定時間范圍內用常規軟件工具

進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強

的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的

信息資產。

.數據

關于數據的定義,大概沒有一個權威版本。為方便,此處使用一

18

個簡單的工作定義:數據是可以獲取和存儲的信息。

直觀而言,表達某種客觀事實的數值是最容易被人們識別的數據

(因為那是“數”)。但實際上,人類的一切語言文字、圖形圖畫、音

像記錄,所有感官可以察覺的事物,只要能被記下來,能夠查詢到,

就都是數據(data)。

不過數值是所有數據中最容易被處理的一種,許多和數據相關的

概念,例如下面的數據可視化和數據分析,最早是立足于數值數據的。

傳統意義上的數據一詞,尤其是相對于今天的“大數據”的“小

數據”,主要指的就是數值數據,甚至在很多情況下專指統計數值數

據。這些數值數據用來描述某種客觀事物的屬性。

2.數據可視化

對應英語的datavisulization(或可譯為數據展示),指通過圖

表將若干數字以直觀的方式呈現給讀者。比如非常常見的餅圖、柱狀

圖、走勢圖、熱點圖、K線等等,目前以二維展示為主,不過越來越

多的三維圖像和動態圖也被用來展示數據。

3.數據分析

這一概念狹義上,指統計分析,即通過統計學手段,從數據中精

煉對現實的描述。例如:針對以關系型數據庫中以table形式存儲的

數據,按照某些指定的列進行分組,然后計算不同組的均值、方差、

分布等。再以可視化的方式講這些計算結果呈現出來。目前很多文章

中提及的數據分析,其實是包括數據可視化的。

4.數據挖掘

19

這個概念的定義也是眾說紛紜,落到實際,主要是在傳統統計學

的基礎上,結合機器學習的算法,對數據進行更深層次的分析,并從

中獲取一些傳統統計學方法無法提供的Insights(比如預測)o

簡單而言:針對某個特定問題構建一個數學模型(可以把這個模

型想象成一個或多個公式),其中包含一些具體取值未知的參數。我

們將收集到的相關領域的若干數據(這些數據稱為訓練數據)代入模

型,通過運算(運算過程稱為訓練),得出那些參數的值。然后再用這

個已經確定了參數的模型,去計算一些全新的數據,得出相應結果。

這一過程叫做機器學習。

機器學習的算法紛繁復雜,最常用的主要有回歸分析、關聯規則、

分類、聚類、神經網絡、決策樹等。

二、大數據和大數據分析

大數據首先是數據,其次,它是具備了某些特征的數據。目前公

認的特征有四個:Volumne,Velocity,Variety,和Value,簡稱4V。

Volume:大量。就目前技術而言,至少TB級別以下不能成大數據。

Velocity:高速。1TB的數據,十分鐘處理完,叫大數據,一年

處理完,就不能算“大”了。

Variety:多樣。就內容而言,大數據已經遠遠不局限數值,文字、

圖片、語音、圖像,一切在網絡上可以傳輸顯示的信息,都屬于此列。

從結構而言,和存儲在數據庫中的結構化數據不同,當前的大數據主

要指半結構化和非結構化的信息,比如機器生成信息(各種日志)、自

然語言等。

20

Value:價值。如果不能從中提取出價值,不能通過挖掘、分析,

得到指導業務的insights,那這些數據也就沒什么用。不過現在還有

另外一種提法:只要是數據就都有用,能不能獲得價值,是分析人員

的能力問題。

大數據分析,顧名思義,就是將前述的數據可視化、數據分析、

數據挖掘等方法作用到大數據之上。

從某種意義上講,大數據可謂機器學習的福音,很多原有的簡單

粗糙的機器學習模型,僅僅因為訓練數據量級的增加就大幅提高了準

確性。還有一些模型則因為準確性隨著數據量增加而增加的勢頭尤其

明顯,得以脫離默默無聞而被廣泛使用。

另一方面,大數據分析對于運算量的需求激增,原有的基于單機

的運算技術顯然已經不能滿足需求,這就催生了一些列新技術。

三、大數據技術

抽象而言,各種大數據技術無外乎分布式存儲+并行計算。具

體體現為各種分布式文件系統和建立在其上的并行運算框架。這些軟

件程序都部署在多個相互連通、統一管理的物理或虛擬運算節點之

上,形成集群(cluster)。因此不妨說,云計算是大數據的基礎。下

面介紹幾種當前比較流行的大數據技術:

1.Hadoop

Hadoop無疑是當前最知名的大數據技術了。

2003年到2004年間,Google發布了關于GFS、MapReduce和

BigTable三篇技術論文(這幾篇論文成為了后來云計算、大數據領域

21

發展的重要基石)。當時一位因公司倒閉賦閑在家的程序員Doug

Cutting根據前兩篇論文,開發出了一個簡化的山寨版GFS-HDFS,

以及基于其的MapReduce計算框架,這就是Hadoop最初版本。后來

Cutting被Yahoo雇傭,得以依賴Yahoo的資源改進Hadoop,并將其

貢獻給了Apache開源社區。

簡單描述Hadoop原理:數據分布式存儲,運算程序被發派到各個

數據節點進行分別運算(Map),再將各個節點的運算結果進行合并歸

-(Reduce),生成最終結果。相對于動輒TB級別的數據,計算程序

一般在KB-MB的量級,這種移動計算不移動數據的設計節約了大

量網絡帶寬和時間,并使得運算過程可以充分并行化。

在其誕生后的近10年里,Hadoop憑借其簡單、易用、高效、免

費、社區支持豐富等特征成為眾多企業云計算、大數據實施的首選。

2.Storm

Hadoop雖好,卻有其“死穴”.其一:它的運算模式是批處理。

這對于許多有實時性要求的業務就無法做到很好的支持。因此,

Twitter推出了他們自己的基于流的運算框架--Storm.不同于

Hadoop一次性處理所有數據并得出統一結果的作業(job),Storm對

源源導入的數據流進行持續不斷的處理,隨時得出增量結果。

3.Spark

Hadoop的另一個致命弱點是:它的所有中間結果都需要進行硬盤

存儲,I/O消耗巨大,這就使得它很不適合多次迭代的運算。而大多

數機器學習算法,恰恰要求大量迭代運算。

22

2010年開始,UCBerkeleyAMPLab開始研發分布式運算的中間

過程全部內存存儲的Spark框架,由此在迭代計算上大大提高了效

率。也因此成為了Hadoop的強有力競爭者。

4.NoSQL數據庫

NoSQL數據庫可以泛指非關系型數據庫,不過一般用來指稱那些

建立在分布式文件系統(例如HDFS)之上,基于key-value對的數據

管理系統。

相對于傳統的關系型數據庫,NoSQL數據庫中存儲的數據無需主

鍵和嚴格定義的schema.于是,大量半結構化、非結構化數據可以在

未經清洗的情況下直接進行存儲。這一點滿足了處理大量、高速、多

樣的大數據的需求。當前比較流行的NoSQL數據庫有

MongoDB,Redis,Cassandra,HBase等。

NoSQL并不是沒有SQL,而是不僅僅有(notonly)SQL的意思。為

了兼容之前許多運行在關系型數據庫上的業務邏輯,有很多在NoSQL

數據庫上運行SQL的工具涌現出來,最典型的例如Hive和Pig,它們

將用戶的SQL語句轉化成MapReduce作業,在Hadoop上運行。

四、大數據的影響

大數據概念的興起正在對我們的社會產生多方面的影響:

1.定量分析

因“大數據”而使得人們開始關注“數據”,可謂最首要的影響。

尤其對于國內而言,越來越多的決策者開始重視數據的力量,會在決

斷同時參考各類統計、分析報表,而不再是憑直覺拍腦袋。

23

2.從必然到相關

相對于傳統的小數據統計,大數據更關注與發現事物之間的相關

性,而非因果關系。人類歷經百萬年基于數據貧乏的現狀而形成的“因

為……所以……”的思維習慣,在大數據時代,會向“……有關聯……”

轉變。

3.信息安全

以今日的技術,一個人的個人信息、網頁瀏覽記錄、購物記錄、

對圖書影片等內容的偏好,在瀏覽不同頁面時的行為習慣,如此種種,

都可以輕易被商家或某些機構獲取。在大數據的籠罩之下,每個人都

將無所遁形。那么,對于每個人本該擁有的隱私權,該如何保護都是

需要思考的問題。

新技術解決了許多之前無法解決的問題,然而,新生事物也帶來

了新的問題。像所有技術一樣,大數據也是一把“雙刃劍”.能否用

其利除其弊,有賴于全社會的共同努力。

1.2.2.5.3.NLP

NLP是計算機科學領域與人工智能領域中的一個重要方向。它研

究能實現人與計算機之間用自然語言進行有效通信的各種理論和方

法。自然語言處理是一門融語言學、計算機科學、數學于一體的學科。

NLP由兩個主要的技術領域構成:自然語言理解和自然語言生成。

語言處理的研究也是充滿魅力和挑戰的。隨著計算機和互聯網的

廣泛應用,計算機可處理的自然語言文本數量空前增長,面向海量信

息的文本挖掘、信息提取、跨語言信息處理、人機交互等應用需求急

24

速增長,自然語言處理研究必將對我們的生活產生深遠的影響。

NLP是神經語言程序學(Neuro-LinguisticProgramming)的英

文縮寫。在香港,也有意譯為身心語法程式學的。

N(Neuro)指的是神經系統,包括大腦和思維過程。

L(Linguistic)是指語言,更準確點說,是指從感覺信號的輸

入到構成意思的過程。

P(Programming)是指為產生某種后果而要執行的一套具體指

令。即指我們思維上及行為上的習慣,就如同電腦中的程式,可以透

過更新軟件而改變。

故此,NLP也可以解釋為研究我們的大腦如何工作的學問。知道

大腦如何工作后,我們可以配合和提升它,從而使人生更成功快樂。

也因此,把NLP譯為“身心語法程式學”或“神經語言程式學”。

NLP典型應用如下:

情感傾向分析

針對帶有主觀描述的中文文本,可自動判斷該文本的情感極性類

別并給出相應的置信度。情感極性分為積極、消極、中性。情感傾向

分析能幫助企業理解用戶消費習慣、分析熱點話題和危機輿情監控,

為企業提供有力的決策支持。

評論觀點抽取

自動分析評論關注點和評論觀點,并輸出評論觀點標簽及評論觀

點極性。各類產品用戶評論的觀點抽取,包括美食、酒店、汽車、景

點等,可幫助商家進行產品分析,輔助用戶進行消費決策。

25

詞義相似度計算

用于計算兩個給定詞語的語義相似度,基于自然語言中的分布假

設,即越是經常共同出現的詞之間的相似度越高。詞義相似度是自然

語言處理中的重要基礎技術,是專名挖掘、query改寫、詞性標注等

常用技術的基礎之一。

詞法分析

詞法分析向用戶提供分詞、詞性標注、命名實體識別三大功能。

該服務能夠識別出文本串中的基本詞匯標注和詞匯的詞性,并進一步

識別出命名實體,詞法分析的算法效果大幅領先已公開的主流中文詞

法分析模型。

短文本相似度

能夠提供不同短文本之間相似度的計算,輸出的相似度是一個介

于T到1之間的實數值,越接近1則相似度越高。這個相似度值可

以直接用于結果排序,也可以作為一維基礎特征作用于更復雜的系

統。

DNN語言模型

語言模型是通過計算給定詞組成的句子的概率,從而判斷所組成

的句子是否符合客觀語言表達習慣。在機器翻譯、拼寫糾錯、語音識

別、問答系統、詞性標注、句法分析和信息檢索等系統中都有廣泛應

用。

詞向量表示

詞向量表示表示是通過訓練的方法,將語言詞表中的詞映射成一

26

個長度固定的向量。詞表中所有的詞向量構成一個向量空間,每一個

詞都是這個詞向量空間中的一個點,利用這種方法,實現文本的可計

算。

依存句法分析

利用句子中詞與詞之間的依存關系來表示詞語的句法結構信息

(如主謂、動賓、定中等結構關系),并用樹狀結構來表示整句的的結

構(如主謂賓、定狀補等)。

1.2.2.5.4.緩存技術

在移動平臺建設過程中,建議采用緩存技術來應對大負載、高并

發的查詢訪問。Memcached(或redis等緩存數據庫)是高性能的分

布式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,

減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。

Memcached(或redis等緩存數據庫)是以Key/Value的形式單個對

象緩存。

RemoteDictionaryServer(Redis)是一個開源的由Salvatore

Sanfilippo使用ANSIC語言開發的key-value數據存儲服務器。其

值(value)可以是字符串(String),哈希(Map),列表(list),集

合(sets)和有序集合(sortedsets)等類型,所以它通常也被稱為

數據結構服務器。

27

姿redis

緩存數據庫架構

FMiber6clients

Redis與memcache性能壓力測試比較

Redis的典型應用場景

1、緩存熱點數據

熱點數據(經常會被查詢,但是不經常被修改或者刪除的數據),

首選是使用redis緩存,redis的性能非常優秀。

2、計數器

諸如統計點擊數、訪問數、點贊數、評論數、瀏覽數等應用,由

28

于單線程,可以避免并發問題,保證數據的正確性,并且100%毫秒

級性能,同時開啟Redis持久化,以便于持久化數據。

3、單線程機制

驗證前端的重復請求,可以自由擴展類似情況),可以通過redis

進行過濾,比如,每次請求將RequestIP、參數、接口等hash作為

key存儲?redis(幕等性請求),設置多長時間有效期,然后下次請

求過來的時候先在redis中檢索有沒有這個key,進而驗證是不是一

定時間內過來的重復提交;再比如,限制用戶登錄的次數,比如一天

錯誤登錄次數10次等。

秒殺系統,基于redis是單線程特征,防止出現數據庫超賣;

全局增量ID生成等;

4、排行榜

誰得分高誰排名在前,比如點擊率最高、活躍度最高、銷售數量

最高、投票最高的前10名排行等等。

5、分布式鎖

使用redis可以實現分布式鎖,為了確保分布式鎖可用,我們至

少要確保鎖的實現同時滿足以下四個條件:

互斥性,在任意時刻,只有一個客戶端能持有鎖。

不會發生死鎖,即使有一個客戶端在持有鎖的期間崩潰而沒有主

動解鎖,也能保證后續其他客戶端能加鎖。

具有容錯性,只要大部分的Redis節點正常運行,客戶端就可以

加鎖和解鎖。

29

解鈴還須系鈴人,加鎖和解鎖必須是同一個客戶端,客戶端不能

解他人加的鎖。

6^Session存儲

使用Redis的進行會話緩存(sessioncache)是非常常見的一

種場景。用Redis緩存會話比其他存儲(如Memcached)的優勢在于:

Redis提供持久化,目前大量的方案均采用了redis作為session的

存儲方案。

1.2.2.5.5.HTML5技術

HTML5是Web中核心語言HTML的規范,用戶使用任何手段進行

網頁瀏覽時看到的內容原本都是HTML格式的,在瀏覽器中通過一些

技術處理將其轉換成為了可識別的信息。HTML5在從前HTML4.01的

基礎上進行了一定的改進,雖然在技術人員在開發過程中可能不會將

這些新技術投入應用,但是對于該種技術的新特性開發技術人員是必

須要有所了解的。

HTML5技術結合了HTMK4.01的相關標準并革新,符合現代網絡

發展要求,在2008年正式發布。HTML5由不同的技術構成,其在互

聯網中得到了非常廣泛的應用,提供更多增強網絡應用的標準機。與

傳統的技術相比,HTML5的語法特征更加明顯,并且結合了SVG的

內容。這些內容在網頁中使用可以更加便捷地處理多媒體內容,而且

HTML5中還結合了其他元素,對原有的功能進行調整和修改,進行標

準化工作。HTML5在2012年已形成了穩定的版本。

HTML5將Web帶入一個成熟的應用平臺,在這個平臺上,視頻、

30

音頻、圖像、動畫以及與設備的交互都進行了規范。

智能表單

表單是實現用戶與頁面后臺交互主要組成部分,HTML5在表單的

設計上功能更加強大。input類型和屬性的多樣性大大地增強了HTML

可表達的表單形式,再加上新增加的一.些表單標簽,使得原本需要

JavaScript來實現的控件,可以直接使用HTML5的表單來實現;一

些如內容提示、焦點處理、數據驗證等功能,也可以通過THML5的智

能表單屬性標簽來完成。

繪圖畫布

HTML5的canvas元索可以實現畫布功能,該元索通過自帶的API

結合使用JavaScript腳本語自在網頁上繪制圖形和處理,擁有實現

繪制線條、弧線以及矩形,用樣式和顏色填充區域,書寫樣式化文本,

以及添加圖像的方法,且使用JavaScript可以控制其每一個像素。

HTML5的canvas元索使得瀏覽器無需Flash或Silverlight等插件

就能直接顯示圖形或動畫圖像。

多媒體

HTML5最大特色之一就是支持音頻視頻,在通過增加了〈audio》、

〈video》兩個標簽來實現對多媒體中的音頻、視頻使用的支持,只要

在Web網頁中嵌入這兩個標簽,而無需第三方插件〔如Flash)就可

以實現音視頻的播放功能。HTML5對音頻、視頻文件的支持使得瀏覽

器擺脫了對插件的依賴,加快了貞面的加載速度,擴展了互聯網多媒

體技術的發展空間。

31

地理定位

現今移動網絡備受青睞,用戶對實時定位的應用越來,要求也越

來越高。HTML5通過引人Geolocation的API可以通過GPS或網絡信

息實現用戶的定位功能,定位更加準確、靈活。通過HTML5進行地位,

除了可以定位自己的位置,還可以在他人對你開放信息的情況下獲得

他人的定位信息。

數據存儲

HTML5較之傳統的數據存儲有自己的存儲方式,允許在客戶端實

現較大規模的數據存儲。為了滿足不同的需求,HTML5支持D0M

Storage^0WebSQLDatabase兩種存儲機制。其中,DOMStorage適

用于具有key/value對的基本本地存儲;而WebSQLDatabase是適用

于關系型數據庫的存儲方式,開發者可以使用SQL語法對這些數據進

行查詢、插入等操作。

多線程

HTML5利用WebWorker將Web應用程序從原來的單線程業界中

解放出來,通過創建一個WebWorker對象就可以實現多線程操作。

JavaScript創建的Web程序處理事務都是在單線程中執行,響應時

間較長,而當JavaScript過于復雜時,還有可能出現死鎖的局面。

HTML5新增加了一個WebWorkerAPI,用戶可以創建多個在后臺的線

程,將耗費較長時間的處理交給后臺面不影響用戶界面和響應速度,

這些處理不會因用戶交互而運行中斷。使用后臺線程不能訪問頁面和

窗口對象,但后臺線程可以和貞面之間進行數據交互。子線程與子線

32

程之間的數據交互,大致步驟如下:①先創建發送數據的子線程;②

執行子線程任務,把要傳遞的數據發送給主線程;③在主線程接受到

子線程傳遞回的消息時創建接收數據的子線程,然后把發送數據的子

線程中返回的消息傳遞給接收數據的子線程;④執行接收數據子線程

中的代碼。

1.2.2.5.6.頁面靜態化

靜態的HTML頁面嚴格地由標準的HTML標示語言構成,并不需要

服務器端即時運算生成。這意味著,對一個靜態HTML文檔發出訪問

請求后,服務器端只是簡單地將該文檔傳輸到客戶端。從服務器運行

的那個時間片來看,這個傳輸過程僅僅占用了很小的CPU資源。

頁面靜態化就是采用效率最高、消耗最小的純靜態化的html頁

面來替換動態頁面。我們盡可能使上的頁面采用靜態頁面來實現,這

個最簡單的方法其實也是最有效的方法。

同時,HTML靜態化也是某些緩存策略使用的手段,對于系統中

頻繁使用數據庫查詢但是內容更新很小的應用,可以考慮使用HTML

靜態化來實現,這些信息其實大量被前臺程序調用,但是更新頻率很

小,可以考慮將這部分內容進行后臺更新的時候進行靜態化,這樣避

免了大量的數據庫訪問請求。

1.2.2.5.7.采用J2EE架構

J2EE是Java2EnterpriseEdition的簡稱,繼承了Java平臺無

關性的特點,是一種功能完備、穩定可靠、安全快速的企業級計算平

臺,

33

J2EE平臺適用多層次分布式應用模型,采用基于組件的方式來

設計、開發、組裝和部署企業應用系統,以及基于可擴展標記語言

(XML)的數據交換、統一的安全模式和靈活的事務控制。

Client-SideServer-SideServer-SideEnterprise

PresentationPresentationBusinessLogicInformation

J2EE開發平臺

J2EE作為主流技術體系已成為一個工業標準,圍繞著J2EE有眾

多的廠家和產品,其中不乏優秀的軟件產品,合理集成以J2EE為標

準的軟件產品構建市級平臺,可以得到較好的穩定性、高可靠性和擴

展性。J2EE技術的基礎是JAVA語言,JAVA語言的與平臺無關性,保

證了基于J2EE平臺開發的應用系統和支撐環境可以跨平臺運行。

J2EE作為主流技術體系已成為一個工業標準,圍繞著J2EE有眾

多的廠家和產品,其中不乏優秀的軟件產品,合理集成以J2EE為標

準的軟件產品構建市級平臺,可以得到較好的穩定性、高可靠性和擴

展性。

J2EE技術的基礎是JAVA語言,JAVA語言的與平臺無關性,保證

了基于J2EE平臺開發的應用系統和支撐環境可以跨平臺運行。

J2EE相對具有較好的開放性、較好的可移植性、較好的跨平臺

34

和企業級應用支持能力,建議在整體框架和應用支撐平臺中結合采用

J2EE技術標準和相關產品。

應用客戶端其他支持HTTPCORBAHOP

的技術分布式組件

應用客戶端

容器RMMIOPJMS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論