WEB API已成為構建客戶端服務的利器?

一、軟體開發的互聯網思維

1. 網路就是計算機

進入互聯網時代,軟體開發必然放眼全局,充分利用互聯網的資源和特性。比如,為了提高響應性能,就選擇使用CDN作為前端緩存。而且可能還需要採用CDN提供的API進行編程,以便更加優化地調度緩存資源。類似這樣可利用的網路資源很多,開發者需要統一考慮到,也就是建立起軟體開發的互聯網思維。這樣開發出來的軟體,才具有互聯網基因,能夠適應互聯網的時代。

2. 雲計算助力軟體開發

雲計算通過虛擬化技術把很多資源整合起來,軟體開發理念不斷向更高維度抽象。從虛擬機到集群,再到容器,再抽象成函數計算,軟體開發越來越聚焦在業務核心上。這樣的演進,必然帶來效率的提升。基於雲計算環境的軟體,不可避免地需要通過各種API來進行資源管理。

3. WEB API的作用

1) 開放有價值的數據

一些數據具有較強的使用價值,比如天氣預報。利用 WEB API 作為開放介面,可以讓數據價值作用充分發揮出來。每個人都會有打車的經歷,大多服務商都在打車軟體上接入天氣預報API,做到提前通知司機師傅天氣變化情況,司機可做好出行應急準備,以及準備好雨具等貼心服務。並可通過此情況,設定相應的價格波動控制,調動司機師傅的積極性,並給乘客提供更優質的預知服務,達到三方共贏。

2) 複雜計算介面

WEB API的另一個主要作用就是可以作為複雜計算的開放介面。例如,針對文檔的 WEB 展現,特別是在移動端WEB展現,缺少成熟通用的技術方案。一些應用不得不採取變通的辦法,比如阿里釘釘把文檔頁轉成了圖片;某郵箱丟失了字體輪廓特徵;某信則要下載後通過第三方APP打開。反而一些中小開發團隊,通過調用九雲圖的文檔轉換 WEB API,以最少的成本,實現了更好的效果。九雲圖WEB API 可以把各類文檔轉換成包含SVG的HTML5格式,在移動端缺少字型檔的情況下,也能保持字體和版式完全不變,還可平滑縮放。像這樣的複雜計算功能,採用 WEB API 進行介面開放,再合適不過了。

3) 雲計算資源管理

前面提到,基於雲計算環境的軟體,不可避免地需要通過各種API來進行資源管理。做為雲計算基礎設施的一部分,WEB API 是必不可少的。開發者通過調用 WEB API,可以使軟體類產品高效、方便地融合到雲計算體系里。

二、WEB API的統一性需求

1. 體系結構的統一

一套完善的API,需要有一個統一的體系結構。

在API發展的各個階段,這樣的體系結構也在不斷演進。初期,針對科學計算需要,主流開發語言提供了一些計算函數,那時候API體系雖然不複雜,但作為編程語言的一部分,整體的統一性非常明確,開發者很清楚有哪些函數是可以利用的。

隨著IT技術的發展,出現了控制項、類庫、框架等越來越強大的開發介面,各種方案自成體系,儘管第三方資源不斷加入,但整體的體系結構,還是依賴於核心功能的支撐。比如Java JDK提供了大量的原生類庫,第三方產品雖然豐富多彩,但由於Java的平台屬性,以及核心 API 功能的完善,JDK體系結構的統一性始終非常明確。維持 API 體系結構的統一性,還需要有理論的支持,比如各種 GUI 模型,都是遵循基礎理論進行設計的。這保證了開發者在各種開發工具之間的思維統一,比如有了Windows GUI的開發經驗後,再從事 Java Swing 開發時,也會得心應手。

當前,WEB API 在體系結構的統一方面,還十分不足。既缺乏理論基礎,又缺少基本框架。顯得非常散亂,即使同一個雲廠商的各種資源介面,也缺少合理的分類體系結構。開發者面對這些 WEB API,很難做到瞭然於胸。如果能夠規划出一個合理的體系結構,以雲計算資源為主幹,分門別類,第三方API都能在這個分類體系中找到相應的位置。開發者在使用 WEB API時,就能得心應手了。

2. 介面規範的統一

和傳統的 API 一樣,一套具備完善體系結構的 WEB API,也需要有統一的介面規範。讓開發者有明確的標準,可以提高溝通和使用的效率。

