第12章 SaaS關鍵技術
大綱 12.1 雲的技術 12.2 端的技術雲的技術
概述 SaaS是眾多技術的集合 平台 服務層級 使用者介面
概述 平台 服務層級 使用者介面 雲的技術 端的技術 傳統或雲端平台提供執行環境 服務間的通訊或整合 提供SaaS特性 提供有趣且為互動式的介面 降低使用的困難度 平台即服務(PaaS) 或 基礎設施即服務( IaaS) 雲的技術 端的技術
服務層級 服務層級提供諸多服務概念 如何降低開發時間及成本? 如何結合或整合服務和公司? 如何處理存取控管?
情境 一個公司想要設計並發展新的網路服務… 有眾多的子計畫可以彼此合作 一個子計畫只包含一個或少數的成員 只有幾個月的開發時間
服務導向架構 可應用服務導向架構的概念,得以節省成本、人力資源以及開發時間 可重用性 開放的標準介面 服務抽象化 鬆耦合 無狀態
概念 重複使用每個服務 開放的標準介面 所有的服務模組,理論上皆可以重複利用並避免重複開發 設計一個新的專案時,開發單位只需要設計新的服務模組 開放的標準介面 藉由使用相同的介面標準,讓服務易於跨平台,進行整合與溝通 如REST, SOAP, RPC等
概念 服務抽象化 鬆耦合 無狀態 使用者只須知道如何使用 藉由隱藏冗餘的資訊,使用者可用最少的必要資訊來得到所需要的服務 服務模組間只需知道少部分或無需知道其他模組的實作方式 容易更新或改版,不需修改其他的模組 無狀態 不需要額外的資源來記錄每次服務的使用狀態 藉由每次請求中的參數來操作服務,讓服務更具有彈性
取捨 然而,過度使用這些概念將會限制服務的使用 高度抽象化會導致無法直覺地使用服務模組 鬆耦合會導致在溝通時需要額外的資訊 無狀態使得傳送時,需要帶入額外的資料,而這將會降低效能
情境 服務模組可能不會在同一台機器 在相同的機櫃裡 在相同的叢集電腦 服務之間的通訊很重要 描述服務 遞送服務 宣傳服務
網路服務 網路服務是回應使用者請求的服務,藉由… 網路服務的核心概念 使用網際網路技術 橫跨不同的平台 和其他的服務互動、整合與溝通 重複使用服務 可彈性的與其他服務整合
≠網路服務 基於網頁的服務 基於網頁的服務(Web-based Service)是透過網頁介面提供的服務 基於網頁的服務的好處 可能會和其他網頁互動 可能會提供自己的服務 基於網頁的服務的好處 跨平台 ─ 可以藉由瀏覽器存取服務 無論何時何地,在可以連結到網際網路的地方皆可使用 ≠網路服務
為何我們需要網路服務 時間 提供服務愈快,愈容易賺到錢 成本 重複使用服務可以減少研發費用 可伸縮性 整合服務可提供更全面的服務
三種基本元素 網路服務可以分成三個基本的部分 網路服務描述語言(WSDL) 簡單物件存取協定(SOAP) 統一目錄服務(UDDI) 描述網路服務,包含服務名稱、功能、公司名稱、使用方法…等等 簡單物件存取協定(SOAP) 用於交換兩平台的訊息之方法 統一目錄服務(UDDI) 一個註冊中心,可用於收集、整合、發現網路服務
WSDL – Web Services Description Language 網路服務描述語言是用來敘述服務的XML格式文件,包含… 服務資訊 抽象操作 溝通型態 其他可以改善服務交換效率的資訊 本機端可以藉由分析WSDL檔案得知網路服務
特性 WSDL在交換網路服務資訊時,有四種特色 服務抽象化 跨平台 自動化產生 遠端調用
特性 服務抽象化 跨平台 使用者在呼叫或使用服務時,不用了解服務背後是如何實作以及背後的運作邏輯 供應商在替服務做更新或改版時,只需要抽換背後的實作方式,對使用者而言服務本身並沒有改變 跨平台 使用XML格式所產生的WSDL具有著跨平台的特性 XML和平台、作業系統、程式語言沒有相依性
特性 自動化產生 遠端調用 有很多工具可以產生、編排與解碼XML的文件 產生WSDL檔案時,可以降低成本與人力資源 藉由連結網際網路,得到正確的操作模式,使用者可在任意時間、地點,存取、調用服務
四種基本元素 WSDL文件用四種基本元素來描述網路服務 型態(Type) 訊息(Message) 綁定(Binding) 網路服務中資料的型態 訊息(Message) 用來傳遞訊息的參數 綁定(Binding) 網絡上使用的通訊協定 埠口類型(PortType) 請求/回應型態的通訊
埠口類型 單向操作(One-Way) 請求回應(Request-Response) 徵求回應(Solicit-Response) 服務只接受訊息 操作有單一輸入元素 請求回應(Request-Response) 服務接收一個請求並傳送回應 徵求回應(Solicit-Response) 服務傳送一訊息並接收一回應 通知(Notification) 服務只傳送訊息
SOAP – Simple Object Access Protocol 簡單物件存取協定是基於XML的溝通協定 藉由HTTP或者其他網路協定 交換網路服務的資訊 連結其他的網路服務
核心概念 SOAP的核心概念是簡單且可擴充的 SOAP可以是輕量型的協定,且有更多的彈性 可靠性、安全性、關連性與路由等 相反地,將這些功能放置於可擴充模組 SOAP可以是輕量型的協定,且有更多的彈性
三個基本模組 訊息框架可以分成三個模組 處理模組 底層協議綁定 訊息建構 甚至於,SOAP有擴充模組,可以增加能力,用在豐富的訊息傳遞環境
處理模組 處理模組 此模組定義訊息的處理方式 訊息從最初的發送者發送,經由數位中間人到達最終接收者 支援了多種的訊息交換模式 每一個訊息被獨立處理 這表示SOAP並不記錄訊息的狀態
底層模組 此模組用於描述SOAP所用的網路協定 SOAP和底層協議的界線稱為綁定,有兩個目的 可以和其他協定並存或在其之上 處理送往其他節點所需使用的協議及相關機制 收到從底層協議來的訊息訊息時所需要回應的處理機制
訊息建構 定義在SOAP 中交換訊息所使用的資料結構 以XML文件格式來描述 SOAP訊息包含 指令 元素 屬性 命名空間
UDDI – Universal Description Discovery and Integration 統一目錄服務是一種跨平台服務 基於XML 一個註冊伺服器 可用來找到需要的服務 可以發布服務 可以和別的公司交換自己的服務
為何需要UDDI 在真實世界 在網際網路世界 我們無法到達所有地方 我們無法直接找到服務 我們無法將服務銷售給世界上的每一個人 網路連結每一個在網際網路的人 網際網路沒有地域限制
三種頁面 白頁(White Pages) 黃頁(Yellow Pages) 綠頁(Green Page) 白頁提供服務供應商的名稱以及相關的服務描述,原則上可以支援多種語言 黃頁(Yellow Pages) 利用標準的分類方式,將網路服務進行分類 綠頁(Green Page) 描述如何取得網路服務,包含URL位址、使用介面、協定
例子:UDDI 一間公司想在網路上提供服務給網路上所有的使用者 …但是他需要一些幫忙 找一個註冊中心 設計並上傳他們的WSDL檔案及SOAP協定 等待,直到用戶連結、使用他們的服務 …但是他需要一些幫忙 從UDDI註冊中心搜尋服務 利用一些關鍵字找服務 藉由WSDL檔案及SOAP協定連結到特定的網路服務
例子:網路服務 註冊伺服器 WSDL WSDL 註冊他的服務 尋找廠商 我需要花 交易 銷售他的服務:花
當數量增大時… 網路服務提供一種新的使用服務及與其他公司合作的方式,但是… 當使用者的數量成長到一定的程度,就會讓服務的狀況產生質變 當服務的數量成長到一定的程度,公司就需要再開發新的服務
解決方法 在SaaS,雲端提供無限制的環境,盡可能的服務更多使用者 但是服務可能會再被開發多次 公司應該要專注於有價值的服務,而非重複開發 有許多服務在網際網路 開發新的服務成本高且風險大 公司應該要專注於有價值的服務,而非重複開發
建議 對於這個問題有眾多建議 重複使用服務 比SOAP更容易連結服務 減少使用服務的複雜度 一個量化的服務標準
網路協議與規範 OpenID及單一登入 服務層級協議 表象化狀態轉換
情境一 有許多服務在網際網路上 這些將產生兩種問題 Email、部落格、 社群網路、 網頁遊戲…等等 眾多服務需要使用者認證 太多對帳號/密碼需要記憶 在一個不安全的網站註冊相同的帳號密碼是不安全的
OpenID OpenID是一種新型態的身分認證系統 一種開放的標準,使用者可以透過分散的方式來被認證 使用者可以只藉由同一組帳號密碼來認證許多網頁服務 帳號管理是由信任的廠商負責的
簡單架構 使用者 想向某網站表明身分的真實用戶 消費者 想對終端用戶進行身分認證的網路服務供應商 身分提供者 認證伺服器
單一登入 單一登入(Single Sign-On, SSO)是另一種認證方式 SSO可以提升安全層級 應用於想要存取同一個服務供應商或是網域底下的多個服務 SSO可以提升安全層級 降低被網路釣魚的機會 避免重複輸入帳號和密碼 可以一次登入/登出系統,避免使用者離開電腦時所造成的安全漏洞
情境二 一個跨國公司想要租用一個網路服務 服務被中斷或不能符合需求時 如何選擇供應商? 服務供應商可以提供什麼層級的服務? 如何評估服務品質? 服務被中斷或不能符合需求時 如何要求賠償或損失?
服務層級協議 服務層級協議(Service Level Agreement, SLA)是供應商與使用者間,劃分服務層級、定義條約內容的合約 服務可靠度 效能保證 平均的停機時間 消費者可以透過SLA選擇服務供應商
合約項目 合約項目 退費或賠償 服務品質 管理與維護 平均故障間隔時間,平均回覆時間與故障率 低於服務品質的保證 計算能力、儲存大小、CPU速度 管理與維護 平均故障間隔時間,平均回覆時間與故障率 退費或賠償 低於服務品質的保證 退10%的費用 提供額外數量的免費使用時數 全額退費
情境三 我想要爸爸給的糖果 想 我爸爸 糖果 可能是吃、玩或是拿著 棒棒糖、巧克力…等等 某個人給的東西
HTTP與REST 超文本傳輸協定(HyperText Transfer Protocol, HTTP)是廣泛用於網際網路的協定 全球資訊網(WWW)的資料通訊基礎 一個應用層級的協定 HTTP可以建構在任何通訊層(不只有TCP) ,像是簡單服務發現協定(Simple Service Discovery Protocol, SSDP) 表象化狀態轉換(REST, Representational State Transfer)是網路服務的三種實作方式之一 與SOAP及XML-RPC相比,REST更簡明
三個元素 REST有三個基本的溝通元素 動詞(Verbs)– 你想要的東西 名詞(Nouns) – 提供服務的目標 存取圖像、帶入使用者名稱及密碼…等等 名詞(Nouns) – 提供服務的目標 www.google.com/? 或 www.youtube.com/watch? …等等 內容(Content) – 資訊或是服務需要的東西或回應 圖像、影像、需要的東西
益處 無狀態 用戶端 REST的服務端沒有狀態紀錄 使用者發出包含狀態的請求,可以幫助服務端平行處理請求 REST較容易暫存常用的資料 當服務端更新或修補時,並不會通知使用者,服務仍然可以正常運作 用戶端 瀏覽器就是用戶 降低軟體的需求
端的技術──使用者經驗 使用者經驗(User experience, UX)是使用者在使用一個產品或服務的當下,所得到的感受或體驗 強調經驗的、情感的、有意義的、有價值的觀點 包含個人感知,如使用方面,是否簡單使用、系統是否有效率 考慮以下情形 打開網頁或是點擊按鈕 觀看YouTube上的MV
存取模式 另一方面,如何供應服務,對於使用者經驗也是很重要的 命令列 純文字或靜態圖像頁 影音互動介面
裝置 甚至於,裝置也影響使用者經驗 若使用Zuse Z3,第一個可編程式的電腦? 若使用IBM PC 5150? 或使用iPad?
網路技術──網頁 瀏覽器是最重要的網際網路服務傳媒 網頁提供許多東西給使用者,像是文字、圖像或影片 使用瀏覽器閱讀或觀看新聞、八卦、影片或是你有興趣的東西 和朋友通訊或是在網路上交新的朋友 網頁提供許多東西給使用者,像是文字、圖像或影片 如何提供使用者喜歡的東西? 如何吸引使用者的注意力?
存取模式 使用者介面深深影響使用者的感受 未來… 終端機是原始的介面,使用者害怕使用它 圖形使用者介面(Graph user interface, GUI)對於使用者來而言較好使用,但是它很難跨平台 基於網頁的介面(Web-based interface, WUI)是GUI底下的一類,且大部分的電腦都有瀏覽器 觸控式螢幕是最新的顯示技術,使用者不需要鍵盤和滑鼠便可以控制顯示器 未來… 語音輸入、肢體感測、腦波傳遞?
基於網頁的介面 基於網頁的介面近幾年最受歡迎 Web 1.0給使用者新的感受,並且改變了使用者使用電腦的行為
基於網頁的介面 Web 2.0整合眾多新技術 互動式的訊息協定,如XMLHttp,用於使用者和網頁之間的溝通,無需重新載入整個網頁 JavaScript提供豐富生動的介面,改善使用者經驗 可基於服務導向架構,讓網路應用程式展現自己的功能,使得其他的服務可與其協調整合
互動性 在Web 2.0,網頁或網路應用程式提供更有趣的界面及功能給使用者 成功的要素 網路遊戲 社群網路 …等等 可以和世界上的其他使用者互動
Ajax Ajax (Asynchronous JavaScript and XML)是達到與人互動的技術 CSS (Cascading Style Sheets, CSS) 文件物件模型(Document Object Model, DOM) XMLHTTPRequest
Ajax 基本上,web 2.0是建立於web 1.0之上 JavaScript廣泛使用於客戶端 …並且包含CSS 基本的HTTP協定,如超連結、圖片或文字 JavaScript廣泛使用於客戶端 提供豐富且互動的介面 …並且包含CSS 將網頁建立與排版區分開 增加原始檔案的可讀性 可被客製化
文件物件模型 文件物件模型是處理XML檔案的標準模組 可將XML儲存於記憶體,便於立即做刪除、修改及重新排序 如同暫存的功用,伺服器可以藉此改善效能 然而,全部的資料包含無用的節點與資料,也將會被存進記憶體,造成時間和空間的浪費
XMLHTTPRequest 早期的網頁需要使用者主動更新頁面才能得到新的訊息 浪費時間 降低伺服器的效能 XMLHTTPRequest是 JavaScript、VBScript或其他用於瀏覽器上的函式庫 傳送或接收網頁伺服器與瀏覽器之間的XML檔案及訊息 使得網頁的動態改變或更新,不需任何的擴充或重新刷新整個網頁
應用程式 傳統的應用程式,需要… 下載到本地端的電腦 安裝或解壓縮 考慮系統的相容性 考慮儲存空間及記憶體大小 在不使用時,解除安裝 下載 效能
網路應用程式 網路應用程式 與傳統的應用程式相比,網路應用程式是 連結到網頁 試用 關閉瀏覽器 更簡單且更方便 降低儲存空間的成本 不需要更新 可跨平台
缺點 瀏覽器 應用程式 如果瀏覽器不能支援該功能,應用程式將不能正常運作 一般而言,網路應用程式不能離線運作 大部分的網路應用程式不是開放源碼 不容易被客製化 完全依賴供應商,當供應商關閉應用程式,便停止服務 業者可以收集任何資料或使用者的行為
WebOS WebOS 是一堆網路應用程式的集合,如同桌面作業系統的方式運行在網際網路上 像網路應用程式,但是功能更加強大 提供許多應用程式 如記事本、音樂播放器…等等 不需實體儲存空間 相反地,全部的資料與應用程式都存在伺服器端
eyeOS eyeOS是一個開源的、基於瀏覽器的網頁版桌面系統 以LAMP為基礎 如同一般作業系統的運作,簡單使用 降低成本,只需… 就像網路應用程式 降低成本,只需… 一個可存取網路的裝置 一個瀏覽器
客戶端裝置 客戶端裝置也會影響使用者經驗 準確來說,我們需要何種裝置? 客戶端裝置昂貴或便宜? 客戶端裝置重或輕? 客戶端裝置是實用的或多餘的? 準確來說,我們需要何種裝置?
精簡客戶端 如果使用者在乎裝置的價錢或是使用時間 維持核心功能及必需的介面 移除硬碟、複雜的作業系統…等等 減少硬體及設計成本 減少能源使用 減少管理及維護的負擔 移除硬碟、複雜的作業系統…等等 只保留顯示器、I/O介面、通訊界面和快閃記憶體
益處 管理 成本 移除機械的移動裝置,如硬碟或CD-ROM,可以降低損壞的比例 很多的資料將不會儲存在客戶端 沒有硬碟、CD-ROM和高效能的CPU,將降低總成本 移除額外的硬體,將減低了能源消耗
相對於複雜客戶端 複雜的客戶端是全方位的電腦 適合使用在以下兩種情境 與精簡客戶端相比,複雜的客戶端可以提供更全面的功能 與精簡客戶端相比,複雜的客戶端更加厚重且複雜,需要繁雜的操作方式 適合使用在以下兩種情境 需要計算複雜的工作 需要在任何地方工作
移動裝置 專注於裝置的大小及使用的難易度 不同於桌上型電腦,使用者使用移動裝置來提高效率進行… Wifi已被廣泛地使用於校園及商業區 在擁擠的公車上使用者可能想上網找最近的餐廳 不同於桌上型電腦,使用者使用移動裝置來提高效率進行… 收發電子郵件 尋找路線圖
可移動且簡單 不同於筆記型電腦,使用者需要使用簡單且易於攜帶的手持裝置 有兩種受歡迎的移動裝置 小到可以手持且可放進口袋 夠輕,不會造成負擔 夠簡單,容易使用、控制 有兩種受歡迎的移動裝置 掌上型電腦(PDA) 智慧型手機(Smart phone)
掌上型電腦 掌上型電腦(Personal Digital Assistant, PDA)如同個人資訊的管理者 PDA也可以用於 有觸控式螢幕可輸入資料 有記憶卡可以儲存資料 有Wifi和藍芽可上網或交換資料 PDA也可以用於 瀏覽網頁 展現多媒體 玩遊戲 全球衛星定位導航
智慧型手機 智慧型手機是包含作業系統的電話 智慧型手機是當下最受歡迎的移動裝置 可以安裝第三方的應用程式 系統無需等待改版,便可以被客製化 與PDA相比,智慧型手機包含電話與電腦的功能 甚至於,智慧型手機可以下載豐富的第三方的應用程式 如遊戲、天氣或交通資料、新聞等
總結 SaaS既不是單一個技術,也非一個新名詞 更重要的是 一群新舊技術的結合 伺服器和平台可以使用雲端技術或傳統技術 伺服器、平台、通訊、介面、客戶端裝置 伺服器和平台可以使用雲端技術或傳統技術 通訊方法必須考慮跨平台及多使用者的環境 介面需要簡單且容易使用 使用者裝置和介面會影響使用者經驗 更重要的是 以服務的形式提供軟體與應用的存取和操作方式