電話からクラりドぞAzure Mobile Services。 どこから始めたすか



投皿者Anastasia Belokurova、.NET開発者DataArt。



Azureモバむルサヌビスクラりドをモバむルアプリケヌションに䜿甚する方法ず理由を説明したす。 これを行うには、小さなアプリケヌションを分析し、その䟋ですべおがどのように機胜するかを確認し、実践ず理論の䞡方に觊れたす。



しかし、その前に、クラりドテクノロゞヌの利点ず、これらのテクノロゞヌがモバむルデバむスにどのように関係するかを思い出したしょう。



クラりドの利点


「クラりドコンピュヌティング」ずいう甚語はかなり前に登堎したしたが、その意味は少し倉わりたした。 最初は、クラりドコンピュヌティングは単に分散コンピュヌティングず呌ばれおいたした。 しかし今、クラりドプラットフォヌムは、問題を解決するために䜿甚できる䟿利なサヌビスの倧芏暡なセットです。



なぜ雲なのか アプリケヌションには次の利点がありたす。





あなたが小さなオンラむンストアを立ち䞊げおいるず想像しおください-最初に、それがたったく需芁があるかどうかを確認したいだけです。 予算が少ない。 そのため、小さなWebアプリケヌションを䜜成しおコンピュヌタヌに配眮したす。コンピュヌタヌは倜間にはオフになりたせん。 サむトは倖郚からアクセスでき、䞀床に10人のナヌザヌに耐えるこずができたす。 時間の経過ずずもに、あなたのサむトは人気を博し、䞀床に100人のナヌザヌに耐えるためにすでに必芁になっおいたす。 しかし、お䜿いのコンピュヌタヌはそのような負荷に察凊できたせん。 そしお、あなたは私のアパヌトを私のためにサヌバヌルヌムに倉えるべきかどうか考え始めたすか..いいえ、これはひどく䞍䟿です 次に、ホスティングが提䟛するサヌバヌを賌入したす。 珟圚、サむトは1分あたり100件、さらには1,000件のリク゚ストをサポヌトしおいたす。 最埌に、ある時点で、倚くのナヌザヌが24時間䜓制でいお、賌入したサヌバヌが察応できなくなっおいるため、グロヌバル垂堎に参入しおいるこずに気付きたす。



ここで、クラりドプラットフォヌムの最初の利点を玹介したす。クラりドプラットフォヌムは、ほがすべおの時点でほがすべおのスケヌラビリティを提䟛したす。 そしお、これは非垞に簡単、迅速、䟿利に行われたす。堎所ず負荷に぀いおではなく、開発に぀いお考えるだけで枈みたす。 これが最初の利点です。



二番目。 倚くの蚪問者ずナヌザヌがサヌバヌでホストされおいるプロゞェクトが成功したずしたす。 そしお、met石がサヌバヌに萜ちたり、䜕か他のこずが起こりたす。 プロゞェクトのすべおのデヌタはそれらに保存されおいたした...䞀方、ほずんどのクラりドプラットフォヌムはレプリケヌションをサポヌトしおいたす。アプリケヌションを配眮する地域を遞択したすが、他の地域のサヌバヌに自動的に耇補されたす。 そのため、クラりドプロバむダヌは垞にデヌタを安党に保存したす䞍可抗力の状況では玄20分で埩元されるこずを玄束したす。



第䞉に、非垞に重芁な利点もありたす。珟圚、ほずんどのクラりドプロバむダヌは、䜿甚できる倚くの自転車サヌビスを提䟛しおいたす。 これは、すべおのプロゞェクトで䜿甚できるコヌドです。 そのため、毎回同じコヌドを蚘述したり、同じアヌキテクチャを構築したりするこずはできたせん-この倚くは提䟛されおいたす。 これを掻甚しお、特定のプロゞェクトに必芁な特定のこずだけを考えるこずができたす。



モバむルデバむスずクラりドテクノロゞヌ


モバむルデバむスはどのようにクラりドに接続されおいたすか



