Вступление
Database.com — это многопользовательская база данных Salesforce.com в качестве сервисной платформы, предназначенная для использования в качестве механизма облачных баз данных для разработчиков приложений. В отличие от Force.com, платформы Platform as Service, предлагаемой Salesforce.com, она не поддерживает элементы пользовательского интерфейса, такие как макеты страниц или настраиваемые представления, нет поддержки VisualForce, у нее нет возможностей визуальных рабочих процессов и нет отчеты и панели доступны. Database.com специализируется на расширенных функциональных возможностях реляционных баз данных и поддерживает Salesforce Object Query Language (SOQL) и Saleforce Object Search Language (SOSL), которые оказались популярными при разработке корпоративных облачных приложений. База данных.com предлагает REST API, что делает его идеальным для мобильных и социальных приложений, требующих хранения данных, с современной моделью безопасности и управления идентификацией и доступом.
Создание объектов в Database.com
Если вы знакомы с Force.com, использование Database.com, естественно, может быть связано с этим опытом. Прежде всего, пользователь должен зарегистрироваться на
database.com . После завершения регистрации пользователь может войти на платформу. Первая веб-страница представляет собой
Системный обзор, в котором содержится информация о количестве объектов и записей данных, использовании API и т. Д.
Затем мы можем создавать наши пользовательские объекты. В нашем примере мы создадим объект stockprice (который, по сути, является таблицей в традиционной СУБД), который будет хранить информацию о цене акций, такую как цена открытия и закрытия, объем и т. Д. Нам нужно перейти к
Create-> Objects и нажать либо на Кнопка Создать пользовательский объект или построитель схем. В нашем примере мы собираемся показать, как использовать
Строитель Схем .
Нажав на кнопку, откроется Schema Builder, и здесь мы сможем определить имя объекта и несколько других параметров.
После создания объекта мы можем приступить к определению полей. Мы можем использовать палитру в левой части построителя схем и просто перетащить соответствующие типы данных, такие как число или дата, на холст.
,
Мы также можем определить правила проверки, чтобы гарантировать, что значения в полях (столбцы в мире РСУБД) соответствуют требованиям.
Как только мы закончим, мы можем проверить наш объект, у него есть семь настраиваемых полей: AdjClose, Close, Date, High, Low, Open и Volume.
Загрузка данных в объекты Database.com
Теперь, когда у нас есть созданный объект, следующий шаг — загрузить в него данные. В принципе, мы могли бы вставлять данные, используя
инструмент Workbench , но в этом примере мы собираемся использовать пакетный инструмент Salesforce.com под названием
Data Loader, который может быть очень полезен для загрузки огромного количества данных с нашего компьютера. Data Loader — это приложение для Windows, которое можно загрузить в
меню « Управление данными» -> «Загрузчик данных» .
После его установки мы можем использовать его для загрузки данных в наш объект StockPrice. Финансовые данные были получены с
http://finance.yahoo.com
, Когда мы запускаем загрузчик данных, нам нужно сначала войти в систему. Имя пользователя совпадает с тем, которое мы использовали для входа на Database.com, тогда как пароль представляет собой объединенную строку пароля для Database.com и маркер безопасности, который можно сгенерировать в
меню « Моя личная информация» на Database.com. Затем из загрузчика данных мы можем выбрать, какой объект мы хотим использовать, и мы также можем указать файл для загрузки — он должен быть в формате CSV с заголовком. В нашем случае формат файла был следующим:
Date,Open,High,Low,Close,Volume,Adj Close 2013-10-09,856.28,862.65,842.98,855.86,2651300,855.86 2013-10-08,865.32,865.98,851.63,853.67,1943700,853.67 2013-10-07,867.45,873.99,864.11,865.74,1293600,865.74 2013-10-04,875,877.51,870,872.35,1358000,872.35
Мы также можем определить отображение между заголовками столбцов файлов и именами полей, если захотим.
Когда данные загружены, мы можем открыть
Developer Console с Database.com, чтобы проверить, все ли данные были успешно вставлены. Нам нужно перейти в редактор запросов, ввести наш SOQL-запрос, например SELECT Close__c, Volume__c из StockPrice__c, и нажать кнопку «Извинить»:
обратите внимание, что именем API для настраиваемых полей и настраиваемой таблицы являются Close__c, Volume__c и StockPrice__c, что указывает на то, что они пользовательские объекты.
Удаленный доступ к Database.com
Теперь, когда наши данные загружены в наш пользовательский объект, последним шагом является настройка удаленного доступа для удаленных приложений (например, наших воображаемых мобильных приложений), которые хотят запускать запросы SOQL к нашему объекту, используя REST API. Аутентификация основана на
стандарте OAuth . Подробнее о концепции аутентификации Database.com можно прочитать
здесь . Чтобы включить удаленный доступ, нужно перейти в
меню « Разработка»> «Удаленный доступ» и настроить необходимые параметры. В разделе Интеграция URL обратного вызова является обязательным, в нашем примере мы установили его на
http: // localhost: 5000 / _auth . Это необходимо для потока веб-сервера, который является стандартным методом аутентификации, используемым в
шаблоне Java предоставляется Salesforce.com в качестве стандартного приложения для удаленного доступа к Database.com.
Доступ к объектам Database.com из удаленного приложения
Database.com использует аутентификацию OAuth 2.0, чтобы предоставить пользователям безопасный доступ к данным. Поддерживаются различные потоки аутентификации, такие как поток веб-сервера, поток агента пользователя, поток имени пользователя и пароля. В зависимости от фактического потока аутентификации могут использоваться разные конечные точки Database.com. Для авторизации это
https://login.database.com/services/oauth2/authorize . Для запроса токена конечной точкой является
https://login.database.com/services/oauth2/token . Наш первый пример основан на процессе аутентификации имени пользователя и пароля. В этом случае у пользователя уже есть учетные данные (имя пользователя / пароль), и они отправляются как часть запроса, вместе с ключом клиента и его секретом. Ключ клиента и сегмент клиента могут быть получены из удаленного доступа, нам нужно перейти к
Разработчик-> Удаленный доступ и выберите клиента.
Имя пользователя совпадает с тем, которое мы использовали для входа в Database.com, в то время как пароль является объединенной строкой пароля Database.com и маркера безопасности (как вы помните, это то же самое понятие, которое мы использовали для входа в Data Loader). Первым шагом является запрос токена с Database.com, мы демонстрируем запрос REST с помощью инструмента командной строки curl:
$ curl --data "grant_type=password&client_id=CLIEN_ID&client_secret=CLIENT_SECTER&username=USERNAME&password=PASSWORD" https://login.database.com/services/oauth2/token
Это возвращает вывод JSON, содержащий access_token:
{"id":"https://login.salesforce.com/id/00000001234567/0000000ABCDEFG","issued_at":"12345678","instance_url":"https://computing-business-8114.database.com","signature":"ABCDEFGH","access_token":"12345678abcdefgh"
Затем мы можем отправить наш SOQL-запрос вместе с этим токеном доступа (в данном примере 12345678abcdefgh):
$ curl https://computing-business-8114.database.com/services/data/v22.0/query/?q=SELECT+Date__c,+Volume__c,+Close__c+from+StockPrice__c+where+Date__c=2010-02-04 --header "Content-Type:application/json" --header "X-PrettyPrint:1" --header "Authorization: OAuth 12345678abcdefgh"
Запрос вернет поля Date, Volume и Close из объекта StockPrice в формате JSON, где дата — 4 февраля 2010 года.
{ "totalSize" : 1, "done" : true, "records" : [ { "attributes" : { "type" : "StockPrice__c", "url" : "/services/data/v22.0/sobjects/StockPrice__c/0000000aaaaabbbb" }, "Date__c" : "2010-02-04", "Volume__c" : 3377700.0, "Close__c" : 526.78 } ] }
Salesforce.com также предоставляет шаблон Java, который можно загрузить с веб-сайта Database.com. Это пример приложения, работающего на Jetty, и он использует поток веб-сервера на основе класса AuthFilter для проверки подлинности OAuth. Когда мы введем
http: // localhost: 5000 / , ей будет представлена страница аутентификации:
если пользователь нажмет
кнопку « Разрешить» , он будет отправлен на главную домашнюю страницу, где можно ввести запрос SOQL:
затем мы можем ввести запрос:
select Date__c, Close__c, Volume__c from StockPrice__c where Date__c = 2010-02-04
Страница результатов должна выглядеть так:
Вывод
Как мы уже видели, Database.com — это идеальный движок облачных баз данных для мобильных и социальных приложений. Он предлагает ту же модель корпоративной безопасности и идентификации, которая используется другими платформами Salesforce.com, что делает его надежным выбором платформы баз данных для разработчиков облачных вычислений. Поскольку он основан на REST API, доступ к нему можно получить с любых языков программирования, таких как Java, C, C #, Ruby, Python, PHP и т. Д. Salesforce.com также создал
Java SDK для Database.com и Force.com, которые может быть использован для быстрого создания приложений Spring MVC из шаблона.