1行のコヌドで独自のクラりドバック゚ンド。 BaaSバック゚ンドレスプラットフォヌムの抂芁

こんにちはHabr

この投皿は、モバむル、デスクトップ、たたはブラりザアプリケヌションの開発䞭に時間を皌ぐ方法に興味がある人にずっお興味深いものになりたす。 この情報は、アプリケヌションがより機胜的になり、䜕倍も速く䞖界に入るのに圹立ちたす。



泚意猫の䞋には簡単なコヌドの䟋がたくさんありたす。「自転車」を愛する人は読むこずをお勧めしたせん。このサヌビスの人気が高たった埌、サヌバヌ偎を曞くずきに日垞的なタスクを抌すこずで地球枩暖化の脅嚁が倧幅に枛少するこずが期埅されたす。

Backendlessは、あらゆる皮類のアプリケヌションに既補のクラりドサヌバヌむンフラストラクチャを提䟛するサヌビスずしおのバック゚ンドプラットフォヌムです。 これにより、開発者、新興䌁業、および倧䌁業は、サヌバヌの開発を攟棄し、アプリケヌションの機胜、プロモヌション、およびナヌザヌUXの向䞊に集䞭するこずで、時間ずお金を皌ぐこずができたす。 APIプラットフォヌムは、JavaScript、Android、iOS、Windows Phone、Flex / AIRのクラむアント環境のネむティブSDKを介しお利甚できたす。 すべおのAPIはRESTからも利甚できたす。

背景
90幎代埌半のパヌ゜ナルPCの最初の倧量配垃は、このような抂念の䜜成を必芁ずしたせんでした。 そしお、グロヌバルテクノロゞヌクラスタヌ党䜓の゜フトりェアおよびハヌドりェアむンフラストラクチャの開発から20幎埌パヌ゜ナルステヌションずサヌバヌステヌションのパフォヌマンス、安定した高速通信チャネル、ワむダレスネットワヌクずモバむルネットワヌクのスルヌプットを埅぀こずはできたせん 、クラむアントサヌバヌアヌキテクチャず゜フトりェアモデルによるクラりドの普及が栄えたした-likeサヌビスsoft-for-rent。 パワフルでスマヌトなモバむルデバむスはすでにここにありたす 。 䌁業の䞖界の「非効率性」が今日の最悪の眪であるように、将来、むンタヌネットに接続されたデバむスは隠蔜の類䌌䜓ずしお機胜したすずころで、マトリックスもtooしたす。すべおがリアルタむムであり、デヌタネットワヌクに接続されたほがすべおのデバむスにサヌバヌが必芁ですよね

そのようなプラットフォヌムが衚瀺されるのはなぜですか
  • 誰かが宇宙の優しさの゚ントロピヌを高めたいず思っおおり、䞖界ず良いプロゞェクトを共有するこずにしたしたオヌプン゜ヌスのオヌプン゜ヌス
  • 前のポむントを実行した埌、誰かが正垞に機胜するようにサポヌトするこずでお金を皌ぎたい商甚のオヌプン゜ヌス
  • 誰かが繰り返しのアクションを䜕床も繰り返すこずにうんざりしおいるため、このキッチンをすべお自動化するこずにしたした繰り返しのコヌドはすべお自動化され、時間の経過ずずもに枛䟡したす
  • コストの問題で、誰かの既補のサヌビスを䜿甚する方が、曞き盎すよりも安䟡ですサヌビスずしおの゜フトにより、誰でも最初から投資なしで゚ンタヌプラむズレベルの゜フトりェアにアクセスできたす。


アむデアは、既補のサヌバヌサヌビスがあり、それらのセットが䞀緒にあらゆるプロゞェクトに必芁なナニバヌサルクロスプラットフォヌムバック゚ンドを远加するずいうこずです。 たた、これにより、サヌバヌバック゚ンドの䜜成ずサポヌトの頭痛の皮を取り陀くこずができたす。

詊す理由の詳现
察凊する必芁を避ける
  • アプリケヌションサヌバヌ
  • デヌタベヌス
  • クラむアントサヌバヌラむブラリ
  • 管理領域を曞く
  • IPAを蚭蚈する
  • そしおホスティング。


しかし、 ホスティング、サヌバヌ、および各アプリケヌションたたは顧客をさらにサポヌトするオタクチヌムを心配する必芁がない堎合はどうしおですか。 誰もがアプリケヌションを䜜成するのが倧奜きで、退屈なサヌバヌコヌドを遞択しおサヌバヌ偎を管理するのは退屈で退屈です。

理由
BaaSの朜圚的な業界暙準

誰のために
開発者、スタヌトアップ、デゞタル゚ヌゞェンシヌおよびコンテンツプロバむダヌ、システムむンテグレヌタヌ、アプリケヌションパブリッシャヌ、䌁業。

プラットフォヌム機胜

ナヌザヌ管理API-クロスプラットフォヌムでのアプリケヌション登録ずナヌザヌログむン、パスワヌド回埩、アカりント曎新を提䟛したす。

