成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SaaS開發入門 阿里軟件平臺HelloWorld開發實例

原創
開發 前端 云計算 SaaS
在了解了SaaS的基本概念、商業模式和開發方式等知識后,你也許想親自動手開發一個SaaS應用,卻又不知該如何開始。51CTO開發頻道特別邀請了阿里軟件的工程師李戰老師撰寫此文,從阿里軟件的商業模式開始,逐步深入,手把手教您開發一個基于阿里SaaS平臺的Hello World程序。

【51CTO獨家特稿】51CTO推出的"

阿里軟件的商業模式

阿里軟件有一個旺旺軟件平臺,將自己開發的在線軟件接入,就可以讓阿里巴巴的電子商務客戶使用。阿里巴巴是全球最大的電子商務網絡公司,擁有超過1億的注冊用戶數。如果能將自己開發的軟件推銷給這個龐大的客戶群,將會獲得巨大的回報。而阿里軟件的旺旺平臺就是這樣一個集軟件開發、接入、銷售和服務一體的在線軟件運營平臺。

在阿里旺旺軟件平臺上,只要你的軟件做得好,吸引了大量用戶來訂購,哪怕你的軟件每月只收一元錢,每月都能獲得相當數量的銷售收入。這正是阿里旺旺軟件平臺最吸引人的獨特商業模式!

然而,要想在阿里旺旺軟件平臺上賺錢,先得搞清旺旺平臺是怎樣運作的。下圖展示了阿里旺旺軟件平臺的基本商業模式:


阿里旺旺軟件平臺的基本商業模式

 阿里旺旺軟件平臺實際上是阿里巴巴旗下所有用戶的軟件桌面。任何一個阿里巴巴的用戶,包括B2B、淘寶、支付寶、雅虎、阿里媽媽和口碑網的用戶,都可以隨時進入到旺旺軟件的桌面來,使用各種在線軟件。當然,在阿里巴巴旗下的各個網站中,也有眾多的快捷啟動方式,直接將用戶引至相關的軟件應用中。

另一方面,阿里旺旺軟件平臺也是ISV(獨立軟件提供商)的軟件營銷平臺,任何一個軟件開發商都可以將自己的軟件放到這個營銷平臺上。當有用戶訂購并使用你的軟件后,每月都能軟件使用費,而且是直接打入你的支付寶帳號。

阿里軟件平臺的開發和接入

阿里旺旺軟件平臺的開發和接入流程大致如下:


阿里旺旺軟件平臺的開發和接入流程

 要在阿里旺旺軟件平臺進行開發,首先要注冊成為阿里軟件的ISV(獨立軟件提供商)。先進入http://www.alisoft.com/,然后找到其中的“開發者加盟”頁面。如果你已經有阿里巴巴中國站或淘寶網的帳號,可以直接登錄進入。如果沒有,需要注冊一個帳號并登陸。登錄之后,你將有一個工作平臺。第一次進入工作平臺的時候,需要填寫兩三項最基本的內容,此后即可開始使用工作平臺。

在ISV工作平臺,你可以注冊一個新的軟件,開始阿里旺旺軟件平臺的軟件營銷之旅。目前,阿里旺旺軟件平臺支持B/S和C/S兩類軟件。B/S類軟件可以給用戶更多的方式來進入你的軟件,從阿里巴巴的所有網站或旺旺客戶端都行。而C/S類軟件則只能從旺旺客戶端進入,因為旺旺客戶端是安裝在客戶電腦中的即時通訊軟件,只有旺旺客戶端才能接入C/S軟件。#p#

Hello World 起步

我們來注冊一個名叫HelloWorld的軟件,輸入相關的軟件基本信息之后,在ISV工作平臺的軟件列表中,將有一個HelloWorld的軟件項目。其中,我們會得到兩個代碼,一個是APP ID(應用程序標識),另一個是CERT CODE(授權碼)。這兩個東西會在隨后與平臺的WEB API調用中經常用到。

當然,一個B/S結構的SaaS軟件,一定有一個URL入口。因此,在注冊完HelloWorld軟件后,還需要補充編輯更多的軟件信息,包括測試入口和使用入口的URL。這里,我們將HelloWorld程序的入口指定為http://helloworld.leadzen.cn/。當最終用戶從阿里軟件網站或旺旺客戶端,以及阿里巴巴其他網站進入我們的HelloWorld時,就會將瀏覽器引導到我們設置的URL,當然后面會跟上一大堆調用參數。

