偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SaaS開發(fā)入門 阿里軟件平臺HelloWorld開發(fā)實(shí)例

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

【51CTO獨(dú)家特稿】51CTO推出的"

阿里軟件的商業(yè)模式

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

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

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


阿里旺旺軟件平臺的基本商業(yè)模式

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

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

阿里軟件平臺的開發(fā)和接入

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


阿里旺旺軟件平臺的開發(fā)和接入流程

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

在ISV工作平臺,你可以注冊一個新的軟件,開始阿里旺旺軟件平臺的軟件營銷之旅。目前,阿里旺旺軟件平臺支持B/S和C/S兩類軟件。B/S類軟件可以給用戶更多的方式來進(jìn)入你的軟件,從阿里巴巴的所有網(wǎng)站或旺旺客戶端都行。而C/S類軟件則只能從旺旺客戶端進(jìn)入,因?yàn)橥蛻舳耸前惭b在客戶電腦中的即時通訊軟件,只有旺旺客戶端才能接入C/S軟件。#p#

Hello World 起步

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

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

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

阿里旺旺軟件平臺與ISV應(yīng)用服務(wù)器之間的交互關(guān)系如下圖所示:

 
阿里平臺與ISV服務(wù)器之間的交互關(guān)系

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

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

◆user_id      用于識別阿里巴巴用戶的標(biāo)識信息
◆app_id      要使用的應(yīng)用程序標(biāo)識,也就是注冊軟件時的APP_ID
◆app_instance_id     應(yīng)用程序?qū)嵗龢?biāo)識,一個實(shí)例服務(wù)于一個人或一個公司
◆token            身份認(rèn)證令牌,只有10秒生存期并一次有效

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

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

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

當(dāng)軟件開發(fā)測試完成并上線使用之后,必須使用正式的API調(diào)用地址:

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

例如,開發(fā)測試中的validateUser服務(wù)調(diào)用形式可能如下:

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

其中的參數(shù)分為系統(tǒng)級參數(shù)和應(yīng)用級參數(shù),以sip_開頭的是系統(tǒng)級參數(shù),而其他的是應(yīng)用級參數(shù)。
 
系統(tǒng)級參數(shù)說明如下:

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

應(yīng)用級參數(shù)說明如下:

◆userId     用戶ID,也是客戶端傳過來的那個user_id
◆appId   應(yīng)用標(biāo)識,即APP_ID
◆appInstanceId  應(yīng)用實(shí)例ID,也是客戶端傳過來的app_instance_id
◆token    身份驗(yàn)證令牌,也是客戶端傳過來的token

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

ISV每個應(yīng)用的CERT_CODE是放在待簽名數(shù)據(jù)的最前面。接下來是本次調(diào)用的所用到的參數(shù)按名稱的字母順排列,依次將參數(shù)名及參數(shù)值填充到待簽名數(shù)據(jù)中。待簽名的數(shù)據(jù)是用UTF8編碼的字節(jié)串。準(zhǔn)備好待簽名數(shù)據(jù)之后,要進(jìn)行一次標(biāo)準(zhǔn)的MD5散列運(yùn)算,得到簽名結(jié)果。簽名的結(jié)果要求是用十六進(jìn)制字節(jié)碼表示的字符串。

當(dāng)調(diào)用旺旺平臺的各個參數(shù)準(zhǔn)備好之后,即可創(chuàng)建一個HTTP請求到阿里旺旺軟件平臺的服務(wù)器。而調(diào)用參數(shù)可以直接拼接在 http://sipdev.alisoft.com/sip/rest 這一URL的最后,也可以作為POST數(shù)據(jù)來傳遞。

而阿里旺旺軟件平臺會在收到調(diào)用請求后,對調(diào)用參數(shù)的簽名進(jìn)行比對,以確認(rèn)ISV的身份。同事,還要核對token是否超期或失效,當(dāng)然還要檢查timestamp是否在合理的范圍之內(nèi)。

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

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

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

#p# 

HelloWorld源代碼

我們的HelloWorld程序?qū)崿F(xiàn)了一個識別和驗(yàn)證阿里巴巴用戶,并在頁面上輸出不同的結(jié)果。下面是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)
    {
        //準(zhǔn)備調(diào)用參數(shù):
        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之后,按參數(shù)名字母順序?qū)?shù)名及其值拼接起來,用以對所有參數(shù)簽名:
        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算法對調(diào)用參數(shù)進(jìn)行簽名:
        MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
        string sip_sign = BitConverter.ToString(MD5.ComputeHash(Encoding.UTF8.GetBytes(data)));
        sip_sign = sip_sign.Replace("-", "");   //一定要去除結(jié)果中的“-”!

        //拼裝調(diào)用參數(shù):
        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; //發(fā)出對阿里旺旺軟件平臺的WEB調(diào)用: 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(); //根據(jù)返回結(jié)果進(jìn)行相應(yīng)處理 if (response.Headers.Get("sip_status") == "9999") //調(diào)用平臺成功 { 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("尚未訂購或被授權(quán)使用本軟件!"); break; case -2: say("非法使用,拒絕提供軟件服務(wù)!"); break; default: say("調(diào)用參數(shù)可能出現(xiàn)錯誤!"); break; }; } else say("調(diào)用阿里旺旺軟件平臺失??!"); } private void say(string text) { helloText.Text = text; //helloText是一個ASP.NET的Label控件 } }

本程序是用Visual Studio 2008編寫,并在ASP.NET 2.0環(huán)境下測試通過。如果你在測試本程序時遇到“服務(wù)器提交了協(xié)議沖突. Section=ResponseHeader Detail=CR 后面必須是 LF”的錯誤,請?jiān)谀愕膚eb.config中的 ﹤configuration﹥ 中加入以下內(nèi)容:

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

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

要了解阿里旺旺軟件平臺更多的開發(fā)細(xì)節(jié),請查看阿里旺旺軟件平臺的文檔中心。網(wǎng)址是:http://wiki.isv.alisoft.com/index.php?tracelog=doc_from_home

【編輯推薦】

  1. 專題:SaaS時代的軟件開發(fā)
  2. 對話阿里架構(gòu)師 走進(jìn)SaaS應(yīng)用開發(fā)
  3. 專訪偉庫網(wǎng)開發(fā)經(jīng)理:SaaS開發(fā)的敏捷之道
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2012-07-25 09:08:02

SaaS云計算云開發(fā)

2009-02-26 16:32:58

SaaS開發(fā)SaaS應(yīng)用Open API

2009-06-30 14:02:00

hibernate入門MyEclipse開發(fā)

2009-04-02 15:58:12

AndroidEclipseSqlite

2013-05-20 15:42:22

2020-08-10 07:00:00

SaaS開發(fā)IT

2009-06-15 15:16:00

netbeans sw平臺開發(fā)

2025-04-16 10:00:00

跨平臺開發(fā)Uniapp開發(fā)

2009-04-08 10:43:11

SaaS阿里軟件免費(fèi)

2011-06-28 14:02:34

QT ARM

2014-07-08 09:37:28

跨平臺Webhtml5

2021-03-12 18:18:17

云計算阿里云

2020-11-10 11:58:17

鴻蒙應(yīng)用開發(fā)

2022-09-19 00:37:13

SaaS云計算開發(fā)

2009-04-29 14:35:57

2022-02-15 14:06:36

OpenHarmon操作系統(tǒng)鴻蒙

2014-07-30 16:43:49

Android

2021-01-19 12:46:45

鴻蒙HarmonyOSHelloworld

2009-07-31 19:56:07

阿里SaaS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號