信息系統分析與開發技術(第3版) 課件 第八章 基于新一代信息技術的信息系統開發_第1頁
信息系統分析與開發技術(第3版) 課件 第八章 基于新一代信息技術的信息系統開發_第2頁
信息系統分析與開發技術(第3版) 課件 第八章 基于新一代信息技術的信息系統開發_第3頁
信息系統分析與開發技術(第3版) 課件 第八章 基于新一代信息技術的信息系統開發_第4頁
信息系統分析與開發技術(第3版) 課件 第八章 基于新一代信息技術的信息系統開發_第5頁
已閱讀5頁,還剩94頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第八章基于新一代信息技術的信息系統開發目錄8.1新一代信息技術及其應用8.2信息系統架構設計和開發8.3移動端App開發8.4大數據驅動的信息系統開發8.5開放環境下信息系統安全設計

云計算:云計算(cloudcomputing)是分布式計算的一種,是通過網絡“云”將巨大的數據計算處理程序分解成無數個小程序,然后,通過多部服務器組成的系統進行處理和分析這些小程序得到結果并返回給用戶。云計算早期,簡單地說,就是簡單的分布式計算,解決任務分發,并進行計算結果的合并。云計算的核心概念就是以互聯網為中心,提供快速且安全的云計算服務與數據存儲,讓每一個使用互聯網的人都可以使用網絡上的龐大計算資源與數據中心。

8.1.1新一代信息技術概述8.1新一代信息技術及其應用

大數據:大數據(bigdata)是指無法在一定時間范圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產,具有海量的數據規模(Volume)、快速的數據流轉(Velocity)、多樣的數據類型(Variety)和價值密度低(Value)和真實性(Veracity)等5V特征。大數據技術的戰略意義是數據進行專業化處理。

8.1.1新一代信息技術概述8.1新一代信息技術及其應用

物聯網:物聯網(InternetofThings,IoT)是新一代信息技術的重要組成部分,在IT行業又叫泛互聯,意指物物相連,萬物萬聯。主要有兩層意思:第一,物聯網的核心和基礎仍然是互聯網,是在互聯網基礎上的延伸和擴展的網絡;第二,其用戶端延伸和擴展到了任何物品與物品之間,進行信息交換和通信。

8.1.1新一代信息技術概述8.1新一代信息技術及其應用

人工智能:人工智能(ArtificialIntelligence,AI)是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學,是計算機科學的一個分支,它企圖了解智能的實質,并生產出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等

8.1.1新一代信息技術概述8.1新一代信息技術及其應用

8.1.2新一代信息技術在信息系統中的應用8.1新一代信息技術及其應用新一代信息技術對信息系統設計和開發產生變革性影響,主要表現為:①存儲計算能力的大幅增長;②基礎資源的應用和管理方式發生顛覆性變化;③數據的應用場景和應用模式得到拓展;④數據的獲取渠道和獲取方式多樣化、自動化、規范化;⑤信息安全趨于總體化。

8.1.2新一代信息技術在信息系統中的應用8.1新一代信息技術及其應用因此,信息系統向系統應用平臺化、系統架構開放化、系統服務協同化和管理決策智能化等方面發展。①系統應用平臺化。信息系統不再是某企業或組織內部的封閉式應用系統,而是面向信息共享與信息交互的公共服務平臺,各信息系統可以有機結合起來,實現互通信息、共享數據資源。②系統架構開放化。信息系統之間的信息共享和信息交互需要信息系統必須基于開放共享的信息技術標準,具有更加開放、更具彈性的系統架構,系統服務以更加靈活多樣的形式擴展,以適應信息系統之間的業務邏輯協作服務。

8.1.2新一代信息技術在信息系統中的應用8.1新一代信息技術及其應用③系統服務協同化。信息系統內部與外部環境之間更加和諧,信息系統服務的協同化將包括系統內各部分之間協同、基于業務流程系統內的流程協同和基于業務流程合作系統的全局流程協同。系統之間通過信息共享、信息交互和服務組件相互聯系、相互制約。④管理決策智能化。信息系統的兩個重要職能分別是服務和管理,既相互獨立又相互依賴。服務為管理提供了豐富的數據,而管理借助云計算、大數據、人工智能等技術對各類實時信息進行判斷、推理和決策,統籌、優化、調度各類服務資源,實現企業管理決策智能化。

8.1.2新一代信息技術在信息系統中的應用8.1新一代信息技術及其應用1.云計算在信息系統中的應用①云存儲。②云數據庫。③云應用程序托管。④云計算服務。⑤云安全服務。2.物聯網在信息系統中的應用①數據采集。②遠程控制。③智能化和自動化。

8.1.2新一代信息技術在信息系統中的應用8.1新一代信息技術及其應用3.區塊鏈在信息系統中的應用①數據共享。②智能合約。③數字身份。④去中心化應用。4.人工智能在信息系統中的應用①系統架構設計。②數據分析。③機器學習。④自然語言處理。⑤系統測試。⑥人工智能決策支持系統。目錄8.1新一代信息技術及其應用8.2信息系統架構設計和開發8.3移動端App開發8.4大數據驅動的信息系統開發8.5開放環境下信息系統安全設計信息系統架構是指導信息系統開發的理論方法,對信息系統開發過程具有重要意義。隨著面向對象的發展,信息系統架構逐漸發展起來,抽象數據類型的設計方法提高了信息系統軟件的重用度,面向對象的方法和設計原則降低了系統功能模塊之間的耦合度,也提高了信息系統穩定性,信息系統架構的主要目標就是提高信息系統開發效率和穩定性。8.2信息系統架構設計和開發

