• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OAUTH、OPENAPI、REST技術(shù)的快速開發(fā)云平臺架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)

      2016-10-21 16:49:51段玉龍
      工業(yè)設(shè)計(jì) 2016年2期
      關(guān)鍵詞:開放平臺

      段玉龍

      摘 要:本文基于OAUTH、OPENAPI、REST等技術(shù)設(shè)計(jì)了一個快速開發(fā)平臺框架,框架具有松耦合、高可擴(kuò)展性、開發(fā)快速等特點(diǎn)。本平臺的主要優(yōu)勢在于:1.大規(guī)模系統(tǒng)拆分;2.OpenAPI在控制器層進(jìn)行設(shè)計(jì),同時采用REST風(fēng)格;3.界面調(diào)用OpenAPI采用JQuery的Ajax調(diào)用方式;4.可重用組件。

      關(guān)鍵詞:OAUTH;OPENAPI;REST;開放平臺

      伴隨互聯(lián)網(wǎng)、智能手機(jī)技術(shù)的飛速發(fā)展,軟件行業(yè)也面臨著新的挑戰(zhàn)。傳統(tǒng)企業(yè)級軟件已經(jīng)轉(zhuǎn)變?yōu)樾∠到y(tǒng)集成的大規(guī)模軟件,傳統(tǒng)的先充分論證需求分析,然后按軟件工程的理論一步步按部就班的開發(fā)模式已經(jīng)不適應(yīng)當(dāng)今軟件行業(yè)發(fā)展的速度了。另外,現(xiàn)今的軟件需求也變的越來越專業(yè)化、精細(xì)化,一個應(yīng)用或App只關(guān)注一個細(xì)節(jié)一個點(diǎn),一旦需求確認(rèn),需要在盡可能短的時間研發(fā)出來并上線,這樣才能更快的占有市場,同時注意和使用用戶互動、促進(jìn)用戶反饋意見,然后在使用中迭代更新升級系統(tǒng),積累了一定用戶量后再逐步擴(kuò)展其他附帶功能。

      這就要求我們開發(fā)軟件模式需要從傳統(tǒng)軟件按部就班的開發(fā)模式轉(zhuǎn)變?yōu)槊艚荨⒖焖俚牡_發(fā)模式,敏捷快速不是單純的圖快,同時要兼顧系統(tǒng)的穩(wěn)定性、可擴(kuò)展性、魯棒性等各方面的性能的考慮,以便將來更好的迭代和擴(kuò)展。本文借鑒敏捷開發(fā)、開放平臺、OAUTH,REST等技術(shù),設(shè)計(jì)了一個快速開發(fā)平臺框架:每個待開發(fā)系統(tǒng)作為獨(dú)立子系統(tǒng)開發(fā),最后集成到平臺中,提倡子系統(tǒng)專一化,一個子系統(tǒng)只干一件事,如果業(yè)務(wù)比較復(fù)雜則拆分為多個子系統(tǒng)開發(fā);子系統(tǒng)直接通過開發(fā)平臺技術(shù)通過OPENAPI相互調(diào)用,OPENAPI設(shè)計(jì)遵從RESTFUL風(fēng)格設(shè)計(jì),每個OPENAPI作為一個資源存在,調(diào)用使用HTTP協(xié)議,采用JSON格式傳遞數(shù)據(jù),這樣各子系統(tǒng)之間更具獨(dú)立性,耦合度更低,可擴(kuò)展性更強(qiáng);平臺本身已經(jīng)集成了基礎(chǔ)服務(wù)組件、日志組件、權(quán)限組件、認(rèn)證組件、調(diào)度組件、事務(wù)組件,待開發(fā)系統(tǒng)只需要引入相應(yīng)的包并做簡單的配置即可使用這些基礎(chǔ)組件,使開發(fā)人員把主要精力集中在具體業(yè)務(wù)邏輯上。

      1開發(fā)平臺框架設(shè)計(jì)

      本平臺的框架設(shè)計(jì)圖如圖1。

      本文設(shè)計(jì)的快速開發(fā)平臺以各子系統(tǒng)作為云服務(wù)單元,即系統(tǒng)開發(fā)過程中的一個獨(dú)立項(xiàng)目,下面本文以一個類似淘寶網(wǎng)的小型購物網(wǎng)站為例介紹下本平臺的具體設(shè)計(jì)和研發(fā)過程。

      1.1 系統(tǒng)拆分

      子系統(tǒng)的規(guī)模要適當(dāng),不要太大,如果待開發(fā)的系統(tǒng)較大,對系統(tǒng)進(jìn)行拆分,使每個子系統(tǒng)只專注一項(xiàng)業(yè)務(wù),粒度要適中,保證每個子系統(tǒng)開發(fā)簡單高效。

      本例中購物網(wǎng)站系統(tǒng)規(guī)模較大,根據(jù)具體業(yè)務(wù),我們拆分為會員管理子系統(tǒng)、商品管理子系統(tǒng)、訂單子系統(tǒng)三個子系統(tǒng),其中支付和物流部分使用第三方平臺的Open API,每個子系統(tǒng)作為獨(dú)立工程研發(fā),可以分配不同研發(fā)人員進(jìn)行獨(dú)立研發(fā),而且每個子系統(tǒng)相對簡單, 研發(fā)人員不必陷入復(fù)雜的業(yè)務(wù)邏輯上,大大提高了研發(fā)效率。如果需要調(diào)用其他子系統(tǒng)接口時,使用Open API調(diào)用,如2.2節(jié)所述。

      圖1 開發(fā)平臺框架

      1.2 子系統(tǒng)Open API設(shè)計(jì)與調(diào)用

      每個子系統(tǒng)采用OPEN API為其他子系統(tǒng)或第三方系統(tǒng)提供接口,每個OPEN API使用RESTful風(fēng)格設(shè)計(jì),調(diào)用時使用HTTP協(xié)議調(diào)用,數(shù)據(jù)交換格式采用JSON格式。

      下面以購買商品為例說明各子系統(tǒng)Open API的設(shè)計(jì)和調(diào)用過程,如圖2所示。首先調(diào)用認(rèn)證子系統(tǒng)登錄認(rèn)證(2.3節(jié)詳細(xì)介紹),然后調(diào)用商品管理子系統(tǒng)查詢商品API,選中要購買的商品后,調(diào)用訂單子系統(tǒng)的購買API,系統(tǒng)自動調(diào)用會員管理子系統(tǒng)的獲得會員郵件地址信息API獲得郵寄地址信息,用戶選中或填寫郵寄地址,調(diào)用訂單子系統(tǒng)的生成訂單API生成訂單,并置訂單狀態(tài)為未支付。用戶點(diǎn)擊支付按鈕,調(diào)用第三方支付系統(tǒng)如支付寶、網(wǎng)上銀行等,等待第三方系統(tǒng)返回結(jié)果,接收到支付成功結(jié)果后調(diào)用訂單子系統(tǒng)的修改訂單狀態(tài)API把訂單狀態(tài)置為已支付狀態(tài)。然后系統(tǒng)物流人員根據(jù)訂單調(diào)用第三方物流系統(tǒng)發(fā)貨,系統(tǒng)等待物流返回結(jié)果,接收到物流返回成功結(jié)果后調(diào)用訂單子系統(tǒng)的修改訂單狀態(tài)API把訂單狀態(tài)置為成功狀態(tài)。

      圖2 購買商品各子系統(tǒng)Open API調(diào)用流程

      1.3 認(rèn)證子系統(tǒng)

      認(rèn)證子系統(tǒng)已集成到框架中,為其他子系統(tǒng)或第三方系統(tǒng)提供認(rèn)證服務(wù),采用OAUTH技術(shù)實(shí)現(xiàn),如圖3為用戶訪問會員管理子系統(tǒng)的認(rèn)證過程。

      用戶訪問會員管理子系統(tǒng),如查看個人資料等;系統(tǒng)自動跳轉(zhuǎn)到認(rèn)證子系統(tǒng)的登錄頁面,提示用戶輸入用戶名密碼進(jìn)行授權(quán);用戶輸入用戶名密碼,由認(rèn)證子系統(tǒng)進(jìn)行密碼驗(yàn)證;驗(yàn)證成功后,認(rèn)證子系統(tǒng)會返回給會員管理子系統(tǒng)一個授權(quán)的令牌(Access Token),會員管理子系統(tǒng)或其他系統(tǒng)通過此令牌通過認(rèn)證子系統(tǒng)的Open API即可獲得用戶的基本信息。

      圖3 獲取會員物流信息

      1.4 權(quán)限子系統(tǒng)

      權(quán)限子系統(tǒng)也已集成到框架中,為其他子系統(tǒng)或第三方系統(tǒng)提供權(quán)限管理服務(wù),采取RBAC模型(基于角色的訪問控制)實(shí)現(xiàn),使用角色實(shí)現(xiàn)用戶和權(quán)限的邏輯分離。

      各個子系統(tǒng)以O(shè)pen API的形式為其他系統(tǒng)提供調(diào)用,但不是任何系統(tǒng)或角色都可以隨便調(diào)用這些API的,需要具有一定的權(quán)限控制。如修改圖2中的修改訂單狀態(tài)接口對于普通會員是不開放的,只針對后臺管理員有效。權(quán)限子系統(tǒng)已經(jīng)實(shí)現(xiàn)本功能,開發(fā)人員只需在權(quán)限配置界面配置相應(yīng)的角色,及該角色受限訪問的資源。

      1.5 可重用基礎(chǔ)組件

      基礎(chǔ)組件為子系統(tǒng)開發(fā)提供一些常用的組件支持,子系統(tǒng)開發(fā)時首先引入組件的jar包,然后在web.xml或Spring配置文件中引入相應(yīng)的配置即可使用組件,使用非常方便。

      其中基礎(chǔ)服務(wù)組件提供對某數(shù)據(jù)模型的增刪改查操作的支持,和RESTFUL風(fēng)格中的四個HTTP動作一一對應(yīng),開發(fā)人員不需要再關(guān)心單個數(shù)據(jù)模型的增刪改查邏輯,只需要關(guān)心自己業(yè)務(wù)系統(tǒng)的復(fù)雜業(yè)務(wù)邏輯。日志組件提供系統(tǒng)對日志的支持等。

      2 結(jié)語

      本文基于OAUTH、OPENAPI等技術(shù)設(shè)計(jì)了一個快速開發(fā)平臺框架,框架具有松耦合、高可擴(kuò)展性、開發(fā)快速等特點(diǎn)。同時介紹了本平臺中的一些設(shè)計(jì)原則:大規(guī)模系統(tǒng)拆分;OpenAPI在控制器層進(jìn)行設(shè)計(jì),同時采用REST風(fēng)格;界面調(diào)用OpenAPI采用JQuery的Ajax調(diào)用方式;可重用組件。

      參考文獻(xiàn):

      [1] 朱蔚恒,周偉,龍舜.開放平臺解決方案及其安全策略研究[J].計(jì)算機(jī)工程.2012(12):265-267.

      [2] 時子慶,劉金蘭,譚曉華.基于OAuth2.0的認(rèn)證授權(quán)技術(shù)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用.2012(03):260-264.

      [3] 丁波,晁愛農(nóng).基于Struts2框架的AJAX開發(fā)研究[J].計(jì)算機(jī)工程與設(shè)計(jì).2009(16):3910-3913.

      [4] 相方莉.云計(jì)算基礎(chǔ)設(shè)施中的性能瓶頸的識別和優(yōu)化[J].計(jì)算機(jī)系統(tǒng)應(yīng)用.2013(12):168-172.

      [5] 李淑芝,劉鋒,楊書新.基于云仿真的Web服務(wù)選擇研究[J].計(jì)算機(jī)應(yīng)用研究.2013(04):1069-1071.

      [6] 李小寧,李磊,金連文,等.基于OpenStack構(gòu)建私有云計(jì)算平臺[J].電信科學(xué).2012(09):1-8.

      [7] 胡曉玲,強(qiáng)桂.基于云計(jì)算的教育技術(shù)實(shí)驗(yàn)平臺構(gòu)建——以3D MAX課程為例[J].實(shí)驗(yàn)技術(shù)與管理.2012(08):88-91.

      [8] 羅國瑋,蘭瑞樂.基于云計(jì)算的高??蒲袑?shí)驗(yàn)平臺構(gòu)建研究[J].實(shí)驗(yàn)技術(shù)與管理.2012(04):115-117.

      [9] 馬少兵,馬自衛(wèi).數(shù)字圖書館私有云平臺的構(gòu)建研究和應(yīng)用開發(fā)[J].現(xiàn)代圖書情報(bào)技術(shù).2011(04):9-16.

      猜你喜歡
      開放平臺
      基于百度地圖開放平臺的導(dǎo)航電子地圖課程實(shí)踐教學(xué)研究
      基于在線開放平臺的混合式課堂教學(xué)模式構(gòu)建與實(shí)踐
      騰訊安全應(yīng)急響應(yīng)開放平臺正式上線
      基于AliGenie語音開放平臺的傳統(tǒng)家居智聯(lián)網(wǎng)解決方案
      電子制作(2018年17期)2018-09-28 01:56:46
      搭建開放平臺 收獲真情實(shí)感——談《品德與生活》教學(xué)中開放式教學(xué)的實(shí)施
      儀表技能實(shí)訓(xùn)仿真教學(xué)系統(tǒng)的開發(fā)
      中職會計(jì)教學(xué)模式的轉(zhuǎn)變分析
      成才之路(2016年5期)2016-03-26 12:21:08
      云計(jì)算開放平臺的知識產(chǎn)權(quán)問題研究
      基于網(wǎng)絡(luò)開放平臺提升高校學(xué)生生活事務(wù)管理有效性:上海高?!耙装唷逼脚_實(shí)踐應(yīng)用的思考
      互聯(lián)網(wǎng)再掀淘金熱創(chuàng)業(yè)機(jī)會轉(zhuǎn)向開放平臺
      团风县| 阜阳市| 永康市| 呼和浩特市| 莱西市| 鲜城| 封丘县| 琼中| 惠水县| 类乌齐县| 瑞安市| 罗甸县| 临邑县| 福海县| 丽水市| 盐亭县| 平陆县| 竹溪县| 贡嘎县| 沙河市| 象山县| 南涧| 固镇县| 全南县| 梁平县| 安多县| 庆安县| 建宁县| 高安市| 炎陵县| 荔浦县| 四川省| 汨罗市| 卫辉市| 张掖市| 华蓥市| 翁源县| 东乡县| 葫芦岛市| 成安县| 新乐市|