一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

微API設(shè)計(jì)模式

大?。?/span>0.05 MB 人氣: 2017-09-28 需要積分:2

  摘要:本文介紹了微API設(shè)計(jì)模式的基本概念、組網(wǎng)及其優(yōu)勢(shì)。以下是譯文

  

  互聯(lián)網(wǎng)上的軟件部署始于服務(wù)器。然后,有了虛擬化。 IaaS(infrastructure-as-a-service, 基礎(chǔ)設(shè)施即服務(wù))是云計(jì)算的第一步,它使得人們可以在一小時(shí)內(nèi)配置好虛擬服務(wù)器。 PaaS(platform-as-a-service, 平臺(tái)即服務(wù))是在物理機(jī)器和開發(fā)人員的代碼之間增加了一個(gè)抽象層。最后,構(gòu)建微服務(wù)(而不是單體、集成API和遠(yuǎn)程托管服務(wù))的趨勢(shì)導(dǎo)致了當(dāng)前階段無服務(wù)器平臺(tái)云計(jì)算或FaaS(功能即服務(wù))的出現(xiàn),在此平臺(tái)上部署了小單元的代碼,以及由托管服務(wù)提供商自動(dòng)管理的整個(gè)基礎(chǔ)設(shè)施。

  基于無服務(wù)器和FaaS的思想,我在這里要介紹一個(gè)我個(gè)人稱之為微API的概念。我將其定義為描述一段軟件的設(shè)計(jì)模式,這個(gè)軟件:

  向其消費(fèi)者公開Web API(REST或RPC風(fēng)格),

  在單個(gè)文件中實(shí)現(xiàn),具有合理的低LOC(lines of code,代碼行),

  依賴于一個(gè)標(biāo)準(zhǔn)化的框架和一系列的依賴關(guān)系

  無需關(guān)心本地狀態(tài)。

  微API在“執(zhí)行引擎”中運(yùn)行,執(zhí)行引擎提供了標(biāo)準(zhǔn)化的框架和依賴關(guān)系。由于自定義邏輯非常小,因此微API可能是按需部署的,這意味著每當(dāng)需要由特定的微API處理的請(qǐng)求出現(xiàn)時(shí),可以從存儲(chǔ)庫中下載代碼,然后緩存到引擎內(nèi)并立即執(zhí)行。執(zhí)行引擎被設(shè)計(jì)成多租戶的模式。它將自定義代碼放在沙箱中,這樣,不同的微API之間就不會(huì)相互影響。

  由于其按需部署和多租戶的設(shè)計(jì),分布在世界各地服務(wù)器上的托管微API執(zhí)行引擎網(wǎng)絡(luò)可以像CDN(Content Delivery Network, 內(nèi)容傳送網(wǎng)絡(luò))那樣工作。如果代碼在檢索到之后并沒有完成緩存,那么就會(huì)在距離最近的消費(fèi)者處接收并執(zhí)行API請(qǐng)求。有了這樣一個(gè)邊緣服務(wù)器網(wǎng)絡(luò),服務(wù)器端邏輯的分發(fā)和擴(kuò)展可以像分發(fā)靜態(tài)Web內(nèi)容一樣簡(jiǎn)單!在前期,不需要準(zhǔn)備任何資源,這意味著托管一個(gè)微API端的成本幾乎為零。每秒數(shù)千個(gè)請(qǐng)求的高可擴(kuò)展性可以通過水平或垂直的方式擴(kuò)展執(zhí)行引擎來實(shí)現(xiàn)。另一方面,在部署了引擎服務(wù)器之后,微API也可以在單租戶環(huán)境中使用。引擎服務(wù)器可部署在私有和混合云中,甚至部署在網(wǎng)絡(luò)邊緣的設(shè)備中。

  與其他無服務(wù)器環(huán)境不同,由于框架和依賴關(guān)系的選擇,以及執(zhí)行引擎的影響,微API可能看起來限制很大。這是故意這么設(shè)計(jì)的,因?yàn)檫@樣使得開發(fā)人員能夠?qū)W⒂跇I(yè)務(wù)邏輯,可以快速啟動(dòng)大量獨(dú)立的微API,而無需進(jìn)行架構(gòu)決策并管理每個(gè)微API的依賴關(guān)系。另外,還可以針對(duì)特定要求設(shè)計(jì)不同的執(zhí)行引擎。

  微API是完成以下任務(wù)的完美選擇:

  一個(gè)API是另一個(gè)API的代理或外觀,用于橋接不同的身份驗(yàn)證協(xié)議或轉(zhuǎn)換數(shù)據(jù)格式(例如,將XML轉(zhuǎn)換為JSON)。

  在調(diào)用其他API或Webhook之前修改或檢查數(shù)據(jù)的webhook接收器。(譯者注:Webhook是用戶通過自定義回調(diào)函數(shù)的方式來改變Web應(yīng)用的一種行為)

  在通過另一個(gè)API或基于云的存儲(chǔ)系統(tǒng)在存儲(chǔ)數(shù)據(jù)之前,需要一個(gè)簡(jiǎn)單的數(shù)據(jù)驗(yàn)證層。

  將來自多個(gè)API的數(shù)據(jù)組合成單個(gè)響應(yīng)。

  具有靜態(tài)或半靜態(tài)響應(yīng)的模型。

  微服務(wù)架構(gòu)中的路由組件。

  總而言之,微API就像膠水一樣非常有用,它可以通過易于創(chuàng)建和部署的自定義代碼來連接任何東西,使它們比可視化集成和聚合服務(wù)更具通用性。

  在CloudObjects公司,我們正在構(gòu)建一個(gè)基于PHP和Silex 微框架的微API執(zhí)行引擎,它利用PHPSandbox來提供一個(gè)安全的運(yùn)行時(shí)環(huán)境。我們給它起了個(gè)名字叫phpMAE。phpMAE是圍繞著CloudObjects Core和其他即將到來的CloudObjects產(chǎn)品的集成而設(shè)計(jì)的,它為開發(fā)和混合部署以托管服務(wù)和完全開源的形式來分發(fā)提供。 微API的配置和源代碼存儲(chǔ)在CloudObjects Core中,并通過CloudObjects Core來部署。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?