1.定義信息系統架構(informationsystemarchitecture)是一系列相關的抽象模式,用于指導信息系統各個方面的設計。信息系統架構不僅顯示了軟件需求和軟件結構之間的對應關系,而且指定了整個軟件系統的組織和拓撲結構,提供了一些設計決策的基本原則。

8.2.1信息系統架構概述8.2信息系統架構設計和開發圖8.1信息系統架構示意圖根據關注的角度不同,可以將信息系統架構分成三種類型:

邏輯架構邏輯架構描述了信息系統中的各個組件之間所存在的關系,比如外部系統接口、用戶界面、商業邏輯組件、數據庫等。

物理架構物理架構述了描述信息系統運行軟件的計算機、網絡、硬件設施等情況,還包括如何部署軟件包,以及它們運行時的配置情況,關注“功能的分布”和“數據的分布”。

系統架構系統架構一般涉及到兩個方面的內容,其一是業務架構,其二是軟件架構。業務架構描述了主要的業務模塊及其組織結構。軟件架構是對軟件結構組成的規劃和職責設定。

8.2.1信息系統架構概述8.2信息系統架構設計和開發2.分類①邏輯架構。邏輯架構描述了信息系統中的各組件之間所存在的關系,如外部系統接口、用戶界面、商業邏輯組件、數據庫等。②物理架構。物理架構描述了運行信息系統的計算機、網絡和相關硬件設施等情況,如何將軟件包部署到這些硬件資源上,以及它們運行時的配置情況,即軟件系統最終如何安裝或部署到物理機器上,主要有主機、整合服務器、應用服務器、代理服務器、存儲服務器、報表服務器、Web服務器、網絡分流器等。物理架構關注功能的分布和數據的分布兩方面。③系統架構。系統架構一般涉及兩方面的內容:業務架構和軟件架構。業務架構描述了業務領域主要的業務模塊及其組織結構。

8.2.1信息系統架構概述8.2信息系統架構設計和開發

3.信息系統架構演化信息系統開發主要經歷了兩個階段:

單體架構基于單體架構開發的信息系統稱為集中式信息系統或者稱為單體式信息系統應用程序。就是把所有的程序、功能、模塊都集中到一個項目中,部署在一臺服務器上,從而對外提供服務。

分布式架構基于分布式架構開發的信息信息系統稱為分布式信息系統應用程序。就是把所有的程序、功能拆分成不同的子系統,部署在多臺不同的服務器上,這些子系統相互協作共同對外提供服務,而對用戶而言他并不知道后臺是多個子系統和多臺服務器在提供服務。8.2信息系統架構設計和開發

8.2.1信息系統架構概述單體架構單體架構應用的全部功能被集成在一起作為一個完整的應用系統,系統中包含所有的業務功能模塊。

單體架構更多地作為應用的部署架構,即只要它部署在同一臺(虛擬)機器上,運行于同一進程中,而無論應用內部如何模塊化,服務化或者分層。8.2信息系統架構設計和開發圖8.2基于單體架構的銷售管理系統示意圖

8.2.1信息系統架構概述

單體架構的特點:(1)部署簡單:由于是完整的結構體,可以直接部署在一個服務器上即可;(2)技術單一:項目不需要復雜的技術棧,往往一套熟悉的技術棧就可以完成開發;(3)項目開發成本低:單個程序員可以完成業務接口到數據庫的整個流程。(4)系統啟動慢:一個進程包含了所有的業務邏輯,涉及到的啟動模塊過多,導致系統的啟動、重啟時間周期過長;(5)系統錯誤隔離性差、可用性差:任何一個模塊的錯誤均可能造成整個系統崩潰;(6)可伸縮性差:系統的擴容只能只對這個應用進行擴容,不能做到對某個功能點進行擴容;(7)維修周期長:單體架構中的任何一個問題修復,都需要對整個應用系統進行全面升級。8.2信息系統架構設計和開發

8.2.1信息系統架構概述垂直應用架構隨著企業的發展,用戶的數量及數據量的逐漸增大,基于單體架構的信息系統適應能力越來越弱,因此按照業務做垂直劃分,將應用拆成互不相干的幾個應用系統提升效率。8.2信息系統架構設計和開發圖8.3基于垂直架構的銷售管理系統示意圖

8.2.1信息系統架構概述

垂直架構的特點:(1)系統拆分實現了流量分擔,解決了并發問題;(2)可以針對不通的模塊進行優化;(3)方便水平擴展,負載均衡,容錯率提高;(4)系統之間相互獨立,互不影響,新的業務迭代更加高效。(5)服務之間相互調用,如果某個服務的端口或IP地址發生變化,調用的系統得手動改變;(6)搭建集群之后,實現負載均衡比較復雜;(7)服務之間調用方式不同意,有的是基于http協議,有的是基于webservice協議,接口協議不統一。8.2信息系統架構設計和開發

8.2.1信息系統架構概述SOA架構當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求,如圖8.4所示。8.2信息系統架構設計和開發圖8.4基于SOA的銷售管理系統示意圖

8.2.1信息系統架構概述

SOA的特點:(1)將重復的功能抽取為服務,提高開發效率,提高系統的可重用性、可維護性,由于服務的粒度過大,系統與服務之間耦合性高;(2)可以針對不同服務的特點制定集群及優化方案;(3)采用ESB減少系統中的接口耦合,但是服務的接口協議不固定,種類繁多,不利于系統維護;(4)系統與服務的界限模糊,不利于開發及維護。8.2信息系統架構設計和開發

