雲供應商如何管理移動應用程式與雲之間的連接

來源:互聯網
上載者:User
關鍵字 雲計算 移動應用程式

傳統的用戶端和伺服器端軟體技術使用一種稱為通訊端 的軟體解決方案來建立連接。 隨著行業從靜態的胖用戶端發展成為移動的瘦用戶端,通訊端的使用並未發生改變。 但是多年來,通訊端已經改變了其形態,變得更加複雜。 結果,這項技術變得很難理解,更別提全面理解通訊端在企業中的使用方式,或它們如何與移動和雲技術結合使用。

本文將説明您理解通訊端的概念、可供您的應用程式使用的通訊端類型、在移動和雲解決方案中使用通訊端的優缺點,以及雲服務提供者如何為通訊端提供支援。

通訊端入門

通訊端組合使用了一個 Internet 協定 (IP) 位址或一個網域名稱系統 (DNS) 位址和埠號,將用戶端軟體連接到伺服器端軟體。 這種組合使用的一個常見示例是 Web 郵件(例如 www.acmewidgets.com:2095),其中冒號 (:) 是 DNS 位址與埠號之間的分隔符號。 通訊端允許建立會話級的連接來執傳輸資料或執行事務。

通訊端的類型

通訊端用於在用戶端和伺服器之間建立會話,以執行事務或傳輸資料。 當企業部署或使用通訊端時,他們可根據應用程式類型、安全需求和開發團隊的技能集,使用不同類型的通訊端和不同的協定。 通訊端類型包括 Internet、流、原始和域通訊端。 Internet 和流通訊端最流行,這得益于它們的易用性,它們的架構,以及 Web 和應用伺服器在當代資料中心中的流行性。

對於 Internet 通訊端,基於 HTTP 的通訊端是瘦用戶端或基於 Web 的系統的首要選擇,尤其適用于不需要通過加密來加強安全的應用程式。 另請注意,HTML v5 (HTML5) 引入了 WebSockets,它與 Internet 通訊端極度相似。 (參閱 參考資料 中的連結,瞭解有關的更多資訊。 )當需要額外的安全性時,企業應選擇流通訊端。 儘管由於瘦用戶端應用程式的激增,Internet 通訊端目前非常流行,但基於流的通訊端也很流行。

最流行的基於流的通訊端基於傳輸控制協定 (TCP) 堆疊,常常用於胖用戶端應用程式。 (請注意,TCP 偶爾也會用於瘦用戶端連接。 )當通訊端連接需要額外的安全性時,還可以使用基於安全通訊端層 (SSL)/傳輸層安全 (TLS) 的解決方案。 SSL/TLS 通過結合使用公開金鑰基礎架構 (PKI) 與基於 SSL 的 HTTP(也就是 HTTPS)來保護移動中的資料。 請注意,在處理敏感性資料時,常常需要使用 SSL/TLS,這些敏感性資料包括個人可識別資訊、受保護的健康資訊、持卡人資料或者支付、銀行或抵押資料。 需要更靈活地建立用戶端-伺服器連接的組織應考慮原始通訊端。

原始通訊端並不依賴于特定的傳輸機制,因此在使用原始通訊端的連接上發送的包包含一個標頭,以及 「原始的」 包本身。 這些通訊端常常由網路設備(比如防火牆和路由器)使用,這些設備會同時使用 Internet 控制訊息協定和 Internet 組管理協定。 由於原始通訊端的通用性,內部系統有時會使用它們來編碼;因此這些通訊端可在私有雲、內部雲的上下文中使用。 使用 UNIX® 系統的企業有另一種通訊端可供選擇:域通訊端。

域通訊端包含進程間通信 (IPC) 協定。 IPC 是一種常常用於遺留平臺(比如 UNIX)的通訊端,儘管一些人可能認為將大型機系統連接到移動或雲環境的需求無足輕重,但這種需求有可能會出現,因此需要提及。 無論使用哪種通訊端,所有通訊端都有一種基本的開發和使用結構,這將在下一節介紹。

通訊端的結構

系統架構或平臺、安全需求以及您用於該平臺的程式設計語言有助於確定您應使用哪種類型的通訊端。 而且,選擇使用應用程式設計介面 (API) 還是內部開發的通訊端也會影響著通訊端的結構。 舉例來說,如果企業打算使用一個基於雲的 Linux®、Apache、MySQL 和 PHP (LAMP) 堆疊在 Amazon Elastic Compute Cloud (Amazon EC2) 平臺上執行伺服器端處理,那麼它很可能會採用基於 Internet 的通訊端。 相反,如果開發人員希望找到一個基於通訊端的 API,將它用於來自某個運行 Apple iOS 5 的 Apple iPad 的移動用戶端會話,那麼合理的選擇將是 Twisted 框架,它使用了基於流的通訊端。

Twisted 使用的通訊端結構反映了它基於流和基於事件的架構;因此,與 Windows® 中基於 TCP/流的通訊端(也就是 WinSock)非常類似,其結構圖將反映出它對來自用戶端的回檔的依賴性(參見圖 1)。

圖 1. WinSock 用戶端-伺服器交互

該圖顯示了 WinSock 用戶端-伺服器交互

從代碼角度講,通過檢查使用 C 程式設計語言為 UNIX 大型機平臺創建的域通訊端,您可以更好地理解通訊端的結構。 清單 1 直觀地解釋了如何在 UNIX 上使用 C 創建基於域的通訊端。

