facebook.com/mokamoto@mitsuhiro
ENTERPRISEでもモバイルアプリ開発
岡本 充洋Programs Manager , Platform / Developer marketing
~どのストラテジーを選択すべきか~
【14-C-6】#devsumiC
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Safe Harbor
自己紹介
名前 : 岡本 充洋所属 : 株式会社セールスフォース・ドットコム経歴 : 元々はJavaEEエンジニア、今はマーケティング寄り好きなもの : 格闘技全般
facebook.com/mokamoto@mitsuhiro
Salesforce.comってどんな会社?
30 億ドル年間売上
(2013 年度予測)
~8% 売上に
占める割合
•エンタープライズ向け専業クラウドベンダー•主力SaaSのSales Cloudは世界シェアNo.1
•子会社にHerokuやRadian6(現Marketing Cloud)などがある
CRM期CRM
営業支援カスタマーサポート代理店ポータルカスタマーポータル
Platform期Platform
セールスフォース・ドットコムの歴史
1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
Social
顧客社数 1,500 3,500 5,700 8,700 13,900 20,500 29,800 41,000 55,400 72,500 92,300 100,000以上
Mobile
?
参考 : Force.comマルチテナントアーキテクチャ
http://wiki.developerforce.com/page/JP:Multi_Tenant_Architectureホワイトペーパー: Force.comマルチテナントアーキテクチャ
SocialTouchLocal
Ecosystems
Big DataIdentity
CommunitiesCloud
今回のテーマ = モバイル + エンタープライス
エンタープライズでもニーズは確実に増え続けている
マーケティングサイト 5
アプリケーション統合 4
モバイル 3
アプリのテスト、QA 2
社内Webアプリ 1
テクノロジ 2012
*Forrester Global Cloud Developer Survey (Q3 2012).
Forrester社によるIT業界 Top 5 トレンド
データ分析 NR 5
社内Webアプリ 1 4
ソーシャル、コラボレーション NR 3
アプリケーション統合 4 2
モバイル 3 1
テクノロジ 2012 2013
*Forrester Global Cloud Developer Survey (Q3 2012).
Forrester社によるIT業界 Top 5 トレンド
モバイルアプリ開発を道具箱に入れておこう
モバイルアプリ開発で考える事
1、どうやってデータを安全にモバイルへ届けるか?
2、どうやってモバイルアプリを開発するか?
1、どうやってデータを安全にモバイルへ届けるか?
提供される機能を利用スモールスタート
既存ネットワーク構成を活用アプリの開発はシンプル
自社内インフラコンプライアンス
モバイル開発ストラテジー - サーバサイド編
VPN
CloudGateway
low affect
high affect
データをMobileのために安全に扱うには?
• VPNを利用して閉域網を作る
• Mobile用のゲートウェイを設置
• モバイル<->社内の間にクラウドを利用
VPNを利用して閉域網を作る
• 利点•既にVPNが構築されてれば手軽に始められる•既存のサーバ、NW構成、セキュリティ施策のままでOK
• 欠点• VPNの構築をしてない企業も多い• BYOD等への対応が(ポリシー的に)難しい場合も•アプリ利用前にVPN接続を開始する必要•利用率低下を招く危険性
PPTP,IPSec等で仮想閉域網からアクセス
BYODの実情と今後の予測
Salesforce.com (user survey of 672 mobile users) + Industry Research • Gartner(2011): Top Predictions for IT Organizations and Users
46% の組織が企業アプリケーションを個人のデバイスで動作させる事を認めている
90%
46%
52%
52% のユーザが 3つ以上 のデバイスを使い 60% が仕事とプライベートの用
途が混在
2014年
現在
モバイル用のゲートウェイを設置
• 利点•インフラストラクチャが全て自社の保有資産内に•コンプライアンス上の問題をクリアにできる
• 欠点• FWの外に常にInternetに接続した固定IPのサーバを運用•運用時セキュリティに常に気を配る必要がある•対応するミドルウェア等、サーバソフトウェアに相応のコスト
• MobileからのInternet接続の為の回線負荷
DMZにモバイル用の中間サーバを構築する
モバイル用中間サーバで必要なこと
ユーザ認証
データアクセスコントロール
サーバサイドロジック モバイルポリシー管理
Push通知コントロールGeoロケーション管理
セキュリティ
データキャッシング
ロードバランシング
モバイルセッション管理
などなど・・・ APIの公開
モバイル<->社内の間にクラウドを利用
• 利点•クラウドに基本的な機能を任せる事ができる• BaaS
•初期費用やランニングコストが下げられる
• 欠点•クラウド(社外)にデータを置くことになる•社内システム側連携にはEAIが必要なケースも•バッチ処理は社内側サーバから定期実行する
モバイルアクセスは全てクラウド上のサービスを経由させる
BaaS
Backend as a Serviceという考え方Backend as a service (BaaS), とは "mobile backend as a service" (MBaaS)ともよばれ、Web及びモバイルアプリケーション開発者がバックエンドのクラウドストレージ、ユーザ管理、プッシュ通知、ソーシャルネットワークとの統合等の機能を利用出来るものである。これらのサービスはカスタムソフトウェア開発キット(SDK)やアプリケーションプログラミングインタフェース(API)を提供する。BaaSはクラウドコンピューティングの中でも比較的最近の潮流で、多くのBaaSスタートアップは2011年以降に誕生している。世界のBaaSマーケットは2012年には2億ドル超になる予測。
Backend as a service - Wikipedia
http://en.wikipedia.org/wiki/BaaS
代表的なBaaSベンダー
BaaSを使うと何が嬉しいか?
• コアな業務ロジック以外の部分はクラウドにお任せできる•ユーザ管理、認証•データストレージ、ネットワーク、キャッシング、スケーラビリティ•データアクセスAPI
•セキュリティ、レコード共有制限• MDM的な機能を持つものや、サーバサイドにロジックをホストできたりするものも
• 連携はどのデータを持ち出すかだけを考えればいい
Backend as a ServiceのメリットじゃあこれらはMongoDBみたいなのにREST APIくっつけたのと全く同じなのか、というと、明確な違いが一つあって、それはユーザ管理とアクセスコントロールが組み込まれているということです。MongoDBにはMongoDBの接続アカウント+パスワードを持った管理者orサーバプログラムしかアクセスできなかったですが、BaaSにはエンドユーザ管理とその認証およびレコードレベルのアクセスコントロールが組み込まれているので、直接インターネットに晒しても大丈夫です。適切にアクセスコントロールが設定されていれば、誰かが違う人の投稿を書き換えちゃうとか消しちゃうとかできないわけです。なお、アクセスコントロールの実装というのは、サーバプログラマが一番間違えやすい所の一つではあります。現在のBaaSが達成できているのは非常にシンプルなコントロールですが、それらが全部宣言的にできるということは、かなりのメリットだと思います。
BaaS (Backend as a Service) について - snippets from shinichitomita’s journal
http://d.hatena.ne.jp/shinichitomita/20120329/1333006493
Salesforce Platformの場合
Back-end as a Service
ユーザ管理 , 認証 (SAML2 ,OAuth2)
データの格納RESTful APIセキュリティ & 共有ルールアプリケーションコンテナ & SDK
iOS ,Android
オフラインストレージ,プッシュ通知クラウド上のコードホスティング
Touch Platform
Cloud Application Platform
Multi-tenant Cloud Database
Iden
tity
BaaSとしてのSalesforce Platform
SELECT Id, Warehouse_Location__latitude__s, Warehouse_Location__longitude__s,Street_Address__c, Name FROM Vendor__c WHERE DISTANCE(Warehouse_Location__c, GEOLOCATION(37.794539,-122.394717), 'mi') <= 10;
Database自体が「データ型」としてGEOをサポート
BaaSとしてのSalesforce Platform
@RestResource(urlMapping='/stockservice/*')global class WarehouseStockRestResource {
@HttpPost global static Product StockCount(Product p) {
/** Businesss Logic */ return p; }
global class Product{String productId;Integer StockCount;
}
REST APIを自分で作成できる
Let’s See Action
BaaSを使えばMobileアプリ開発を高速化
• BaaSが持っている機能を有効活用•ユーザ管理、認証•データストア•共有ルール、セキュリティ• API•データの連携部分にだけ気を配る
•連携のタイミング、リアル参照、同期、バッチ• Cloudを使う場合FW内部からCallする
納期
受発注
顧客情報
納期
受発注
顧客情報
在庫 在庫
人事
給与
しかし・・・
• エンタープライズ界隈では•サーバサイドロジック、データ連携のエンジニアは多い
•セキュリティや同期スケジュールなど高い知識• iOS(Objective-C)のコードをしっかり書けるエンジニアが少ない
•ちなみにObjective-C自体は人気出て来た• http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
•ソーシャルゲーム業界へエンジニアが流れている?• Android Javaも同様
2、どうやってモバイルアプリを開発するか
Web開発のスキルが行かせるネイティブ機能へのアクセス
App Storeによる配布
高度なUI
より良いパフォーマンスApp Storeによる配布
Web開発のスキルが活かせる即時のアップデート配布に制限無し
モバイル開発ストラテジー - デバイス編
HybridHTML5 Native
HTML / Javascript慣れ親しんだWebのテクノロジーを使ってアプリケーションが開発出来る
FrameworkJQuery MobileやSenchaなど、実績のあるモバイルに特化したフレーム
ワークを利用可能
Fastest Way今までと何ら変わりない方法でアプリケーションを構築するだけで良い
ので学習コストが少ない
デバイス側開発のタイプと特徴
Native API WrappersBaaSが用意するSDKを利用してラッパー経由でアクセスするか、自身でネイティブ言語からRESTをCallする必要がある
Authenticationsログイン状態を保持するため認証やセキュアトークンの管理が必要
Native Device Functionsデバイスネイティブの言語で全ての機
能にアクセスできる
Push Noti!cationsリアルタイムなアラートをモバイルデバイスに送る事ができる
Authenticationsログイン状態を保持するため認証やセキュアトークンの管理が必要
HTML / Javascript慣れ親しんだWebのテクノロジーを使ってアプリケーションが開発出来る
Native Device Functionsコンテナを経由してJavascriptでデバイス固有の機能に一部アクセスできる
Push Noti!cationsリアルタイムなアラートをモバイルデバイスに送る事ができる
Container
サーバサイドではBaaSが面倒を見てくれたデバイスサイドでは?
PaaS
Platform as a ServicePaaSは2007年7月 にセールスフォース・ドットコムが提唱した。従来から同社が推進しているSaaSが、既成またはカスタマイズしたソフトウェアをインターネット経由でサービスとして利用できる形態であったのに対し、更にユーザーのシステムを稼働させる事もできるプラットフォーム自体を、インターネット経由でサービスとして利用できる形態である。PaaSはSaaSの発展形であり、SaaSと並びクラウドコンピューティングの1種類(または1要素)ともされる。
PaaS - Wikipediahttp://ja.wikipedia.org/wiki/PaaS
Platform as a Service
Platform as a service - Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/Platform_as_a_service
Application Platform as a Service
Gartner, Yefim Natis “Consider PaaS in your Cloud Strategy” 2010 2011.2.15
Tech Target - 主要PaaSの機能と、ユーザーの開発トレンドを解説http://techtarget.itmedia.co.jp/tt/news/1204/26/news01.html
Mobileに対応するaPaaSベンダー
他にもあったら教えて下さい@mitsuhiro
素早い開発:80% ポイント & クリック
20% コード
ビジュアルワークフロー
データ分析Appビルダー
モバイル対応
マルチ通過マルチ言語
セキュリティ共有ルール
プログラミング基盤 ソーシャル基盤
元来のSalesforce Platformポイント & クリックで開発ができるPaaS
宣言的なUIを、全てのデバイスへ
標準機能として、以下に対応:
タブレット
スマートフォン
デスクトップ
カスタムカラムカスタムテーブル
ページレイアウトなどなど…
Let’s See Action
納期
受発注
顧客情報
納期ユーザ認証
APIエンドポイント
セキュリティ
カスタムロジック
受発注
顧客情報
Mobileを含めた業務アプリ全体イメージ
SSO
在庫 在庫
人事
給与
カスタムUI
社内ソーシャル
アイデアをアプリにするのに最速のプラットフォーム
まとめ - モバイルのサーバサイド開発
• BaaSをうまく利用して開発する•サーバサイドの要件は非常に多い
•ユーザ管理、認証•共有ルール、セキュリティ• API
•データの連携部分にだけ気を配る•連携のタイミング、リアル参照、同期、バッチ
まとめ - デバイスサイドの開発
• 用途にあったアプローチを選択•ネイティブ• HTML5•ハイブリッド
• 場合によっては宣言的なツールも検討•開発者のスキル•モバイルアプリの管理画面、本質でない場合•スピード重視
jp.force.com
Salesforce Platform 関連リソースDeveloper Force Japan
http://jp.force.com開発・検証用途のDeveloper Editionは全て無料今すぐサインアップ!!
Mobile SDK のホームページ
http://wiki.developerforce.com/page/
JP:Mobile_SDK
Touch Platform 開発ガイド PDF
http://wiki.developerforce.com/page/
JP:Salesforce_touch_platform
Action!
プロのアーキテテクトは複数の道具を使いこなそう
株式会社セールスフォース・ドットコム岡本 充洋
ご清聴ありがとうございました