ラベル StrongLoop の投稿を表示しています。 すべての投稿を表示
ラベル StrongLoop の投稿を表示しています。 すべての投稿を表示

2014年6月7日土曜日

LoopBack

LoopBackはクラウドでもオン・プロミスでも動作することができるNode.jsのモバイル・バックエンドフレームワークです。
まず、LoopBackの主要な概念を理解してからアプリケーションを作っていきましょう。
LoopBackの流れに沿って話を進めていきましょう。

概要

LoopBackは以下のことができます。
  • ほとんどコーディングせずにend-to-end REST APIを作成
  • Oracle, MySQL, PostgreSQL, MS SQL Server, MongoDB, SOAPや他のREST APIから簡単にデータのアクセスが可能
  • 複合APIのモデル関連とアクセス制御を組み合わせる
  • オンプレミスやクラウドでアプリケーションを動作させる
  • モバイルユースケースのビルドインのプッシュ、ゲオロケーション、ファイルサービスが使える
  • Android, iOSやJavaScript SDKを使用して簡単にクライアントアプリの作成が可能
LoopBackの構成
  • WebやモバイルアプリをデータベースやREST APIなどのデータソースに繋げるためのNode.jsモジュールのライブラリ
  • LoopBackアプリケーションを作成、動作するためには、slc lbというCommand-lineツール
  • NativeとWebベースモバイルクライアントのためののClient SDK
    LoopBackアプリケーションには、3つのコンポーネントがある。
  • ビジネスデータと振る舞いを表現するModel
  • Data sourceとconnector。Data sourceはデータベースやその他のREST APIやSOAPサービスなどのバックエンドサービス。ConnectorはアプリがOracle, MySQL, MongoDBのデータへアクセスを提供。
  • LoopBack client SDKを使用したMobile clients
    LoopBack components
    AppはLoopBackモデルAPIを通してデータソースにアクセスする。ローカルでもリモートでもiOS, Android, HTML5のnativeなclientのAPIを通してでも使用できる。
    APIを使って、データベースのクエリやデータを保存したり、ファイルをアップロード(まだ機能はリリースされていないが)したり、メールを送ったり、push通知を作成したり、ユーザー登録やdatasourceで提供されているその他のアクションを実行する。
    Mobile clientはREST, WebSocketやその他のtransportを超えて、backend APIを提供することができるpluggable transport layerのStrong Remotingを使用して直接LoopBack server APIを呼び出すことができる。

2014年6月4日水曜日

LoopbackによるREST API構築

目的

MBaaSのStrongLoopのLoopbackを使用して、REST APIを構築する。

前提

Cloud9StrongLoopにログインしていること。

Workspace作成

Cloud9でWorkspaceを作成する。
  1. Cloud9 Dashboardの左上にあるCREATE NEW WORKSPACEボタンをクリックする。
  2. GithubなどからWorkspaceをCloneするのであればClone from URLをクリックするが、今回はGithubにソースが無いので、Create a New Workspaceをクリックする。
  3. (1)にWorkspace名、Workspace PrivacyはOpen and Discoverable、Cloud9上で開発をするので、Hosted、StrongLoopを選択してCREATEボタンをクリックする。

.gitignore作成

Gitで管理するため、バージョン管理不要なディレクトリ及びファイルを対象外にする。
Node.js用の.gitignoreファイルのテンプレートがGitHub .gitignoreにある。
Node.js用の.gitignoreファイルはNode.gitignoreである。
このファイルをWorkspaceのルートに.gitignoreというファイル名でコピーする。
このあとは適宜コミットする。
commit: 38b77dd4316f5016ee7209ccbe755abf7616a2a3

StrongLoop Command-line更新

StrongLoopとしてWorkspaceを生成したため、予めStrongLoop Command-lineがインストールされている。
StrongLoopは頻繁に開発されているため、StrongLoop Command-lineも頻繁にバージョンアップされている。
StrongLoop Command-lineを最新のパッケージに更新する。
 $ slc -v
strong-cli v2.5.1 (node v0.10.28)
node-inspector v0.7.3
strong-cluster-control v0.4.0
strong-registry v1.0.2
strong-supervisor v0.2.2
StrongLoop Command-lineの書式は以下のとおり。
$ slc   
SLC()                                                                    SLC()
NAME
       slc - Utility for StrongNode development

       Utility for StrongNode development.

SYNOPSIS
       slc [-h|--help|-v|--version] [...]
       slc <command> [--help] [...]