我們的HelloWorld程序是在自己的服務器上運行的,并非運行在阿里軟件的服務器上。因此,我們可以簡單地這樣理解,阿里旺旺軟件平臺是阿里巴巴用戶使用軟件的一個集中的啟動入口,但軟件一旦運行起來,就是主要是在ISV自己的服務上運行了。盡管將來阿里軟件會提供有*.aliapp.com域名的應用程序宿主環境,但這也是屬于與平臺不同的服務器。

阿里旺旺軟件平臺與ISV應用服務器之間的交互關系如下圖所示:

 
阿里平臺與ISV服務器之間的交互關系

當最終用戶在阿里旺旺軟件平臺上使用我們的HelloWorld軟件時,我們的helloworld.leadzen.cn服務器會收到類似于下面的調用請求:
http://helloworld.leadzen.cn/?user_id=12176230&app_id=22875&app_instance_id=USERFB4B11067FC25455E32AC4F039B2CD38&token=
A2842BC81AE060C067017336B894F1B6E9AA7A8ED137A91903D1&target
=

在這個請求中會帶上一系列參數,各個參數的解釋如下:

◆user_id      用于識別阿里巴巴用戶的標識信息
◆app_id      要使用的應用程序標識,也就是注冊軟件時的APP_ID
◆app_instance_id     應用程序實例標識,一個實例服務于一個人或一個公司
◆token            身份認證令牌,只有10秒生存期并一次有效

當我們的服務器收到這樣的請求之后,首先應該識別訪問用戶的身份是否合法,然后才能為其提供相關的服務。要驗證用戶的身份,這就需要調用阿里旺旺軟件平臺提供的validateUser服務。

目前,阿里旺旺軟件平臺采用的是REST風格的API調用格式。說白了就是從ISV的服務器發起一個HTTP請求到阿里旺旺軟件平臺,并得到以XML表示的返回結果。阿里旺旺軟件平臺提供了專門的API調用地址,開發測試的調用地址為:

http://sipdev.alisoft.com/sip/rest

當軟件開發測試完成并上線使用之后,必須使用正式的API調用地址:

http://sipdev.alisoft.com/sip/rest

例如,開發測試中的validateUser服務調用形式可能如下:

http://sipdev.alisoft.com/sip/rest?sip_appkey=22875 
&sip_apiname=alisoft.validateUser 
&sip_timestamp=2008-10-28 20:00:00
&sip_sign=23ed99f1a0a1eac5f3787d522afde1c4 
&userId=12176230 
&appId=22875  
&appInstanceId=USERFB4B11067FC25455E32AC4F039B2CD38
&token= A2842BC81AE060C067017336B894F1B6E9AA7A8ED137A91903D1

其中的參數分為系統級參數和應用級參數,以sip_開頭的是系統級參數,而其他的是應用級參數。
 
系統級參數說明如下:

◆sip_appkey  ISV應用的唯一編號,即APP_ID
◆sip_apiname  服務名,這里是alisoft.validateUser,其他服務有各自的名稱
◆sip_timestamp 發出請求時間戳(yyyy-mm-dd hh:mm:ss.xxx),支持毫秒
◆sip_sign   請求數據的簽名,系統級參數和應用參數按順序拼接后簽名

應用級參數說明如下:

◆userId     用戶ID,也是客戶端傳過來的那個user_id
◆appId   應用標識,即APP_ID
◆appInstanceId  應用實例ID,也是客戶端傳過來的app_instance_id
◆token    身份驗證令牌,也是客戶端傳過來的token

其中的sip_sign參數,是一個簽名數據。為了防止非法的調用或調用數據被中途篡改,旺旺平臺要求每一個WEB API調用必須進行簽名。簽名過程中會用到注冊新軟件時得到的CERT_CODE,這是每個ISV必須保密的重要數據,旺旺平臺據此來識別ISV的真實身份。

