-
常樂 發達集團營運長
-
來源:品味生活
發佈於 2012-06-27 09:02
雲端
本帖最後由 常樂 於 12-06-27 19:33 編輯
雲端運算服務最主要特點是「隨需即用,用多少算多少」,使用者端透過網路能夠隨時隨地依需要存取雲端資源,雲端則能夠依使用狀況迅速地調配所需的資源,使用者再依使用量支付費用。
793080
從大型主機到雲端運算
究竟什麼是近來熱烈討論的雲端運算(cloud computing)呢?我們不妨從人類社會取水方式的發展歷程來了解。電腦從早期大型主機時代到現今雲端運算時代的演進,有如人類使用水資源方式的演進。
人類的生活離不開水,聚落總是靠近水源處。早期要汲水,必須把扁擔挑上肩,兩頭各掛一個水桶到水源地取水。因此,住在離水源地較遠的人家生活較辛苦。比方說,某戶人家住在高山上,而最近的水源在山溝裡,這戶人家每天就得派人到山澗旁打水,往返一趟得花好多時間。
在三、四十年前電腦設備尚不普及的年代,只有少數的大型機構(政府機關、銀行、大企業和研究型大學)才有能力購置電腦,進行資料的整理、運算與儲存,當時電腦是所謂的大型主機。
以學校的場景為例,整所大學可能只有一台大型主機設置在計算機中心,所有的使用者必須在終端機室才可以透過終端機使用電腦主機,並由主機負責所有運算,終端機只是傳遞使用者的操作命令,以及顯示主機的運算結果。這時期人們要使用電腦資源,就必須走到計算機中心的終端機室,就好比挑起扁擔到水源處打水一樣地不便。
後來時代進步了,人們懂得開鑿水井或製造汲水幫浦。每座村莊中,三、五家就可以共同集資鑿井,或小康人家在自家門口就設置私有汲水幫浦,如此一來就不必辛苦地到水源地打水了。然而,無論是鑿井引水或裝置汲水幫浦所取得的地下水,都需要自行消毒和過濾才能成為乾淨的飲用水。再者,掘井或裝設汲水幫浦所需的建置成本所費不貲,哪一天井塌了或幫浦壞了,都得自己花錢維修。
在1980年代以後,隨著積體電路技術的進步,電腦體積逐漸變小且效能提升,價格反而變便宜了。經濟實用的伺服器或工作站逐漸普及,各系所及各研究室都買得起這些設備從事研究、資料處理或儲存。這個時期這些系所單位使用電腦資源,就好比是自行鑿井引水或裝置汲水幫浦取水一樣,根據需求購置伺服器並自行管理。
不過,自行購置及管理伺服器並不是件容易的事。首先,必須根據用途規劃所需的伺服器硬體等級和購買數量,還要安排放置伺服器的空間,以及進行電力變更、空調設置、網路配線,以及伺服器採購後的系統建置、維護、管理等工作,例如軟/硬體升級、防毒/防駭,也需專人負責或付錢給廠商處理,這些都是有形或無形的負擔。
自行購入並管理伺服器的另一個問題是,很難彈性地調整電腦資源的規模。舉例來說,某大學的A實驗室購買了一台伺服器,讓這實驗室的研究生運行數值分析等模擬程式。平時研究生使用電腦的頻次不高,使用時間錯開,這一台伺服器游刃有餘地運行他們的程式。但是到了五、六月學生即將畢業的時期,實驗室裡的所有研究生都急著執行程式,以取得畢業論文所需的數據,當平時分散的工作量於短期間內集中在一起時,這一台伺服器要處理數量突然爆增的工作就顯得有點吃力。
解決這個問題的最簡單方法便是添購伺服器,然而所添購的伺服器平時的使用率並不高,導致資源浪費。而稍後提及的雲端運算,將有機會聰明地解決這些問題。
隨著時代進步,工程技術也不斷發展,到了近代開始有自來水公共基礎建設,大部分的人不再需要為了取水而煩惱。政府建設水庫並對貯水做多層次的消毒和過濾,透過輸水管線的配置,最後把水庫的貯水送到各戶人家。如今人們只要打開水龍頭,自來水便嘩啦嘩啦地流出。即使旱季時某些地區缺水,各個水庫之間也可以透過輸水管線互相調度,避免缺水地區完全停水。
此外,水庫、淨水設備、管線等的維護也都有專人負責。換句話說,普通人家不必再為了取水而事先投資設備,也無需考慮這些設備的養護問題,只需要根據用水量負擔相應的費用即可,用多少算多少。
那麼有沒有一種方式,可以讓人們使用電腦資源就如同使用自來水一樣「隨需即用,用多少算多少」,而不需要面對機房建構、軟/硬體採購,以及後續系統維護與財產管理的問題。本文的主角雲端運算的使用者只要利用手邊電腦打開瀏覽器,就可以透過網路存取遠端電腦的資源,網路就是雲端計算的自來水管,用戶端執行的瀏覽器就是裝水容器,使用電腦資源與使用自來水一樣方便。
雲端運算可根據資源提供的服務形式分為3大類,分別是:基礎建設即服務(Infrastructure as a Service, IaaS)、平台即服務(Platform as a Service, PaaS)、軟體即服務(Software as a Service, SaaS)。
基礎建設即服務
日常生活中所謂的基礎建設,指的是自來水、電力系統、電話網路、交通系統(如火車或高鐵系統)等設施,它們的共同特色之一是「依據使用者實際需求供應並計價」。把這樣的概念套到電腦資源的使用上,基礎建設即服務(IaaS)就是「把電腦的計算能力和資料儲存空間,依據使用者的實際需求供應並計價」。
也就是說,使用者不再需要自己購買伺服器來執行程式及儲存資料,也不必自行管理這些伺服器,而是根據需求透過網路向IaaS供應商購買所需的CPU計算能力和儲存空間。而其計價的方式可以是,使用某種等級的CPU進行1小時運算要價多少,租用10 GB的網路儲存空間1年要價多少等。更複雜的計價方式還可以涉及網路流量、服務供應的品質等。
目前最有名的IaaS供應商莫過於Amazon.com,這家公司是美國最大的網路電子商務公司。一開始Amazon.com只經營網路書店的業務,後來擴展到其他產品,包括3C、文具,甚至衣服、家具等,其雲端運算的解決方案是Amazon EC2及Amazon S3兩種商品(在台灣,中華電信也推出了類似的商品,稱為hiCloud)。
由於Amazon.com的業務規模相當大,因此本身便擁有許多擺放計算及儲存設備的大型資料中心。由於目前的電腦硬體都已相當強悍,一台伺服器可能配備了多顆CPU,每顆CPU又有數個計算核心,因此透過專門的軟體,Amazon EC2把每一台計算伺服器切割為數台的虛擬伺服器,並提供一個瀏覽器介面,讓使用者可以彈性地租用這些虛擬伺服器的CPU計算能力。
Amazon EC2服務的租用者可以隨時建立、執行、終止自己的虛擬伺服器,並且可以在虛擬伺服器上執行任何自己想要的軟體或應用程式,最重要的是這樣的服務是依據實際的使用量付費。Amazon S3則可以讓使用者彈性地租用資料儲存空間。
有了Amazon EC2和S3這樣的服務,前文所提及的A實驗室將不需要再自行購買和維護實體伺服器。A實驗室可以先租用一台虛擬伺服器滿足研究生平時運行程式的需求,並在學生即將畢業的期間臨時租用更多的虛擬伺服器,以應付所增加的計算需求。更重要的是,A實驗室再也不用煩惱硬體升級、維護等問題。
平台即服務
從IaaS供應商租用了數台虛擬伺服器後,使用者可以在這些虛擬伺服器上安裝任何作業系統,並在這些虛擬伺服器之間建立網路連線。然而,並非所有的使用者都希望親自進行這些系統設定的瑣碎工作。
讀者可以考慮以下情況。張先生是一名專業的網頁設計師,他打算設計一套網路遊戲。然而,張先生並不確定初期會有多少人玩這套遊戲,因此他打算租用雲端上的計算和儲存資源。如此一來,在初期,張先生只需要租用少量的雲端資源,並且隨著玩家人數增加,他隨時都可以動態地租用更多的雲端資源來滿足所有的玩家。
但是,張先生真正擅長的工作是把遊戲構想寫成程式碼,對於一台虛擬伺服器能夠應付多少玩家所帶來的工作量並沒有概念。因此他希望雲端供應商可以在玩家數量增加時,自動分攤各個虛擬伺服器的負載。
在這種情況下,張先生關心的不再是需要跟IaaS供應商購買多少虛擬伺服器,也不是要在這些虛擬伺服器上安裝哪種作業系統,張先生真正需要的其實是一個平台來運行他設計的網路遊戲。平台是一種機制或一種操作方式,當然他也希望這個平台可以彈性地伸縮其規模,無論要處理的玩家數量多寡,這個平台都必須能讓他的網路遊戲平順地服務所有玩家。類似這樣的需求,其解決方案就是雲端運算的另一類服務—平台即服務(PaaS)。
平台即服務的租用者只需要把軟體甚至是程式碼上傳到供應商所提供的平台,供應商自然會負責程式的執行。目前較有名的PaaS解決方案,是Google的Google App Engine (GAE)。GAE是Google的應用程式開發與代管平台,可讓使用者建置高流量的網路應用程式,但不必管理高流量的基礎架構(節錄自Google官方對GAE的簡介)。換句話說,使用者租用PaaS解決方案,便可以專心於其應用程式功能面的開發,而不需要擔心如何應付流量管理等問題,並且開發完成的程式也可以直接在租用的平台上運行。
當然,PaaS所提供的功能不僅如此。以GAE為例,它提供了很多的程式開發工具給使用者,這些程式開發工具使用的技術跟Google網站本身的技術相同,不僅快速且穩定。透過使用GAE提供的程式開發工具,可縮短在PaaS環境中編寫新程式的時間。
軟體即服務
前面提到的雲端IaaS與PaaS,其使用者多半來自企業或研究單位,非一般大眾。對於個人使用者來說,他們感興趣的是應用軟體所提供的服務,而非執行應用軟體的平台或支撐平台的底層基礎建設。因此,接著介紹雲端運算的第三類服務—軟體即服務(SaaS)。
過去,我們在自己的個人電腦裡安裝各種應用軟體,比方安裝Outlook Express收送email、安裝MS Office處理文書工作。現在,SaaS藉由網際網路提供雲端軟體,我們可以透過各種雲端軟體取代部分的傳統單機軟體,比方改用Google Gmail代替Outlook Express、改用Google Docs代替MS Office。事實上,許多人雖然沒聽過SaaS這個新名詞,卻早已使用過Google Gmail、Docs等雲端應用了。
簡單地說,SaaS供應商把應用軟體部署在自己的伺服器上,使用者只需要連上網路便可以使用這些雲端軟體。以Google Docs為例,使用者只知道自己透過跟單機文書處理軟體類似的瀏覽器介面在打報表文件,但是並不清楚這個瀏覽器介面的文書軟體在何處執行。因此,採用雲端軟體的使用者並不需要實際下載、購買、安裝程式,也不需要定期更新,SaaS供應商會負責所有軟體管理和維護的工作。
雖然上述Gmail、Google Docs的服務免費,但和IaaS或PaaS層級的雲端服務一樣,SaaS的軟體使用服務(例如客戶關係管理等商務軟體)也可以按照使用者的實際需求決定購買何種服務,並根據使用服務的時間長短來付費。這種按需求量計費的方式,對買賣雙方都帶來好處。對軟體供應商來說,SaaS在某種程度上可以遏止盜版的問題,因為使用者並不會直接拿到軟體。對個人或中小企業來說,透過租用的方式,可以用較低的成本使用新軟體的全部功能,並在確定該軟體符合自己需求時考慮長期租用。
雲端運算或許談不上是一個新觀念,然而足以支撐雲端運算的許多底層技術,確實是到了目前才慢慢成熟。本文把雲端運算分為IaaS、PaaS和SaaS三個環節分別探討其主要精神。與其說雲端運算是一種新興的技術,不如說它是電腦使用方式的一種自然演進,或者說是一種新的商業模式。
無論是IaaS、PaaS或是SaaS,雲端運算服務最主要特點是「隨需即用,用多少算多少」,使用者端透過網路能夠隨時隨地依需要存取雲端資源,雲端則能夠依使用狀況迅速地調配所需的資源,使用者再依使用量支付費用。當讀者日後碰到任何宣稱是雲端服務的產品時,不妨套用這個原則加以檢視。
793088
自2006年3月亞馬遜(Amazon.com)首開巿場先例,推出雲端服務,2007年谷歌(Google)正式提出「雲端運算」(cloud computing)一詞後,愈來愈多的企業希望乘風扶搖而上,直入雲端。雲端運算即將「引爆商業革命,改寫遊戲規則」。
雲端運算是一種新興的商業計算模型,由於具低成本、高效率、高擴展性等優質特性,吸引了眾多公司競相投入。例如Google搜尋服務、Gmail、YouTube、Google Docs、Google Talk、iGoogle、Google Calendar等都使用雲端演算的技術,微軟、雅虎、亞馬遜也採用這技術提升網路服務功能,Google、微軟、蘋果(Apple)正在上演一場激烈爭搶雲端運算商機的戰爭。
不僅企業在追逐雲端運算,政府也緊跟其後。2009年9月,美國白宮資訊長坎卓(Vivek Kundra)宣布,運用雲端科技開發出來的新政府網站Apps.Gov,將取代舊有的資訊系統。
概念
雲端運算是基於網際網路的運算方式,透過網際網路為個人使用者或企業使用者提供按需求取用的服務。具體來說,雲端演算法透過網際網路,把龐大的運算處理程式拆分為大量的副程式,交由大量伺服器所組成的龐大系統去處理,經過搜尋和運算分析後,再把處理結果傳回使用者端。透過雲端,網路服務供應者可以在數秒內處理數以萬計的資訊,提供等同於「超級電腦」效能的網路服務。
雲端運算的基礎是網際網路,網際網路在示意圖上常以雲狀圖案表示,「雲端」一詞即由此而生。雲端在《漢英詞典》中的解釋是「在雲中、在雲上」,這是對使用網際網路來進行運算、處理問題的一種直觀、清晰的表述。直觀來講,雲端演算法就是讓網路上不同的電腦同時幫使用者做一件事情,這大幅度地提高了處理的速度和效率。雲端運算的最終目標是,使用者只需一個連接雲端的設備(如手機)和簡單的介面(如瀏覽器),就可從雲端快速獲得自己想要的資源。
相較於其他運算,雲端運算是基於虛擬化技術快速部署資源和獲得服務的,它具有按需求提供資源、按使用量付費、成本低、通用性高、擴充性佳、使用方便、服務配置速度快等特點。
雲可以分為3種:公共雲、私有雲、混合雲。公用雲是具有公用服務(如水、電、燃氣等服務)本質的雲端技術。私有雲是為一個客戶單獨使用而構建的,是企業內部自用的雲端計算技術,可以有效地控制資料的安全和服務品質。私有雲可部署在企業資料中心的防火牆內,也可以部署在一個安全的主機託管場所。混合雲是公用雲和私有雲混合組成的雲端計算技術。建議企業可以利用公共雲儲存敏感性不高的資料並做運算,至於敏感性高的資料,則可以在內部建立私有雲來提升資料的安全性。
服務層次
雲端運算包括以下幾個層次的服務:硬體即服務、軟體即服務、資料即服務、設施即服務。雲端運算服務通常提供能夠透過瀏覽器存取的線上商業應用,使用者需要雲端運算的計算平臺或資訊技術(IT)基礎設施,並在這些平臺與設施中運行應用。因此,計算雲給予使用者進入硬體、軟體及資料資源的服務之後,一個集合而成的計算平臺便以一種透明化的方式進行服務。
硬體即服務—「硬體即服務」這一術語可能是在2006年產生的。由於硬體虛擬化及IT自動化的迅速發展,使用者能夠購買IT硬體或整個資料中心,做為現收現付的訂購服務。硬體即服務是以靈活的、可升級的,並且可管理的硬體設備來滿足客戶的需求。
數據即服務—通過網際網路提供軟體或應用服務給顧客。這種模式降低了使用者的電腦在安裝軟體或運行應用的需求,因此,軟體即服務減輕了使用者在軟體維護上的負擔,並降低了購買軟體的費用。
資料即服務—網上使用者可以透過服務,從多種資源中獲取多種形式的資料。例如使用雲端控制遙遠的資料,就像在本地存取硬碟資料。
設施即服務—以前述3種服務的支援為基礎,雲端運算能夠給使用者提供設施即服務。用戶可以按照需求訂購他們喜歡的硬體設定、軟體安裝和資料需求。
資料採礦和商業智慧
隨著電腦技術的發展,資料的存儲量成倍增長,而海量資料分析方法的發展卻難以望其項背,資料採礦(data mining)技術就是在這樣的「資料海洋、知識荒漠」的情況下應運而生。資料採礦是從海量的資料中發現潛在規律,提取有用知識的方法和技術。它不僅能分析現有的問題,也能預測未來的趨勢,且分析的結果易於理解與應用,因此一出現就得到各個領域的重視。隨著資料採礦逐漸成熟,以資料採礦為核心的商業智慧(business intelligence,簡稱BI)已經成為資訊和其他行業的必爭之地。
當前資料採礦主要集中在生物、電信、零售、銀行、醫藥等產業方面,並在許多領域有了成功的應用實例。例如當您在網路書店中點選其中一本書後,就會出現相關的推薦書目,這背後就是資料採礦在發揮它的分析功能。
資料採礦
資料採礦是由電腦技術、人工智慧技術、統計技術等構成的一門新學科。它採用數學、統計、人工智慧、神經網路等領域的科學方法,運用如聚類分析、關聯分析、決策樹等技術,從大量資料中挖掘出隱含的、先前未知的、對決策有潛在價值的關係、模式和趨勢,並用這些知識和規則建立用於決策支援的模型,提供預測性決策支援的方法、工具和過程。
資料採礦源自於統計分析,而又不同於統計分析。資料採礦是統計分析方法的擴展和延伸,資料採礦的前期資料探索、分析及後期的結果描述都離不開統計分析方法,並且部分資料採礦演算法是建立在統計學的理論基礎上(如支持向量機演算法),統計學方法對於提高資料採礦的可信性和準確性具有重要的作用。
根據「跨行業資料採礦標準過程」,資料採礦的過程可以分成以下6個步驟(但順序並非完全不變):
商業理解—從商業的角度了解專案的要求和最終目的,並把這些目的轉化成運用資料採礦方面的計畫及目標。
資料理解—根據要求從資料庫中提取相關的資料,並對可用資料進行評估。
數據預處理—主要對提取的資料加工,檢查資料的完整性和一致性,填補缺失的資料,處理噪音資料等,以達到建模要求。
建立模型—運用資料採礦工具建立模型。
評估—評估建立的模型,並具體考察得到的結果是否符合商業目的。
部署—把發現的結果及認識過程組織成可讀文本形式,即撰寫資料採礦報告。
資料採礦的演算法很多,大致可以歸為以下幾類:決策樹演算法、群集演算法、時間序列演算法、時間群集演算法、關聯規則演算法、類神經網路演算法、羅吉斯迴歸、貝式機率分類、線性迴歸和資料採礦等。
商業智慧
商業智慧就是把智慧計算技術應用於傳統商業領域,從而提高資料分析能力,改良整個業務過程,提高企業競爭力。雖然最近幾年才開始普及實施商業智慧,但它的應用範圍已遍及金融、電信、零售、醫藥、製造、政府單位等各個行業和領域,成為大中型企業經營決策的重要部分。商業智慧的核心是:如何蒐集資料、如何管理資料、如何從資料中獲得智慧,以及如何應用智慧。
實施商業智慧系統是一項複雜的系統工程,涉及到企業管理、資料倉儲、資料採礦、統計分析等眾多類別的知識,因此正確的實施方法非常重要。商業智慧專案的實施步驟可分為:
需求分析—需求分析是商業智慧實施的第一步,必須首先確認企業的需求和期望,確定需要分析的主題等。
資料庫建模與資料抽取—通過對企業需求的分析,建立企業資料庫的邏輯模型和物理模型,並規劃系統的應用架構,把企業各類資料按照分析主題組織和歸類。資料庫建立後,必須從業務系統中抽取相關資料到資料庫中,在抽取的過程中還必須進行資料轉換、清理,以便適用於分析的需要。
建立商業智慧分析報表—需要專業人員按照用戶制訂的格式開發,或由用戶自行開發。
用戶培訓和數據模擬測試—對於開發/使用分離型的商業智慧系統,最終用戶的使用是相當簡單的,只需要點選操作就可分析特定的商業問題。
系統改進和完善化—任何系統的實施都必須不斷改善,商業智慧系統更是如此。在用戶使用一段時間後可能會提出更多、更具體的要求,這時需要再按照上述步驟重構或改善系統。
應用
雲端運算可以實現使用端透過網路上傳資料或購買資料,通過雲端資料倉儲服務進行資料庫建模和資料抽取,線上支付使用資料採礦工具和商業智慧相關分析處理軟體的費用。資料採礦和商業智慧的原理相似,都是由資料提供資訊、產生知識,再由知識累積智慧,而雲端運算可以使這個過程在網際網路上進行。也就是說,雲端運算可以提供基於「軟體即服務」的知識與智慧分析的服務。
商業智慧把先進的資訊技術應用到整個企業,不僅提高企業的資訊獲取能力,而且透過對資訊的開發,把資訊轉變為企業的競爭優勢。因此,越來越多的企業提出他們對商業智慧的需求,把商業智慧做為說明企業達到經營目標的一種有效方法。然而商業智慧活動,如分析、資料倉儲和資料採礦,要求的費用龐大,讓很多中小企業望之卻步。雲端運算具有按需要使用、按使用收費的特性,這會大大減少企業應用商業智慧的成本。雲端運算的出現,使得商業智慧分析不再只是中小企業的一個夢,而是能夠付諸實行。
在商業智慧上,運用雲端運算可以把資料與應用託管到「軟體即服務」供應商,一方面可以通過雲的資料倉儲實現海量資料的高效率運算,另一方面也可以實現線上使用及支付資料採礦工具和商業智慧相關的分析處理軟體的費用。
資料倉儲是資料採礦發展的基礎,也讓商業智慧得以支撐,資料採礦也是商業智慧的重要環節,由此可見資料倉儲對商業智慧而言有很重要的作用。它集成了企業的最核心資料,隨著企業對資料再次利用和深入挖掘,海量資料的高效計算問題成為企業關注的問題之一。
雲端計算技術給資料倉儲的高效運算帶來革命性的影響。例如OnDemand公司是一個資料倉儲提供商,可以透過BusinessObjects Web智慧來分析資料;又如資料庫廠商Kognitio提供了基於雲端的資料倉儲,它標榜「資料倉儲即服務」。還有資料倉儲應用的先驅者Netezza公司,也和ppNexus一起合作發布了一個基於雲的資料倉儲服務,後者是一個硬體即服務雲端計算廠商。
線上資料採礦服務也受到一些企業的青睞,例如中國的海量資訊技術有限公司提供名為「海納睿智」的線上資料採礦服務,可以利用線上網路資料採礦技術上的優勢,為用戶提供個性化需求,訂製個性模組服務,來滿足網站的不同需求。
此外,在商業智慧平臺的開發工具方面似乎已到達爆發的時代。例如KNIME是基於Eclipse環境的開發商業智慧工具,它是透過工作流程來控制資料的彙整、清理、轉換、過濾,再到統計、資料採礦,最後是資料的視覺化。整個開發都在視覺化的環境下進行,運用簡單的拖曳和設置就可以完成一個流程的開發。
雲端運算在資料採礦和商業智慧上的應用非常廣泛,如構建知識脈絡、繪製知識地圖、追蹤事件、推薦知識社群等。除資料採礦和商業智慧之外,雲端演算法也可應用於其他領域,如微軟與中國電信在整合雲端運算和電腦、電視、手機等的合作專案,主要是讓消費者與企業用戶體驗到任何時間、任何地點、使用任何連網的用戶終端設備,就可快速取得所需資訊與服務,享受便利的數位生活。
當今智慧型手機、衛星導航等行動裝置,都可以透過雲端運算發展出更多的應用服務。雲端運算更可應用在生物科學,例如分析基因結構、基因圖譜定序、解析癌症細胞等,利用雲端運算架構協助,效率快又準確。當大量資訊處理不再昂貴時,許多科技就會百花齊放,應運而生。
雲端運算集低成本、高效率、高擴展性等優點於一體,但由於尚處於發展初期,它仍有一些問題等待解決。如雲運算系統故障問題(例如Sidekick服務中斷、Amazon EC2遭到阻斷服務攻擊,以及Google電子郵件服務中斷)、資料遺失或遭竊問題、遺失的資料需要使用者自行承擔責任、欠缺獨力軟體發展商支持等問題,這些都是發展雲端運算必須面臨的挑戰。漫步雲端,任重而道遠!