...

開発者のためのSalesforce Platform

by user

on
Category: Documents
8

views

Report

Comments

Transcript

開発者のためのSalesforce Platform
開発者のためのSalesforce Platform
∼高度なクラウド&モバイルアプリケーションを作成するには∼
Mitsuhiro Okamoto
Developer Program Manager
/mokamoto
@mitsuhiro
Ayumu Aizawa
Heroku Evangelist
/ayumu.aizawa
@ayumin
Safe Harbor
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 any litigation, risks associated with completed and any 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-K for the most
recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These 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.
フル機能のクラウド開発プラットフォーム
100
万+
600
億+
260
億+
開発者
四半期当りのトランザクション
四半期当りの API コール
10万+
利用企業数
Force.com
開発生産性を追求した
エンタープライズアプリケーションの為の
クラウドプラットフォーム
Force.comのスタック
SDK
Mobile Services
Touch
画面開発
画面自動生成
プログラミング環境
ワークフロー
API
Dev Tools
分析エンンジン
ソーシャル対応データベース
ユーザ認証基盤
Toolkit
マルチテナントクラウド
インフラストラクチャ
IDE
Identity & Database
一般的なPaaS
CREATE TABLE User(...
Access
PaaSとしての特徴 :
ユーザID管理まで行う
シングルサインオン
SELECT * FROM USER WHERE
username= :user AND password = :hoghoge
•  SAML 2.0 Identity Provider
•  SAML 1.1 / 2.0 Service Provider
•  OpenID Connect
Force.com
APIアクセス
•  OAuth 2
•  OAuth 2 SAML Bearer Tokens
Access
•  OAuth 2 JWT Bearer Tokens
ディレクトリ & プロビジョニング (Private Beta)
•  SCIM
•  SAML Provisioning
PaaSとしての特徴 :
ユーザID管理まで行う
クラウド上のアイデンティティプロバイダ
u  クラウド上に企業ごとの独自のIdPとして動作
u  独自のブランディング画面を作成
u  SPとして他のSAML IdPとの連携も可能
ソーシャル機能
u  Facebook等のコンシューマプロバイダとの
プリインテグレーション
PaaSとしての特徴 :
ソーシャル対応RDB
フル機能のRDB+
u  Social機能
u  Geo(位置情報)型
u  全文検索機能
u  Webサービス
データベースとしてのForce.com
システムに組み込まれたソーシャルデータモデル
注文明細
注文
注文フィード
(自動生成)
Force.com
= 高性能BaaS (Backend as a Service)
画面生成
ネイティブモバイル
アプリケーション
自動化
ソーシャル機能
セキュリティ
シングルサインオン
&ユーザマネジメント
HTML5アプリケーション
ディレクトリサービス
統合
BaaSとしてのForce.com
REST Endpointを作成、WebサービスとしてAPI公開
@RestResource(urlMapping='/stockservice/*')
global class WarehouseStockRestResource {
@HttpPost
global static Product StockCount(Product p) {
/** Businesss Logic */
return p;
}
global class Product{
String productId;
Integer StockCount;
}
BaaSとしてのForce.com
Database自体がGeolocationをネイティブサポート
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;
Let's see action
ビジネスロジック&インタフェース
Force.comのスタック
SDK
Mobile Services
Touch
画面開発
画面自動生成
プログラミング環境
ワークフロー
API
Dev Tools
分析エンンジン
ソーシャル対応データベース
ユーザ認証基盤
Toolkit
マルチテナントクラウド
インフラストラクチャ
IDE
Force.comのスタック
SDK
Mobile Services
Touch
画面開発
プログラミング
画面自動生成
プログラミング環境
ワークフロー
宣言的
API
Dev Tools
分析エンンジン
ソーシャル対応データベース
ユーザ認証基盤
Toolkit
マルチテナントクラウド
インフラストラクチャ
IDE
における開発者とは?
ビジネス
ユーザ
パワー
ユーザ
組織管理者/
ビジネスアナリスト
スクリプト
開発者
プロフェッショナル
開発者
ブラウザ使用
Excelユーザ
Excelパワーユーザ
基本的なDB知識
簡易なVBAやJavascript
SQLの経験
Java / .NET
アプリケーションのカスタマイズ
Visualforce / Mobile SDK
アプリケーションの設定
Apex Code
Web API
アプリケーションのカスタマイズ
アプリケーションの開発
•  宣言的
•  ポイント&クリック
•  メタデータベース
•  プログラミング
•  開発者ターゲット
宣言的 : Salesforceのフローエンジン
プログラマでなくても、誰でも
クリックでビジネスロジックが作成
u  ドラッグ & ドロップの様な簡単さで
ワークフローや承認プロセスを定義
u  バリデーションルール、数式などを駆使
u  Force.comフローを利用すれば、画面デザイン、
遷移も含めて定義可能
u  外部システムへのコールアウトや、Eメールなど
の送信といった業務もプログラムレス
画面
分岐
作成
ルック
アップ
数式
テンプレート
宣言的 : Salesforceの標準UI
u  データベース上にある項目に
自動的に連動
u  CRUD操作を行うための全て
の画面を自動生成
u  宣言的に柔軟にカスタマイズ
可能
u  常に新しい機能が追加され自
動的に利用できる
ex )インライン編集、
Chatterなど
プログラミング : Apex
u  JavaやC#ライクなシンタックスを持つ強い型付
けのコンパイル言語
u  ロジックの記述やデータの処理に利用
u  クラウドネイティブで動作するため高速
u  データベーストリガの記述も可能
u  ACIDトランザクションに対応
u  データは常に整合性がとれた状態
プログラミング : Visualforce
u  JSP(JSF)やAsp.netの様な高度なコンポーネント
を持つHTMLベースのタグ言語
u  画面自体の作成や、レイアウト内の部品の作成
u  既存のJavascriptフレームワークなどを読み込ん
で自由に利用可能
u  Jquery
u  Backbone
u  etc...
Apexのサンプル
public with sharing class myControllerExtension implements Util {
private final Account acct;
public Contact newContact {get; set;}
public myControllerExtension(ApexPages.StandardController stdController) {
this.acct = (Account)stdController.getRecord();
}
public PageReference associateNewContact(Id cid) {
newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1];
newContact.Account = acct;
update newContact;
}
}
データベーストリガのサンプル
trigger HelloWorldTrigger on Book__c (before insert) {
Book__c[] books = Trigger.new;
BooksUtil.applyProcessing(books);
}
Visualforceのサンプル
<apex:page StandardController=“Contact” extensions=“duplicateUtilty”
action=“{!checkPhone}”>
<apex:form>
<apex:outputField var=“{!Contact.FirstName}” >
<apex:outputField var=“{!Contact.LastName}” />
<apex:inputField var=“{!Contact.Phone}” />
<apex:commandButton value=“Update” action=“{!quicksave}” />
<apex:form>
</apex>
良く利用されるケース
MVCモデル
Webアプリ
標準ページの
カスタマイズ
カスタムAPI 及び
HTTPコールアウト
トリガ
イン/アウトバウンド
Emailサービス
スケジュール&バッチApex
JavaScript Remoting
@RemoteAction
public static String updateMerchandiseItem(String productId, Integer newInventory) {
List<Merchandise__c> m = [SELECT Id, Total_Inventory__c from Merchandise__c WHERE Id =: productId LIMIT 1];
if(m.size() > 0) {
m[0].Total_Inventory__c = newInventory;
try {
update m[0];
return 'Item Updated';
} catch (Exception e) {
return e.getMessage();
j$(".updateBtn").click(function()
{
}
}
var id = j$(this).attr('data-id');
else {
var inventory = parseInt(j$("#inventory"+id).val());
return 'No item found with that ID';
j$.mobile.showPageLoadingMsg();
}
}
MobileInventoryExtension.updateMerchandiseItem(id,inventory,handleUpdate);
Apex
Visualforce
}
});
Let's see action
モバイル
アプリケーション
モバイルアプリケーション開発の一般的なパターン
iOSやAndroidなどのデバイス
ネイティブなプログラムでアプリ
ケーションを作成する
HTML5とデバイスのプログラ
ムを使い分けてアプリケー
ション作成する
例:
例:
ブラウザベースでスマート
フォンやタブレット向けの
Webアプリケーションを作成
する
Force.comでのアプリのモバイル化
Touch
Touchのモバイルアプリを
ダウンロードしたり、
Web画面より利用
Mobile SDK
特定の用途に向けてモバイル
アプリケーションを開発する
Visualforce / Mobile Pack
VIsualforceとオープンソース
のJSライブラリを活用して
Mobile Webアプリを開発する
Salesforce Touch
u  標準UIと同じ利点をモバイル
にも
u  CRUD自動生成
u  カスタマイズ可能
u  新しい端末などにも自動的に
対応
u  オフラインやPush通知など
のモバイル独自機能
(ロードマップ)
ユーザ管理 , 認証 (SAML2 ,OAuth2)
データの格納
RESTful API
セキュリティ & 共有ルール
アプリケーションコンテナ & SDK
iOS ,Android
オフラインストレージ,プッシュ通知
クラウド上のコードホスティング
Touch Platform
Cloud Application Platform
Multi-tenant Cloud Database
Identity
Salesforce Platform Mobile SDK
Mobile SDK
Mobile App
コンポーネント構成 : Mobile SDK 1.x
User Interface
App Code
Rest API Wrappers
OAuth2
SmartStore
Mobile App
コンポーネント構成 : Mobile SDK 2.0
User Interface
Mobile UI Elements
App Code
javascript
Mobile SDK
Entity Framework
Rest API Wrappers
SmartStore
ネイティブ
OAurth2
Mobile Packs
u  Web及びハイブリッドアプリケーション作成の為
のジャンプスタート
u  モダンなJavascriptフレームワークにフォーカス
u  シンプルなデータアクセス
u  Force.com以外のプラットフォームにもデプロイ
可能 (例 : Heroku)
u  JavaScriptベース
u  クイックスタート & チュートリアル
u  英語のみ
Let's see action
iOSサンプルアプリケーション
u  オープンソースで提供
u  iOSのネイティブ
Salesforceアプリ作成のサンプル
やひな形として
u  修正BSDライセンス
u  Githubに公開
u 
https://github.com/
DeveloperForceJapan/SalesforceMobileSDK-iOS-JpSample
u  Special Thanks Giraffa!!
Force.comまとめ
u  Force.comはフルスタックのプラットフォーム
u  DB + Identity + AppStack + Freamwork + SDK
u  開発は2つのアプローチ
u  宣言的フレームワークによるコーディングレス開発
u  Apex & VFやAPIを利用したカスタム開発
u  生産性の高い部品を適所に使って"楽"をする
Heroku
最も先進的でオープンな
プロフェッショナル開発者のための
プラットフォーム・クラウド
プラットフォームの特徴
•  サーバを意識する必要がない:
最適化された実行環境をすぐに利用可能
•  多言語に対応:
JavaやRubyなどのあらゆる言語・フレーム
ワークに対応し既存の技術をそのまま利用
•  高い拡張性:
利用が増大しても迅速かつ自在に拡張が可能
•  信頼と実績:
3,000,000以上のアプリケーションが稼働
顧客に訴求するアプリケーションを
開発して迅速にリリース
ソーシャル、モバイルに対応した魅力的な
アプリケーションを任意のプログラミング言語で
スピーディーに開発
利用が増大しても迅速かつ自在に拡張が可能
顧客向けのチャネルやアプリケーションの開発、
テストをすばやく進められる
アプリケーション展開のスピードの向上
+56%
Herokuのスタック
自動経路制御
API
Routing Mesh
API
による
制御
スケーラブルな実行環境
Dyno
多言語対応
堅牢かつセキュアな実行基盤
Dyno Manager
透過的なログ情報の提供
アドオン
による拡張
Logplex
マルチテナント・インフラストラクチャ
アプリを
すばやく展開
Internet of Things
(モノのインターネット)
Internet of Things(モノのインターネット)
デバイスからの情報をビジネスで活用
• 
• 
• 
• 
リアルタイムデータ分析
モバイル
コンシューマーアプリ
ソーシャル連携
• 
• 
• 
• 
ビジネス・サービス
顧客管理
ワークフロー
社内システム連携
Let's see action
Herokuまとめ
u  最も先進的なプロの為の開発プラットフォーム
u  ベンダーロックインが無くオープン。既存のプログラ
ミング言語が動作する
u  Java, Ruby , PHP , Node.js , Closure , Scala ...
u  サーバを意識せずに、スケールアウトを実現
u  Dynoを増やす事ですぐに縮退
u  3rd ParyのAddonによって機能拡張できる
Salesforce Platform 関連リソース
Developer Force Japan
http://jp.force.com
開発・検証用途のDeveloper Editionは全て無料
Heroku
http://heroku.com
1Dynoであれば無料
今すぐサインアップ!!
Fly UP