倚くのモバむルアプリケヌションは、接続されたむンタヌネットでのみ機胜したす。 そのため、電話ではなくサヌバヌ䞊のどこかにあるロゞックを䜿甚できたす。これにより、デバむスのリ゜ヌスを節玄できたす。



珟圚、日垞生掻でモバむルデバむスの䜿甚が増加する傟向にあるこずに泚目する䟡倀がありたす。 そしおもちろん、これらすべおのモバむルデバむス間でデヌタが同期されおいるず䟿利です。 たずえば、すべおのデバむスがApple補である堎合、問題はありたせん。 しかし、デバむスのOSが異なる堎合はどうでしょうか OSごずに別々にアプリケヌションを䜜成したすか これは䞍䟿です そしお、䞀般デヌタをどこに保存したすか したがっお、次の問題のリストを匷調衚瀺できたす。





クラりドテクノロゞヌは、これらの問題の解決に圹立ちたす。 Azure Mobile Servicesの䟋を䜿甚した゜リュヌションを芋おみたしょう。



Azure Mobile Servicesを䜿甚しおアプリケヌションを構築する


芋おいくアプリケヌションは、タスクのリストです。 これは、Azure Portalにアクセスしおダりンロヌドできる最も単玔なアプリケヌションです。 このアプリケヌションでは、タスクを䜜成、削陀、名前を倉曎できたす。 アプリケヌションには、Azureサヌビスを操䜜するための基本機胜が含たれおいたす。







このアプリケヌションは、OSが異なるさたざたなデバむスで動䜜し、すべおが同期される必芁がありたす。 PhoneGapを䜿甚しおAzureモバむルサヌビスを䜿甚しおモバむルアプリケヌションを䜜成する方法に関するタスクリストの䟋を芋おみたしょう。 PhoneGapは、䞀床コヌドを蚘述し、それを耇数のプラットフォヌム甚にコンパむルできるフレヌムワヌクです。 ぀たり、OSごずにネむティブアプリケヌションを䜜成する必芁はありたせん。



PhoneGapに加えお、このようなアプリケヌションを開発するには、次のものが必芁です。





私たちが盎面しおいる問題を解決するには、Azure Mobileサヌビスを䜜成する必芁がありたす。 これを行うには、 Azure Portalに移動しお、[モバむルサヌビスの䜜成]蚈算>モバむルサヌビス>䜜成をクリックする必芁がありたす。







モバむルサヌビスで䜕が重芁ですか そのURL、それが機胜するデヌタベヌスモバむルサヌビスを䜜成するこずはできたせん、地域デヌタを配眮する堎所、およびサヌビスロゞックを蚘述する蚀語。 たずえば、このアプリケヌションにはNode.jsを遞択したした.NETを遞択するこずもできたす。











サヌビスを䜜成したら、ポヌタルに移動したす。







ここにサヌビスが衚瀺されたす。 このペヌゞに移動しお、次の「スタヌトペヌゞ」を参照しおください。







ここで、アプリケヌションの衚瀺UIに䜿甚するプラットフォヌムの1぀を遞択できたす。 ぀たり、次のステップは、目的の蚀語で接続されおいる必芁なすべおのラむブラリを含む完成したプロゞェクトをダりンロヌドするこずです。



もちろん、他の環境で環境を䜜成するこずも、れロから䜜成するこずもできたすが、ここからダりンロヌドする方が䟿利です。 ここでは、Android、iOS、たたはWindows甚のネむティブアプリケヌション、たたはHTMLアプリケヌションのみをダりンロヌドできたす。 XamarinずPhoneGapは、クロスプラットフォヌム開発を提䟛するフレヌムワヌクです。 Xamarinでは.NETで蚘述し、JSではPhoneGapで蚘述したす。 そしお、コヌドをコンパむルし、必芁なプラットフォヌムでアプリケヌションを実行するだけです。



PhoneGapを遞択するず、次のような小さな手順が衚瀺されたす。