8.2.1信息系統架構概述微服務架構當強調“業務組件化和服務化”時,原有的單個業務系統被拆分為多個可以獨立開發、設計、運行的小應用,這些小應用之間通過服務完成交互和集成,如圖8.5所示。8.2信息系統架構設計和開發圖8.5基于微服務的銷售管理系統示意圖

8.2.1信息系統架構概述

微服務的特點:(1)服務拆分粒度更細,有利于資源重復利用,提高開發效率;(2)可以更加精準的制定每個服務的優化方案,提高系統可維護性;(3)微服務架構采用去中心化思想,服務之間采用RESTful等輕量協議通信;(4)適用于互聯網時代,產品迭代周期更短。(5)微服務過多,服務治理成本高,不利于系統維護;(6)分布式系統開發的技術成本高(容錯、分布式事務等),對團隊挑戰大。8.2信息系統架構設計和開發

8.2.1信息系統架構概述SOA與微服務架構比較8.2信息系統架構設計和開發SOA微服務應用程序服務的可重用性最大化專注于解耦系統性的改變需要整體修改系統性的改變是創建新服務DevOps和持續交付正在變得流行,不是主流強烈DevOps和持續交付專注一業務功能重用更重視上下文邊界的概念通信使用企業服務總線ESB對于通信,使用較少和簡單的消息系統支持多種消息協議使用輕量級協議,如HTTP、REST等容器(docker)的使用不太受歡迎容器在微服務方面效果很好SOA服務共享數據存儲每個微服務可以擁有單獨的數據存儲共同的治理和標準輕松的治理,更注重團隊協作和選擇自由表8.1SOA與微服務架構比較

8.2.1信息系統架構概述8.2信息系統架構設計和開發(1)分層架構(layeredarchitecture)是最常見的軟件架構,也是事實上的標準架構。這種架構將軟件分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細節。層與層之間通過接口通信。盡管分層架構沒有規定要分成幾層幾種,大多數的結構都分成四個層次:表現層、邏輯層、持久層和數據庫層,如圖8.6所示。圖8.6分層架構示意圖

8.2.1信息系統架構概述4.信息系統常用架構

分層架構中的每一層都有著特定的角色和職能:(1)表現層(presentation):用戶界面,負責視覺和用戶互動;(2)邏輯層(business):實現業務邏輯;(3)持久層(persistence):提供數據,SQL語句就放在這一層;(4)數據庫(database):保存數據。有的軟件在邏輯層和持久層之間,加了一個服務層(service),提供不同業務邏輯需要的一些通用接口。8.2信息系統架構設計和開發

8.2.1信息系統架構概述8.2信息系統架構設計和開發分層架構中的每一層都是封閉的,訪問請求將依次通過這四層的處理,不能跳過其中任何一層,如圖8.7所示。圖8.7分層架構請求傳遞示意圖

8.2.1信息系統架構概述8.2信息系統架構設計和開發

分層架構的優點:結構簡單,容易理解和開發;項目組成員分工明確,負責不同的層,非常適合企業組織架構;每一層都可以獨立測試,與其他層的接口通過模擬解決。

分層架構的缺點:一旦信息系統應用環境發生變化,需要對相關層組件進行調整或增加或刪除功能,對信息系統影響比較大;部署周期長,即使只修改一個小地方,往往需要整個軟件重新部署,不容易做持續發布;軟件升級時,可能需要整個服務暫停;擴展性差,用戶請求大量增加時,必須依次擴展每一層,由于每一層內部是耦合的,信息系統擴展性較差。

8.2.1信息系統架構概述8.2信息系統架構設計和開發(2)事件驅動架構事件驅動架構(EventDrivenArchitecture)是一個流行的分布式異步架構模式,可以用來設計規模很大的應用程序。基于這種架構模式應用可大可小。它由高度解耦的,單一目的的事件處理組件組成,可以異步地接收和處理事件。圖8.8事件驅動架構示意圖

8.2.1信息系統架構概述8.2信息系統架構設計和開發

事件驅動架構優點:分布式的異步架構,事件處理器之間高度解耦,軟件的擴展性好;適用性廣,各種類型的項目都可以用;性能較好,因為事件的異步本質,軟件不易產生堵塞;易部署,事件處理器可以獨立地加載和卸載,容易部署。

事件驅動架構缺點:涉及異步編程(要考慮遠程通信、失去響應等情況),開發相對復雜;難以支持原子性操作,因為事件通過會涉及多個處理器,很難回滾;分布式和異步特性導致這個架構較難測試。

8.2.1信息系統架構概述8.2信息系統架構設計和開發(3)微核架構微核架構又稱為“插件架構”,指的是軟件的內核相對較小,主要功能和業務邏輯都通過插件實現。內核(core)通常只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通信,應該減少到最低,避免出現互相依賴的問題,如圖8.9所示。圖8.9微核架構示意圖

8.2.1信息系統架構概述8.2信息系統架構設計和開發

微核架構的優點:良好的功能延伸性(extensibility),需要什么功能,開發一個插件即可;功能之間是隔離的,插件可以獨立的加載和卸載,使得它比較容易部署;可定制性高,適應不同的開發需要;可以漸進式地開發,逐步增加功能。

微核架構的缺點:擴展性(scalability)差,內核通常是一個獨立單元,不容易做成分布式;開發難度相對較高,因為涉及到插件與內核的通信,以及內部的插件登記機制。