ISV每個應用的CERT_CODE是放在待簽名數據的最前面。接下來是本次調用的所用到的參數按名稱的字母順排列,依次將參數名及參數值填充到待簽名數據中。待簽名的數據是用UTF8編碼的字節串。準備好待簽名數據之后,要進行一次標準的MD5散列運算,得到簽名結果。簽名的結果要求是用十六進制字節碼表示的字符串。

當調用旺旺平臺的各個參數準備好之后,即可創建一個HTTP請求到阿里旺旺軟件平臺的服務器。而調用參數可以直接拼接在 http://sipdev.alisoft.com/sip/rest 這一URL的最后,也可以作為POST數據來傳遞。

而阿里旺旺軟件平臺會在收到調用請求后,對調用參數的簽名進行比對,以確認ISV的身份。同事,還要核對token是否超期或失效,當然還要檢查timestamp是否在合理的范圍之內。

調用完成后,旺旺平臺會返回響應的HTTP報文。在這個報文的頭部信息中,有一個sip_status項目,是用來表示調用狀態的。而HTTP報文的內容,是以XML形式返回的結果。因此我們還需要從XML中解析出結果的內容。例如,validateUser返回的結果可能是下列形式:

﹤?xml version="1.0" encoding="utf-8" ?﹥
﹤String﹥1﹤/String﹥

不同WEB API接口所返回的數據格式是不同的,具體可以參閱阿里旺旺軟件平臺的在線文檔。地址:http://isp.alisoft.com/apidoc/api/apiIndex.html  

#p# 

HelloWorld源代碼

我們的HelloWorld程序實現了一個識別和驗證阿里巴巴用戶,并在頁面上輸出不同的結果。下面是HelloWorld的源程序。

Default.aspx

﹤%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %﹥

﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"﹥ ﹤html xmlns="http://www.w3.org/1999/xhtml"﹥ ﹤head runat="server"﹥ ﹤title﹥阿里旺旺軟件平臺HelloWorld示例﹤/title﹥ ﹤/head﹥ ﹤body﹥ ﹤asp:Label ID="helloText" runat="server"﹥﹤/asp:Label﹥ ﹤/body﹥ ﹤/html﹥

Default.aspx.cs

using System;
using System.Web;
using System.Security.Cryptography;
using System.Text;
using System.Net;
using System.Xml;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //準備調用參數:
        string userId = Request.Params["user_id"];
        string appId = Request.Params["app_id"];
        string appInstanceId = Request.Params["app_instance_id"];
        string token = Request.Params["token"];

        string sip_appkey = appId;
        string sip_apiname = "alisoft.validateUser";
        string sip_timestamp = DateTime.Now.ToString();

        string data = "9c4fb3400ed711de80b8836e34b2dea8";   //CERT_CODE(注冊軟件時獲得的)

        //在CERT_CODE之后,按參數名字母順序將參數名及其值拼接起來,用以對所有參數簽名:
        data += "appId" + appId;
        data += "appInstanceId" + appInstanceId;
        data += "sip_apiname" + sip_apiname;
        data += "sip_appkey" + sip_appkey;
        data += "sip_timestamp" + sip_timestamp;
        data += "token" + token;
        data += "userId" + userId;

        //用MD5算法對調用參數進行簽名:
        MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
        string sip_sign = BitConverter.ToString(MD5.ComputeHash(Encoding.UTF8.GetBytes(data)));
        sip_sign = sip_sign.Replace("-", "");   //一定要去除結果中的“-”!

        //拼裝調用參數:
        string api_params = "sip_appkey=" + sip_appkey + "&sip_apiname=" + sip_apiname + 
"&sip_timestamp=" + sip_timestamp + "&sip_sign=" + sip_sign + "&userId=" + userId +
"&appId=" + appId + "&appInstanceId=" + appInstanceId + "&token=" + token; //發出對阿里旺旺軟件平臺的WEB調用: WebRequest request = WebRequest.Create("http://sipdev.alisoft.com/sip/rest?" + api_params); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; WebResponse response = request.GetResponse(); //根據返回結果進行相應處理 if (response.Headers.Get("sip_status") == "9999") //調用平臺成功 { XmlDocument xml = new XmlDocument(); xml.Load(response.GetResponseStream()); switch (int.Parse(xml.SelectSingleNode("String").InnerText)) { case 0: say("HelloWorld,歡迎合法使用者!"); break; case 1: say(sip_sign + "HelloWorld,歡迎合法訂購者!"); break; case -1: say("尚未訂購或被授權使用本軟件!"); break; case -2: say("非法使用,拒絕提供軟件服務!"); break; default: say("調用參數可能出現錯誤!"); break; }; } else say("調用阿里旺旺軟件平臺失敗!"); } private void say(string text) { helloText.Text = text; //helloText是一個ASP.NET的Label控件 } }

