本文章是由機器翻譯。

雲朵計算

建置分散式.NET 服務與應用程式

Aaron Skonnard

本文根據搶鮮版的.NET 服務。 所有的資訊有變更。

本文將告訴您:

  • 瞭解.NET 服務
  • Confi guring.NET 的存取控制服務
  • 透過.NET 服務的匯流排通訊
  • 建置在定域機組 workfl Ow
本文將使用下列技術:
azure 服務平台.NET 服務

內容

.NET 服務
在.NET 服務有什麼?
建立.NET 的服務解決方案
安裝.NET 服務 SDK
.NET 的存取控制服務
設定服務
在.NET 服務匯流排
透過.NET 服務的匯流排通訊
.NET 的工作流程服務
建置雲霧工作流程

在 2008 的專業開發人員會議(PDC) 在 Los Angeles,Microsoft 宣佈野心的新雲運算策略,在未來幾年內將 unfold。 Microsoft 的定域機組平台 — 正式稱為 Azure 服務平台 — 可讓移動至使用相同的工具和 API 在已經熟悉定域機組其應用程式 (或其中的部分).NET 開發人員輕鬆。

Windows Azure 會配置 Microsoft 定域機組平台的基礎。 Windows Azure 視為在 Windows 架構定域機組的作業系統。 它是執行.NET 應用程式,並將在 Microsoft 資料中心儲存資料,在世界上提供了高度可調整的執行環境。 建置 Windows Azure 上的應用程式可以您您應用程式可讓您把焦點改在開發和您的企業在成本和麻煩基礎結構方面的許多的上 shield。