8.2.1信息系統架構概述8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發SOA概述SOA是一個軟件系統的架構,將軟件系統的不同功能單元(稱為服務)通過服務之間定義良好的接口和契約將軟件系統的不同服務聯系起來。SOA是一種設計和實現企業應用程序的方法。SOA研究領域是分布式系統的“架構”范式。SOA是一種分布式的軟件架構,提倡以拆分業務的思想來分解單體架構的復雜度。8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發SOA關鍵技術(1)SOAP

SOAP(SimpleObjectAccessProtocol)即簡單對象訪問協議。定義了服務請求者和服務提供者之間的消息傳輸規范。

SOAP用XML來格式化消息,用HTTP來承載消息。通過SOAP,應用程序可以在網絡中心進行數據交換和遠程過程調用。8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發SOA關鍵技術(2)WSDL

WSDL(WebServicesDescriptionLanguage)是一種使用XML編寫的網絡描述語言。定義服務以及與該服務有關的具體信息,忽略該服務具體實現語言。

WSDL主要作用有兩點:一是定義服務,包括服務所提供的功能及服務的細節描述;二是服務的使用,調用服務時所需要的協議及協議格式。8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發SOA關鍵技術(3)UDDI

UDDI(UniversalDescriptionDiscoveryandIntegration)即一種統一描述、發現和集成協議,提供了一種服務發布、查找和定位的標準規范。通過UDDI

提供的標準規范,可以發布服務供其他用戶查詢和調用,也可以查詢特定服務的描述信息,并動態綁定到該服務上。8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發基于SOA的信息系統實現方法(1)WebService

WebService的解決方案有三部分組成,分別是服務提供者、服務請求者、注冊中心。這三部分之間的交互與操作,構成了SOA的一種實現架構,如圖8.18所示。圖8.18WebService模型8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發基于SOA的信息系統實現方法(2)服務注冊表服務注冊表提供一個策略執行點,在這個點上,服務可以在SOA中注冊,從而可以被發現和使用。①服務注冊。服務注冊是指服務提供者向服務注冊表發布服務的功能(服務合約)。②服務位置。服務位置是指服務使用者,幫助它們查詢已注冊的服務,尋找符合自身要求的服務。③服務綁定。服務使用者利用查找到的服務合約來開發代碼,開發的代碼將與注冊的服務進行綁定,調用注冊的服務,以及與它們實現互動。8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發基于SOA的信息系統實現方法(3)企業服務總線企業服務總線是SOA的基礎設施,用于保證服務使用者能夠調用提供者提供的服務。SOA采用企業服務總線來管理所有的業務流程,每個業務的服務調用流程事先在企業服務總線中固定執行序列,其核心作用:①數據格式轉換。因為SOA是支持異質的,所以企業服務總線主要的作用就是處理不同平臺不同語言之間的相互調用。②路由功能。不同優先級的消息,不同類型的消息是需要給予不同處理。8.2信息系統架構設計和開發

8.2.2基于SOA的信息系統開發基于SOA的信息系統開發過程基于SOA的信息系統本質特征是服務發現與實現,以基本業務服務為系統的基本實現單元,然后通過服務流程管理“組裝”信息系統。服務建模服務封裝服務治理服務編排服務識別和顆粒度確定,確定了系統架構的耦合程度對服務進行規范性的描述,決定服務以何種形式向外提供服務將已經封裝好的服務進行集中統一有效的管理根據信息系統業務流程的需求,對服務進行組合和組裝應用交付完成信息系統服務化組裝和服務部署,實現系統按需交付

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發基于微服務的信息系統總體設計微服務之間的通信模式是進程間通信方式,因為微服務的每一個服務實例都是一個獨立的進程并且可能部署在不同的服務器上,其劃分出5種不同的交互方式。如表8.3所示。

一對一一對多同步請求/響應無異步單向通知(單向請求)發布/訂閱雙向請求/異步響應發布/異步響應表8.4進程間通信交互模式關系表

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發基于微服務的信息系統總體設計基于微服務的信息系統開發就是將一個大型的單個應用或服務拆分成多個微服務,每個服務都是一個獨立的功能,可以進行獨立的測試、開發和部署等。圖8.19基于微服務的信息系統總體架構示意圖

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發基于微服務的信息系統總體設計微服務信息系統內部模塊劃分,一個服務組件的模塊劃分通常是由業務決定的,如果服務的功能比較復雜,服務內模塊的劃分就會比較多,反之,較少。層次命名功能描述業務控制層***Controller負責相應業務模塊流程的控制,調用Service接口業務邏輯層***Service負責具體的邏輯功能的設計實現,調用Dao接口數據模型層***Dao負責對底層數據庫中數據表的增、刪、改、查等工作表8.5服務組件功能結構描述

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發基于微服務的信息系統總體設計

