中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

從 CloudKit 看 BaaS 服務的趨勢

發布時間:2020-06-18 08:43:57 來源:網絡 閱讀:423 作者:jwfing 欄目:開發技術


從 6 月份 WWDC 蘋果發布 CloudKit 開始,BaaS (Backend as a Service,也叫做 mBaaS,最前面的 m 代表 mobile ) 的概念一下子又走入了人們的視野。CloudKit 提供了基本的數據存儲和用戶賬號功能,以后要寫一個數據交互不是太復雜的應用/游戲,就不再需要自己來開發后端架構,直接連 CloudKit 就搞定了,這就是 BaaS 的價值。這里之所以說,是因為在 13 年初 Facebook 收購 Parse 的時候,很多人也都被震驚到了,只是當時會有人覺得,真的有很多人會使用這種后端服務么?現在好了,連號令江湖的水果公司也加入到了服務商的行列,大家不得不重新審視 BaaS 的價值。

我們還是先來看看 CloudKit 可以為我們做什么吧。從目前公開的資料和 API 來看,CloudKit 有如下幾個基本概念:

  • CKContainer —— 每個應用有一個 Container,應用之間的數據是隔離的,如果愿意數據可以跨應用共

  • CKDatabase —— 每一個 Container 都會包含兩個 Database:公開的和私有的。公開的 Database 存放應用內共享的數據,需要開發者自己的 Apple ID 才能修改;私有的 Database 則存放單個用戶相關的數據,需要終端用戶自己的 Apple ID 才能訪問。

  • CKRecord —— 代表 Database 里面一條結構化記錄,是鍵值對的封裝,所以可以存儲任何數據。與 Parse 等提供的子類化數據模型不一樣,CloudKit 中所有存儲的數據只能是 CKRecord 類型,開發者需要使用一個名叫 Record Type 的字符串來區分不同類型的數據。

  • CKRecordZone —— CloudKit 還引入了 RecordZone 的概念,來給不同的數據進行分區,與 Mongodb 中的 collection 比較相似。

  • CKReference —— 類似于數據庫中的外鍵概念,主要用來進行數據關聯。CKRecord 中某一個屬性的值,可以是另一個 CKRecord(譬如 Instagram 中的每張圖片,都有一個作者字段),這時候屬性值就可以是 CKReference 類型。按照 CloudKit API 的說明文檔,這種引用的關聯是可以做到反向查詢和級聯刪除的,不過筆者好奇的是,對于一對多的關聯模型,級聯刪除該怎么才能做到呢?

  • CKAsset —— 用來處理文件這種非結構化數據的存儲,按照 API 的說明文檔,可以高效支持上傳和下載,看來蘋果應該也是提供 CDN 支持的,但是國內用戶應該就享受不到了。

  • CKQuery —— 主要用來獲取數據,通過組合 Record Type、NSPredicate 和 NSSortDescriptor 來查詢數據,不過從 API 說明文檔看不出它能否支持 Parse 的級聯獲取。

  • CKSubscription —— 與 CKQuery 只是每次去拉 Server 端的數據不同,CKSubscription 提供了一種 Server 端主動 Push 的機制,通過組合 Record Type、NSPredicate 和 APNs Push,可以讓 Client 端主動去監聽 Server 端的數據變化,從而實時得到通知。


其實,對于蘋果為什么要做 CloudKit,江湖上還流傳著這樣一則軼聞:當年蘋果也是 Parse 的竟購方之一,只是 Facebook 為了打造開發者生態圈而志在必得,蘋果只能鎩羽而歸,但是數據平臺的價值又一直讓蘋果念念不忘,最后蘋果的工程師和 PM 只能心一橫,自己做一個 CloudKit 了。不過與其他 BaaS 平臺相比,筆者認為 CloudKit 存在如下不足:

  1. 數據模型過于簡單。數據之間的關聯只能通過 CKReference 建立,這樣的話對于多對多的映射模型就比較吃力,不管是讀取還是存儲,都會比 Parse 的方案繁瑣很多。

  2. 不能自定義業務邏輯,沒有類似于 Parse 的云代碼功能,很多時候需要在客戶端完成全部業務邏輯,這都會給開發帶來一些不便,并且也會影響到移動設備的耗電和網絡流量。

  3. 訪問速度過慢,從我實際的測試來看,在 Wifi 下 API 的延遲都已經非常明顯,要是再擴大到國內五花八門的網絡環境,特別是弱網環境,數據訪問的延遲會變成一個很大的障礙。而且,對于國內用戶來講 Apple ID 的利用率也不高。

  4. 不支持跨平臺。所有的數據都是存放在 iCloud 里面,需要通過開發者或者最終用戶的 Apple ID 才能訪問,這樣的服務方式讓 Android 生態圈和 Web Application 等完全成為了另外的平行世界,對于第三方應用開發者來說,或許沒有人能把自己的用戶群全部押寶到 iOS 上。

  5. 在中國市場面臨政策風險。從 WordPress、網盤、AWS 等的前車之鑒來看,所有的數據黑洞都會讓監管部門感到無能為力,從而心生恐懼,他們只能使用最簡單粗暴的辦法來進行處理,那就是讓你變的不存在


在蘋果的發布會之后,谷歌在今年的 IO 大會上也發布了 Google Driver for Work / Google Fit Platform,加上最早的 Facebook,三大巨頭相繼推出類似產品,讓人們對 BaaS 服務的前景充滿期待。CloudKit 存在的問題,可能就是其他第三方 BaaS 服務商們的機遇。在國外 Parse(http://www.parse.com) 和 Kinvey(http://www.kinvey.com) 都做得不錯,StackMob 本來也算是領頭羊之列的 player,但是被 Paypal 收購之后就立刻被關停,只能讓人唏噓。國內的 BaaS 服務提供商,多只在某一個領域出現,譬如推送領域的個推、統計領域的友盟,能夠像 Parse 一樣提供完整的平臺能力,特別是后臺數據存儲能力的,目前來看只有 AVOS Cloud(http://www.avoscloud.com) 一家。并且 AVOS Cloud 的 API 設計是完全兼容 Parse 的,對于用慣了 Parse 服務的開發者來講,可能會像碰到了孿生兄弟一樣熟悉。

在所有人都在強調移動!移動!的今天,BaaS 或許能開創出一個新的云計算方向,讓我們拭目以待吧。 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英德市| 昌平区| 保定市| 昌都县| 南充市| 文水县| 克拉玛依市| 海伦市| 泸定县| 修水县| 梁河县| 运城市| 乐山市| 手游| 垦利县| 博乐市| 邵武市| 黄石市| 绵阳市| 博客| 秦皇岛市| 南京市| 全椒县| 双辽市| 蓬莱市| 林口县| 吕梁市| 正镶白旗| 四子王旗| 汾西县| 邻水| 汤阴县| 辛集市| 新密市| 石家庄市| 罗甸县| 黄骅市| 建宁县| 连南| 绥滨县| 荔浦县|