Статьи

Database.com: облачная база данных Salesforce.com

Вступление

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 и нажать либо на Кнопка Создать пользовательский объект или построитель схем. В нашем примере мы собираемся показать, как использовать
dbcom-1

Строитель Схем .
Нажав на кнопку, откроется Schema Builder, и здесь мы сможем определить имя объекта и несколько других параметров.
После создания объекта мы можем приступить к определению полей. Мы можем использовать палитру в левой части построителя схем и просто перетащить соответствующие типы данных, такие как число или дата, на холст.
,
Мы также можем определить правила проверки, чтобы гарантировать, что значения в полях (столбцы в мире РСУБД) соответствуют требованиям.
Как только мы закончим, мы можем проверить наш объект, у него есть семь настраиваемых полей: AdjClose, Close, Date, High, Low, Open и Volume.
dbcom-2-1

dbcom-3

dbcom-5-1
dbcom-7

dbcom-6

Загрузка данных в объекты Database.com

Теперь, когда у нас есть созданный объект, следующий шаг — загрузить в него данные. В принципе, мы могли бы вставлять данные, используя
инструмент
Workbench , но в этом примере мы собираемся использовать пакетный инструмент Salesforce.com под названием
Data Loader, который может быть очень полезен для загрузки огромного количества данных с нашего компьютера. Data Loader — это приложение для Windows, которое можно загрузить в
меню «
Управление данными» -> «Загрузчик данных» .
После его установки мы можем использовать его для загрузки данных в наш объект StockPrice. Финансовые данные были получены с
http://finance.yahoo.com
dbcom-8-1

, Когда мы запускаем загрузчик данных, нам нужно сначала войти в систему. Имя пользователя совпадает с тем, которое мы использовали для входа на 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, что указывает на то, что они пользовательские объекты.
dbcom-13

dbcom-16

Удаленный доступ к Database.com

Теперь, когда наши данные загружены в наш пользовательский объект, последним шагом является настройка удаленного доступа для удаленных приложений (например, наших воображаемых мобильных приложений), которые хотят запускать запросы SOQL к нашему объекту, используя REST API. Аутентификация основана на
стандарте OAuth . Подробнее о концепции аутентификации Database.com можно прочитать
здесь . Чтобы включить удаленный доступ, нужно перейти в
меню «
Разработка»> «Удаленный доступ» и настроить необходимые параметры. В разделе Интеграция URL обратного вызова является обязательным, в нашем примере мы установили его на
http: // localhost: 5000 / _auth . Это необходимо для потока веб-сервера, который является стандартным методом аутентификации, используемым в
шаблоне Java предоставляется Salesforce.com в качестве стандартного приложения для удаленного доступа к Database.com.
dbcom-18-1

Доступ к объектам 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:
dbcom-20.

$ 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:
затем мы можем ввести запрос:
dbcom-21

dbcom-22

select Date__c, Close__c, Volume__c from StockPrice__c where Date__c = 2010-02-04

Страница результатов должна выглядеть так:
dbcom-23

Вывод

Как мы уже видели, Database.com — это идеальный движок облачных баз данных для мобильных и социальных приложений. Он предлагает ту же модель корпоративной безопасности и идентификации, которая используется другими платформами Salesforce.com, что делает его надежным выбором платформы баз данных для разработчиков облачных вычислений. Поскольку он основан на REST API, доступ к нему можно получить с любых языков программирования, таких как Java, C, C #, Ruby, Python, PHP и т. Д. Salesforce.com также создал
Java SDK для Database.com и Force.com, которые может быть использован для быстрого создания приложений Spring MVC из шаблона.