清單 1. UNIX 中使用 C 創建的基於域的通訊端
struct sockaddr_out
{
short int                sout_family;
unsigned short int       sout_port;   /*Remember firewall rules*/
struct out_addr           sout_addr;   /*Router too*/
unsigned char            sout_zero [8];
};

使用通訊端的優缺點

您選擇的通訊端類型可能對服務品質 (QoS) 帶來正面或負面的影響,因為通訊端會維護來自用戶端和伺服器端的狀態。 因此,許多通訊端會説明維護應用程式的事務完整性。 但是,在與 KPI 加密結合使用時,通訊端也會維護事務的機密性和完整性。

加密可説明組織保護資料,但它也會增加開銷,可能通過 QoS 對使用者體驗帶來負面影響。 通訊端也可能難以開發或配置;因此,組織的開發人員必須擁有增強的技能集。 最後,不同的技術規定了您可以使用哪些通訊端,所以在特定平臺上使用通訊端的需求可能會限制您的選擇。

使用通訊端既有優點也有缺點,每種通訊端類型都有特定的優勢和不足。 基於 Internet 的通訊端 API 捆綁在大多數流行的應用伺服器堆疊中(例如 Microsoft® .NET Framework、Apache Tomcat 和 IBM® WebSphere® Application Server),但這 些類型的通訊端帶來了有限的安全性和事務完整性。 基於會話的通訊端 API 帶來了安全性和增強的事務完整性,而且可以包含在大部分應用伺服器中。 但是,它們需要消耗大量資源,因此可能影響 QoS。 原始通訊端具有通用性,但使用它的代價是更高的複雜性和更低的安全性。 最後,基於域的通訊端 API 引入了針對 UNIX 環境的可擴充性,但它們僅適用于某些平臺,因此服務提供者和 API 開發人員提供的支援可能最少。

雲供應商如何為通訊端提供支援

雲計算正在重新定義舊的應用程式服務提供者 (ASP) 模型。 但是,真正的雲產品還具有來自 ASP 的更多特徵,比如資源池、按需利用、多租戶和快速恢復。 雲服務提供者基於不同的雲服務和部署模型來提供服務。

雲服務模型 是一些方法,組織可基於業務需求來使用雲,比如基礎架構即服務 (IaaS)、平臺即服務 (PaaS) 或軟體即服務 (SaaS)。 IaaS 為雲消費者帶來了最高的靈活性,SaaS 帶來的靈活性最低。 但是,除了最高的靈活性,IaaS 還給雲消費者帶來了管理和監視環境的需求。 所以 IaaS 消費者需要從作業系統層開始構建(虛擬)伺服器。 對於 PaaS,消費者需要構建資料庫、應用程式和商務規則,然後載入資料。 對於 SaaS,消費者只需將資料載入到預先構建的應用程式中即可。

雲部署模型 包括公共雲、私有雲、混合雲和社區雲。 公共雲模型的一個示例是 Google App Engine,其中的應用程式和資料存儲在 Google 的一個資料中心中。 在此模型中,消費者實際上在 Google 的 「高層」 建築中佔有一席之地。 大多數大型組織在內部將該雲用作私有雲。 私有雲的一個示例是在自己的資料中心內使用雲特徵(比如資源池、按需使用、多租戶或快速恢復)來處理資訊的組織。 組織還可以在供應商的場所提供一個私有雲。 這方面的示例包括 Terremark 的客戶以及使用 Amazon Virtual Private Cloud (Amazon VPC) 的組織。 混合消費者的示例包括 Pfizer 等製藥公司,該公司使用私有雲來存儲其研究和開發資料,(通過 SSL/TLS)將資料安全地發送給公共雲,供使用者計算使用,然後將資料發送回私有雲。 實際上,混合模型利用了公共和私有領域的優勢。 社區雲在很大程度上利用了資源池,這方面的一個示例是:某個學區內的許多學校共用伺服器資源來處理資訊。

基於所選的雲服務和部署模型,雲消費者可以使用不同的通訊端類型。 一般而言,基於 Internet 和流的通訊端受到所有著名供應商(Amazon Web Services、Rackspace、Windows Azure™ 和 Google App Engine)以及 PaaS 和 IaaS 產品的支援。 SaaS 解決方案的消費者無需為直接使用通訊端感到擔心,但他們可能需要讓協力廠商通過通訊端與基於 SaaS 的供應商進行交互。 不過,供應商沒有為原始通訊端提供有組織的支援,但在理論上,通過使用和配置 IaaS 環境,組織可以接受和處理原始通訊端。 最後,一些企業找到了一種將大型機環境轉移到虛擬化或私有雲平臺的業務案例;因此,虛擬化和私有雲技術供應商(比如 OpenStack、Xen、Microsoft 和 VMware)沒有明確提及它們對基於域的通訊端的支援。 但是,隨著私有雲技術得到更廣泛的應用,這種情形可能發生改變。

結束語

通訊端已存在很長一段時間,而且仍然健在。 移動和雲技術的引入意味著通訊端已經改變形態並得到擴展,以應對這些新興市場。 隨著更多的企業和技術開始關注移動和雲解決方案,通訊端開發人員也會關注它們。 但是,不是所有通訊端都是相同的,在決定一個應用程式應使用哪些通訊端和應該選擇哪個供應商來處理事務之前,企業應仔細考慮這些通訊端的優勢和不足。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.