FOSS 開放標準/一些重要的開放標準
本節將討論一些目前已經可以使用或正在積極開發的更重要的開放標準。這裡列出的標準並非詳盡無遺,但它們確實代表了當今行業中最廣泛使用的標準。
網際網路之所以能成為今天的樣子,主要是因為它提供的應用程式和服務的幾乎普遍可訪問性及其無縫連線性。這是網際網路在歷史和現狀中廣泛使用開放標準的直接結果。這裡重點介紹了主要負責網際網路基礎設施以及流行的全球資訊網和網際網路電子郵件服務的標準。
TCP/IP 網路標準套件為網際網路的網路基礎設施奠定了基礎。網際網路上的所有主要服務和應用程式都建立在 TCP/IP 之上。這些協議最初由網際網路的先驅者開發,他們來自大學、研究機構和公司的工程師和科學家,共同參與了美國國防部高階研究計劃署網路(ARPANET)專案。這發展成為我們今天所知的網際網路,而 TCP/IP 成為了一種事實上的標準。現在它是 IETF 標準,IETF 負責其持續發展。
TCP/IP 是一種兩層分組交換規範,其中要在網路上兩個端點之間通訊的資料首先被分解成較小的資料包,然後這些資料包被分別路由穿過網路,從源點到目標點。較高層,傳輸控制協議 (TCP),[1] 管理著資料在源點的拆分和在目的地點接收資料包後的重新組裝。較低層,網際網路協議 (IP),[2] 處理每個資料包的定址和路由,以便它到達正確的目的地。
TCP/IP 只是提供了一種跨網際網路或 IP 網路傳送資料的傳輸機制。為了使其有用,必須指定和實現服務或應用程式。再次,IETF 主要負責監督和制定大多數這些服務的規範。這些規範的廣泛實施和接受,加上 IETF 和 W3C 等開放標準機構,使得網際網路成為開放標準發揮作用的最佳展示。下面列出了一些這些標準。
HTTP 也許是使用最廣泛的網際網路服務協議。它是訪問全球資訊網的主要方法。網頁內容,以 HTML 頁面以及可能的其他多媒體格式的形式,從 Web 伺服器傳輸到使用者的 Web 訪問代理,使用的是 HTTP 協議。HTTP 由 W3C 聯合 IETF 工作組開發。目前在 Web 上部署和支援最廣泛的標準是 HTTP 版本 1.1 或 HTTP/1.1。[3]
HTTP 協議是一種請求-響應協議,使用客戶端-伺服器模型,其中 HTTP 客戶端(例如 Web 瀏覽器)透過建立到將響應客戶端傳送的請求命令的伺服器計算機的 TCP 連線來發起請求。支援以及客戶端和伺服器行為的命令都在 HTTP 規範中說明。
正是由於對 HTTP 協議標準的普遍接受,Web 才成為了如今無處不在的資訊傳播和交換媒介。它在網際網路上所有利益相關者和參與者中得到廣泛接受的一個主要因素是其開放標準地位。
雖然 HTTP 定義瞭如何將網頁內容在 Web 伺服器和客戶端之間傳輸,但 HTML 是一種開放標準,它指定了內容的結構和呈現方式。用 HTML 編寫的文件由內容和符號以及標記組成,這些標記告訴需要解釋和顯示 HTML 文件的軟體內容的結構和呈現方式。HTML 規範現在由 W3C 維護。它經歷了多次修訂,最新的規範是 HTML 4.01。[4] HTML 也可以作為 ISO 標準,[5] 它只是 HTML 4 的一個子集。
在最簡單的形式中,HTML 文件由文件的文字以及指定對其執行的標記的標記組成。例如,在下面的示例中
<h3>My Work Experience</h3>
<img src="mypic.png">
<p>
<b>Work Experience</b>
<br>
<br>
1990 - 1995 System engineer<br>
1995 - 2005 Network manager<br>
</p>
標籤 <h3> 和 </h3> 指定了它們之間包含的文字將被渲染為三級標題,而標籤 <img src="mypic.png"> 指定了圖形檔案的顯示。標籤 <b>、</b> 指定了它們之間包含的文字應被渲染為粗體,而標籤 <br> 表示換行。
需要一個 HTML 使用者代理軟體來渲染由 HTML 組成的文件,最常見的代理是 Web 瀏覽器。如果遵守 W3C HTML 規範,任何使用者代理(符合規範)都可以正確顯示 HTML 文件,這可以構成文字文件資訊交換標準格式的基礎。不過,使用 HTML 顯示文件的一個主要侷限性是,分頁符不容易表示或控制。
在電子郵件中使用 HTML 越來越受歡迎,因為它可以對文字進行一些簡單的格式化,並將圖形和多媒體內容嵌入到郵件中。但是,安全意識強的使用者通常認為在郵件中使用 HTML 不是最佳實踐,因為一些流行的啟用 HTML 的電子郵件軟體已知存在漏洞。這使得它們容易受到惡意 HTML 郵件的潛在攻擊,可能會導致使用者系統遭到破壞。
電子郵件協議
[edit | edit source]網際網路電子郵件 幾乎已成為與電話服務一樣重要的東西。每次我們傳送電子郵件時,我們都假設郵件將被郵件伺服器正確地轉發到目的地。當我們傳送附件或將一些非文字內容包含到電子郵件中時,我們只是假設附件將被正確地合併,當收件人收到它時,他/她將能夠將其恢復到原始形式。所有這一切都無縫地執行,無論部署的硬體和軟體如何,因為網際網路電子郵件在其郵件傳輸以及電子郵件訊息編碼中都使用了一些重要的開放標準。
簡單郵件傳輸協議
[edit | edit source]SMTP [6] 使得能夠使用電子郵件地址將電子郵件從發件人傳輸到收件人。此標準基於客戶端-伺服器,SMTP 客戶端(通常是使用者的電子郵件軟體或郵件使用者代理)將啟動與 SMTP 伺服器(郵件中繼主機)的 TCP 連線。伺服器和客戶端之間的通訊使用 SMTP 協議完成。這是一種簡單的基於文字的協議,其中,本質上,客戶端通知伺服器發件人和收件人的電子郵件地址。
在那之後,如果一切順利並且伺服器允許(基於其郵件中繼策略),客戶端將郵件訊息傳輸到伺服器。然後,伺服器將嘗試將其傳遞給容納收件人郵箱的計算機,或者,如果需要,將電子郵件轉發到另一個伺服器以傳遞給收件人郵箱。
SMTP 協議最初只支援訊息中的 7 位 ASCII(美國資訊交換標準程式碼)文字,實際上將其限制在英語文字的傳輸。使用 7 位 ASCII 字元集之外的字元集的非英語文字以及二進位制檔案附件必須在傳輸之前由電子郵件使用者代理軟體進行編碼。這種基於文字的郵件的訊息格式由另一個 IETF 標準 RFC 2822 [7] 指定。SMTP 標準已擴充套件為支援 8 位文字,[8] 允許以更多語言傳輸文字訊息,無需編碼。
多用途網際網路郵件擴充套件
[edit | edit source]隨著 網際網路電子郵件 越來越受歡迎,使用者發現它是一種便捷、經濟且高效的將資訊互相傳送的方式。使用者嘗試透過電子郵件傳送除文字訊息以外的其他型別的內容,例如音訊、影片、影像、軟體程式。但是,由於原始的 網際網路電子郵件 規範主要針對英語文字訊息,因此必須制定一些新的規範集以允許多用途內容的互操作性和無縫傳輸。這導致 IETF 生成了 多用途網際網路郵件擴充套件 (MIME) 標準。[9]
MIME 是基本基於文字的 網際網路郵件 標準的擴充套件。它定義了在電子郵件中傳送其他型別資訊的機制。這些包括使用 ASCII 之外的字元集的非英語文字以及二進位制檔案內容,如 多媒體 檔案和計算機軟體。為了支援這些以及保持與簡單的基於 ASCII 的郵件格式的向後相容性,定義了一組用於指定訊息附加屬性(例如內容型別)的電子郵件頭和一組可用於使用 7 位 ASCII 集中的字元來表示 8 位資料的傳輸編碼。郵件訊息頭中非 ASCII 字元的編碼也在 MIME 中得到照顧,允許在其中使用非英語字元。MIME 標準指定了一種註冊新內容型別和傳輸編碼的方法,使其能夠靈活地支援將來新的多媒體型別。
MIME 也是 Web 的重要標準,因為 HTTP 協議在其資料格式中使用了類似郵件的 MIME 格式規則和語法。
可擴充套件標記語言
[edit | edit source]可擴充套件標記語言 (XML) 是 W3C 的一項建議,[10] 它指定了一種元標記語言(元語言是用於描述其他語言的語言),用於建立其他標記語言,以便在 WWW 上使用。 HTML 是一種預定義的單一標記語言,因此在描述和表示用於傳播、交換和互動的各種資料方面存在嚴重限制。XML 作為一種標記規範語言,能夠用於設計標記來描述許多不同型別的資料,以便程式儲存、傳輸或處理。[11] 它描述了資料,但它沒有告訴你應該如何使用資料。
應該注意的是,XML 和 HTML 的設計目標不同,XML 被設計為儲存、攜帶和交換資料,而 HTML 被設計為顯示資料並關注資料的顯示方式。[12] XML 是為在 Web 上部署而建立的,它使用現有廣泛使用的國際文字文件標記標準的子集——標準通用標記語言 (SGML)。[13]
由於其設計目標,XML 很適合資料傳輸和交換以及作為文件儲存和處理的格式。這一點以及它由一個開放的規範/標準機構 W3C 負責管理的事實,導致 XML 被用作指定許多其他資料格式和交換協議的基礎。根據社群驅動的 XML 入口網站 XML.ORG,[14] 它現在被視為在沒有共享通用平臺的環境中進行資訊交換的標準方式。
幾乎每天都會發布使用 XML 為特定環境或活動開發的專用語言和標準,並且自從 1998 年 2 月釋出 XML 1.0 以來,已有數百種標準被採用。特別是,電子政務 和 電子商務 領域在開發和實施基於 XML 的規範方面非常活躍。
下面顯示了一個簡單的 XML 文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="bookcollection.xsl"?>
<BookCollection>
<Book>
<Title>Chronicles: Volume One</Title>
<Author>Bob Dylan</Author>
<Publisher>Simon and Schuster</Publisher>
<Year>2004</Year>
</Book>
<Book>
<Title>Harry Potter and the Goblet of Fire</Title>
<Author>J.K. Rowling</Author>
<Publisher>Bloomsbury Publishing</Publisher>
<Year>2000</Year>
</Book>
</BookCollection>
請注意,雖然 XML 使用語法標籤來識別文件檔案中的各種資料型別,但這些標籤不是預定義的。因此,文件建立者必須使用所謂的 XML 模式定義和描述它們,並將文件與模式相關聯。要建立模式,需要使用 XML 模式語言,例如 文件型別定義 (DTD)、XML 模式 和 RELAX NG。模式的目的是定義 XML 文件的合法構建塊,即可以在文件中出現的元素、資料屬性、標籤等。DTD 在可擴充套件性和缺乏對一些有用功能的支援方面存在侷限性,例如資料型別和名稱空間。XML Schema 也是另一項 W3C 建議,它更適合用於許多實際的 Web 應用程式。
雖然模式可以定義 XML 文件的合法元件,但它不包含有關如何顯示資料的任何資訊。因此,為了使 XML 文件中的資料能夠被例如 Web 瀏覽器正確顯示,必須指定顯示樣式。可擴充套件樣式表語言 (XSL) 用於執行此操作。樣式化是關於轉換和格式化資訊,W3C 規範將這些過程分開。此外,必須導航 XML 文件中的元件以提取和處理它們。因此,來自 W3C 的 XSL 建議包含三個部分
以上述 XML 示例文件為例,對其進行 XSLT 轉換 以生成可供 Web 瀏覽器顯示的 HTML 輸出,示例如下:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h3>Book Collection</h3> <table> <tr bgcolor="#ff0000"> <th align="center">Title</th> <th align="center">Author</th> <th align="center">Publisher</th> <th align="center">Year</th> </tr> <xsl:for-each select="BookCollection/Book"> <tr> <td><xsl:value-of select="Title"/></td> <td><xsl:value-of select="Author"/></td> <td><xsl:value-of select="Publisher"/></td> <td><xsl:value-of select="Year"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
計算機圖形和多媒體
[edit | edit source]在過去的計算時代,顯示主要以文字為基礎,任何顯示的圖形充其量只是使用特殊線繪製字元集實現的線形圖形。能夠顯示完整圖形的計算機終端價格昂貴,僅用於特殊目的或應用程式。如今,隨著價格低廉的個人電腦的普及,這些電腦具有處理和顯示圖形和多媒體的功能,即使使用者介面也變成了基於圖形的。Web 的主要吸引力之一是它廣泛支援和使用圖形影像和多媒體,使內容更有趣和生動。
重要的是,在圖形和多媒體資料儲存、處理和檢索方面,應儘可能遵循 開放標準,以使各種裝置和計算平臺能夠提供相同程度的 Web 體驗。
行動式網路圖形
[edit | edit source]在 Web 的早期,當 網際網路 連結和連線速度相對較慢時,網頁上顯示的許多簡單影像和動畫使用了稱為 圖形交換格式 (GIF)[15] 的圖形格式,因為這種格式產生了較小的圖形檔案大小。GIF 格式包括使用 Lempel-Ziv-Welch (LZW) 壓縮演算法,該演算法在美國由 Unisys 獲得專利,Unisys 最終決定對所有使用 GIF 的軟體收取使用費。這導致了 行動式網路圖形 (PNG) 格式[16] 的建立,以取代 GIF 用作單影像 Web 格式。PNG 格式後來成為 W3C 建議以及 ISO 國際標準 (ISO/IEC 15948)。
PNG 是一種可擴充套件的檔案格式,用於無損、便攜、壓縮良好的 光柵影像 儲存。支援索引顏色、灰度和真彩色影像,以及用於透明度的可選 alpha 通道。它完全可流式傳輸,並具有漸進顯示選項,使其適用於網頁中的線上圖形顯示。它還擁有強大的功能,提供了完整的檔案完整性檢查和對常見傳輸錯誤的簡單檢測。[17]
X 視窗系統
[edit | edit source]現在臺式電腦上常見的 圖形使用者介面 (GUI) 使用圖形視窗隱喻作為基本使用者介面。這種視窗系統 GUI 使得不同的程式可以在各自的獨立視窗中同時執行,這些視窗可以開啟、關閉和調整大小。在 Microsoft Windows 和 Mac OS X 等平臺上找到的視窗系統是專有的。另一方面,UNIX 和類 UNIX 作業系統(例如 GNU/Linux、FreeBSD)使用一個開放的視窗系統 - X 視窗系統。
X 視窗系統 或 X 是由 X.Org 基金會 主導的開放視窗系統標準。[18] X 提供了一個框架用於顯示和管理圖形資訊,在此基礎上可以構建 GUI。X 使用客戶端-伺服器模型。X 客戶端通常是傳送圖形輸出以在 X 伺服器上顯示的應用程式。X 伺服器主要使用鍵盤和滑鼠作為輸入裝置與使用者互動,並將輸入傳輸到客戶端以進行操作。
X 客戶端和伺服器可以在同一臺機器上執行,也可以在透過網路連線的不同物理裝置上執行。X 的內在客戶端-伺服器特性是它與其他著名視窗系統(如 Microsoft Windows)之間的主要區別,Microsoft Windows 只顯示在執行應用程式的裝置上本地執行的圖形應用程式。
作為 開放標準,除了 UNIX 和類 UNIX 系統外,X 還在各種硬體和作業系統上得到了實現,包括各種版本的 Macintosh、執行 MS-DOS 和 Microsoft Windows 的 PC 以及來自惠普(前身為數字裝置公司)的 OpenVMS 等。
Ogg Vorbis
[edit | edit source]Ogg Vorbis 是一種通用壓縮音訊格式,用於儲存和播放數字音樂。其質量與其他格式(如流行的 MP3)相當。但是,與 MP3 不同,它是一種開放格式,並聲稱不受 專利 限制。該格式起源於 Xiph.Org 基金會,[19] 該基金會是一個致力於為多媒體制作免費和開放協議、格式和軟體的非營利組織。
Vorbis 是音訊壓縮方案的名稱,它包含在 Ogg 中,Ogg 是 Xiph.Org 的音訊、影片和元資料的容器格式 - 因此得名 Ogg Vorbis。Vorbis 是一種 有損 編解碼器,即它使用一種丟棄資料的壓縮演算法以提高可能的壓縮率。 Ogg 也是其他格式的容器,包括: FLAC (無損音訊)、Speex (語音) 和 Theora (影片)。Ogg、Vorbis 以及這些其他格式的規範屬於公有領域,完全免費用於商業或非商業用途。[20]
支援 Ogg Vorbis 的軟體和硬體裝置數量正在穩步增加,可以在 Xiph.Org 的 Vorbis wiki 上找到。[21]
辦公文件
[edit | edit source]辦公應用程式是現代辦公室中個人電腦上使用最廣泛的應用程式之一。這些應用程式包括 文字處理、電子表格 和 簡報軟體。市場上有多種辦公應用程式,例如 Microsoft Office、WordPerfect Office、OpenOffice.org 和 Applixware Office。過去,這些應用程式中每個應用程式都使用不同的格式來儲存它們的檔案。
因此,從一種檔案格式轉換為另一種檔案格式,或一個應用程式讀取/寫入另一個應用程式建立的檔案都很困難。當OASIS宣佈建議Open Document格式作為辦公應用程式中使用的標準檔案格式時,這在辦公互操作性和生產力方面是一個真正的進步。
OpenDocument
[edit | edit source]OpenDocument [22]是由OASIS開發的一種檔案格式,用於儲存由電子表格、文字處理器、圖表和簡報軟體等應用程式建立的辦公文件。它使用免版稅、開放且與供應商無關的基於 XML 的格式。該格式基於OpenOffice.org的檔案格式,該格式已提交給 OASIS,以作為標準的基礎。OpenDocument 為文字處理、電子表格、簡報、繪圖、圖表和數學文件提供了一個XML 模式。OpenDocument 格式已成為ISO/IEC 國際標準 (ISO/IEC 26300)。
宣佈將OpenDocument格式作為其主要/原生格式支援的辦公軟體包括OpenOffice.org、StarOffice和KOffice的辦公套件。
開放標準使用情況
[edit | edit source]表 1 總結了上述開放標準在其各自領域的應用和滲透水平。可以看出,開放標準在網際網路上以及執行與網際網路相關的/衍生服務和應用程式中得到廣泛部署。然而,在圖形、多媒體和辦公應用程式領域,它們的接受度仍然非常有限。這些領域滲透率有限的原因是,它們被Apple和Microsoft等公司的專有產品所主導,這些產品使用自己的專有格式和規範(見下一節“檔案格式比較”)。由於這些供應商在各自領域的統治地位,他們支援開放標準或至少使其規範更加開放的動力並不強。
| 重要的開放標準 | |||
|---|---|---|---|
| 領域 | 標準 | 組織 | 使用情況 |
| 網路 | TCP/IP | IETF | 通用 |
| WWW | HTTP | W3C,IETF | 通用 |
| Web 內容 | HTML | W3C | 通用 |
| 電子郵件 | SMTP | IETF | 通用 |
| 電子郵件,WWW | MIME | IETF | 通用 |
| 文件交換 | XML | W3C | 通用 |
| 圖形 | PNG | W3C | 廣泛 |
| 視窗系統 | X 視窗 | X.Org | 有限 |
| 音訊 | Ogg Vorbis | Xiph.Org | 有限 |
| 辦公文件 | OpenDocument | OASIS | 有限 |
腳註
[edit | edit source]- ↑ RFC 793,“傳輸控制協議” http://www.ietf.org/rfc/rfc793.txt
- ↑ RFC 791,“網際網路協議” http://www.ietf.org/rfc/rfc791.txt
- ↑ RFC 2616,“超文字傳輸協議 - HTTP/1.1” http://www.ietf.org/rfc/rfc2616.txt
- ↑ HTML 4.01 規範 http://www.w3.org/TR/html401/
- ↑ ISO/IEC 15445:2000 http://purl.org/NET/ISO+IEC.15445/15445.html
- ↑ RFC 2821,“簡單郵件傳輸協議” http://www.ietf.org/rfc/rfc2821.txt
- ↑ RFC 2822,“網際網路訊息格式” http://www.ietf.org/rfc/rfc2822.txt
- ↑ RFC 1652,“用於 8bit-MIME 傳輸的 SMTP 服務擴充套件” http://www.ietf.org/rfc/rfc1652.txt
- ↑ RFC 2045、2046、2047、2048、2049,多用途網際網路郵件擴充套件 (MIME) 第 1-5 部分 http://www.ietf.org/rfc/rfc2045.txt http://www.ietf.org/rfc/rfc2046.txt http://www.ietf.org/rfc/rfc2047.txt http://www.ietf.org/rfc/rfc2048.txt http://www.ietf.org/rfc/rfc2049.txt
- ↑ 可擴充套件標記語言 (XML) 1.0 (第三版) http://www.w3.org/TR/REC-xml
- ↑ Flynn, P (編),XML 常見問題解答 v4.1,Cork,2005 年 5 月 http://xml.silmaril.ie
- ↑ W3Schools,“XML 簡介” https://w3schools.tw/xml/xml_whatis.asp
- ↑ W3C,可擴充套件標記語言 (XML) http://www.w3.org/XML/
- ↑ XML.ORG http://www.xml.org
- ↑ 圖形交換格式版本 89a http://www.w3.org/Graphics/GIF/spec-gif89a.txt
- ↑ 行動式網路圖形 (PNG) 建議 http://www.w3.org/TR/PNG/
- ↑ 行動式網路圖形 (PNG) 建議 http://www.w3.org/TR/PNG/
- ↑ X.Org 基金會 http://www.x.org
- ↑ Xiph.Org 基金會 http://www.xiph.org
- ↑ Ogg Vorbis 通用常見問題解答 http://www.vorbis.com/faq.psp
- ↑ Xiph.org 上的 Vorbis Wiki http://wiki.xiph.org/index.php/Vorbis
- ↑ OASIS 標準,“辦公應用程式 OpenDocument 格式 (OpenDocument) v1.0” http://www.oasis-open.org/specs/index.php#opendocumentv1.0