一個完整的服務組件是通過分層的思想來實現。一般的服務組件劃分大概有一下幾層:消息接口層,業務控制層,業務邏輯層,數據模型層,數據適配層,公共處理層等六層。服務組件設計規則及注意事項消息接口層用于定義微服務對外發布的接口,不應該有太多業務邏輯業務控制層調用下層的算法和數據庫訪問接口實現業務處理邏輯,通過調用一個或者多個算法接口完成整個業務流的處理業務邏輯層實現數據組裝,模型轉換等所有業務相關的邏輯處理數據模型層定義了微服務使用的公共業務模型,接口模型也可以定義在這里面,但是需要通過不同的子模塊區分數據適配層提供訪問數據庫的接口,封裝了底層數據庫的JDBC訪問接口,提供了各種針對不同業務的封裝公共處理層提供的都是與業務員無關的公共組件和工具,定義微服務使用的常量(數字常量、字符串常量)和枚舉值等組件表8.6服務組件設計規則及注意事項

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務設計的六大原則(1)高內聚低耦合:單一職責、輕量級通信、服務間的契約;(2)高度自治:夠獨立開發、部署和發布、進程隔離、獨立的代碼庫和流水線;(3)以業務為中心:每個服務代表了特定的業務邏輯、更快的響應業務變化、圍繞業務組織團隊;(4)彈性設計:容錯、服務降級與服務熔斷;(5)日志與監控:日志聚合、監控與告警;(6)自動化:持續集成、持續交付。微服務是為了快速響應業務變化而誕生的,其宗旨是圍繞業務能力進行構建,最終達到去中心化的目的。

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原則(1)AKF拆分原則

《可擴展的藝術》一書提出了一個更加系統的可擴展模型——AKF可擴展立方(ScalabilityCube)。這個立方體中沿著三個坐標軸設置分別為:X、Y、Z,如圖8.20所示圖8.20AKF可擴展立方

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原—AKF拆分原則Y

軸(功能)

Y軸擴展會將龐大的整體應用拆分為多個服務。每個服務實現一組相關的功能。對于一個銷售管理系統來說,可以拆分成不同的服務,組成下面這樣的架構,如圖8.21所示。圖8.21銷售管理系統服務拆分示意圖

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原—AKF拆分原則隨著信息系統新功能的添加,要調用的服務數也變得不可控,由此引發了服務管理上的混亂。所以,采用服務注冊的機制形成服務網關來進行服務治理。系統的架構將變成圖8.22所示。圖8.22帶有服務網關的銷售管理系統示意圖

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原—AKF拆分原則X

軸(水平擴展)

X軸擴展是通過絕對平等地復制服務與數據,以解決容量和可用性的問題。為了提升單個服務的可用性和容量,對每一個服務進行水平擴展。圖8.23按X軸擴展的銷售管理系統示意圖

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原—AKF拆分原則Z軸(數據分區)

Z軸擴展通常是指基于請求者或用戶獨特的需求,進行系統劃分,并使得劃分出來的子系統是相互隔離但又是完整的。單元化架構:客戶端對服務端節點的選擇一般是隨機的,但是,如果在此加上Z軸擴展,那服務節點的選擇是每個單元自成一體。圖8.24按Z軸擴展的銷售管理系統示意圖

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原—AKF拆分原則Z軸(數據分區)

Z軸擴展通常是指基于請求者或用戶獨特的需求,進行系統劃分,并使得劃分出來的子系統是相互隔離但又是完整的。數據分區:為了性能數據安全上的考慮,將一個完整的數據集按一定的維度劃分出不同的子集。數據分區為一般包括以下幾種數據劃分的方式:數據類型(如:業務類型);數據范圍(如:時間段,用戶ID);數據熱度(如:用戶活躍度,商品熱度);按讀寫分(如:商品描述,商品庫存)。

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原則(2)前后端分離原則前后端分離原則,簡單來講就是前端和后端的代碼分離,也就是技術上做分離,我們推薦的模式是最好直接采用物理分離的方式部署,進一步促使進行更徹底的分離。這種分離模式的方式有幾個好處:前后端技術分離,可以由各自的專家來對各自的領域進行優化,這樣前端的用戶體驗優化效果會更好。分離模式下,前后端交互界面更加清晰,就剩下了接口和模型,后端的接口簡潔明了,更容易維護。前端多渠道集成場景更容易實現,后端服務無需變更,采用統一的數據和模型,可以支撐前端的webUI、移動App等訪問。

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原則(3)無狀態服務阻礙單體架構變為分布式架構的關鍵點就在于狀態的處理。如果狀態全部保存在本地,無論是本地的內存,還是本地的硬盤,都會給架構的橫向擴展帶來瓶頸。要將整個架構分成兩個部分,無狀態部分和有狀態部分,而業務邏輯的部分往往作為無狀態的部分,而將狀態保存在有狀態的中間件中,如緩存、數據庫、對象存儲、大數據平臺、消息隊列等。

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發微服務拆分原則(4)RESTful的通信風格

RESTful通信風格,它有許多優點:無狀態協議HTTP,具備先天優勢,擴展能力強,例如安全加密有成熟的https;JSON報文序列化,輕量簡單,人與機均可讀,學習成本低,搜索引擎友好;語言無關,各大熱門語言都提供成熟的RESTfulAPI框架,相對一些其他RPC框架生態更加完善。