OPTIONS
       -h, --help
              print usage for slc (use slc cmd -h for help on cmd), and exit.

       -v, --version
              print version of slc and node, and exit.

COMMANDS
       example:
              create example applications

       lb:    create LoopBack workspaces, applications, and models

       strongops
              register or login to StrongOps, create strongloop.json

       run:   run a node script using strong-supervisor

       clusterctl
              control clustering at run-time using strong-cluster-control

       debug: debug a node script using node-inspector

       env:   print node environment information

       update:
              bring strong-cli and it's dependencies up-to-date

EXAMPLES
           $ slc example
           $ slc lb project mywebapp
           $ slc run app.js
           $ slc run --cluster=CPUs app.js
           $ slc clusterctl status
           $ slc debug app.js

                                  March 2014                             SLC()
slcコマンド全体のドキュメントは、Command-line reference (slc)に、loopbackのCommand-lineのドキュメントはslc lbに記述してある。
で、早速最新のパッケージに更新する。
$ slc update
strong-cli at 2.5.1; trying self-update...
npm install -g node-inspector; this may take a moment...
npm install -g strong-cluster-control; this may take a moment...
npm install -g strong-registry; this may take a moment...
npm install -g strong-supervisor; this may take a moment...
npm install -g strong-cli; this may take a moment...
strong-cli at strong-cli v2.5.3 (node v0.10.28)
node-inspector v0.7.3
strong-cluster-control v0.4.0
strong-registry v1.1.0
strong-supervisor v0.2.2

プログラムの起動

足場アプリケーションであるが、REST APIを実行する、それなりの機能を備えている。
動きをつかむためにWorkspaceのメニューのRun Projectボタンをクリックして、アプリケーションを起動する。
Run ProjectボタンがStopボタンに変更されている。
アプリケーションが起動したあと、アプリケーションをWebブラウザで確認する。URLはhttps://-c9-.c9.io。
LoopBack Sample Applicationが起動できればたちまちOK。
ひとまずStopボタンを押してアプリケーションを停止する。

StrongOps実行

StrongLoop運用監視としてStrongOpsを利用する。
StrongOpsのDashboardでアプリケーションを識別するためにWorkspaceのルートにあるpackage.jsonのnameプロパティを識別できる文字列に変更する。
commit 9cb442a69dccf1b546501600238cfd2dea3cfb8a
Written with StackEdit.

2013年10月1日火曜日

StrongLoopをCloud9で試そうとしました

InfoQでStrongLoopがオープンソースmBaaSをローンチしたというトピックがあった。StrongLoopという名前は聞いたことがなかったのだが、ParseなどのBaaSはデータはサービス側のデータセンタに保存するが、StrongLoopは、ユーザー自身のインフラをホストとして使用することができるそうだ。
現時点では、Amazon、Heroku、Cloud Foundry、OpenShift、Rackspace Cloud、Cloud9 IDEをホストとして使用することができるそうだ。
自分自身のインフラをホストとして使用できるということと、Heroku、Cloud9 IDEをホストとして使用できるということで、食いついた。
Cloud9 IDEで開発をして、Herokuでステージングと本番としてホストするとよさそう。
早速サインアップ。サインアップでは、自分のメールアドレスを入力すると、登録用リンクが送られてくるパターンである。
そのリンクをクリックして、登録画面を表示させ、ユーザー名とパスワードを登録する。
StrongLoop Suiteのドキュメンテーションを開いてみた。
StrongLoop Suiteには、以下の3つが入っている。

  • LoopBack Node.jsのプライベートmBaaS
  • StrongNode エンタープライズ用のNode.jsが入っている。
  • StrongOps 運用コンソール
StrongLoop Suiteを自分のシステムにインストールしても良いが、せっかくサポートされているようなので、Cloud9 IDEで手っ取り早く始めよう。
Cloud Workspaceというタイトルで直ちに始めたければ、StrongLoop Suite | Get Startedを見ろと書いてある。
ここで、Free Cloud Workspaceの説明文の最後のGet Startedをクリックすると、Cloud9 IDEにStrongLoopのユーザ名とメールでサインアップされる。
ユーザ名がかぶった場合には、ユーザー名+_数字というユニークな名前でサインアップするのだが、メールもかぶった場合は新しいメールアドレスを聞かれる。
すでにCloud9 IDEは使い倒しているので、そのアカウントでワークスペースを作って欲しいが、そのやり方が書いていない。
そうすればいいか不明。
しばらく色々試してみよう。