Microsoft 會提供數個建置於 Windows Azure 基礎.NET 服務、 SQL 服務、 Live 服務,SharePoint Services,及其他的服務解決方案。 結合這些服務產品,與 Windows Azure Foundation 形成完整 Azure 服務平台 (請參閱 [圖 1)。 每個這些服務的產品包含多個個別的服務,您可以選擇呼叫時在您的應用程式中。 Microsoft 是主動建置在各種應用消費者的外部程式中 Windows Live、 Microsoft Office Live、 線上 Microsoft Exchange、 Microsoft SharePoint 線上,Azure 服務平台以及其他。 您有機會執行相同,利用任何 Azure 服務提供值給您。

[圖 1 : Azure 服務平台

本篇文章的其餘,我打算探討 Azure Services 平台,根據 11 月 / 12 月 CTP 發行 2008,.NET 服務提供。 如您所見 [圖 1,這是只有一個更廣泛的定域機組平台策略的一小但特定向定域機組中移動的.NET 開發人員感興趣的其中一個。

.NET 服務

如果您認為自己 Microsoft 連接系統的開發人員使用 Windows Communication Foundation (WCF)、 Windows Workflow Foundation (WF) 和 BizTalk Server 等技術,將要特別注意.NET 服務中。 這是您關心這些技術的大部分將會出現 Azure Services 平台。 (很有趣,要注意的籌備專案的原始名稱會是 「 BizTalk 服務 」。 正式名稱-.NET 服務 — 在連同 Windows Azure PDC 已宣佈)

如果您喜歡想出 Windows Azure 為 「 Windows 定域機組中 」,您可以視為.NET 服務的 「 Microsoft.NET Framework 定域機組中 」。 現在,.NET 開發人員依賴大量.NET Framework 建置應用程式,以在 Windows 平台為目標。 .NET Framework 提供許多的應用程式所需的一般建置區塊,因此容易取得這些設定並執行快速。 .NET 服務會扮演類似的角色 Azure Services 平台提供一些通用的建置區塊,讓它更容易撰寫定域機組-為基礎的應用程式。

雖然在的相似性還有顯著不同.NET Framework 和.NET 服務。 雖然.NET Framework 會提供的.NET 組件形式的建置區塊.NET 服務會提供裝載服務的形式的建置區塊 Microsoft 資料中心內執行。 使用.NET 服務時,還有您的內部邏輯] 和 [在定域機組中執行.NET 服務之間在清除的界限。 您的工作,撰寫這些服務,到您的商務解決方案。 Microsoft 會裝載,管理,並維護與您的應用程式所依賴的裝載的服務中。

您程式對.NET 服務藉由整合與個別的服務,它提供。 雖然稱為"NET 服務,不實際上需要使用.NET 完成這項作業,您可以整合與.NET 透過標準的 SOAP 和 REST 的服務介面,它會公開 (Expose)。 Microsoft 提供的最佳化.NET 開發人員經驗,在.NET Services SDK 而且甚至的 Java 和拼音 SDK 可從社群。

在.NET 服務有什麼?

如果您考慮需要移動您的應用程式至定域機組平台,有一些常見的需求,您將最有可能會遇到。 首先,您必須以的方式來描述,並封裝您的商務程序或工作流程,因此它們可以是執行並在定域機組中管理。 第二個,您將需要能夠定域機組的基礎工作流程和您的內部應用程式之間進行通訊周遊任何防火牆或網路位址轉譯 (NAT) 裝置可能的方式。 而且,第三個,您必須能夠安全的通訊和控制項各種定域機組-基礎資源存取。

大部分的定域機組應用程式需要處理這些需求中至少一個。 如果必須自行建置此類型的基礎結構,它大幅會變更整體的價值論點。 這些是精確地說,.NET 服務著重在 11 月 / 12 2008 CTP 版本中,區域。

特別是,.NET 服務完成這些定域機組基礎結構需求,透過三個個別的建置區塊服務:.NET 的工作流程服務,在.NET 服務,匯流排和.NET 存取的控制項服務 (請參閱 [圖 2] 如需詳細資訊)。

[圖 2.NET 服務元件
服務 描述
.NET 的工作流程服務 這個元件會提供基礎結構的裝載和管理 Azure Services 平台的 WF 工作流程。 它也提供定域機組中心活動和工具和部署、 管理,追蹤執行的工作流程執行個體。
.NET 服務匯流排 這個的元件提供一個轉接服務,讓您可以建立透過定域機組的連線,跨越組織界限。 這很重要的基礎結構,可讓與內部應用程式的周遊防火牆和 NAT 裝置通訊的定域機組的基礎工作流程。
.NET 存取控制服務 此元件會提供宣告式存取控制機制,定域機組,撰寫使用 WS-安全性功能中。 它也會符合聯盟需求中大部分的定域機組案例包括像是 Active Directory 和Windows Live ID 的識別提供者與互通性

在.NET 服務匯流排會依賴.NET 存取控制項服務來控制對轉送的寄件者及接聽程式服務的存取。 這表示所有寄件者及接聽程式必須先取得語彙基元從.NET 存取控制項服務才能使用.NET 服務匯流排。 .NET 的工作流程服務整合了.NET 服務匯流排,讓它可以傳送訊息,透過 [轉送] 服務啟用各種有趣的通訊案例中定域機組的基礎工作流程。 這些服務一起會提供強大的開發結構建置定域機組中的應用程式。

建立.NET 的服務解決方案

您可以開始使用.NET 服務之前,您必須造訪, azure Services 平台的入口網站並建立解決方案。 本文根據 11 月 / 12 2008 CTP 發行,為您建立.NET 服務解決方案之前,您將需要的邀請語彙基元。 您可以取得的邀請語彙基元之後,「 試試看吧現在 」 Azure 服務平台 Portal.Windows Azure 上的連結,而且.NET 服務需要不同的邀請語彙基元,請確定您要求.NET 服務語彙基元太。 一旦核准,您會收到電子郵件透過您.NET 服務邀請語彙基元。

一旦您已收到的邀請函的程式碼,您可以瀏覽 「 入口 」 在.NET 服務區域,並建立新的解決方案。 您將必須輸入有效的邀請函的程式碼,並指定解決方案的名稱,然後它會提供新的.NET 服務解決方案,並提供解決方案的密碼。 (方案名稱是供驗證使用者名稱)。

期間提供您將需要使用在 Windows Live ID (WLID),這樣新的解決方案可以與您的帳戶相關聯。 多個解決方案可以在單一的 WLID 與相關聯,但每個解決方案會需要一個唯一的邀請程式碼而今天]。 每當您登入到 「 入口 」,與您 WLID,您會看到所有的 < 解決我方案 」 在頁面的右邊下方列出的解決方案。 當您選取一個特定的解決方案時,需要您管理的特定解決方案中各種.NET 服務的頁面 (請參閱 [圖 3 )。

[圖 3] 的 管理解決方案

解決方案,基本上是最上層容器管理您各種.NET 服務的資產。 舉例來說,它是您的.NET 服務匯流排端點,您的.NET 的工作流程服務型別和執行個體和.NET 存取控制項服務身分識別容器,並宣告轉換規則。

安裝.NET 服務 SDK

您也要下載並安裝您也可以從 Azure 服務平台入口網站取得.NET Services SDK。 當您安裝 SDK 時, 它就會將數個.NET 組件加入至您的電腦和某些 Visual Studio 增益集,讓它更容易以程式設計方式整合.NET 服務中。

在安裝目錄,位於 Program Files \ Microsoft.NET Services SDK 中的預設值中,您會找到新的組件。 金鑰的組件會包含 Microsoft.ServiceBus.dll 」、 「 Microsoft.Workflow.activities.dll 和 「 Microsoft.AccessControl.Management.dll。 安裝目錄也會包含說明如何使用每個服務,以及金鑰的功能,每個服務所提供的範例。 請務必檢查出不同的範例中,您一開始您的旅程。

如果您啟動 Visual Studio,您也會發現新的專案範本,以便呼叫 CloudSequentialWorkflow (在 CloudWorkflow 專案類型中)。 您可以使用這個專案的範本建立您要在.NET 的工作流程服務中裝載 WF 工作流程。 SDK 也會安裝在 Visual Studio 增益集,方便您的工作流程部署.NET 的工作流程服務。

請注意.NET 服務的實作實際上衍生 fromWCF 和.NET Framework 3.5 中的 WF 感興趣的。 .NET Services SDK,就可以建置,讓消費者開發人員經驗盡一樣簡單的 WCF 和 WF 程式設計模型已經熟悉的實現。 如果您使用的營地,會覺得很自然,您的程式設計.NET 服務機制。 在的最後的大部分學習一些新的 WCF 繫結 (針對.NET 服務匯流排)、 設定這些繫結,和瞭解一些新的活動 (針對.NET 的工作流程服務)。

在其餘章節,我將瞧瞧在每個服務,並逐步解說使用每個的範例。 您應該結束,覺得熟悉如何開始您自己。

.NET 的存取控制服務

讓我們從藉由查看.NET 的存取控制項服務開始。 過去數年 Microsoft 已在宣告式身分識別模型,因素驗證和授權決策出您的應用程式和到外部服務,可以由安全性專家集中維護中讓您向移動。 在這個模型下,,安全性專家會控制驗證使用者和發行宣告使用者有關的處理序。 您的應用程式可以直接信任由服務所提供的宣告,然後根據這些 (避免驗證) 的宣告進行決策。

使用宣告式身分識別模型時,使用者提供他識別一組宣告做為應用程式。 宣告是只判斷提示使用者的相關-它們可以是任何如名稱、 電子郵件位址或意見反應的評等。 宣告由知道如何驗證使用者及其屬性 (可能的企業目錄中) 的身分識別提供者所提供。 用戶端應用程式無障礙地運作,以取得這些宣告,並將它們顯示在應用程式發行的授權單位。

在 Microsoft.NET 存取控制服務是在集中式的定域機組的基礎服務使這個模型容易瞭解 Azure Services 平台。 今天,.NET 的存取控制項服務可以做為一個身份識別提供者 (藉由驗證透過解決方案的憑證佈建程序期間,指派的使用者,) 但不是其實它的適合執行。 它被設計主要是依賴等,WLID 和日內瓦 」 伺服器安全性語彙基元服務現有的身分識別提供者] 或 [支援標準的聯盟通訊協定的任何識別提供者。 這讓單一登入的自然的結果。

.NET 存取控制項的主要責任服務是提供一組宣告對您的應用程式有用的。 這通常表示轉譯成一組輸出宣告具有意義,您的應用程式的輸入來自的身分識別提供者 (例如 WLID 或日內瓦 」 伺服器) 的宣告。 可以將它為定域機組中設定的宣告轉換引擎。

設定服務

您設定.NET 存取控制項服務,透過 「 系統管理入口 」,提供在特定的解決方案內 (請參閱 [圖 4 )。 這是您在其中設定規則,判斷如何,它會發出宣告使用者知道有關或轉換來自其他提供者宣告的結果。

[圖 4 :.NET 存取控制服務系統管理入口網站

而非設定自己的範例服務,我要顯示.NET 存取控制的服務設定的.NET 服務匯流排的如何。 如果您按一下 [進階] 按鈕,在系統管理入口網站,您會看到一個拉的解決方案名稱,表示不同的範圍的擁有者。 範圍會是宣告轉換規則的集合。 當我選取服務匯流排的解決方案的我的帳戶時,它顯示的範圍

http://servicebus.Windows。 net / 服務 / pluralsight /

當使用.NET 服務匯流排,您將設定端點,這個服務匯流排的範圍中做為基底 URI (您將會自訂您的帳號當然)。 每個解決方案是與.NET 服務匯流排和.NET 的工作流程服務的存取控制規則的一組預先設定的。

如果您在上按一下 [管理,您可以檢查的規則設定為特定的範圍清單 (請參閱 [圖 5 )。 在這個特定的範例中,有兩個規則尋找的傳入的使用者名稱宣告包含 pluralsight 的值。 其中一個產生的輸出宣告,傳送的並在其他產生的接聽的輸出宣告]。 在.NET 服務匯流排開發來尋找這些宣告來控制對它的端點命名空間的存取。 提供一個傳送宣告任何使用者將會允許傳送訊息至 URI,範圍,提供一個接聽宣告任何使用者將可以在範圍的 URI 中建立一個接聽。 如果我要刪除的規則,會產生傳送語彙基元,我 pluralsight 帳戶不再能夠傳送訊息,透過.NET 服務匯流排在這個範圍內,它只能接聽。

[圖 5 Confi guring 規則的資料範圍

它容易將類似的支援加入您自己的服務。 您只要定義新的範圍內管理入口網站的 URI,然後定義必要的規則來產生宣告預期您 Service.within 您服務的邏輯,則您將需要撰寫程式碼,來檢查傳入的宣告,使根據有哪些宣告及它們所包含的授權決策。 同時 WCF 和新的 「 日內瓦 Framework 讓這可以透過其宣告式程式設計模型。 如需完整的範例,請參閱在.NET 存取控制項服務快速入門範例在 SDK 中 (英文)。

在.NET 服務匯流排

.NET 服務匯流排的主要焦點是提供雙向 (Bidirectional) 連線,在網際網路範圍可以挑戰,因為以不斷讓-一般防火牆和 NAT 裝置,限制傳入的流量,在大部分的環境中。 在.NET 服務匯流排,完成這藉由提供集中式的轉接服務,提供必要的網路的周遊邏輯定域機組中 (請參閱 [圖 6 )。

[圖 6 .NET 服務匯流排的轉接

轉送可讓寄件者與接收者透過 Rendezvous 位址進行通訊。 接收者連線到透過輸出連接埠轉送,並且建立雙向 (Bidirectional) 通訊端,指定要接聽 Rendezvous 位址的通訊。 寄件者,可以再傳輸到接收者為中指定相同 Rendezvous 位址轉送的訊息。 轉送會收到訊息時, 它就會轉送要在對應的接聽程式 (或接聽程式在多點傳送的情況下),訊息共用相同的 Rendezvous 位址。 轉送會傳送訊息給接收者透過雙向 (Bidirectional) 通訊端已在表示接收者所需的任何輸入的連接埠的地方。 這說明為什麼機制運作方式,透過防火牆和 NAT 的裝置 (如典型的聊天室應用程式)。

在.NET 服務匯流排支援各種不同的訊息樣式包括單向]、 [要求-回應並甚至發行-訂閱。 它支援 HTTP 和 TCP。 視是否您很在意互通性 (Interoperability) 或效能的通訊 轉送甚至提供的交涉直接 TCP 連線以連接埠的預測演算法基礎的兩個對等節點之間的模式。 略過,轉送允許較高的輸送量時傳送大型郵件。 整體,.NET 服務匯流排會提供許多彈性調整到各種現今最常見的通訊案例。

很重要,要瞭解如何為您的.NET 服務匯流排端點 URI 的結構。 當您公開 TCP 通訊的端點時,您將需要結構,您的位址,如下所示:

sb://servicebus.windows.net/services/{solution}/{name}/{name}/...

當您要公開的基礎的 HTTP 位址時,只取代 sb 通訊協定的配置,使用 HTTP。 請注意您指定您的方案名稱做為位址的一部分以區別您的端點和所使用的.NET 服務匯流排在其他解決方案。 這是相同的位址範圍 URI,.NET 存取控制項的服務組態內使用。 在 [方案名稱之後,您可以完整的控制,來指定您想要使用您的端點的任何 URI 名稱階層架構。

寄件者和接收者會需要顯示傳送] 或 [接聽到.NET 服務匯流排 (取得從.NET 存取控制項的服務) 的宣告中,傳送,或在特定的位址上接聽。 因為.NET 服務匯流排會有信任關係與.NET 存取控制項服務,是能夠讀取安全性語彙基元,它會發出並處理這些宣告。 而這些宣告,您無法使用,轉送,(除非有特定的端點已設定為允許是可能的匿名傳送的)。

整合.NET 服務匯流排的轉接,最簡單方式是透過新 WCF 轉送繫結 (隨附在 SDK 中。 沒有大部分的內建 (請參閱 [圖 7 ) 的 WCF HTTP / TCP 繫結的對等用法的轉送繫結。 也有一些新的沒有清除對應項目 NetOneWayRelayBinding (適用於積極的單向 traversals) 和 NetEventRelayBinding (適用於單向多點傳送案例,通常用於發佈 / 訂閱) 的。 當您使用轉送繫結而不是標準的繫結、 處理基礎的 WCF 通道元件與.NET 存取控制項服務,並在幕後,轉送通訊,您的程式碼可能甚至還需要變更。

[圖 7 WCF 轉接繫結
標準的 WCF 繫結 對等的轉接繫結
BasicHttpBinding BasicHttpRelayBinding
WebHttpBinding WebHttpRelayBinding
WSHttpBinding WSHttpRelayBinding
WS2007HttpBinding WS2007HttpRelayBinding
WSHttpContextBinding WSHttpRelayContextBinding
WS2007HttpFederationBinding WS2007HttpRelayFederationBinding
NetTcpBinding NetTcpRelayBinding
NetTcpContextBinding NetTcpRelayContextBinding
N / A NetOnewayRelayBinding
N / A NetEventRelayBinding

在.NET 服務匯流排也提供了服務登錄格式的餵送的原子。 此餵送是: 透過標準的 HTTP GET 要求解決方案的基底位址。 摘要將自動包含所有使用中的接聽程式端點,在特定的解決方案內的資訊。

透過.NET 服務的匯流排通訊

現在讓我們逐一完成完整的通訊透過使用發行 / 訂閱模型在.NET 服務匯流排的範例。 首先,假設我有下列的服務合約的方法:

[ServiceContract(Namespace = "")]
public interface ITweetNotifier {
  [OperationContract(IsOneWay = true, 
    Action = "urn:DisplayTweet")]
  void DisplayTweet(string status);
}

並假設我有裝載服務 (稱為 TweetNotifierApp),只會列印傳入的狀態文字到主控台 (Console) 視窗的應用程式 — 沒有特殊的資訊。

我可以設定藉由使用轉送的繫結的其中一個端點的定義,透過.NET 服務匯流排接聽主控件應用程式。 因為我希望實作 (使用接聽可能多個程式) 的發行 / 訂閱,我將會想要使用 [NetEventRelayBinding,如 [圖 8 ] 所示。

[圖 8 NetEventRelayBinding

<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="Default">
          <transportClientEndpointBehavior 
            credentialType="UserNamePassword">
            <clientCredentials>
              <userNamePassword 
                userName="pluralsight" 
                password="{password}"/>
            </clientCredentials>
          </transportClientEndpointBehavior>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service name="TweetServiceLibrary.TweetService">
       <endpoint address="sb://servicebus.windows.net/services/pluralsight/tweet"
            behaviorConfiguration="Default" 
            binding="netEventRelayBinding"
            bindingConfiguration="" 
            contract="TweetServiceLibrary.ITweetNotifier" />
      </service>
    </services>
  </system.serviceModel>
</configuration>

請注意,我也在使用特殊的行為,告訴 WCF 哪些認證傳送至.NET 存取控制 」 服務來驗證,並取得所需的.NET 服務匯流排宣告。要將如果您嘗試執行此範例,使用您自己的認證取代使用者名稱和密碼。

當主應用程式的執行 WCF 裝載基礎結構自動驗證與.NET 存取控制項服務,取得宣告,然後會開啟到.NET 服務匯流排的輸出連接埠並登錄在指定的位址上接聽程式。在該點在本機裝載的服務將會準備好接收訊息轉送到指定的位址上.NET 服務匯流排。我也可以瀏覽至解決方案在此時存取服務登錄餵送的基底位址,而且任何使用中的接聽程式的端點將出現在摘要]。

現在我可以撰寫用戶端應用程式,來透過.NET 服務匯流排在相同的 Rendezvous 位址上傳送郵件。這裡的用戶端程式的樣子:

static void Main(string[] args) {
  ChannelFactory<ITweetNotifier> cf = 
    new ChannelFactory<ITweetNotifier>("tweetService");
  ITweetNotifier tweetNotifier = cf.CreateChannel();

  Console.WriteLine("Enter a status update: ");
  string status = Console.ReadLine();
  while (!status.Equals("")) {
    tweetNotifier.DisplayTweet(status);
    status = Console.ReadLine();
  }
}

需要用戶端組態檔看起來就像主應用程式組態檔。 只在端點定義必須出現在 區段內。 其他比,它應該看起來相同,包括在 有關在用戶端端點上設定。

這在地方,我可以會執行 「 後面單一執行個體用戶端應用程式,主應用程式的多個的執行個體,並我查看的所有郵件的多點傳送轉送 fashion (請參閱 [圖 9 )。 即使主應用程式是在防火牆或 NAT 裝置,將會運作,轉送。

[圖 9 執行.NET 服務的匯流排示範

這是支援.NET 服務匯流排的許多可能的通訊案例的一個範例。 如需更多範例,請參閱.NET Services SDK 中提供各種.NET 服務匯流排範例。

.NET 的工作流程服務

當您向定域機組中移動電腦工作流程協調複雜的服務互動,複合定域機組的方案中提供一個簡單的方法您建置。

.NET 的工作流程服務會提供執行及管理 WF 工作流程,定域機組中的一個可擴充裝載環境。 因為裝載的環境建立在視窗 Azure 上,可以依需求,縮放比例的因為正在使用 WF Runtime,工作流程執行個體未固定任何特定的伺服器-它們沒有要將從一個伺服器到另一個 (在 Windows Azure) 執行的每個劇集的。 .NET 的工作流程服務會依賴 WF 持續性服務,利用 Microsoft SQL 服務儲存執行工作流程的狀態並確保復原功能。

您要建置定域機組,使用 Visual Studio 和您永遠使用設計的相同工作流程工具] 的工作的流程。 最後,您建立 XAML 的工作流程和規則的檔案。 然後這些 XML 檔案部署.NET 的工作流程服務,他們可以用來建立工作流程執行個體。

在.NET Services SDK 會包含建立一個 SequentialCloudWorkflow 的標準 SequentialWorkflow 樣板特製化的版本,在專案範本。 定義要在定域機組中執行的工作流程時, 也有哪些活動,您可以在工作流程中使用的限制。 您可能會使用 WF 基底活動程式庫中活動的子集,以及一組新的自訂定域機組活動提供做為.NET Services SDK 的一部分 (請參閱 [圖 10 ])。 這些定域機組活動可以傳送、 接收,並處理訊息,但目前的資訊。 更多的活動將會加入在未來版本,以增強您的定域機組的基礎工作流程的功能。

[圖 10 雲霧工作流程活動
活動 描述
CloudHttpReceive 收到 HTTP 張貼至工作流程執行個體的特定 URL 的要求
CloudHttpSend 叫用指定的 URL 上的 HTTP GET 或 POST 作業,並回應
CloudServiceBusSend 傳送訊息給在.NET) ServiceBus 上特定端點
CloudXPathRead 讀取指定的輸入 XML 文件的資料
CloudXPathUpdate 設定輸入 XML 文件中所指定的資料
CloudDelay 等待在指定的時間範圍

類似其他服務,.NET 的工作流程服務提供的系統管理入口網站管理工作流程類型和執行個體。 在.NET Services SDK 也提供用戶端管理 API,可讓您以程式設計方式完成相同的事。

[圖 11] 完成的工作流程設計

建置雲霧工作流程

請參閱.NET 的工作流程服務的運作方式,讓我們來建置工作流程,使用公用 Twitter 摘要,並傳送 [最新的項目] 到任何訂閱 TweetNotifierApp 執行個體,透過.NET 服務匯流排。

首先,我要做的是在 Visual Studio 2008 中建立新 CloudSequentialWorkflow 專案。 我會呼叫它 MonitorTwitterFeed。 這時候您應該會看到傳統 WF 設計工具。 如果您展開工具箱] 的活動時,您會看到限制一組活動,您要允許使用。

我需要使用一段持續輪詢公用的 Twitter 活動摘要每隔 60 秒。 因此首先我要拖曳時到工作流程的活動會在設計介面,,然後指定條件的宣告式規則條件。 我在這個範例的目的,製作條件永遠傳回真。 我接下來,拖曳到時一個 Sequence 活動活動,以定義我要重複執行步驟的順序。

現在,我要 60 秒的時間延遲,因此我拖曳一個 CloudDelay 活動序列,並指定 00:01:00 逾時的值。 我需要擷取公用的 Twitter 餵送使用的 HTTP GET 要求,因此我將 CloudDelay 活動的下面一個 CloudHttpSend 活動,並適當地設定 (設定方法 GET 和 http://twitter.com/statuses/public\_timeline.xml URL)。

接下來,我需要讀取最新的狀態項目,從最上方所可能透過 CloudXPathRead 活動摘要。 之後放在這個順序,我在 InXml 屬性繫結至在前一個活動的 Response 屬性。 我也會設定為狀態 / 狀態 / 文字指定 XPath 運算式的 InXPathExpression。

接下來,我需要建立一個適當的 XML 訊息傳送給 [TweetNotifierApp 透過.NET 服務匯流排。 我可以透過 CloudXPathUpdate 活動來完成。 目標服務需要訊息,看起來如下:

在此顯示狀態

所以之後放置順序 CloudXPathUpdate 活動,我需要在 InXml 屬性中輸入 XML 和 「 / DisplayTweet / 文字 「 InXPathExpression。 我也需要繫結至 OutReadValue 屬性,在先前的活動上的 InNewValue。 這基本上是告訴活動如何建構新的 XML 文件,藉由插入 XML 範本的輸入的值 (最新的狀態)。

最後,我需要指示工作流程傳送訊息,透過.NET 服務匯流排。 這是 CloudServiceBusSend 活動的時候。 之後請將它置於在序列結束,我必須設定為 urn: DisplayTweet 」、 「 以多點傳送,the ConnectionMode 和 「 sb://servicebus.Windows 位址的動作。 net / 服務 / pluralsight / tweet。 我繫 Body 屬性結至在先前的活動上 OutXml 屬性時。 使用,在地方工作流程就 [完成]。 請參閱 [圖 11 。 產生的工作流程設計的一個完整的視覺化

現在,部署和測試工作流程,我只是上按一下滑鼠右鍵工作流程設計介面,並選取部署工作流程。 我在輸入您的解決方案的認證,並按部署與執行。 增益集將上載 [至.NET 的工作流程服務的 [您的 XAML 定義,並啟動的執行個體中。 也是可上載 XAML 定義,以手動方式透過管理入口網站上表單。

您已部署工作流程之後,您可以瀏覽管理入口網站,並請參閱 「 工作流程類型和執行的執行個體。 如果您執行 [TweetNotifierApp 任何執行個體,您會看到的 Twitter 訊息會顯示每隔 60 秒。

Aaron Skonnard 是 Pluralsight 的 Pluralsight 創始人之一,該公司,培訓提供者提供老師們的帶領和視 Microsoft 開發人員的課程。 這幾天 Aaron 會花費大部分時間錄製 Pluralsight 點播 ! 課程會著重定域機組,電腦、 Windows Azure 及 WCF,REST。 多年來他虔心投入撰寫,說,教導世界的專業開發人員。 您可以將他在到達 pluralsight.com/Aaron .