3. 交互方式的統一

最開始提到網路就是計算機,互聯網、雲計算的各種資源,需要協同工作。WEB API 應該提供訂閱、監聽、事件等機制,統一各資源之間的交互方式。使整個 API 體系互相關聯,成為一個協同運作的統一體,不再是眾多分散存在的零部件。

4. 安全保障的統一

和傳統API的最大不同,就是WEB API面臨著非常高的安全需求。互聯網的開放,使網路資源和服務都面臨著巨大的風險。這是 WEB API 必須要解決的問題。各個雲計算廠商和第三方WEB API開發者,建立了一些加密、鑒權等機制,但是很多都是分散實施的,有些也提供了統一的訪問控制,比如阿里雲的RAM。但是在針對WEB API的安全保障方面,統一的程度、力度、透明度,以及抽象的層級似乎還遠遠不夠。依靠中心化保障安全機制固然有必要,但是否應該引入區塊鏈這樣的技術作為安全機制的補充,也是一個需要考慮的問題。

三、軟體產業大規模協作的前提

目前,軟體開發領域技術協作性不強,從阿里雲API市場的交易量也可以看出。這是由於軟體產業起步較晚,成熟度不夠導致的。而一些成熟度較高的產業,比如汽車製造業,技術協作十分廣泛,大量的零部件都是協作生產的。軟體產業要實現大規模協作,至少需要具備如下兩個條件:

1. 繁榮的生態

一個繁榮的生態需要健全的基礎設施,WEB API領域的基礎設施包括數據、網路資源和體系結構。隨著雲計算的發展普及,數據和網路資源基本具備,當務之急是要建立統一的體系結構。這樣的體系結構,需要完善、有力的主幹支撐,必須有足夠規模和實力的企業投入資源,發揮主幹作用,才有可能讓WEB API生態繁榮起來。

2. 系統准入和監管

軟體產業的技術協作如果要打開局面,還有兩件事情必須要做。一是制訂一些技術標準,二是發放資質證書。傳統產業這兩件事做得很好,基本都是政府在主導。這樣可以保障技術協作的可靠性,因為政府在制訂標準和發放牌照的過程中,間接承擔了擔保人的角色。而軟體產業的技術協作,政府卻沒有條件做上面的兩件事。這就需要有實力的企業來承擔這個角色,一方面對WEB API產品制定一些技術標準,比如文檔格式轉換類的,應提供什麼樣的介面,參數的類型、命名、響應的時間等;另一方面,對符合標準的WEB API發放資質證明,並對獲得資質的產品進行日常核查,確保其運行狀態穩定,為使用者提供充分可靠的服務。

九雲圖做為阿里雲API應用創新大賽兩屆的參賽團隊,在文檔處理、雲端存儲、WEB 展現的研發上具有多年的經驗與技術積累。他們開發的「九雲圖文檔格式轉換API」已在阿里雲API市場上開放調用。做為WEB API領域的早期開拓者,九雲圖為WEB API的發展邁出了第一步。

他們本屆的參賽作品「旅遊產品海報自動生成系統」,是根據旅行社用戶上傳的行程文檔,進行文本解析後,自動生成帶H5二維碼的宣傳海報。該作品用到了九雲圖文檔轉H5 APl、阿里雲自然語言處理 APl、阿里雲 OCR APl、阿里雲人臉識別 APl、百度圖片 APl,還有阿里雲函數計算、OSS APl 等。

WEB API已滲入我們生活、出行、工作的各環節,成為了每個重要信息技術趨勢的核心內容。移動設備、雲計算、物聯網、大數據及社交網路等應用都依賴於一個基於WEB的界面與它們的分散式組件進行連接,為全球範圍內的各個商業領域提供具有創新性和顛覆性的解決方法。而WEB API的使用既是催化劑,也是促成這些成果的主要力量。

了解更多請微博關注阿里雲客戶滿意中心


推薦閱讀:

阿里雲大學創新人才賦能模式,助力貴州大數據基礎人才建設
「再小的個體,都有自己的品牌」--5分鐘打造一個有逼格的個人站點
國內哪個雲平台比較靠譜?
IDC:阿里雲安全能力和IaaS市場份額雙項領先
阿里雲發力人工智慧,殺入醫療、工業勝算幾何?

TAG:雲計算 | API | 阿里雲 |