API管理工具能否彌補REST與Web服務(wù)之間的鴻溝?
隨著企業(yè)學習如何通過RESTful利用現(xiàn)有服務(wù),API管理工具正在引起轟動。
企業(yè)面臨許多源自SOA架構(gòu)好處的挑戰(zhàn),比方說服務(wù)重用。關(guān)鍵原因之一是暴露企業(yè)服務(wù)給新應(yīng)用背后的復(fù)雜性。SOA中理論上服務(wù)一般都是可重用的。但實際上往往最終還是有大量的組件與組件之間的硬連接集成,3Scale的CEO Steven Willmott說。
與此同時,由于允許企業(yè)通過采用直接的RESTful接口來利用現(xiàn)有服務(wù),API經(jīng)濟開始爆發(fā)。“API無所不在,”Gartner研究副總裁Paolo Malinverno說:“任何使用云的軟件都使用API。公司開始利用API來進行集成,未來實現(xiàn)新應(yīng)用的敏捷性也要如此。任何純粹是企業(yè)內(nèi)部的應(yīng)用也都一樣可以利用這些趨勢。”
API與SOA SOA是一種架構(gòu),是建構(gòu)應(yīng)用的一種方式,它遍歷不同的職能單元,可以隨處調(diào)用,Malinverno說。SOA曾與Web服務(wù)協(xié)議打過交道,大家把SOA與Web服務(wù)關(guān)聯(lián)在一起,但SOA是一種架構(gòu),而Web服務(wù)卻是一種API風格。
“大家一般都不愿意談SOA,”
Malinverno解釋道:“他們認為這個東西已經(jīng)過時,沒有用了。但SOA作為一種架構(gòu)仍然是充滿活力的。”
Web服務(wù)只是搞SOA的一種方式而已。相對于老系統(tǒng)內(nèi)部做SOA的方式,API的確有一種略微不同的連接,但架構(gòu)上它們多多少少都是一樣的。
Malinverno補充道:“在IT里面,大家的職業(yè)生涯是建立在技術(shù)基礎(chǔ)上的。更年輕的人不希望聽Web服務(wù)的東西。他們希望聽的是REST。”然而REST也限制了交互的復(fù)雜性。在不久的將來API管理工具可以幫助彌補這一鴻溝。
REST如此成功的一個主要原因是容易使用。Web開發(fā)者可以去到一個門戶上,接收一個API主鍵然后開始測試。Web服務(wù)的過程就要長得多、復(fù)雜得多,Malinverno說。
RESTful復(fù)雜性需求
從長遠看,當企業(yè)想給API交互增加復(fù)雜性時REST會顯現(xiàn)出自己的局限性。“REST可實現(xiàn)簡單的交互,像增、刪、讀、改等,”Malinverno說:“你需要更加復(fù)雜的交互時,就需要事件。事件需要事件處理器來審視并決定該干什么。”
組織會想辦法實現(xiàn)這些更加復(fù)雜的交互,但REST和JSON將顯示出自己的限制。“Web服務(wù)也沒有希望做這個的,因為大多數(shù)Web服務(wù)的規(guī)范都定稿了,”
Malinverno認為:“還有更多要做,但大家必須繼續(xù)前進。我們必須找到別的協(xié)議。”
業(yè)務(wù)邏輯新考慮 Malinverno指出,記住這一點之后,API管理工具的一個關(guān)鍵功能就是在平臺之上定義業(yè)務(wù)邏輯的能力。在今天,業(yè)務(wù)邏輯被捆綁進業(yè)務(wù)流程分區(qū)、應(yīng)用邏輯或SaaS包的云端。REST必須有辦法至少表達其中的部分邏輯并支持它們才行。
Malinverno預(yù)計API現(xiàn)象會首先會往擴大范圍發(fā)展然后才是提高深度。開發(fā)者現(xiàn)在需要的是簡單的交互,但是3年之后將會需要更復(fù)雜一點的東西。REST還可以干這活兒,而且可以干得很好。大多數(shù)移動的增長以及互聯(lián)網(wǎng)上的東西都將是基于REST的。 仍然有許多應(yīng)用是與業(yè)務(wù)邏輯糾纏在一起的。比方說,絕大多數(shù)的SAP實例都內(nèi)置有定制化的邏輯。為了將來改變業(yè)務(wù)邏輯是當前B2B應(yīng)用的主要問題之一。此外,有時候邏輯并不依賴于業(yè)務(wù)流程。而是依賴于5年前編寫的東西。
標準化接口
“人們開發(fā)API已經(jīng)有15年的時間了,”
Jitterbit產(chǎn)品副總裁Andrew Leigh說:“現(xiàn)在我們提出了‘API管理’這樣的術(shù)語。大家在努力思考怎樣才能開發(fā)出高質(zhì)量的API。”
SOA聚焦的是企業(yè)內(nèi)部的連接,但結(jié)果證明它比企業(yè)所認為的要復(fù)雜,更具挑戰(zhàn)性。SOA的這個問題是因為它更多的是方法論而非一套規(guī)則。“我們在審視API對SOA的意義時,總是向內(nèi)看,”Leigh說:“大家用每一種瘋狂的辦法來開發(fā)API。我們有SOAP和Web服務(wù),但大家實現(xiàn)它們的方式與云出現(xiàn)之后的有了根本性的不同。”
像Saleforce、NetSuite及Workday 這些基于云的企業(yè)取得的大范圍成功證明了開發(fā)部署API的標準化之重要性。企業(yè)需要考慮像安全和如何針對不同消費者控制API的曝光這樣的因素。“我們看到的問題是大家如何取出防火墻后面的數(shù)據(jù)并以安全穩(wěn)妥的方式暴露給防火墻外面,”Leigh說。
支撐API層
功能全面的API網(wǎng)關(guān),由于有著內(nèi)置的轉(zhuǎn)換及協(xié)調(diào)能力,正迅速被采用來在處理輕量級集成以外提供管理和治理層。SOA Software負責產(chǎn)品營銷的副總裁Sachin Agarwal說:“我們看到API曾要么被放到現(xiàn)有集成工具如ESB或者iPaaS上,要么甚至不斷地直接置放到應(yīng)用本身之上。”
分層需要有合適的遵守企業(yè)治理、風險及合規(guī)性需求的基礎(chǔ)設(shè)施。Agarwal說,API的曝光需要發(fā)布、記錄、安全、監(jiān)控、分析及治理。這些就是API管理工具提供的能力,并且不斷被放到企業(yè)級API之上。
由于這些能力,API管理工具被用來作為集成基礎(chǔ)設(shè)施的一部分。在某些需要輕量協(xié)調(diào)與轉(zhuǎn)換的集成用戶案例中,API管理層提供了傳統(tǒng)依靠專用適配器的重度的ESB的一種低成本的替代。
API管理正在打破被鎖定在本地系統(tǒng)之內(nèi)的數(shù)據(jù)之間的壁壘,令這些數(shù)據(jù)可以為不斷托管于云端的新的基礎(chǔ)設(shè)施和應(yīng)用所訪問,Agarwal說。有了API管理平臺提供的細顆粒度的控制、監(jiān)控及分析,消費者就有能力分析使用情況,找出哪個服務(wù)被調(diào)用得最頻繁,然后再進一步調(diào)整業(yè)務(wù)模式或者基礎(chǔ)設(shè)施。
開放新的企業(yè)采用模式 隨著企業(yè)重新架構(gòu)并為數(shù)字化變革進行準備,Agarwal觀察到四種不同的企業(yè)采用模式的出現(xiàn)。
平衡發(fā)展與控制 大多數(shù)SOA都是以企業(yè)受控環(huán)境或跨受信任的合作伙伴之間的環(huán)境為基礎(chǔ)的。“許多你必須解決的問題,像治理,都通過SOA解決,”Willmott說:“企業(yè)架構(gòu)師要進行的轉(zhuǎn)變是考慮如何把使用這些服務(wù)的app整合到一起。”
一旦企業(yè)發(fā)布了一套資源給規(guī)模大得多的受眾,這些開發(fā)者干的事情就無法預(yù)測了。Willmott指出:“這看起來似乎是微不足道的變化,但卻非常重要。你需要不同層次的身份和信任。”
比方說,紐約市正利用3ScaleAPI管理平臺為其市民開發(fā)移動應(yīng)用。該平臺讓他們能夠以結(jié)構(gòu)化的方式暴露數(shù)據(jù),以便第三方可以開發(fā)可利用這些服務(wù)的應(yīng)用。這使得大家可以更容易地找到一種不會給城市帶來開發(fā)成本的新的方式去開發(fā)應(yīng)用。“大家能拿到想要的東西,而城市一分錢也不用付出,”Willmott說。