5. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realmとは
Realmって何?
MongoDBの有償サポートを行っている関係で、今年、MongoDBが買収した製品の1つとして調査する事になった。
Realmとは、クラウドタイプのMobileアプリケーション開発のプラットフォームサービスであり、より迅速にモバイルアプリケーションが開発でき
ることを使命としているようだ。
製品の構成は、次の3本柱。
• Realm Platform(PaaS)
✓ オブジェクトサーバー及びバックエンドサービス
• Realm Database(ドキュメントタイプのMobileDB])
✓ 開発者がAPIからコードで操作するコンパックなデータベース
✓ iOS及びAndriod, Windows, Realm Platform上で動く
• Realm Studio (GUIのSDK)
✓ アプリケーション開発のためのツール
✓ MacOS, Windows, Linux上で動く
5
6. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
今年、MongoDBが買収し、近い内にMongoDB Realmを出すと発表している。
【MongoDB Realm】
https://realm.io/products/realm-Platform
こちらは、Realmの記事。
【Realm Upgrades Database-Centric Mobile Dev Platform】
https://adtmag.com/articles/2017/10/18/realm-update.aspx
こちらは、MongoDBがRealmを買収した事のアナウンス。
【MongoDB to acquire open-source mobile database Realm for $39 million】
https://techcrunch.com/2019/04/24/mongodb-to-acquire-open-source-mobile-database-realm-startup-
that-raised-40m/
6
7. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
MongoDB Atlasを知っている人は、ご存知だろう。 Atlas Stitchは、Realm Platformと同様なサービスである。
【MongoDB社の製品紹介2019】
https://www.creationline.com/lab/29725
Realm DatabaseのようなMongoDB Mobileも出している。
もちろん、SDKも。
MongoDB Atlasは、様々なWebアプリケーション開発やIoTのバックエンドなど、適用範囲が広いサービスであるが、それに比べて
Realmは、Mobileアプリケーションにコミットしたサービスである。
Realmは、この分野で急成長しており、MongoDBは、Realmを買収することで、この分野での成長基盤を固めている。
7
8. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
実績
Mobileアプリケーションに特化したPlatform、クライアント側のデータベースとバックエンド側のデータベースが自動的に同期を取ってくれ
るMobileデータベースのような斬新な発想で急成長して来たようである。
• 2Bを超えるインストール
• 100Kの開発者
• Fortune 500の主力企業から選ばれている実力
8
9. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Platform Cloud
アカウントを登録し、インスタンスを立ち上げれ、Mobileアプリケーション開発のためのバックエンドの用意はほぼ完了である。大手クラウド
業者やMongoDBに比べても、クラスター(DB)を立ち上げるとか、最適化するとか、開発者にとって結構ハードルが高い要素がさらに減
りそうだ。
Mobileアプリケーションに特化しているので、シンプルなのが何よりの強み。
• クラウドサービス
✓ スタンダード→定型の計算資源やディスク、ネットワーク、コミュニティサポートなど
✓ デディケート→オーダー型の計算資源やディスク、ネットワーク、有償サポート
✓ Realm Database
• バックエンドのアプリをホスティング、ドキュメントタイプのデータベース(OSS)
• 諸々、マネジメントサービス
9
10. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Database
• ドキュメントデータベースであり、同タイプで堂々の8位、全データベースのランクでは44位
• 延べ20億を超えるインストール
10
11. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
• Description → A DBMS built for use on mobile devices that’s a fast, easy to use alternative
t o SQLiteand Core Data
• Primary database model → Document Store
• Website → https://realm.io/
• Developer → Realm, acquired by MongoDB in May 2019
• Initial → 2014
• License → OSS
• Cloud-base only → no
• Server operation system → Android,Backend: server-less,iOS,Windows
• SQL Support→ no,via API
• Transaction concepts → ACID
• More
11
https://db-engines.com/en/system/Realm
12. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
なぜ、Mobileデータベース
iOSやAndroidの端末で溜めたMobileデータベースのデータとバックエンド側のMobileデータベースが自動的に同期を取る。もはや、ア
プリケーションでバックエンドエンド側のデータベースに書き組むようなコーディングなど要らない。
言語は、Java, Swift, Objective-C,JavaScript,.NET
12
https://realm.io/
13. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Studio
Realm Studio利用すると、バックエンド側と接続する前提で開発を進める。
• デベロッパーツール
• OSは、Mac, Windwos, Linuxをサポート
• 言語は、Java, Swift, Objective-C,JavaScript,.NETのどれか
13
https://realm.io/products/realm-studio
14. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
2019年MongoDBがRealmを買収
• 2007年、MongoDB設立、ドキュメントタイプでは圧倒的な導入実績
• 2014年、Realm設立し、MobileDBでは、2億を超えるインストール実績
• 2019年、MongoDBがRealmを買収
✓ MongoDB社は、MongoDB Atlas上にRealmと同様なサービス(Stitch/Mongo Mobile)を展開しているが、
近い将来、MongoDB Realmを出すと、発表している
14
15. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
価格
ここの価格は、現状、次のとおり。
• スタンダードプラン
– $30monthプラン
– 定型のリソース(2.5GBストレージ/20GB Badnwidth/10K同時接続/3インスタンス)
– コミュニティサポート
• デディケートクラウドプラン
– オンデマンドリソース
– シングルテナント、専用インスタンス
– 有償サポート(見積)
15
19. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
インスタンス作成
• 次のような項目を登録し、インスタンス作成を開始(Create New Instance)
– Instance name: Persistnet Stell Shirt
– Inscance id: persistnet-stell-shirt
– Region: US West
• URLをコピーする(Copy)
https://persistent-steel-shirt.us1a.cloud.realm.io
19
20. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Realm Cloudでアプリケーション開発
• インスタンス作成が完了すると、次のような初期画面が表示される
• 早速、Android端末のデモアプリケーション開発を実行してみる(Start with Android)
20
21. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Start with Android
• デモプロジェクトを開始すると、ダイレクトにコーディングのマニュアルに飛んでいく
• ここからは、Realm Studioとの連携が必要そうであるが、 Realm StudioとRealm Platform(バックエンド)とは、同期が取
れるような仕組みなっているようだ(今回は、机上確認なので間違っていたら御免なさい!)。
21
26. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
インストール
• 開発言語のパッケージとしてインストール。ここでは、JavaScriptべース
npm install --save realm
• プログラムのなかでは、呼び出してコーディングするだけ
var Realm = require('realm’);
26
27. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
モデルと属性の定義
ドキュメントタイプのオブジェクトを定義する。
const CarSchema = {
name: 'Car',
properties: {
make: 'string',
model: 'string',
miles: {type: 'int', default: 0},
}
};
27
28. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
データの書き込み
次のように書き込みを実行する。
Realm.open({schema: [CarSchema, PersonSchema]})
.then(realm => {
// Create Realm objects and write to local storage
realm.write(() => {
const myCar = realm.create('Car', {
make: 'Honda',
model: 'Civic',
miles: 1000,
});
myCar.miles += 20; // Update a property value
});
28
29. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
検索・フィルター
検索し、フィルターを実行する。
let dogs = realm.objects('Dog');
let tanDogs = dogs.filtered('color = "tan" AND name BEGINSWITH "B"');
29
30. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
その他
データベースとして、データ操作のための基本的な機能は一通り揃っている。
• ソート
• データ同期(クライアントとバックエンドのRelam Database)
• 更新/削除
• インデックシング
• プライマリキー
• 暗号化
• 認証(google,facebook,iCloud)
30
31. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
感想
データベースとしての機能性は一通り揃っている。サーバー側の記述が殆どなかったが、もう、データベースはRealm Platformの一メソッ
ドという位置づけなのかもしれない。
• クライアント側のデータベースは、 SDKの一部として扱われている
• Realm Platform側のデータベースの高可用性は、Enterprise版(有償)が必要であり、クラスターが組めるようである
• 拡張性は関しては明言されていなった。まあ、想定していないかも、あるいは、今後、拡張を必要とするような規模であれば、
MongoDBのシャーディングクラスターが担うのかも
• バックアップ機能もあり
31
33. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Relam Studio Windows版インストール
• インストールパッケージをダウンロードしてインストール(Download for Windows)
https://realm.io/products/realm-studio
Realm Studio Setup 3.8.1.exe
• インストール中にメールアドレスの入力が必要(Let’s get started)
• 次のように初期画面が表示される
33
34. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
続き
• Realm Cloudに接続(Connect to Server)
• Username/Passwordを入力
34
35. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
Demo Realmファイル
• Realm StudioからDemo Realmファイルを入手 (Download a demo Ralm file)
• Realm Studioからデモファイルを開く(Demo Realm file)
• 次のような展開になる
35
36. Copyright ⓒ2019 CREATIONLINE, INC. All Rights Reserved
感想
• コードを書かないと、ここまでが限界のようだ
• でも、何となく、使い方のイメージは伝わって来た
• バックエンドとの同期とか、やってみたいところだか、まあ、いいか
36