本程序是用Visual Studio 2008編寫,并在ASP.NET 2.0環境下測試通過。如果你在測試本程序時遇到“服務器提交了協議沖突. Section=ResponseHeader Detail=CR 后面必須是 LF”的錯誤,請在你的web.config中的 ﹤configuration﹥ 中加入以下內容:

﹤system.net﹥
    ﹤settings﹥
      ﹤httpWebRequest useUnsafeHeaderParsing="true"/﹥
    ﹤/settings﹥
  ﹤/system.net﹥

阿里旺旺軟件平臺開放了許多的WEB API調用接口。使用這些WEB API 你可以完成對阿里巴巴用戶的驗證,可以實現軟件的收費,可以調用實現支付寶的收付,可以獲取淘寶的商品及交易信息,可以實現物流的下單,等等。阿里軟件是阿里巴巴電子商務資源的服務調用中心,將會有越來越多的WEB API功能開放出來。

要了解阿里旺旺軟件平臺更多的開發細節,請查看阿里旺旺軟件平臺的文檔中心。網址是:http://wiki.isv.alisoft.com/index.php?tracelog=doc_from_home

【編輯推薦】

  1. 專題:SaaS時代的軟件開發
  2. 對話阿里架構師 走進SaaS應用開發
  3. 專訪偉庫網開發經理:SaaS開發的敏捷之道
責任編輯:佚名 來源: 51CTO.com
相關推薦

2009-02-10 17:11:53

SaaSSaaS開發PaaS

2012-07-25 09:08:02

SaaS云計算云開發

2009-02-26 16:32:58

SaaS開發SaaS應用Open API

2013-05-20 15:42:22

2009-06-30 14:02:00

hibernate入門MyEclipse開發

2009-04-02 15:58:12

AndroidEclipseSqlite

2020-08-10 07:00:00

SaaS開發IT

2009-06-15 15:16:00

netbeans sw平臺開發

2021-03-12 18:18:17

云計算阿里云

2011-06-28 14:02:34

QT ARM

2014-07-08 09:37:28

跨平臺Webhtml5

2025-04-16 10:00:00

跨平臺開發Uniapp開發

2009-04-08 10:43:11

SaaS阿里軟件免費

2020-11-10 11:58:17

鴻蒙應用開發

2022-09-19 00:37:13

SaaS云計算開發

2009-04-29 14:35:57

2022-02-15 14:06:36

OpenHarmon操作系統鴻蒙

2014-07-30 16:43:49

Android

2021-01-19 12:46:45

鴻蒙HarmonyOSHelloworld

2020-01-13 09:59:30

開發平臺智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品 | 国产精品成人一区 | 99热热| 91视频在线| 久久网一区二区三区 | 日日射夜夜骑 | 成人一区二区视频 | 国产精品视频在线播放 | 懂色tv | www.黄色片视频 | 在线国产一区二区 | 亚洲色图50p | 国产精品一区在线 | 欧美一级视频免费看 | 国产精品久久久久久一级毛片 | 欧美在线视频网站 | 日韩三级在线观看 | 国产精品不卡 | 综合久久av | 日韩视频在线免费观看 | 欧美成人高清视频 | 欧美午夜激情在线 | 国产黑丝av | 亚洲视频在线观看 | 欧美一级免费看 | 国产剧情一区 | 一区免费观看 | 在线观看亚洲专区 | 亚洲精品国产电影 | 久久69精品久久久久久久电影好 | 蜜桃av一区二区三区 | 中文一区 | 日韩福利 | 亚洲一区 中文字幕 | 日日夜夜免费精品视频 | 在线国产一区二区三区 | 成人在线免费看 | 久久久精品一区 | 九九热re | 自拍视频网 | 一区二区国产精品 |