




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于SpringCloud-微服務系統設計方案(完整資料)(可以直接使用,可編輯優秀版資料,歡迎下載)
微服務系統設計方案基于SpringCloud-微服務系統設計方案(完整資料)(可以直接使用,可編輯優秀版資料,歡迎下載)微服務本質 微服務架構從本質上說其實就是分布式架構,與其說是一種新架構,不如說是一種微服務架構風格。?簡單來說,微服務架構風格是要開發一種由多個小服務組成的應用。每個服務運行于獨立的進程,并且采用輕量級交互.多數情況下是一個HTTP的資源API.這些服務具備獨立業務能力并可以通過自動化部署方式獨立部署。這種風格使最小化集中管理,從而可以使用多種不同的編程語言和數據存儲技術。?對于微服務架構系統,由于其服務粒度小,模塊化清晰,因此首先要做的是對系統整體進行功能、服務規劃,優先考慮如何在交付過程中,從工程實踐出發,組織好代碼結構、配置、測試、部署、運維、監控的整個過程,從而有效體現微服務的獨立性與可部署性。 本文將從微服務系統的設計階段、開發階段、測試階段、部署階段進行綜合闡述。?理解微服務架構和理念是核心。系統環境名稱版本說明JDK1。8SpringBootSpringFrameworkRibbonkafkaRabbitMQ微服務架構的挑戰可靠性:由于采用遠程調用的方式,任何一個節點、網絡出現問題,都將使得服務調用失敗,隨著微服務數量的增多,潛在故障點也將增多。也就是沒有充分的保障機制,則單點故障會大量增加.運維要求高: ?系統監控、高可用性、自動化技術分布式復雜性:??網絡延遲、系統容錯、分布式事務部署依賴性強:? 服務依賴、多版本問題性能(服務間通訊成本高):? 無狀態性、進程間調用、跨網絡調用?數據一致性:? 分布式事務管理需要跨越多個節點來保證數據的瞬時一致性,因此比起傳統的單體架構的事務,成本要高得多。另外,在分布式系統中,通常會考慮通過數據的最終一致性來解決數據瞬時一致帶來的系統不可用。重復開發: ?微服務理念崇尚每個微服務作為一個產品看待,有自己的團隊開發,甚至可以有自己完全不同的技術、框架,那么與其他微服務團隊的技術共享就產生了矛盾,重復開發的工作即產生了。?沒有最好的,只有最適合自己的。架構設計思維設計?微服務架構設計的根本目的是實現價值交付,微服務架構只有遵循DevOps理念方可進行的更順暢,思維方式的轉變是最重要的。實現微服務技術架構,現有產品需要進行技術上的改進以及相關配套服務的實現,采用分階段實施、以及試點產品優先實施的策略,主要包括如下:?一、技術上的改進:?1、前后端分離,web前端通過Http/Https協議調用微服務的API網關,由API網關再經過路由服務調用相應的微服務?2、不同微服務之間通過REST方式互相調用?3、微服務之間通過消息中間件實現消息交互機制?二、配套服務與功能實現: 1、需要進行相應的自動化服務實現,包括自動化構建、自動化安裝部署、自動化測試、自動化平臺發布(Docker實現)?2、管理服務,對于微服務架構,必須配套相應的監控與管理服務、日志管理服務等?3、協作服務,運用DevOps思想提升開發、測試、運維的高效溝通與協作,實現開發與運維的一體化微服務架構設計?
1、我們把整個系統根據業務拆分成若干個子系統或微服務.
2、每個子系統可以部署多個應用,多個應用之間使用負載均衡。
3、需要一個服務注冊中心Eureka,所有的服務都在注冊中心注冊,負載均衡也是通過在注冊中心注冊的服務來使用一定策略來實現。? Eureka可部署多個,進行高可用保證。
4、所有的客戶端都通過同一個網關地址訪問后臺的服務,通過路由配置ZUUL網關來判斷一個URL請求由哪個服務處理.請求轉發到服務上的時候使用負載均衡Ribbon。
5、服務之間采用feign進行調用.
6、使用斷路器hystrix,及時處理服務調用時的超時和錯誤,防止由于其中一個服務的問題而導致整體系統的癱瘓。
7、還需要一個監控功能,監控每個服務調用花費的時間等.8、使用SpringCloudConfig進行統一的配置管理,需要考慮與公司的配置管理平臺如何配合使用。?9、Hystrix,監控和斷路器.我們只需要在服務接口上添加Hystrix標簽,就可以實現對這個接口的監控和斷路器功能。
10、HystrixDashboard,監控面板,他提供了一個界面,可以監控各個服務上的服務調用所消耗的時間等。
11、Turbine,監控聚合,使用Hystrix監控,我們需要打開每一個服務實例的監控信息來查看。而Turbine可以幫助我們把所有的服務實例的監控信息聚合到一個地方統一查看。這樣就不需要挨個打開一個個的頁面一個個查看。架構的可靠性保證:?在關鍵節點做主備、集群部署,防止單點故障.待后續確認問題: 1、AccessControl:Zuul網關提供了相關控制功能,與我司CAS如何結合使用?2、ConfigServer:SpringCloud提供了遠程配置中心,與我司的配置管理平臺如何結合使用設計階段總體設計 1、功能規劃:對產品功能進行拆分,拆分為若干個微服務;一個功能可以創建多個微服務并部署在多個服務器節點上,以便進行負載均衡。 2、設計原子服務層,梳理和抽取核心應用、公共應用,作為獨立的服務下沉到核心和公共能力層,逐漸形成穩定的服務中心,使應用能更快速的響應多變的客戶需求。?3、為每個服務設計API接口(REST方式)?4、為不同的服務進行分類,不同類型的服務需要的資源不同,可以配置不同的資源,包括CPU、內存、存儲等。服務拆分原則?1、粒度微小: ?根據業務功能劃分服務粒度,總的原則是服務內部高內聚,服務之間低耦合。?2、責任單一: 每個服務只做一件事,即單一職責原則。 3、隔離性原則: ?每個服務相互隔離,且不互相影響?4、業務無關優先原則: ?基礎服務,是一些基礎組件,與具體的業務無關。比如:短信服務、郵件服務.這里的服務最容易劃分出來做微服務,也是我們第一優先級分離出來的服務。服務規劃 為實現負載均衡,允許相同的服務在多個節點注冊相同的服務名,不同的端口.如果沒有前期的規劃,不同的服務提供者可能會注冊相同的服務名,導致消費者調用服務時產生調用混亂。?因此,需進行服務名的統一規劃: 1、規劃期統一制定每個服務提供者的服務名或者模塊標示。?2、服務名的命名規則:ModuleName_ServiceName,且所有字符小寫,不同單詞之間以下劃線分隔。如用戶管理模塊提供了獲取用戶信息的服務,則命名為:user_get_info。?3、新增服務名時,需要提出申請,審批通過后方可使用,為減少審批復雜度,可只審批ModuleName,即在模塊內部可以自由增加服務名,不需要進行審批。開發策略?總體原則:不同的微服務需進行物理隔離。?1、SVN策略:SVN上創建獨立的分支,不同微服務的代碼提交不受相互影響; —-—由配置管理員統一控制。 問題:開發分支與集成分支,都將增加很多,維護工作量增加. 2、編譯策略:代碼編譯時,各個微服務獨立編譯、打包,杜絕直接的依賴;?3、工程構建:代碼開發時,各微服務創建獨立的工程,工程之間不能產生直接依賴 4、持續集成:每個微服務獨立執行持續集成. 5、版本集成:由統一的集成工具,實現自動化的版本集成,將所有微服務集成到統一的版本發布包中。版本策略?每個微服務可以獨立制作版本,伴隨著服務的增多,SVN分支增多,版本也將增多,版本管理的復雜度將成指數級增加。在服務之間依賴較多時,每個服務的升級或降級都將影響其他服務的正常運行。 因此需執行如下策略: 1、所有服務的版本制作交由專業的版本管理員執行. 2、采用自動化的版本制作策略,最大程度的減少人工操作.?3、每個服務的版本必須有詳細的版本計劃、版本說明,對于版本說明要制定模板,明確需要提交的內容、版本號、SVN標簽等。?4、對項目經理的要求提升,需對整體的版本計劃有嚴格的制定,尤其是版本之間的依賴關系要非常明確,版本升級、降級的風險評估需完全充分. 5、接口管理:嚴格執行接口管理制度,任何接口的變更必須進行審批、發公告等流程。數據庫挑戰與策略 每個微服務都有自己獨立的數據庫,那么后臺管理的聯合查詢怎么處理?這應該是大家會普遍遇到的一個問題,有三種處理方案。?1)嚴格按照微服務的劃分來做,微服務相互獨立,各微服務數據庫也獨立,后臺需要展示數據時,調用各微服務的接口來獲取對應的數據,再進行數據處理后展示出來,這是標準的用法,也是最麻煩的用法。?2)將業務高度相關的表放到一個庫中,將業務關系不是很緊密的表嚴格按照微服務模式來拆分,這樣既可以使用微服務,也避免了數據庫分散導致后臺系統統計功能難以實現,是一個折中的方案。?3)數據庫嚴格按照微服務的要求來切分,以滿足業務高并發,實時或者準實時將各微服務數據庫數據同步到NoSQL數據庫中,在同步的過程中進行數據清洗,用來滿足后臺業務系統的使用,推薦使用MongoDB、HBase等。 第一種方案適合業務較為簡單的小公司;第二種方案,適合在原有系統之上,慢慢演化為微服務架構的公司;第三種適合大型高并發的互聯網公司。?建議,我們當前采用第二種方案。負載均衡 不再采用一般的增加負載均衡服務器的方式進行負載均衡,如F5、Nginx、LVS等,而是把負載均衡的功能以庫的方式集成到服務消費方的進程內,這種方案稱為軟負載均衡(SoftLoadBalancing)或者客戶端負載均衡.在SpringCloud中配合Eureka的服務注冊功能,Ribbon子項目則為REST客戶端實現了負載均衡。?使用Ribbon進行負載均衡,其工作原理可以概括為下面四個步驟:Ribbon首先根據其所在Zone優先選擇一個負載較少的EurekaServer;定期從EurekaServer更新并過濾服務實例列表;根據指定的負載均衡策略,從可用的服務器列表中選擇一個服務實例的地址;然后通過RestClient進行服務調用。Ribbon本身提供了下面幾種負載均衡策略:RoundRobinRule:
輪詢策略,Ribbon以輪詢的方式選擇服務器,這個是默認值.所以示例中所啟動的兩個服務會被循環訪問;RandomRule:
隨機選擇,也就是說Ribbon會隨機從服務器列表中選擇一個進行訪問;BestAvailableRule:
最大可用策略,即先過濾出故障服務器后,選擇一個當前并發請求數最小的;WeightedResponseTimeRule:
帶有加權的輪詢策略,對各個服務器響應時間進行加權處理,然后在采用輪詢的方式來獲取相應的服務器;AvailabilityFilteringRule:
可用過濾策略,先過濾出故障的或并發請求大于閾值一部分服務實例,然后再以線性輪詢的方式從過濾后的實例清單中選出一個;ZoneAvoidanceRule:
區域感知策略,先使用主過濾條件(區域負載器,選擇最優區域)對所有實例過濾并返回過濾后的實例清單,依次使用次過濾條件列表中的過濾條件對主過濾條件的結果進行過濾,判斷最小過濾數(默認1)和最小過濾百分比(默認0),最后對滿足條件的服務器則使用RoundRobinRule(輪詢方式)選擇一個服務器實例。性能策略 1、網絡優化:優化組網結構,提升網絡間通訊性能; 2、配置優化:優化SpringCloud組件集以及其他組件的配置信息,使得性能最大化.技術管理策略?微服務的架構理念中指出各微服務可以獨立建設,可以使用不同的技術、語言、框架等,以便能更快速的使用新技術、新框架等響應特定客戶需求,解決單體應用架構更新技術、更新框架時面臨的困難或阻礙。?但這也同時帶來了諸多問題,如下: 1、各服務是否可以任意使用自己的技術、自己的組件、框架呢?如果這樣,勢必帶來更大的管理困難、維護困難、技術共享困難。 2、公共的方法如何實現共享?如格式化時間的一個簡單方法需要共享,也需要封裝為一個服務接口嗎??管理策略: 1、總體原則:仍然需要進行統籌考慮,所有組件統一管理,組件放置在產品倉庫中,每個產品或服務需要共享組件時,從產品倉庫獲取。?2、特殊情況:特殊服務需要使用特殊的組件、框架,需提出申請,統籌規劃后進行決策。開發階段服務的調用AIP網關調用所有服務通過Zuul網關進行調用,不允許直接調用微服務提供者。Zuul可能會成為系統瓶頸,在項目復雜時可考慮為Zuul進行主備或負載均衡處理。同步調用?采用HTTPREST方式進行調用,針對業務需求可以進行負載均衡,負載均衡的調用方式有兩種:?1、FeignClient 2、RestTemplate?建議使用FeignClient方式進行服務調用。?不管是什么方式,他都是通過REST接口調用服務的http接口,參數和結果默認都是通過Jackson序列化和反序列化。因為SpringMVC的RestController定義的接口,返回的數據都是通過Jackson序列化成JSON數據。異步調用?rabbitMq、kafka、SpringCloudStream均是可以選擇的方案.SpringCloudStream,基于Redis、Rabbit、Kafka實現的消息微服務,簡單聲明模型用以在SpringCloud應用中收發消息。服務間調用的權限驗證一般我們的API接口都需要某種授權才能訪問,登陸成功以后,然后通過token或者cookie等方式才能調用接口。使用SpringCloudNetfix框架的話,登錄的時候,把登錄請求轉發到相應的用戶服務上,登陸成功后,會設置cookie或headertoken等。然后客戶端接下來的請求就會帶著這些驗證信息,從Zuul網關傳到相應的服務上進行驗證。Zuul網關在把請求轉發到后臺的服務的時候,會默認把一些header傳到服務端,如:Cookie、Set-Cookie、Authorization.這樣,客戶端請求的相關headers就可以傳遞到服務端,服務端設置的cookie也可以傳到客戶端。但是,如果你想禁止某些header透傳到服務端,可以在Zuul網關的application.yml配置里通過下面的方式禁用:zuul:?routes:?users:
path:/users/**
sensitiveHeaders:Cookie,Set—Cookie,Authorization
serviceId:user剛才說了我們的某個服務有時候需要調用另一個服務,這時候,這個請求不是客戶端發起,他的請求的header里面也不會有任何驗證信息。這時候,要么,通過防火墻等設置,保證服務間調用的接口,只能某幾個地址訪問;要么,就通過某種方式設置header。同時,如果你想在某個服務里面獲得這個請求的真是IP,(因為請求的通過網關轉發而來,你直接通過request獲得ip得到的是網關的IP),就可以從headerX-Forwarded—Host獲得.如果想禁用這個header,也可以:zuul.addProxyHeaders=false如果你使用RestTemplate的方式調用,可以在請求里面添加一個有header的Options。也可以通過如下的攔截器的方式設置,它對RestTemplate方式和FeignClient的方式都可以起作用:@Bean?publicRequestInterceptorrequestInterceptor(){?returnnewRequestInterceptor(){?@Override?publicvoidapply(RequestTemplatetemplate){?StringauthToken=getToken();?template.header(AUTH_TOKEN_HEADER,authToken);?}
};
}服務編排?主要的作用是減少項目中的相互依賴。比如現在有項目a調用項目b,項目b調用項目c...一直到h,是一個調用鏈,那么項目上線的時候需要先更新最底層的h再更新g.。。更新c更新b最后是更新項目a。這只是這一個調用鏈,在復雜的業務中有非常多的調用,如果要記住每一個調用鏈對開發運維人員來說就是災難.有這樣一個好辦法可以盡量的減少項目的相互依賴,就是服務編排,一個核心的業務處理項目,負責和各個微服務打交道。比如之前是a調用b,b掉用c,c調用d,現在統一在一個核心項目W中來處理,W服務使用a的時候去調用b,使用b的時候W去調用c。 其實可以理解為面向對象的設計,減少方法之間的一層層嵌套調用,而采取一個方法進行業務流程的串聯,如方法W實現一個完整的業務處理,則采取下面方式:?functionw() { ?1、調用方法a; 2、調用方法b;?3、調用方法c;?}服務的熔斷處理?在服務之間進行調用時,由于各種原因會導致遠程服務不可用或壓力過載等異常導致的故障蔓延,此時需要有一種機制進行保護處理。SpringCloud通過Netflix的Hystrix組件實現熔斷和降級處理解決此問題。斷路器(CricuitBreaker)是一種能夠在遠程服務不可用時自動熔斷(打開開關),并在遠程服務恢復時自動恢復(閉合開關)的設施,SpringCloud通過Netflix的Hystrix組件提供斷路器、資源隔離與自我修復功能。SpringcloudHystrix熔斷器
?統一日志管理?不同微服務部署在不同節點上,登錄每個節點查看日志是比較麻煩的,同時對于需要關聯多個微服務日志聯合查看分析的情況將更加麻煩.伴隨節點數量的增加,如果沒有合適的管理機制與工具,定位問題、發現問題的復雜性將越來越大,將成指數級增長,因此需要進行統一日志管理。 1、建立統一的日志管理規范; 2、開發并使用統一的日志組件,為所有微服務提供統一的日志服務,由log4j或Blitz4j封裝;?3、在每個服務節點上部署日志采集Agent組件,由此Agent進行日志的采集與轉發;?4、建立統一的日志中心,所有日志寫入日志中心.?說明:上述日志的實現由公司的“日志管理平臺”進行實現,采用的是ELK集合框架.?統一監控管理 使用Hystrix組件進行服務的監控,使用Nagios進行服務器等資源的監控。 1、Hystrix,監控和斷路器。我們只需要在服務接口上添加Hystrix標簽,就可以實現對這個接口的監控和斷路器功能.
2、HystrixDashboard,監控面板,他提供了一個界面,可以監控各個服務上的服務調用所消耗的時間等。
3、Turbine,監控聚合,使用Hystrix監控,我們需要打開每一個服務實例的監控信息來查看。而Turbine可以幫助我們把所有的服務實例的監控信息聚合到一個地方統一查看。這樣就不需要挨個打開一個個的頁面一個個查看。統一配置管理?實現各微服務的統一參數配置以及版本管理,可采用公司的配置管理平臺或者SpringCloudConfig配置中心。SpringCloudConfig配置中心
? SpringCloudConfig就是我們通常意義上的配置中心.SpringCloudConfig—把應用原本放在本地文件的配置抽取出來放在中心服務器,本質是配置信息從本地遷移到云端。從而能夠提供更好的管理、發布能力。
SpringCloudConfig分服務端和客戶端,服務端負責將git(svn)中存儲的配置文件發布成REST接口,客戶端可以從服務端REST接口獲取配置。但客戶端并不能主動感知到配置的變化,從而主動去獲取新的配置,這需要每個客戶端通過POST方法觸發各自的/refresh。 為解決配置信息能及時通知到各服務,同時減少每個微服務處理配置信息更新的復雜度,為此我們通過消息總線來解決此問題,方案如下:Git倉庫、ConfigServer、以及微服務“ServiceA"、“ServiceB"的實例中都引入了SpringCloudBus,所以他們都連接到了RabbitMQ的消息總線上。從Git倉庫中配置的修改到發起/bus/refresh的POST請求這一步可以通過Git倉庫的WebHook來自動觸發。/bus/refresh請求不再發送到具體服務實例上,而是發送給ConfigServer,并通過destination參數來指定需要更新配置的服務或實例。由于所有連接到消息總線上的應用都會接受到更新請求,所以在WebHook中就不需要維護所有節點內容來進行更新,從而解決了通過WebHook來逐個進行刷新的問題。分布式session?采用Redis作為緩存組件以及session的共享組件。 REST資源響應結構 制定規范和解析方法.API調用鏈追蹤?微服務架構上通過業務來劃分服務的,通過REST調用,對外暴露的一個接口,可能需要很多個服務協同才能完成這個接口功能,如果鏈路上任何一個服務出現問題或者網絡超時,都會形成導致接口調用失敗。隨著業務的不斷擴張,服務之間互相調用會越來越復雜。SpringCloudSleuth主要功能就是在分布式系統中提供追蹤解決方案,并且兼容支持了zipkin,你只需要在pom文件中引入相應的依賴即可。單元測試 做微服務架構,進行系統測試的復雜度較大,為保證產品質量與開發、測試效率,單元測試是必不可少的.?可采用Mock方式進行測試模擬,由持續集成進行自動化單元測試的執行以及結果輸出。代碼調試 對于單體架構系統,可直接本地化調試,但對于微服務架構,接口間的調用需采用遠程通訊的方式,也就是說被調用的服務必須啟動后方可被調用,因此當微服務增多時,你可能需要啟動大量的微服務或者web服務器,這給本地化調用與調試帶來了困難。?解決方案待研究.測試自動化測試單元測試:??由開發人員實現。? 采用Mock方式進行測試模擬,由持續集成進行自動化單元測試的執行以及結果輸出.業務測試:? 開發進行實現,測試也需考慮如何實現。 ?將多個服務或業務單元進行串聯,測試一個完整的業務,甚至是不同業務之間組成的系統測試,需要采用相關的自動化測試框架執行,如RobotFramework自動化測試框架。依賴測試?也可以稱為接口測試或者契約測試,在微服務逐漸增多的情況下,如何有效保證服務之間能夠按照接口的約定正常工作,即符合契約,成為微服務實施過程中,測試面臨的主要挑戰。 一、開發自動化的接口測試工具,?1、檢測接口是否滿足約定 2、檢測接口是否發生變化?3、檢測接口是否可以正常被調用。 二、測試方法: 采取基于消費者驅動的契約測試,測試架構如下: 其優勢如下:從價值實現的角度定義契約從消費者使用契約的角度出發,首先保證消費者基于此契約是可以實現價值的,有了這個前提,再使用契約來驗證提供者,如果提供者提供的契約同定義的契約一致,則證明提供者提供的契約是能夠實現服務消費者的。通過這種方式,使得更聚焦于如何從價值實現出發.隔離消費者和提供者的測試對于契約的消費者和提供者可以分開獨立測試,有效解決傳統集成測試服務架構的弊端,將微服務的接口測試成本降到最低。 三、測試工具:?Pact、Janus、Pacto等。系統測試熔斷測試 1、通過停止微服務的方式測試服務路由的正確性?2、通過壓力測試,將某個微服務產生過載等異常,測試服務熔斷或降級?3、通過壓力測試,測試負載均衡策略的正確性性能測試?原有本地化的api調用將會變成REST的遠程調用,調用速度勢必受到影響,因此需要對系統性能進行考慮以及性能測試,主要影響因素如下:1、網絡:遠程調用時受到網絡通訊速度的影響,這涉及到網絡速度、網絡部署以及系統架構,有相互依賴的服務應采取就近部署原則。2、服務器:受到遠程服務所在服務器性能的影響。3、數據量:數據量這里指的是數據大小以及數據傳輸的次數以及頻率,此時REST調用方式會產生瓶頸,當然,最好的方式是避免此種情況發生,此種場景采取消息中間件的方式異步通訊。持續集成?1、持續集成:每個微服務獨立執行持續集成。 2、版本集成:由統一的集成工具,實現自動化的版本集成,將所有微服務集成到統一的版本發布包中。?3、持續集成可制作多種場景的版本,包括測試環境、開發環境、生產環境。 4、統計測試覆蓋率等指標數據. 5、工具:Jenkins、Sonar等。持續部署?1、通過持續集成自動制作發布版本的Docker鏡像;?2、將docker鏡像自動上傳到docker容器中。?運維階段遠程升級?微服務不斷增加后,意味著部署容器也在同步增加,對于后續升級維護的工作量將會逐漸增加,開發統一管理中心,支持遠程維護與升級將可減少運維的復雜度.統一配置中心?使用SpringCloudConfig或者配置管理平臺進行統一的配置管理。統一日志中心?使用日志管理平臺進行統一的日志采集、日志分析。目錄1前言 41.1企業ERP系統的需求描述 41.2ERP技術及應用的發展趨勢 51.2.1B/S架構的ERP已經盛行 51.2.2SOA架構的引入,使ERP全面升級 5平臺化——ERP的柔性大大增強 5與其它信息系統的集成 6整合業務流程的監測與評估 72傳統ERP產品技術架構 82.1傳統C/S架構的ERP系統 82.2B/S架構的ERP系統 82.3C/S架構和B/S架構的優缺點分析 92.3.1C/S系統優缺點 92.3.2B/S系統優缺點 9結論 103國內外最新ERP產品技術架構 103.1主流ERP產品簡要介紹 103.1.1OracleEBusinessSuite 103.1.2SAPNetWeaver 12用友U9 123.2ERP系統架構設計的共同特點 13基于互聯網的三層體系架構 14面向服務架構(SOA) 14模塊化和組件化的體系架構 144基于SOA架構的ERP系統 154.1SOA技術簡介 154.1.1SOA概念及簡介 15基于SOA技術的體系結構 164.1.3SOA的實現方式-WebService 194.2基于SOA的ERP系統架構設計 224.2.1SOA架構基礎技術 224.2.2SOA架構設計方案 254.2.3SOA架構實現 264.2.4SOA架構的服務管理組件:ESB 274.3ERP系統架構技術的時間線 305系統實現的關鍵技術 325.1關鍵技術框架及工具 32三層分布式架構 32基于WEB的B/S架構開發技術 34統一認證技術 34構件開發技術 36工作流系統 40權限管理系統 45表單生成技術 49插件化開發框架 515.2系統性能優化技術 52分布式技術應用 525.2.2AJAX局部更新 54預加載技術 55數據庫查詢優化 55數據庫讀寫分離 565.3系統運營部署設計 56服務器集群技術 56虛擬化數據中心技術 576應用云計算技術的ERP系統 616.1云計算技術簡介 616.1.1IaaS基礎設施即服務 626.1.2PaaS平臺及服務 656.1.3SaaS軟件即服務 65云計算產生背景分析 696.2應用云計算技術的ERP系統 706.2.1SaaS模式的ERP與傳統ERP的比較 706.2.2SaaS模式的ERP系統架構設計 706.2.3SaaS模式的ERP系統的應用前景 726.3云計算安全設計 73云端數據存儲加密 73網絡數據傳輸加密 74數據安全管理規范 74云端加密的利與弊 766.4應用物聯網技術的ERP系統 76物聯網技術 76物聯網應用案例—服裝行業 796.4.3RFID,無線移動數據的收集技術 806.5應用移動技術的ERP系統 81移動ERP系統介紹 81移動ERP系統結構圖 827總結 848參考文獻 85前言企業ERP系統的需求描述
ERP實施的主體――企業的需求永遠是ERP技術發展的主動力,由于全球一體化進程的加劇,使得企業所面臨的競爭環境發生了巨大的變化,對ERP提出了新的需求,具體表現在[50]:
1)全球化市場的發展與產業鏈之間合作經營生產方式的出現,使得ERP能支持異地企業運營、異種語言操作和異種貨幣交易;
2)企業過程重組及協作方式的變化使得ERP能支持基于全球范圍的可重構過程的供應鏈及供應網絡結構;
3)企業需要應對新生產與經營方式的靈活性與敏捷性使得ERP也越來越靈活的適應多種生產制造方式的管理模式;
4)由于行業特性越來越明顯,因此ERP的行業化發展趨勢越來越明顯;
5)企業的快速發展使得ERP的柔性越來越高以適應企業的動態變化;
6)企業的低成本策略使得ERP可以按需配置、大大縮短實施周期。
IT技術的發展是推動ERP發展的另一驅動力,畢竟ERP應用是以“技術導向”為推動的應用技術,具體表現在,計算機新技術的不斷出現將會為ERP提供越來越靈活與強大功能的軟硬件平臺,多層分布式結構、面向對象技術、中間件技術與Internet的發展會使ERP的功能與性能迅速提高。圖1.1企業ERP系統結構圖ERP技術及應用的發展趨勢B/S架構的ERP已經盛行
B/S模式是一種全新的軟件系統構造技術。隨著Windows98/Windows2000將瀏覽器技術捆綁植入操作系統內部,這種結構更成為當今應用軟件的首選體系結構。顯然B/S結構應用程序相對于傳統的C/S結構應用程序將是巨大的進步。
網絡應用系統的發展正在改變著ERP系統的開發及其實施方法,傳統ERP體系結構逐漸被由客戶、應用服務器、數據庫服務器組成的三層B/S結構所替代,并有了統一的通訊協議TCP/IP和統一的基于Web瀏覽器的用戶界面.B/SERP把傳統的依賴于郵件、電話、人盯人的管理方式變革為目標導向、流程驅動、智能的電子商務流程。并且該B/S架構的ERP可以把企業內部流程與企業外部流程連接起來,與客戶、合作伙伴、供應商協同完成供應鏈業務操作[52].SOA架構的引入,使ERP全面升級SOA(Service-OrientedArchitecture面向服務架構)的概念是由Gartner公司給出的,Gartner對SOA的定義為“客戶端/服務器的軟件設計方法,一項應用由軟件服務和軟件服務使用者組成……SOA與大多數通用的客戶端/服務器模型的不同之處,在于它著重強調軟件組件的松散耦合,并使用獨立的標準接口。其核心是:
1)SOA是一種軟件架構思想,并不是一種產品。
2)SOA的重點是面向服務,此服務包括企業的內部與外部的每一個業務細節,比如企業中財務應收發票的處理就是一個服務。SOA的思想是把這些服務從復雜的環境中獨立出來—-組件化封裝,然后通過標準的接口使不同的服務之間相互調用。
3)SOA是一種軟件架構思想,通過使企業中一個個細化的服務標準化,來達到企業的IT系統跟隨企業的動態變化的目的。平臺化-—ERP的柔性大大增強
在ERP應用實施的過程中,用戶的滿意度一直不高。主要原因是產品更新周期加快、市場響應要求提高,對ERP的個性化要求越來越高,這是導致ERP實施成功率不高的重要原因之一.
經過多年的積累,人們已經總結出了ERP系統中業務的核心,其架構、業務模型、標準化高的業務處理均是可封裝的,如果我們把這部分封裝起來,再開發出輔助這個平臺的客戶化工具,就可以形成業務化平臺。同樣如此,如果對ERP進行分析、研究,將ERP的相關部分封裝起來,再加上工具包,就可以形成平臺化的ERP。
平臺級企業信息解決方案提供了一個軟件平臺,內置多種管理軟件組件和快捷的二次開發工具,其組件可以通過多種語言來開發,開發出一個個的小模塊,然后把每一個小模塊獨立起來建成一個組件,最后把這些組件組裝起來形成最終的成品。那么對這些組件進行調用,管理和刪減、添加及修改,甚至重新構架都可以,而這樣對某一部分的改動根本不會影響到其它功能。這就是平臺帶來的靈活性,易操作性,使它在進行小的改動時可以直接通過系統上的某些功能來實現,而不必要通過改源代碼的方式來處理,可以降低企業信息化軟件的開發難度,提高開發效率,提高系統的柔性和可擴展性。一方面管理信息化廠商通過平臺提供的組件能很方便地滿足用戶個性化的需求,以及用戶在發展過程中各種各樣變化的需求.另一方面將應用軟件的業務邏輯和開發技術相對分開,使得應用軟件的開發者可以僅關注應用的業務任務,而不必關注其技術的實現。這使管理與業務人員參與應用軟件的開發成為可能。
平臺化軟件的基本特性如下:
1)軟件架構靈活;
2)核心業務標準化;
3)接口標準化,具有很好的兼容性;
4)提供客戶化工具包。與其它信息系統的集成1)ERP與客戶關系管理的進一步整合
ERP將更加面向市場和面向顧客,通過基于知識的市場預測、訂單處理與生產調度、基于約束調度功能等進一步提高企業在全球化市場環境下更強的優化能力;并進一步與客戶關系管理CRM結合,實現市場、銷售、服務的一體化,使CRM的前臺客戶服務與ERP后臺處理過程集成,提供客戶個性化服務,使企業具有更好的顧客滿意度。2)ERP與電子商務、供應鏈SCM、協同商務的進一步整合ERP將面向協同商務(CollaborativeCommerce),支持企業與貿易共同體的業務伙伴、客戶之間的協作,支持數字化的業務交互過程;ERP供應鏈管理功能將進一步加強,并通過電子商務進行企業供需協作,如汽車行業要求ERP的銷售和采購模塊支持用電子商務或EDI實現客戶或供應商之間的電子訂貨和銷售開單過程;ERP將支持企業面向全球化市場環境,建立供應商、制造商與分銷商間基于價值鏈共享的新伙伴關系,并使企業在協同商務中做到過程優化、計劃準確、管理協調。3)ERP與產品數據管理的整合產品數據管理PDM(ProductDataManagement)將企業中的產品設計和制造全過程的各種信息、產品不同設計階段的數據和文檔組織在統一的環境中.近年來ERP軟件商紛紛在ERP系統中納入了產品數據管理PDM功能或實現與PDM系統的集成,增加了對設計數據、過程、文檔的應用和管理,減少了ERP龐大的數據管理和數據準備工作量,并進一步加強了企業管理系統與CAD、CAM系統的集成,進一步提高了企業的系統集成度和整體效率.4)ERP與制造執行系統的整合為了加強ERP對于生產過程的控制能力,改變ERP"重計劃,輕控制”的弱點,將進一步加強"事前計劃、事中控制、事后審核"的功能,ERP將與制造執行系統MES(ManufacturingexecutiveSystem)、車間層操作控制系統SFC更緊密的結合,形成實時化的ERP/MES/SFC系統。該趨勢在流程工業企業的管控一體化系統中體現得最為明顯。5)ERP與工作流管理系統的進一步整合全面的工作流規則保證與時間相關的業務信息能夠自動地在正確時間傳送到指定的地點。ERP的工作流管理功能將進一步增強,通過工作流實現企業的人員、財務、制造與分銷間的集成,并能支持企業經營過程的重組,也使ERP的功能可以擴展到辦公自動化和業務流程控制方面。6)ERP與企業知識門戶進一步整合企業知識門戶(EnterpriseKnowledgePortal,EKP)所關注的是企業內部員工和信息內容,它的核心是知識管理(KM),通過與ERP系統的集成,使得企業內任何員工都可以實時地與工作團隊中的其他成員取得聯系、尋找到能夠提供幫助的專家或者快速連接到相關的知識,它的建立和使用可以大大提高企業范圍內的知識共享,并由此提高企業員工的工作效率。
整合業務流程的監測與評估“用于測量成功的業務應用解決方案是連續改進的關鍵:財務表現的共享,SC效力,知識資本的價值以及顧客的滿意度都是新的評測方法。"――Gartner.
傳統ERP產品技術架構傳統C/S架構的ERP系統
信息系統架構示意圖:
1)一層架構:客戶端、應用服務器和數據庫服務器都在同一臺機器上部署;
2)兩層架構:數據庫服務和應用服務在同一臺服務器上部署,客戶端訪問服務器上的資源或數據;
3)
三層架構:應用服務和數據庫服務分離,分別部署在不同的服務器上,應用服務采取集群部署,達到性能上的需求.圖2.1不同分級層次的系統架構圖
從企業信息系統架構設計看,三層分布式架構是一種典型應用;甚至可以過渡到多層分布式架構,如擴展出緩存服務、負載均衡服務等;這些都是用戶對系統快速響應和系統可靠性的需求。B/S架構的ERP系統B/S架構的ERP系統的出現使得傳統的ERP系統成為互聯網應用,用戶借助網絡的方便快捷,可以隨時隨地辦公,處理業務數據。現代企業普通存在多區域分支機構,或者業務人員需要差旅或在家辦公,傳統的C/S架構日益不能滿足移動辦公的需要,B/S架構的ERP系統剛好可以解決這一需要.圖2。2B/S架構的ERP系統部署圖C/S架構和B/S架構的優缺點分析C/S系統優缺點C/S模式的優點[1]:1)由于客戶端實現與服務器的直接相連,沒有中間環節,因此響應速度快。(當數據少時,C/S在局域網內響應快;當數據超過十萬時,C/S軟件變慢,B/S軟件能維持穩定速度)2)操作界面交互性強、控件組件形式多樣,可以充分滿足客戶快速操作的要求。3)C/S結構的管理信息系統能實現的復雜的數據處理操作,不用過多考慮網絡的不穩定性。C/S模式的缺點:1)需要專門的客戶端安裝程序,分布功能弱,針對點多面廣且不具備網絡條件的用戶群體,不能夠實現快速部署安裝和配置。2)兼容性差,對于不同的開發工具,具有較大的局限性。若采用不同工具,需要重新改寫程序,跨平臺難度大,無法輕易實現Windows、Linux、iOS系統的同時開發和部署。3)開發成本較高,需要具有一定專業水準的技術人員才能完成。(就開發小型企業管理軟件,針對內部使用的系統而言,C/S開發人員比B/S開發人員的成本低了許多)。B/S系統優缺點B/S結構的優點:1)是互聯網應用,具有分布性特點,可以隨時隨地進行查詢、瀏覽等業務處理。2)業務擴展簡單方便,通過增加網頁即可增加服務器功能。3)維護簡單方便,只需要改變網頁,即可實現所有用戶的同步更新.4)開發簡單,共享性強。
B/S結構的缺點:1)操作是以鼠標為最基本的操作方式,無法滿足快速操作的要求,尤其是在大量數據錄入操作、復雜交互的情況下,需要提升交互設計能力。2)頁面加載刷新時,響應速度受網絡連接的穩定性影響。結論
目前,從架構設計來看,ERP系統采用B/S架構和C/S架構是并存存在的,B/S的架構的系統更有發展前景,從長遠來看,由于互聯網發展,網絡帶寬提升,HTML5技術出現的等因素,B/S的架構的系統是將來的發展趨勢。國內外最新ERP產品技術架構主流ERP產品簡要介紹OracleEBusinessSuiteOracleEBS產品介紹
OracleEBS是OracleE-BusinessSuite的縮寫,是Oracle公司的ERP產品,全球銷量僅次于SAP(另一款ERP產品).OracleEBS是一整套企業級應用軟件,包括:采購管理、庫存管理、銷售管理、車間管理、物料清單及工藝管理、生產計劃、成本管理、應付賬款管理、應收賬款管理、現金管理、總帳管理、項目會計、項目制造、客戶關系管理、供應商門戶等模塊。純互聯網技術架構Oracle電子商務套件采用標準的100%基于互聯網的三層體系架構;無論是數據庫層、應用層以及最前端的最終用戶操作界面都100%支持基于JAVA的先進互聯網技術[37]。
Oracle電子商務套件的技術架構特點,提供了軟件系統基于數據中心運行的集中管理基礎。使所有關于軟件系統的推廣、升級和日常維護工作可以基于數據中心進行,從而達到最大限度地降低客戶端軟硬件和維護成本,降低服務器端的軟件維護工作內容。圖3.1Oracle應用軟件技術架構模塊化開放架構Oracle電子商務套件應用產品采用模塊化和組件化的先進軟件技術體系架構,應用軟件產品可以細化成為許多細粒度的模塊,不同的客戶應用可以選擇不同的組件或模塊組合形成適合于企業需求的軟件平臺方案;基于同一共享數據庫和統一數據模型的數據層面的高度集成架構,保證各應用模塊之間的緊密無縫集成和平滑的業務流轉[37].圖3。2Oracle電子商務套件的模塊化開放架構SAPNetWeaverSAPNetWeaver產品介紹
SAPNetWeaver是SAP的集成技術平臺和自從SAPBusinessSuite以來的所有SAP應用的技術基礎。SAPNetWeaver是一個面向服務的應用和集成平臺。SAPNetWeaver為SAP的應用提供開發和運行環境,也可以用來和其它應用和系統進行自定義的開發和集成。SAPNetWeaver是使用開放標準和事實上的工業標準進行開發的,可以用icrosoft?NET,Sun燡avaEE,和IBM燱ebSphere等這些技術平臺進行擴展和互操作[44]。SAPNetWeaver技術架構
SAP企業系統架構是以SOA架構技術作為基礎框架進行開發的。ERP,CRM,SCM,SAPBusinessSuite,SRM,PLM系統都是獨立的子系統,這些系統之間的交互都是通過SOA服務進行.圖3.3SAP企業系統架構用友U9用友U9產品介紹
用友U9完全基于SOA架構的世界級企業管理軟件,用友U9面向快速發展與成長的中大型制造企業復雜應用,以“實時企業、全球商務”為核心理念,完全適應多組織供應鏈協同、多工廠制造協同、產業鏈協同、產品事業部和業務中心的管理模式,更能支持多生產模式的混合生產與規劃、多經營模式的混合管理、精益生產、全面成本、跨國財務等深度應用,具有高度靈活的產品架構,幫助企業快速響應變化,支持經營、業務與管理模式的創新.用友U9技術架構
UFIDAU9完全采用面向服務架構(SOA),實現了全程模型驅動開發(MDD)模式,達到降低集成和開發成本的目的。UAP使企業管理軟件具有多項新技術應用特點:企業信息資源變得可重用、透明化,并且系統具有高可擴展性,讓業務處理更加高效、簡潔、安全。UAP還提供了統一的集成開發環境(IDE),用戶可以使用包括企業建模、領域建模、服務設計、UI設計、報表設計、規則設計、數據庫設計等全方位的設計器,并通過可視化的界面和友好的交互操作,自動生成用戶所需要的各種服務部件.UAP完全支持企業級的集成與應用協同,如Office集成、移動商務、企業搜索、智能客戶端等多項領域[35]。圖3.4用友U9技術架構ERP系統架構設計的共同特點
通過國內外最新ERP產品的功能及技術架構比較,得出:基于SOA架構的技術框架是共同采用的,而且更加強調了多設備的支持,完全基于互聯網模式的系統。產品名稱是否B/S是否SOA架構是否模塊化構建是否支持移動設備是否分布式部署OracleEBusinessSuite是是是支持是SAPNetWeaver是是是支持是用友U9是是是支持是金蝶EAS是是是支持是OpenERP(開源)是下一版本支持完全模塊化支持是表3。1各主流ERP產品系統架構比較基于互聯網的三層體系架構
采用標準的100%基于互聯網的三層體系架構,無論是數據庫層、應用層以及最前端的最終用戶操作界面都100%支持WEB的互聯網技術,特別是應用層,直接采用互聯網先進技術,不需要任何中間轉換過程,在體現先進互聯網技術的同時,最大限度的減少了中間環節,保證了系統處理的高性能和高穩定性。面向服務架構(SOA)
完全采用面向服務架構(SOA),實現了全程模型驅動開發(MDD)模式,達到降低更加強調系統的基礎,采用松耦合,降低系統的耦合度。SOA的實現方式都是采用了基于Http協議的WebService的技術,數據交換格式采用XML,SOAP。模塊化和組件化的體系架構模塊化和組件化的先進軟件技術體系架構,應用軟件產品可以細化成為許多細粒度的模塊,不同的客戶應用可以選擇不同的組件或模塊組合形成適合于企業需求的軟件平臺方案;基于同一共享數據庫和統一數據模型的數據層面的高度集成架構,保證各應用模塊之間的緊密無縫集成和平滑的業務流轉。?基于SOA架構的ERP系統SOA技術簡介SOA概念及簡介SOA的基本概念
面向服務的體系結構(Service-OrientedArchitecture,SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務可以使用一種統一和通用的方式進行交互[26]。簡介SOA(Service-OrientedArchitecture),面向服務架構,它可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統中與軟件代理交互的人為依賴性。SOA是一種粗粒度、松耦合服務架構,服務之間通過簡單、精確定義接口進行通訊,不涉及底層編程接口和通訊模型。SOA可以看作是B/S模型、XML/WebService技術之后的自然延伸。SOA技術的優勢
通過SOA思想的引入,使得ERP軟件可以做到[50]:
1)支持異構集成
所謂異構環境,包括四個層次,硬件平臺、操作系統、數據庫、應用軟件。如果一套硬件、一套操作系統、一套數據庫、一套應用軟件能夠面面俱到的解決集團企業的所有管理問題,那是再好不過了.但現實中是不可能的,更普遍的是,不同的應用往往選擇不同的平臺和應用系統,以便充分發揮各個廠商的特長。支持SOA的ERP系統為集團企業的信息化提供了伸縮空間,企業可以根據需要選擇最合適的解決方案.
2)降低企業的IT成本
以往多數企業在建設企業的ERP系統時是從項目的角度出發的,比如ERP項目、CRM項目等,事后當企業的IT系統越來越多的時候,才會考慮系統的集成問題,但這時候往往集成的難度就很大了.而SOA要求企業在建設IT系統之初就要考慮這些問題,也就是要考慮服務之間的接口問題。這樣就會使企業的IT成本大大降低。
同時,SOA將改變以往的軟件購買模式。目前,多數企業在購買軟件時往往是成熟性軟件,需一個模塊或一個系統的購買,企業在購買時往往無法將那些企業不需要的功能剔除出去,這樣,企業就不得不為此多付出資金、培訓成本等許多不必要的成本。而支持SOA的集團財務軟件則可以幫助企業實現真正的按需購買,企業需要什么功能就購買相應的服務,幫助企業避免不必要的支出。
3)實現企業的動態變革
支持SOA的集團財務系統使企業的IT人員不必太多的關心企業IT系統的底層技術,而更多的去考慮集團財務的業務處理以及財務業務與IT的接合。同時,以往企業在開發集團財務系統時,在重復功能上浪費了大量的人力與財力,同時系統在開發完成后,如果企業業務變化,系統將很難更改或者更改的成本很高.而SOA面對的是一個個獨立的服務,服務之間可以通過標準接口來相互調用,這樣企業在重復功能上就可以直接通過接口調用,而不必去重新開發.企業的業務發生變化時,只需要修改相對應的服務即可,降低了修改的難度與復雜度,保證了企業的IT系統的動態變化。基于SOA技術的體系結構SOA是松耦合的系統
這種具有中立的接口定義(沒有強制綁定到特定的實現上)的特征稱為服務之間的松耦合。松耦合系統的好處有兩點:
1)是它的靈活性,當組成整個應用程序的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在.
2)而另一方面,緊耦合意味著應用程序的不同組件之間的接口與其功能和結構是緊密相連的,因而當需要對部分或整個應用程序進行某種形式的更改時,它們就顯得非常脆弱。對松耦合的系統的需要來源于業務應用程序需要根據業務的需要變得更加靈活,以適應不斷變化的環境,比如經常改變的政策、業務級別、業務重點、合作伙伴關系、行業地位以及其他與業務有關的因素,這些因素甚至會影響業務的性質.我們稱能夠靈活地適應環境變化的業務為按需(Ondemand)業務,在按需業務中,一旦需要,就可以對完成或執行任務的方式進行必要的更改.SOA系統原型的一個典型例子是通用對象請求代理體系結構(CommonObjectRequestBrokerArchitecture,CORBA),它已經出現很長時間了,其定義的概念與SOA相似。然而,現在的SOA已經有所不同了,通過使用基于XML的語言(稱為Web服務描述語言(WebServicesDefinitionLanguage,WSDL))來描述接口,服務已經轉到更加動態且更靈活的接口系統中,非以前CORBA中的接口描述語言(InterfaceDefinitionLanguage,IDL)可比了.SOA體系結構作用
傳統企業(數據庫)應用軟件產品,如MRP、ERP、OA系統等,在設計或架構上都是緊偶合、封閉式、自成體系,屬于一次性投入一次性完結的產品。這樣的產品很難適應或快速響應市場或客戶靈活多變的需求,以及后續的擴展.在這樣的市場、及客戶需求下,從而催生了軟件產品一種新的設計或架構的理念:面向服務架構(SOA架構)。
對SOA的需要來源于需要使業務IT系統變得更加靈活,以適應業務中的改變。通過允許強定義的關系和依然靈活的特定實現,IT系統既可以利用現有系統的功能,又可以準備在以后做一些改變來滿足它們之間交互的需要。
SOA是一場革命。一個應用程序的業務邏輯(businesslogic)或某些單獨的功能被模塊化并作為服務呈現給消費者或客戶端。這些服務的關鍵是他們的松耦合特性。例如,服務的接口和實現相獨立。應用開發人員或者系統集成者可以通過組合一個或多個服務來構建應用,而無須理解服務的底層實現。舉例來說,一個服務可以用.NET或J2EE來實現,而使用該服務的應用程序可以在不同的平臺之上,使用的語言也可以不同。讓SOA系統適應改變的能力是最重要的部分,對于開發人員來說,這樣的改變無論是在他們工作的范圍之內還是在他們工作的范圍之外都有可能發生,這取決于是否有改變需要知道接口是如何定義的以及它們相互之間如何進行交互.與開發人員不同的是,架構師的作用就是引起對SOA模型大的改變.這種分工,就是讓開發人員集中精力于創建作為服務定義的功能單元,而讓架構師和建模人員集中精力于如何將這些單元適當地組織在一起,它已經有十多年的歷史了,通常用統一建模語言(UniversalModelingLanguage,UML),并且描述成模型驅動的體系結構(Model-DrivenArchitecture,MDA)。SOA架構的定義或特性
SOA架構,是一種粗粒度、開放式、松耦合的服務結構,要求軟件產品在開發過程中,按照相關的標準或協議,進行分層開發.通過這種分層設計或架構體系可以使軟件產品變得更加彈性和靈活,且盡可能的與第三方軟件產品互補兼容,以達到快速擴展,滿足或響應市場或客戶需求的多樣化、多變性。一個典型的SOA架構示意如下:圖4。1SOA架構的系統圖示基于SOA技術架構的價值未來企業的應變之道
持續增長的客戶需求、瞬息萬變的市場和日趨激烈的全球化競爭,使得企業必須不斷提升自身IT及企業管理系統的敏捷性和適應性.現在,每個企業都需要把握業務流程發展的變革,預測業務環境的變化,以便對競爭者做出快速響應,確保企業的生存、發展和快速成長[27].
面向服務架構技術(Service—OrientedArchitecture,SOA)的出現,標志著設計、開發、部署新的企業應用系統,并將其與原有應用系統、業務流程進行集成的方式出現了根本性變化。
采用SOA架構,可以帶來顯著的商業和技術利益:
1)提升商業決策能力,通過將商業服務和信息進行聚合成為一系列動態的、組合的商業應用,企業決策者可以更便捷地獲得更準確、更全面、更深入的信息,可以更敏捷地對各種變化做出反應.
2)獲得更高的員工生產率,SOA可以改進商業流程,使得員工更加關注關鍵性、增值業務流程,基于服務更好地進行協作,通過各種方式訪問和操作業務數據和信息,大大提升生產率。
3)建立與供應商和顧客的更強的聯系,SOA增強了端到端的應用模式,跨越企業組織邊界,更好地集成現有的信息系統,通過服務的編排和聚合,使其更好地融合在業務流程里。
4)可以更快、更節省地搭建IT和業務應用系統,基于SOA和標準化服務組件,可以根據業務流程需要,更快地搭建業務系統;同時,也可以更好地利用原有的IT和業務系統的投資,并保證其符合業務流程的需要。
5)可以增強IT和業務系統的可管理性和安全性,通過安全服務的部署和SOA治理,可以實現更強的安全性管理和監控,確保了整個架構置于統籌和管理之下.完全SOA架構所帶來的價值
1)確保總體架構的合理規劃,全面整合信息,徹底消除應用孤島,全面實現過程、人員和信息的實質集成、高度協調,實現更高的互操作性與協同、更敏捷的業務流程、更全面的信息可見性;
2)企業的IT及應用系統架構將更具伸縮性,IT價值將得到充分的發揮,全面提升未來企業的競爭優勢;
3)降低集成成本和風險,降低維護成本:隨著企業業務的發展,非SOA應用在IT和應用系統中相互集成的成本和風險日益增大,系統運行將變得繁冗和低效;相應地,為維護應用孤島及更多的流程接口,甚至是重復、重疊的業務功能系統,企業IT及應用系統維護成本將不可避免地日益增大。
4)基于SOA架構的IT及應用系統可以增量部署到位,但毫無疑問,選擇完全SOA架構是正確、長遠和明智的決策。SOA的實現方式-WebServiceWebService的概念
WebSe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 8 A green world Grammar 教學設計 2024-2025學年牛津譯林版八年級英語下冊
- 一年級體育上冊 第十八課接力跑教學設計
- 16 大家一起來合作 第一課時(教學設計)-部編版道德與法治一年級下冊
- 七年級生物下冊 4.4.3《輸送血液的泵-心臟》第二課時教學設計 (新版)新人教版
- 9短詩三首《繁星(一三一)》教學設計-2023-2024學年統編版語文四年級下冊
- 基于技術創新的研究與實踐
- 2024年五年級英語上冊 Unit 2 My Country and English-speaking Countries Lesson 7 China教學設計 冀教版(三起)
- 21《長相思》教學設計-2024-2025學年五年級上冊語文統編版
- 乘法、除法(二)-7的乘、除法(教學設計)-2024-2025學年滬教版二年級數學上冊
- Unit 1 Past and Present Reading 教學設計 2024-2025學年牛津譯林版八年級英語下冊
- DL/T 5438-2019 輸變電工程經濟評價導則
- DB51-T 5046-2014 混凝土結構工程施工工藝規程
- PEP人教版英語五年級下冊 Unit 2 My favourite season大單元作業設計
- 高邊坡施工安全監理實施細則范本
- 花期女人因時定養
- 采購部采購管理制度
- 《文學概論》課程教學大綱
- mt696-1997煤礦用高倍數泡沫滅火裝置通用技術條件
- GB/T 11693-2022船用法蘭焊接座板
- WB/T 1019-2002菱鎂制品用輕燒氧化鎂
- JJG 388-2001純音聽力計
評論
0/150
提交評論