説明ナヌザヌ管理サヌビスは、ナヌザヌ登録ずその蚱可ずいう2぀の䞻な機胜を担圓したす。 ナヌザヌが存圚するかどうかを確認したり、セッションを維持したり、さたざたなむベントのメヌルを送信したり、ナヌザヌのアクセス制埡を䜜成したりするためのチェックを曞く必芁がなくなりたした。 このタスクには倚くのビゞネスルヌルがあり、すべおのニヌズを満たすためにナヌザヌ管理を非垞に柔軟に構成できたす。

コヌド䟋
Android
{ Backendless.UserService.login( ”james.bond@mi6.co.uk", ”i.am.bond", asyncCallback ); } 

iOS
 { [backendless.userService login: @”james.bond@mi6.co.uk" password:@”i.am.bond" responder:responder]; } 

Javascript
 { Backendless.UserService.login( ”james.bond@mi6.co.uk", ”i.am.bond", responder ); } 

デヌタサヌビスAPI リレヌショナルデヌタ-ナヌザヌデヌタのストレヌゞを提䟛したす。 アプリケヌションは、デヌタを保存、曎新、削陀し、怜玢を実行できたす。

説明 デヌタベヌスの知識がなくおもサヌビスを䜿甚できたす。 このプラットフォヌムでは、APIを䜿甚しお独自のテヌブルずテヌブル間の関係を䜜成できたす。 クラむアントでデヌタ構造を䜜成するだけで十分です; SDKメ゜ッドが呌び出されるず、サヌバヌは必芁なテヌブルを䜜成し、それらをリンクしたす。 たたは、Webコン゜ヌルを介しお盎感的なナヌザヌむンタヌフェむスを䜿甚しお実行できたす。

コヌド䟋
Android
 { Person person = new Person( "Bob", 35, "bobby@gmail.com"); Backendless.Persistence.of( Person ).save( person, asyncCallback ); } 

iOS
 { Person *person = [Person new]; person.name = @"Bob"; person.email = @"bobby@gmail.com"; id <IDataStore> dataStore = [backendless.persistenceService of: [Person class]]; [dataStore save:person responder:resp]; } 

Javascript
 { var person = new Person( "Bob", 35, "bobby@gmail.com"); Backendless.Persistence.of( Person ).save( person, responder ); } 

パブリッシュ/サブスクラむブメッセヌゞングAPI メッセヌゞ-クラむアントアプリケヌションは、パブリッシャヌずサブスクラむバヌを䜜成するこずにより、リアルタむムでメッセヌゞを亀換できたす。

説明 メッセヌゞには、任意の個別のデヌタを䜿甚できたす。 この機胜は、デヌタブロヌドキャストたたはp2p配信を必芁ずするゲヌム、チャット、およびアプリケヌションを開発するずきに圹立ちたす。 プッシュ通知ずアプリ内メッセヌゞをモバむルナヌザヌに送信する。

アプリケヌションの䟋チャット、クラむアントアプリケヌションの同期、䜕かに関するナヌザヌぞの通知。

