使用SaaS鑒權使用者,以加快應用開發

來源:互聯網
上載者:User

 新一代的雲端服務不再要求應用開發人員編寫伺服器端代碼。幾乎所有的應用都依賴伺服器端的商務邏輯,回調為App 提供服務的API。應用依賴伺服器來分析,儲存資料,通訊,並與現有系統整合。雖然泛型服務如分析一般都外包給專業服務商,許多開發人員還是需要編寫伺服器端代碼來支援他們應用的功能,特別是你編譯要與後端系統整合的企業級應用時。把配置和商務邏輯放到伺服器端是個好辦法,這樣你可以很快更新內容和商務規則。

 

        對那些已經擁抱雲端服務的企業來說,有另一個選擇。有新興的服務提供者湧現出來,使應用開發人員更容易開發。你可以外包你的商務邏輯的準系統給雲端服務商。設想一下提供服務的任何一個應用的基本架構---你需要使用者標識,以識別他們是誰,如何登陸,他們能做什麼。你會有資料在裝置和雲間同步。你有內容要更新。你要整合社交媒體,你要支援通知,能和使用者交流。也許你還要支援應用內支付。還需要提供位置服務如地址檢索等。當然還要傳輸內容(這使得你的應用初次下載包很小)。

 

        你可以自己編寫上述大部分代碼。建立一個傳統的N層架構,設定資料庫,負載調優。寫部署指令碼,調度備份,單元測試,加班,當伺服器宕機時周末淩晨4點接電話。。。

 

        Infrastructure-as-a-Service 供應商如Amazon, Rackspace和Joyent 會為你省去這部分工作。Platform-as-a-Service供應商如Heroku 能更加節省你的工作。但我們要問 - 你還要寫代碼嗎? 你的商務邏輯能有多少能被Software-as-a-Service
交付?

 

        我們把使用者id鑒別問題做一個例子。你可以比較下多種的API。 儘管社交媒體帳號登陸如Facebook, Twitter 或 LinkedIn可以很快解決這個問題,也有可用的SDK,如果你要與使用者建立更深的關係,這不是一個令人滿意的解決方案。你需要自己的使用者資料庫。所以你要寫自己的伺服器端代碼,支援自己的驗證機制,當然也要經曆支援OAuth 協議的折磨。為你的應用寫新的功能,你要考慮你的密碼的合理存放位置,實現密碼提示頁面等。我們看看外包的使用者識別網站parse.com,
stackmob.com, 或 kinvey.com是如何工作的。

 

         要使用parse.com 服務,你需要先在  parse.com 上註冊,並安裝他們的Android SDK。使用者識別函數由 ParseUser對象提供。 

 

ParseUser user = new ParseUser();user.setUsername("my name");user.setPassword("my pass");user.setEmail("email@example.com");

 

                    ( parse.com 上的範例代碼)

 

        要註冊一個新使用者,調用signUpInBackground  函數:

user.signUpInBackground(new SignUpCallback() {  public void done(ParseException e) { … }}

 

        使用者登入,調用 logInInBackground 函數:

 

ParseUser.logInInBackground("Jerry", "showmethemoney", new LogInCallback() {  public void done(ParseUser user, ParseException e) { … }}

 

         如你所見,API使用匿名的內嵌類作為回調,很像node.js.的風格。你要維護自己的使用者介面,這不是parse.com能做的工作。但 parse.com
可以維護郵件驗證,密碼提醒,登入緩衝,使用者授權,提供管理主控台來系統管理使用者資料。你不需要自己實現這些功能。

 

        要把儲存在parse.com 的使用者資料與現有 系統整合,你需要調用它的 REST API。這個API允許你通過HTTP對資料調用所有API。這個API非常關鍵,能避免鎖住,你應當向你所使用的雲端服務供應商查詢是否提供該功能。

 

       雲供應商是要掙錢的。你應當比較他們的定價。parse.com 對低使用者量免費,當然如果你的應用很受歡迎,你最好還是要購買他們的服務。

 

       stackmob.com 和parse.com的服務類似。 stackmob API 更接近底層的REST
API。

 

final String username = "johndoe";final String password = "mypassword";Map<String, String> args = new HashMap<String, String>();args.put("username", username);args.put("password", password); StackMobCommon.getStackMobInstance().login(args, new StackMobCallback() {  @Override public void success(String responseBody) {    //handle success here  }  @Override public void failure(StackMobException e) {    //handle failure here  }});

 

                     (stackmob.com 的範例代碼)

 

        同樣也有匿名內嵌類回調模式。這是因為這些供應商支援Java, Objective-C, 和 JavaScript 等版本的API。為使結構類似,他們都非同步工作,並使用回調來告訴你的代碼調用結束。

 

        使用parse.com你要自己維護使用者介面。而stackmob 服務給你REST API 來整合,如果使用者量不大,你可以免費使用。

 

        kinvey.com 服務提供類似的使用者管理功能。下面是他們的API:

 

 

KinveySettings = KinveySettings.loadFromProperties(getApplicationContext());sharedClient = KCSClient.getInstance(getApplicationContext(), settings); KinveyUser user = service.loginWithUsername("existinguser", "pass");

 

                       ( kinvey.com 的範例代碼)

 

       kinvey.com 服務也類比 JavaScript回呼函數,但提供一個更自然的Java風格的公用功能層。你也會得到一個 REST API 和免費使用的使用者量。

 

       你考慮使用哪個服務?每個服務都提供相似的功能 -- 沒有多種不同方式來提供使用者識別或資料存放區層  -- 所以API 的結構也相似。如果這些服務都是有效商品,也許價格是決定因素。

 

       然而,還有一個因素要考慮。大多數的雲端服務傾向於贏家通吃。每個人想使用可靠安全的供應商。遊戲規則是要挑選勝者。不幸的是現在還為時過早。我的建議:你在所選服務的API上建立一個抽象層,如果其中一個供應商成長為領先者,這樣可以快速轉換到那家供應商。

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    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.