超媒體是傳播、文化,社會是媒體、電信和計算的融合。這種融合是在三個部門采用數字技術:音頻、視頻和超文本。越來越強大的個人計算機的發展使信息的一對一傳輸與一對一的交互和各種媒體的組合相結合。
正如軟件架構師Irakli Nadareishvili所解釋的那樣,“超媒體是萬維網的制造問題。就像物理世界是由相互作用的基本粒子(玻色子和Fermions)構建的,網絡本質上是一個由無數相互作用的超媒體文檔組成的宇宙。”更常見的術語超文本與超媒體密切相關,大部分網絡由主要用超文本標記語言(HTML)編寫的網頁組成。但超媒體超越了超文本,這個詞表明不僅僅是文本,還能夠被超鏈接,如圖形、視頻和音樂文件。
因此,從本質上講,超媒體只是我們在網絡上看到、聽到和互動的一切的另一個名稱。但自20世紀90年代初以來,超媒體的一般概念在大眾使用中在很大程度上被“交互式多媒體”一詞所取代。人們主要只是在軟件工程和建筑領域繼續談論超媒體。如今,該術語最常用于開發基于Web的應用程序編程接口或API。
隨著軟件應用程序和系統的復雜性不斷增長,越來越需要單個應用程序中的不同組件——以及完全獨立的應用程序——能夠簡單而清晰地相互通信。這種跨語言數據交換是API一直使用的用途,但各種API和用于編碼它們的語言可能差異很大,并且與單個軟件應用程序本身一樣獨特。由Facebook開發的API和由Twitter開發的API可能無法相互很好地通信,開發人員通常必須對任何給定的API的獨特文檔進行排序,以弄清楚如何將其與自己的應用程序一起使用。許多系統工程師和軟件開發人員認為,如果按照共享的商定結構,存在編寫API的通用格式,他們的工作會簡單得多。他們將網絡視為這種可能性的一個行之有效的例子。
但在我們進入超媒體使用戶友好的API的世界成為可能之前,一些上下文似乎很正常。超媒體的概念從何而來?它與超媒體API的想法有什么關系?
長話短說,超鏈接和超媒體的原始概念通常歸功于20世紀著名的美國工程師Vannevar Bush,他1945年在《大西洋》上的文章《As We May Think》闡述了他對“memex”的想法,這是一種機械桌面信息檢索工具,允許用戶通過非線性關聯快速索引和訪問大量信息存儲。布什的愿景有效地描述了我們現在與網絡關聯的非順序瀏覽和超鏈接功能,他的預言性文章繼續被世界各地的計算機科學學生閱讀。但直到近二十年后,即1963年,實際的“超文本”和“超媒體”這兩個詞才首次被創造出來。
受布什文章的啟發,一位名叫泰德·納爾遜的有遠見的IT工程師開始在工作中使用這些術語,并最終在他1965年的文章《復雜信息處理:復雜、變化和不確定的文件結構》中發表了這些術語。他寫道:“紙張系統在組織或提出想法方面有嚴重的局限性……然而,有了計算機驅動的顯示和大容量內存,可以為教育和享受創造一種新的、可讀的媒介……讓我介紹“超文本”一詞,意思是以如此復雜的方式相互關聯的書面或圖片材料,以至于無法在紙上方便地呈現或表示。”
三年后,在1968年12月9日著名的“所有演示之母”上,計算機工程師道格拉斯·恩格爾巴特展示了一個工作計算機系統,該系統具有我們今天在個人電腦中期望的所有陷阱——包括導航鼠標、圖形用戶界面(GUI)、多個應用程序窗口和可點擊的超文本鏈接。那天在舊金山,布什和納爾遜對網絡超媒體的愿景明顯地誕生了。
快進到1990年12月,Tim Berners-Lee在概述他的“WorldWideWeb(W3)”項目一年后,通過他的超文本傳輸協議(HTTP)成功通過互聯網傳輸數據,通過超文本鏈接訪問由他的HTML代碼組成的多個文檔。“超文本”在1992年解釋說,“是一種鏈接和訪問各種信息的方式,作為用戶可以隨時瀏覽的節點網。”
到2000年,Berners-Lee編織的網絡已經真正覆蓋了世界,其領先的先驅之一Roy Fielding——他幫助編寫了Berners-Lee開始的初始HTTP規范——正忙于在加州大學歐文分校完成他的博士論文。在他的論文第5章中,菲爾丁創造了一個術語,該術語今天繼續在關于Web服務和API的所有討論中回響。該術語是“REST”,代表代表狀態轉移。Fielding認為 REST 是定義“分布式超媒體系統”,特別是萬維網的建筑風格和結構的一種方式。用他的話說,“REST忽略了組件實現和協議語法的細節,以專注于組件的作用,它們與其他組件交互的限制,以及它們對重要數據元素的解釋。”換句話說,它是Web和HTTP工作方式的元視圖。許多(但不是全部)嚴重依賴HTTP的API可以被認為是“RESTful”,REST通常被用作讀取和寫入Web服務和API的替代樣式,以及SOAP(簡單對象訪問協議)、WSDL(Web服務描述語言)和RPC(遠程過程調用)等編程標準。最重要的是,由于REST API幾乎總是使用HTTP語法——包括動詞GET、PUT、POST等——它們被廣泛認為是超媒體API的最終形式。
超媒體驅動應用程序架構的核心思想是,通過將應用程序的各個部分鏈接在一起,可以創建一個更易于發現、擴展和維護的系統。這種架構的關鍵優點包括靈活性、標準化和與任何給定服務的松散耦合。這意味著對系統的更改和擴展可以更容易地進行,而不會對現有功能產生負面影響。
超媒體使您的API更加靈活:您可以更無縫地添加新功能-使您的用戶立即可用。它還使您能夠更改API的某些方面(即更改資源,需要額外的GET參數),而不必破壞用戶正確實現的向后兼容性。
超媒體是最佳實踐:超媒體的亮點在于它能夠創建一個靈活的API,該API根據您的架構而不是他們自己的架構為開發人員提供動態數據。本質上,它為開發人員提供了一個快捷方式,允許他們充分利用您的API,而不必完全依賴文檔和編寫規則,這些規則可能與您的應用程序中的規則一致,也可能不一致。
超媒體在API方面經常被誤解,但本質上它的功能與網頁上的鏈接完全相同。雖然這項技術既受到贊揚又受到批評,但它確實提供了一系列短期和長期收益。我相信,您的