Comments
Description
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であれば無料 今すぐサインアップ!!