8.2.3基于微服務的信息系統開發8.2信息系統架構設計和開發基于微服務的信息系統服務治理服務治理相關描述服務注冊和服務發現微服務采用服務注冊中心的方式來充當服務間的調用中介,服務注冊中心負責為每個微服務提供它要調用的其它服務信息服務配置基于微服務的信息系統中每個服務或多或少總有一些配置參數要管理,比如配置服務訪問的端口、數據庫連接參數、日志參數等服務熔斷為了保證信息系統在高負荷情況下的可靠運行,信息系統必須具有自我保護機制。這種自我保護機制可以通過限流、降級以及熔斷等措施實現負載均衡基于微服務的信息系統通過負載均衡實現系統的高可用和集群擴容等功能。負載均衡主要分兩種:服務端負載均衡和客戶端負載均衡服務網關基于微服務的信息系統屏蔽服務內部細節,為服務調用者提供統一入口,接收所有調用者請求,同時系統也必須保證能將請求通過路由機制傳遞給服務實例,這些都可交由服務網關來實現表8.7服務治理相關描述目錄8.1新一代信息技術及其應用8.2信息系統架構設計和開發8.3移動端App開發8.4大數據驅動的信息系統開發8.5開放環境下信息系統安全設計移動終端移動終端或者叫移動通信終端是指可以在移動中使用的計算機設備,廣義的講包括手機、筆記本、平板電腦、POS機甚至包括車載電腦。但是大部分情況下是指手機或者具有多種應用功能的智能手機以及平板電腦。移動終端是指具有獨立的操作系統,可以安裝和運行第三方軟件,并具備移動通信能力的手持設備。8.3移動端App開發

8.3.1移動端App概述移動操作系統移動操作系統是安裝在移動設備(例如智能手機,個人數字助理(PDA),超移動PC和MID)中的通用操作系統。也稱為移動操作系統,移動通用操作系統,移動平臺。目前主要兩大移動操作系統:一個是iOS系統,另一個是Android系統。8.3移動端App開發

8.3.1移動端App概述移動終端的特點(1)硬件體系上,移動終端具備中央處理器、存儲器、輸入部件和輸出部件,也就是說,移動終端往往是具備通信功能的微型計算機設備,可以具有多種輸入方式,諸如鍵盤、鼠標、觸摸屏、送話器和攝像頭等。(2)在軟件體系上,移動終端必須具備操作系統,同時,這些操作系統越來越開放,基于這些開放的操作系統平臺開發的個性化應用軟件層出不窮,極大程度地滿足了個性化用戶的需求。(3)在通信能力上,移動終端具有靈活的接入方式和高帶寬通信性能,并且能根據所選擇的業務和所處的環境,自動調整所選的通信方式,從而方便用戶使用。8.3移動端App開發

8.3.1移動端App概述移動App開發移動App開發又稱移動互聯網開發,移動應用開發等。是指以智能手機、PDA、UMPC等便攜終端為基礎,進行相應的開發工作,由于這些隨身設備基本都采用無線上網的方式,因此,稱作為無線開發。移動App開發不僅僅是指為這些移動終端設備開發應用程序,還要關注這些設備支持的常見操作系統、平臺和語言。8.3移動端App開發

8.3.1移動端App概述移動App應用開發模式多種多樣,選擇合適的模式是移動應用系統開發首先面臨的一個重要問題。移動App開發模式主要包括原生開發模式(NativeApp)、網頁開發模式(webApp)、混合開發模式(HybridApp)和微信小程序等四種模式。

8.3.2移動端APP開發主要模式8.3移動端App開發NativeAPP開發模式

NativeAPP開發模式又稱傳統型開發模式,是基于本地操作系統運行的APP應用程序。移動APP的開發需要針對不同的移動終端操作系統采用不同的語言和框架進行開發,一般包括云服務器數據和APP應用客戶端兩個構成部分,但所有的圖形用戶界面元素、內容以及邏輯框架均需要下載安裝在移動終端。NativeApp開發采用的是C/S架構,即客戶端/服務端架構,如圖8.13所示。

8.3.2移動端APP開發主要模式圖8.13原生應用架構示意圖8.3移動端App開發

NativeApp優勢:(1)審核對App的質量以及安全性有保證,增加用戶對App的信任;(2)可在應用商店進行推薦,用戶下載安裝后在桌面有小圖標,易發現;(3)在本地有緩存,省流量、響應速度快、性能高、整體用戶體驗良好;(4)能充分利用設備提供的硬件資源;(5)部分支持離線(己下載的內容,無網也可訪問);(6)有消息推送的功能。

8.3.2移動端APP開發主要模式8.3移動端App開發

NativeApp劣勢:(1)需要下載安裝,安裝后占用內存,同時本地的緩存也占用大量內存,造成用戶設備運行越來越慢的局面;(2)與操作系統綁定,增加開發、維護人員的工作量;(3)開發成本高、周期長,維護難度大;(4)發布過程繁瑣,不同版本上線時間不統一;(5)新版本需要用戶重新下載升級,如果不更新,用戶體驗不到新版本改善或添加的功能。

8.3.2移動端APP開發主要模式8.3移動端App開發WebAPP開發模式

WebAPP開發模式是一種框架型開發模式,其本質上是針對智能移動終端特殊優化后的web站點,運行于網絡與瀏覽器的移動應用。與NativeApp不同,WebApp所有的數據都由服務器端提供,實現了與數據服務器端的實時交互,也正是這種實時交互導致它的響應能力不如NativeApp。WebApp的架構如圖8.14所示。

8.3.2移動端APP開發主要模式8.3移動端App開發圖8.14WebApp應用架構示意圖

WebApp優勢:(1)不需要下載安裝,只需要在瀏覽器輸入網址就可打開,可進行收藏或添加標簽,以便下次打開;(2)用戶得到的永遠是最新的版本;(3)跨平臺,開發成本低,周期短;(4)上線不需要審核;(5)不同WebApp之間可以通過鏈接跳轉;(6)HTML5的新特性減少對插件的依賴。

8.3.2移動端APP開發主要模式8.3移動端App開發

WebApp劣勢:(1)無法調用設備提供的API,只能通過JS或HTML5提供的API;(2)需要良好的網絡環境,響應速度不如原生,并且需要流量大;(3)依賴于瀏覽器(支持HTML5);(4)不需要審核導致安全性不如其他開發模式。