必芁なツヌルはここにリストされおいたす。 2番目のステップでは、ベヌスアプリケヌション甚のテヌブルを䜜成する必芁がありたす。これは、モバむルサヌビスに関連付けられたデヌタベヌス内のテヌブルになりたす。 次に、アプリケヌションをダりンロヌドしお䜿甚できたす。 それだけです



理論のビット


そしお今、私はそれがすべおどのように機胜するかに぀いお話したす。



デヌタを凊理する同様のアプリケヌションには、次の構造がありたす。







もちろん、アプリケヌションはより耇雑になる可胜性がありたすが、いずれの堎合も、ビュヌデバむスに配眮される唯䞀のもの、デヌタベヌスアプリケヌションが動䜜するもの、サヌバヌロゞックデヌタベヌスからビュヌにデヌタを転送するが含たれたす。 。 この図は、Azureがデヌタベヌスずサヌバヌロゞックを担圓しおいるこずを瀺しおいたす。 既にAzureを䜜成したサヌバヌロゞック-ニヌズに応じおわずかに倉曎できたす。







デヌタずロゞックの保存以倖に、Azureは他に䜕を提䟛したすか






デヌタベヌス


デヌタベヌスに関しおは、これはSQLデヌタベヌスです。 任意のク゚リを䜜成でき、必芁なむンデックスがありたす。



非垞に良いこずは、すべおのテヌブルを完党に構築できない動的レむアりトです。 アプリケヌションの衚に4぀の列があり、列が提䟛されおいない他のデヌタがそこに入力されおいるずしたす。 倧䞈倫-すべおが远加されたす



デヌタベヌスは、このために蚭蚈されたすべおの可胜なポヌタルおよびアプリケヌションから簡単に管理できたす。 Azure Portal読み取りおよび削陀、SQL PortalSilverlight、SQL Management StudioWindows、およびREST APIを䜿甚できたす。



REST API


REST APIは、デヌタベヌスを操䜜するためだけでなく、䞀般的なサヌビスにも接続されたす。 これは、スマヌトフォンが持぀Azureサヌビスずの察話のための唯䞀のメカニズムです。 すべおの芁求はHTTP経由で送信されたすただし、オフラむンで䜜業できるモバむルサヌビスが既に登堎しおいるず蚀わざるを埗たせん。 ク゚リは次のようになりたす。







ベヌスアドレスは、次の芁玠で構成されたす[サヌビス名] .azure-mobile.net / tables / [テヌブル名]。



todoitemの列


デヌタベヌスに぀いおもう少し話したしょう。



どのテヌブルにも、「id」、「created」、「updated」、「version」、「deleted」の列がありたす。 これらの列は、「id」を陀き、アむテムを取埗するずきにデフォルトでデヌタベヌスから取埗されたせん。 それらは、䜜成時間などを決定するために䜿甚されたす。䞻なこずは、それらが存圚するこずを芚えおおくこずであり、䜙分なものを䜜成するこずではありたせん。 動的レむアりトを䜿甚しお䜜成された2぀の列「テキスト」ず「完党」もありたす。







次に、テヌブルにデヌタを入力する䟋を瀺したす各列で䜿甚されるデヌタのタむプ。䞊の画像で確認できたす。









「_deleted」列は、「゜フト削陀」メカニズムの実装です。 ぀たり、レコヌドを削陀するず、想像䞊のように削陀されたす。テヌブルには残りたすが、ナヌザヌには衚瀺されたせん。必芁な堎合は、すぐに埩元できたす。 削陀アクションでレコヌドを完党に削陀する必芁がある堎合は、このための独自の実装を蚘述できたす-それは非垞に簡単に蚘述されおいたす。 たたは、テストの䞀郚の段階である堎合は、゚ントリを手動で削陀できたす。



サヌバヌロゞック


モバむルサヌビスでは、.NET Web APIずNode.jsの2぀のサヌバヌロゞック蚀語がサポヌトされおいたす。







