0

私は何時間もグーグルでたくさんのことを読みましたが、正解を見つけるにはあまりにも愚かであるようです。

AzureWebサービスを作成したいと思います。そして、紺碧のどの技術を使うべきかわかりません...

トピックを深く読み始める前に、正しいものを読んでいることを確認したいと思います...

多くのお客様にご利用いただけるアプリケーションを作りたいです。(100人と1.000.000人のユーザーがサービスと通信できることが非常に簡単であることが重要です。azureは簡単にスケーラブルであるため、azureを使用することにしました)

各顧客はサブスクリプションを購入でき、ユーザー名とIDを使用してサービスに接続できます。

各顧客は、さまざまなクライアント(ブラウザー、Windowsクライアント、iOS、Androidなど)を使用してサービスに接続できます。

私がすでに知っているのは、データレイヤー(データアクセスコンポーネントがazureSqlに接続するなど)とビジネスレイヤーがどのように機能するかです。(ビジネスレイヤーアプリケーションファサードはC#.netにあり、Azureアプリで実行できるようになります)

また、クライアント側も重要ではありません。

ビジネスファサードと、それらを使用するすべての外部システム(つまりクライアント)との間の通信を理解する必要があります。

だから:私はサービスレイヤーのテクノロジーとして何を使うべきですか?どのメッセージタイプ、...

重要なのは、多くのエンドユーザーの1人が2つの異なるクライアント(同じユーザー名とパスワードを使用)を介してサービスと通信していて、クライアントがビジネスレイヤーを介して何かを変更している場合、各クライアントにデータが表示されるようにすることです。変更する必要があり、他のクライアントはその変更をすぐに受け取る必要があります。(同時に:1つのクライアントからの1つの変更は、その時点で接続されている1つのユーザーからの他のすべてのクライアントに影響します)接続されていない場合、次のログイン時に変更を取得します...

つまり、顧客がどのクライアントを使用しているかはまったく問題ではありません(または、複数のクライアントの場合も問題ではありません)。

すべてのクライアントがとにかく同じ機能を提供しているためです。ログインがあり、その後、ユーザーはいくつかのデータを取得し、そのデータを処理できます。

メッセージングとコミュニケーションの経験がある誰かが私に正しい道を教えてくれるなら、それは完璧でしょう...

4

2 に答える 2

2

あなたの質問に簡潔に答えるのは非常に難しいです。

ただし、ここにあなたが始めるためのいくつかの指針があります:

必要に応じて、数百万のユーザーを処理できるAzureでホストされるサービスを構築することは完全に可能です。これが、Halo4チームがすべてのサービスをAzure上に構築した理由です。

ユーザーがブラウザやさまざまなプラットフォームで実行されているアプリからサービスにアクセスできるようにするため、サービスを3つの主要な部分で構築する必要があります。

  1. HTTP(S)を介してXML/JSONと通信できるすべてのユーザーがアクセスできるHTTPベースのAPIを公開するサービス。
  2. ユーザーがWebブラウザを介してシステムにアクセスできるようにするHTML5Webサイト
  3. [オプション]システムのプラットフォーム固有のエクスペリエンスを提供するモバイルアプリ。

ほとんどの場合、JSON/XMLデータを含むHTTPGET/ POST / PUT / DELETEメッセージを受け入れる1つ以上のRESTサービスとしてAPIレイヤーを構築し、公開する必要があります。

Microsoftの.NETスタックを使用してこのAPIレイヤーを構築することを計画している場合は、ASP.NETWebAPIで読み始めることを強くお勧めします。

もちろん、WebサイトはASP.NETを使用して構築できます。私は、 MVCアプローチによって提供される関心の分離を明確にすることを好むため、ASP.NETMVCを使用してWebサイトを構築することを好みますそうは言っても、必要に応じて、 ASP.NETWebフォームを使用してサイトを構築することを妨げるものは何もありません。

特に動的なサービスを構築する場合は、SignalRなどのテクノロジーを使用して、データ変更の通知を複数のブラウザーページ、複数のブラウザー、および複数のデバイスで複数のユーザーが実行している複数のアプリに動的にブロードキャストできるサービスを構築することもできます。

もちろん、何千もの同時ユーザーを処理するように拡張できるシステムを構築するには、慎重な検討、計画、および実験が必要です。これまでにこれを行ったことがない場合は、たくさんの読書と実験を行う必要がありますが、そうすることで、あなたもたくさんの楽しみを味わうことができます:)

幸い、Azureは、キャッシング、キューイング、モバイル通知、リレーショナルデータベース、テーブル/キュー/ブロブストレージ、フェデレーション認証、PAASロール、IAAS仮想マシンインスタンス、CDNなど、クラウドスケールのシステムの構築を容易にするいくつかの重要なテクノロジーを提供します。 。

正直なところ、Azureの強力なインフラストラクチャ上に構築できない多くのシステムを考えることはできません。

ただし、小さなことから始めることをお勧めします。最初に、システムの1つのコア部分を構築することに焦点を合わせます。それがどのように機能するか、それを展開する方法、それを監視する方法、それのパフォーマンスと信頼性を測定する方法、それをパッチして更新する方法を学びます。次に、別のチャンクを噛んで繰り返します。

ああ...そしてPAAS/IAASロール/VMの使用を計画している場合は、開発/テストを行っていないときは必ずシャットダウンして削除してください。実行する時間ごとに請求が発生するためです。それらを使用していないか、それらのインスタンスに何かをデプロイしているわけではありません!

サービスにアクセスするために構築するさまざまなアプリケーションについては、多くの選択肢があります。選択を単純化するのに役立つかもしれないと考えるべきことの1つはMonoです。Monoは、.NETのオープンソース実装であり、Linux、Android、iOS、OSX、Windows Phone、Windowsデスクトップ、Windows 8、Play Station、XBoxなど、遭遇する可能性のあるほぼすべてのプラットフォームで実行されます。モノラルで、アプリを注意深く設計することで、複数のプラットフォームを対象とする複数のアプリで大量のコードを再利用できるようになります。

幸運を!

于 2013-02-16T18:02:37.630 に答える
1

ここにはAzureに固有の情報はありません。

「ほぼリアルタイムのメッセージング」のための.Netの非常に優れたライブラリであるSignalRをお勧めします。Azureであるかどうかに関係なく、.Net環境(たとえば、Asp.Netを使用するWebアプリの場合)でセットアップするのは簡単です。

AndroidおよびIO用のsignalRクライアントについて聞いたことがありますが、それらが成熟していてニーズに合っているかどうかを確認する必要があります。

于 2013-02-16T18:01:15.017 に答える