8.3.2移動端APP開發主要模式8.3移動端App開發HybridAPP開發模式

HybridAPP開發模式是在NativeAPP和WebAPP開發模式基礎上衍生的一種APP開發模式,HybridAPP的架構與NativeAPP架構比較接近,但客戶端與服務器端數據訪問形式又與WebAPP比較接近。HybridApp架構如圖8.15所示。

8.3.2移動端APP開發主要模式8.3移動端App開發圖8.15HybridAPP應用架構示意圖

HybridApp優勢:(1)具有WebApp跨平臺、實時更新、低成本、開發周期短等優勢;(2)具有NativeApp用戶體驗良好、調用設備硬件API等優勢。

HybridApp劣勢:(1)用戶體驗不如原生;(2)開發成本比WebApp大。HybridApp開發模式一般適用于大部分的移動應用,是目前電商、餐飲等領域首選開發模式。

8.3.2移動端APP開發主要模式8.3移動端App開發微信小程序

微信小程序簡稱小程序,目前己經是開發人員開發移動應用時首選的開發模式,它的架構如圖8.16所示。小程序是一種不需要下載安裝就可以使用的應用,體現了‘用完就走’的思想,給那些放在桌面累贅又不能丟棄的應用提供了住所。

8.3.2移動端APP開發主要模式8.3移動端App開發圖8.16微信小程序應用架構示意圖

微信小程序優勢:(1)不需要下載安裝;(2)跨平臺,占用內存少;(3)可以通過微信釋放的API來獲取設備硬件資源的調用;(4)用戶獲得的數據永遠為最新數據。

微信小程序劣勢:(1)小程序首次啟動時需要從CDN加載小程序包,啟動較慢;(2)小程序代碼有1M限制,適合小應用的開發。

8.3.2移動端APP開發主要模式8.3移動端App開發APP開發模式和小程序的比較

8.3.2移動端APP開發主要模式8.3移動端App開發表8.2NativeApp、HybridApp、WebApp和微信小程序的分析對比

維度NativeAppWebAppHybridApp微信小程序跨平臺否是是是下載安裝是否是否實時更新否是部分是是調用設備API支持很少支持微信提供的API離線是是是是用戶體驗優中優優開發成本高低中低于Web

APP維護成本高低中低于Web

APP流量使用少多介于原生與網頁應用之間少APP開發模式和小程序的比較

選擇適合移動App開發模式的建議:(1)極度追求畫面流暢度的大型游戲建議使用Native開發模式,比如王者榮耀;(2)工具類應用建議使用Native開發模式,如百度地圖等工具;(3)除非必要,否則不建議選擇Native開發模式;(4)對于像新聞資訊這樣需要經常更新的應用,首先要摒棄NativeApp開發模式;(5)對于使用頻率低的應用,建議開發小程序(注意小程序1M的容量限制),當然在此基礎上也可開發HybridApp;(6)對于涉及資金、敏感信息這類應用,不建議使用WebApp;(7)如果資金充足,可以考慮開發HybridApp。

8.3.2移動端APP開發主要模式8.3移動端App開發

8.3.3移動端APP開發一般流程8.3移動端App開發移動APP開發會根據不同的應用程序特征,制定相應的開發流程。但一般意義上,APP軟件開發的主要階段包括需求分析、軟件設計、代碼編寫、測試以及發布與維護,如圖8.17所示。圖8.17移動APP軟件開發一般流程

8.3.3移動端APP開發一般流程8.3移動端App開發(1)需求分析。相比其他軟件,App軟件更注重客戶的特定需求,因而軟件開發者必須深入了解客戶訴求,明確客戶需求,明確相關的功能訴求以及友好界面訴求。(2)軟件設計。完成用戶需求分析后,就需要對App軟件進行規劃設計。設計階段主要包含功能設計和界面設計。(3)代碼編寫。編程人員根據功能設計和界面設計內容,完成相關的代碼開發編寫工作。(4)測試階段。測試在App軟件開發中尤為重要,通過測試反饋,可以不斷地修正App產品,使之無限接近客戶需求。一般App軟件會在完成代碼編寫工作后,在目標客戶群中進行測試,收集反饋意見并不斷完善。(5)發布與維護。反復測試與完善后,App軟件即可正式發布運營,但后期軟件開發者還需要對軟件進行有效維護,應對突發事件。目錄8.1新一代信息技術及其應用8.2信息系統架構設計和開發8.3移動端App開發8.4大數據驅動的信息系統開發8.5開放環境下信息系統安全設計數據驅動信息系統數據驅動是指通過互聯網或以其它相關系統為手段,采集海量的數據,將數據進行組織形成信息,利用規則、算法、機器學習、深度學習等手段進一步處理信息,在數據的基礎上進行經過訓練和擬合,實現對數據中隱含規律的挖掘,形成自動化的決策模型。簡單來說就是以數據為中心進行決策和行動。數據驅動的信息系統擁有一套完整的數據價值體系,將數據分析納入決策流程,對企業決策提供有價值和影響的數據。通過對數據的收集、整理、提煉,總結出規律形成一套智能模型,之后通過人工智能的方式給出決策方案。8.4大數據驅動的信息系統開發

8.4.1數據驅動的信息系統概述數據驅動的信息系統數據結構類型(1)結構化數據:結構化數據類型包括預定義的數據類型、格式和結構的數據,表現為二維形式的數據,如關系型數據庫中數據表里的數據