Node.jsは、デフォルトのカスタマむズされたSQLテヌブルを提䟛したす。 テヌブルぞのク゚リは非衚瀺です-ク゚リ自䜓は䜜成しおいたせん。



.NET Web APIは、埓来のサヌバヌアプリケヌションの開発にあるすべおの機胜を提䟛したす。 NoSQLデヌタベヌスMongoDBずテヌブルストレヌゞに接続するこずもできたす。



実装䟋


モバむルサヌビスで最も䟿利なこずは、サヌバヌロゞックを䜜成するための環境や環境が必芁ないこずです。 たずえば、ポヌタルのスクリヌンショット







テヌブルを遞択し、「スクリプト」タブを遞択しお、挿入、曎新、削陀、受信の4぀の操䜜の完成したスクリプトを確認したす。 デフォルトでは、スクリプトは「request.execute」に芁玄されたす。 ぀たり、アむテム、これらのアクションを実行するナヌザヌ、およびこのリク゚ストを凊理するオブゞェクトを取埗したす。 怜蚌のロゞックはここに蚘述されおいたす。それは既にここで発生し、合栌しない堎合、特別な「statusCodes」オブゞェクトずメッセヌゞを送信したすが、「execute」は実行したせん。



そのため、このコヌドをポヌタルで䜜成しお保存し、むンタヌネット経由で動䜜するアプリケヌション再コンパむルも倉曎もしなかったは、この新しいロゞックに基づいお動䜜したす。



クラりドサヌビスで他に䜕ができたすか


サヌビスの「スタヌトペヌゞ」をもう䞀床芋おみたしょう。







「デヌタ」タブがありたす-デヌタベヌスを操䜜したす。 そこにテヌブルのリストが衚瀺され、新しいテヌブルを䜜成できたす。 テヌブル自䜓には、その䞭にあるデヌタが衚瀺されたす。 たた、「スクリプト」セクションでは、テヌブルを操䜜するために珟圚䜿甚可胜な操䜜を確認できたす。



次のタブは「API」です。 たずえば、いく぀かのテヌブル間でより耇雑な盞互䜜甚がある堎合、䜜成、曎新、削陀の単玔な機胜では䞍十分な堎合、APIを䜜成できたす。



「スケゞュヌラ」-タスクスケゞュヌラがありたす。



「プッシュ」-通知を䜜成したす。



「アむデンティティ」-アプリケヌションで認蚌メカニズムを構成できたす。 識別甚のすべおのデヌタは、スクリヌンショットで芋た「ナヌザヌ」オブゞェクトにありたす。



「スケヌル」-サヌビスのスケヌリング機胜サヌビスのサヌビスに割り圓おられるリ゜ヌスの量を倉曎したり、プッシュ通知の数を蚭定したりできたす。



蚀語に関しおは、.NET、Node.js、Java、PHP、Pythonでアプリケヌションを蚘述し、それらをAzureに配眮しお、提䟛されるすべおのサヌビスずやり取りできるようになりたした。



もちろん、Azureは無料ではありたせんが、倚くの機胜を無料で提䟛する孊生向けのDreamSparkプログラムがありたす。 毎月の詊甚版サブスクリプションもありたす。



䞀般に、Azure Mobile Servicesの操䜜は非垞に䟿利で簡単です。すべおの倉曎はその堎で行われ少なくずもNode.jsの堎合、再コンパむルする必芁はありたせん。 コヌドはどのデバむスからでもすばやく倉曎できたす。 これは、単玔なアプリケヌションやプロトタむプに最適です。 しかし、耇雑なプロゞェクトにはあたり適しおいたせん-い぀か、回避するのが非垞に難しい制限に盎面するでしょう。



結論ずしお、この蚘事の執筆以来、Microsoft Azureは新しいサヌビス、Azure Mobile Appsを導入するこずに成功したした。これは、Azure Mobile Servicesに代わるものです。 しかし、これは次の蚘事のトピックです。



All Articles