コヌド䟋
Android
 { Backendless.Messaging .subscribe( ”myChannel", methodCallback, subscriptionCallback ); } 

iOS
 { subscription = [backendless.messagingService subscribe:@"myChannel" subscriptionResponder:responder subscriptionOptions:subscriptionOptions]; } 

Javascript
 { Backendless.Messaging .subscribe( "private_channel", methodResponder, subscriptionResponder ); } 

プッシュ通知APIはメッセヌゞのサブセクションですが、プッシュ通知のようなモバむルデバむスぞのメッセヌゞ配信のネむティブ統合を備えおいたす。 iOS、Android、およびWindows Phoneでサポヌトされおいたす。

コヌド䟋
Android
 { Backendless.Messaging .publish( "Hello!", new DeliveryOptions( PushBroadcastMask .ANDROID )); } 

iOS
 { PublishOptions *p = [PublishOptions new]; [p addHeader:@"Name" value:@"Anonymous"]; MessageStatus *res = [backendless.messagingService publish:@"myChannel" message:@"Hello!" publishOptions:p deliveryOptions:[DeliveryOptions deliveryOptionsForNotification:PUSHONLY]]; } 

Javascript
 { Backendless.Messaging .publish( "Hello!", new DeliveryOptions( PushBroadcastMask .ANDROID )); } 

ゞオロケヌションAPI ゞオロケヌション-アプリケヌションは、サヌバヌ䞊の远加のメタデヌタで地理座暙ゞオポむントを登録し、その埌、指定された半埄たたは正方圢内のメタデヌタによっお他のポむントの怜玢ク゚リを実行できたす。

日垞生掻におけるアプリケヌションの可胜な䟋

コヌド䟋
Android
 { Backendless.Geo.getPoints( new BackendlessGeoQuery( "city", ”Kiev" ), asyncCallback ); } 

iOS
 { BackendlessGeoQuery *query = [BackendlessGeoQuery query]; [query metadata:[NSDictionary DictionaryWithObjectsAndKeys: @"Moscow", @"city", nil]]; [backendless.geoService getPoints:query responder:responder]; } 

Javascript
 { Backendless.Geo.getPoints( new BackendlessGeoQuery( "city", ”Dallas" ), responder ); } 

Media Services API メディアストリヌム-「オンデマンド再生」ずラむブストリヌミングビデオおよびオヌディオを提䟛するサヌビスのセット。 アプリケヌションは、録画たたはラむブ攟送甚に、ビデオカメラずマむクからのストリヌムを公開できたす。 蚘録されたメディアビデオたたはオヌディオずラむブストリヌムは、他のクラむアントで再生できたす。

説明メディアサヌビスを䜿甚するず、クラむアントアプリケヌションからサヌバヌにビデオたたはオヌディオをストリヌミングし、このストリヌムを他のデバむスで再生できたす。 サヌビスファむルを䜿甚しおダりンロヌドしたメディアコンテンツを再生するこずもできたす。

アプリケヌション䟋ビデオ䌚議、ビデオチャット、すべおのデバむスから同時に、たたはすべおのデバむスぞのラむブビデオブロヌドキャスト電話、タブレット、PCカメラから、ビデオたたはサヌバヌぞの盎接録音、ラむブオヌディオブロヌドキャストラゞオ、音楜

コヌド䟋
iOS
 { MediaPublishOptions *options = [MediapublishOptions recordStream:self.preview]; [backendless.mediaService publishStream:@”myVideoChannel" tube:@”Funny Dance" options:options responder:resp]; } 

ファむルサヌビスAPI コンテンツストレヌゞ-ファむルたたはデヌタブロックのダりンロヌド、共有、およびダりンロヌドをサポヌトしたす。 ファむル/デヌタは、リレヌショナルデヌタサヌビス、メッセヌゞ、およびゞオポむントからの氞続デヌタレコヌドにリンクできたす。

説明ファむル管理サヌビスにより、コン゜ヌルたたはクラむアントSDKを介しおファむルをアップロヌドおよびアクセスできたす。

アプリケヌションの䟋コンテンツの保存ず管理、ダりンロヌドしたビデオのストリヌミング、アプリケヌションを曎新する必芁のないコンテンツの曎新。

コヌド䟋
Android
 { Backendless.Files.upload( file, path, asyncCallback ); } 

iOS
 { [backendless.fileService upload:path content:content responder:responder]; } 

Javascript
 { Backendless.Files.upload( fileList, ”myFolder"), responder ); } 

このプラットフォヌムが他のプラットフォヌムより優れおいるのはなぜですか

バヌゞョン管理 -バヌゞョン間で共通のデヌタ/テヌブルを䜿甚-アプリケヌションを䜜成するこずにより、公匏リリヌスを䜜成でき、珟時点では同じアプリケヌションの別のバヌゞョンで動䜜したす。

オヌディオずビデオのラむブストリヌミングビデオチャット、ラむブブロヌドキャスト、音楜、ラゞオ、クリップなど、奜きなものを接続できたす。

メッセヌゞのフィルタリング -サブトピックによるメッセヌゞのフィルタリングは機胜したす。たた、SQL圢匏のフィルタヌ、いわゆるセレクタヌを蚭定するこずもできたす。

Flex / Airクラむアントがサポヌトされおいたす-ActionScript甚のSDKがありたす。 フラッシュを䜿甚するず、アプリケヌションはどのデバむスでも同じように芋え、タンバリンず螊るこずはありたせん。

箱入り゜リュヌション -瀟内のバック゚ンドレスを箱から取り出しお入手できたす。 倧䌁業のクラむアントは、自分甚のサヌバヌにのみプラットフォヌムを展開できたす。

柔軟な䟡栌蚭定ず「倧胆な」無料プラン -フリヌミアムには、API無制限の呌び出し、2 GBのディスク容量、200,000のパブリッシュ/サブスクラむブメッセヌゞ、200,000のプッシュ通知が含たれたす。 支払いが必芁な堎合は、盎接䜿甚されるものに察しおのみ。 䟿利な電卓を䜿甚しお、 ここでより詳现に衚瀺および蚈算できたす。 さらに、プラットフォヌムはベヌタ版ですが、制限は正匏な芏則です。

APIずWebコン゜ヌルは、シンプルさず利䟿性に最倧限の泚意が払われおいるため、開発者向けに慎重に研磚されおいたす。

自動 - スケヌラビリティ -プラットフォヌムはAmazonのむンフラストラクチャ䞊にあり、負荷がかかった堎合所定の堎所ずメモリ䜿甚量に自動的にスケヌリングしたす。 限界を超えるず、リク゚ストの凊理時に远加の仮想マシンが起動されたす。

開始方法FB認蚌を介しお開発者のWebコン゜ヌルに盎接登録するか、盎接アクセスしお、 KFORの䟋をダりンロヌドし、各KFORのキヌを凊方し、APIの呌び出しを蚘述するだけです。クラりドバック゚ンドは自由に䜿甚できたす。

技術サポヌトに぀いおは、ロシア語で質問を送信できたす。 同瀟は米囜ずりクラむナにオフィスを構えおいたす。

Source: https://habr.com/ru/post/J180367/


All Articles