。(2)半結構化數據:半結構化數據不符合關系型數據庫的數據模型結構,但具有自描述的結構,包含相關標記,用來分隔語義元素以及對記錄和字段進行分層。常見的半結構數據有XML和JSON。(3)準結構化數據:具有不規則數據格式的文本數據,使用工具可以使之格式化。(4)非結構化數據:沒有固定結構的數據,如語音、圖片、視頻等格式的數據。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的信息系統特點在互聯網、云計算及大數據環境下,信息系統的數據已經發生顯著的變化。數據來源廣泛性。互聯網發展使得信息系統數據產生的來源愈加多元多樣,獲取數據的渠道也更加寬泛。數據類型多樣化。傳統信息系統數據以結構化數據類型為主,而大數據環境下的信息系統數據不僅包含結構化數據,更多是以非結構化數據為主。數據量大。大數據時代,信息系統的數據量迅速增加。價值密度高。在大數據變革中數據和技術的結合,數據驅動信息系統從傳統的“業務功能為主”轉為“信息資源為主”模式。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的信息系統關鍵技術(1)分布式文件管理技術數據存儲與管理是大數據應用的基礎之一,但是傳統的數據文件管理系統不適用于大數據信息系統,需要根據實際應用需求進行設計與分析。該管理技術通過分塊存儲、關聯鏈接、追加更新等對數據進行存儲與管理,但是對于大文件的管理與存儲,該技術存在一定的不足,為彌補和完善該不足,多個類GFS文件管理系統被開發應用到大數據管理中。這些技術通過增加緩沖層、使用內存加載部分元數據的方式提升了數據的存儲和讀取效率,使得大數據文件管理系統進入集群管理階段。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的信息系統關鍵技術(2)分布式數據處理系統數據大數據信息的處理方式主要有流處理和批處理兩種。前者將所需要處理的海量數據看作是一個不間斷的流,可以實時的對進入處理系統的數據進行處理和結果返回。分布式處理方式的應用極大的提升了系統的數據處理實時性。后者則是將需要處理的數據先執行存儲操作再對其進行處理。該技術可以使用將數據按照特定的分割方式分為多塊數據,這些數據可同時由多個處理終端進行并行處理。顯然,該處理技術淡化了數據的關聯部分,但是極大的提升了數據的可調度性、集群性。該技術的核心在于數據的分割、分發以及處理。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的信息系統關鍵技術(3)分布式數據庫系統為實現大數據的處理需要采用更簡單的數據庫模型。

8.4.1數據驅動的信息系統概述技術特點優化Bigtable技術

將數據信息看作字符串使得所被管理的數據具有結構化或半結構化特征Dynamo技術

鍵值存儲、分布式哈希表、向量時鐘等技術實現對大數據庫系統的可靠高效管理NoSQLogic

數據庫

模式智能識別、一致化與簡單化應用程序接口等技術達到較好的應用效果表8.3典型數據庫技術對比

8.4大數據驅動的信息系統開發數據驅動的信息系統關鍵技術(4)其他系統及關鍵技術數據驅動的信息系統結構復雜,除上述幾部分系統之外還包括其他多個系統,這些系統又由多個大數據處理與分析技術構成,如數據挖掘技術、云計算技術、模式識別技術、聚類分析技術、稀疏問題處理技術等。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的系統應用意義(1)提高工作效率,保證工作質量數據在以往的管理過程中,管理人員的工作常常是機械性的、處理時間冗長、過程復雜麻煩,缺乏及時性。而企業管理工作的信息化,既可以提升管理工作效率,減輕管理人員的工作,又能夠保證工作的質量。企業管理人員能夠更準確及時的判斷當前公司的運營狀態,實時掌握企業狀況,做出經濟決策。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的系統應用意義(2)科學管理企業,準確預測風險利用大數據信息化管理工作可以提升對數據的利用價值,可以更加科學地進行系統化管理,使數據信息傳遞更加快速規范,縮短預測花費的時間,準確預測企業存在風險,提高的預測效率。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的系統應用意義(3)降低企業成本,優化配置資源大數據技術具有分布式、大規模及深層次的信息存儲分析能力,這就為管理信息系統的發展帶來了技術支持。大數據環境下的中小企業信息管理,僅需要申請軟件許可證并定期完成軟件升級就可實現,企業并不需要重復購買硬件設備。只要企業確保有很好的網絡信號,大數據就能以服務資源形式提供計算能力,隨時監測和衡量服務資源的使用情況,也能結合實際情況針對用戶和供應商提供不同的報告,這些服務資源就能被定量化控制。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發數據驅動的系統應用意義(4)打破工作模式,提高核心競爭力由于大數據對終端硬件配置的要求不高,用戶不需要再配備儲存設備和操作系統,在網絡狀態下就能存儲大量數據資料。對企業來說,僅需要借助于大數據技術就能在員工間遠程傳輸數據,工作效率大幅度提高。大數據環境下的中小企業管理信息系統可以隨時依據社會需求,對管理信息系統的服務能力與管理效能進行增強,企業的運維成本降低,進一步促進了企業管理模式的創新與商業模式的創新。

8.4.1數據驅動的信息系統概述8.4大數據驅動的信息系統開發

8.4.2數據驅動的信息系統開發8.4大數據驅動的信息系統開發數據驅動的信息系統開發關鍵要素數據驅動是大數據下信息系統開發實施關鍵技術。第

溫馨提示

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

評論

0/150

提交評論