Регистрация  |  Вход

Интеграция с традиционными Database Servers: возможные варианты

Всем привет,

по работе столкнулся с таким нехитрым вопросом, который все же заставил меня задуматься:

Опишите ваш подход к интеграции со сторонними традиционными серверами Баз Данных, особенно если у них нет Веб-сервисов (каких-то доступных WS service API).

у меня, конечно, есть несколько идей, но очень хочу выслашать ваше мнение.


и, второй технический вопрос, как известно в СФ нам доступна такая вешь как Email listener как одно из средств интеграции. вопрос заключается в том, насколько вообще оправка писем и получение их на СФ сервере является безопасным способом передачи данных?

спасибо

Всем привет,

по работе столкнулся с таким нехитрым вопросом, который все же заставил меня задуматься:

[b][i]Опишите ваш подход к интеграции со сторонними традиционными серверами Баз Данных, особенно если у них нет Веб-сервисов (каких-то доступных WS service API).[/i][/b]

у меня, конечно, есть несколько идей, но очень хочу выслашать ваше мнение.


и, второй технический вопрос, как известно в СФ нам доступна такая вешь как Email listener как одно из средств интеграции. вопрос заключается в том, насколько вообще оправка писем и получение их на СФ сервере является безопасным способом передачи данных?

спасибо


Я писал нехитрые сервисы на .Net для связи СФ с MS SQL, которые работают на том же сервере, что и БД. B Salesforce настраивал Outbound Messages на создание/редактирование и триггер на удаление. Сервисы открыты для всех и вся, конечно. Но вот как раз сейчас началась дискотека с SSL 1.0 и парни начали чесаться, что мол не хорошо открытые сервисы для всех. Вот, надеюсь обычного сертификата им будет достаточно.

Email Service - а какие вопросы с безопасностью? Проверяешь откуда пришло письмо и парсишь его, если от правильного отправителя.

Я писал нехитрые сервисы на .Net для связи СФ с MS SQL, которые работают на том же сервере, что и БД. B Salesforce настраивал Outbound Messages на создание/редактирование и триггер на удаление. Сервисы открыты для всех и вся, конечно. Но вот как раз сейчас началась дискотека с SSL 1.0 и парни начали чесаться, что мол не хорошо открытые сервисы для всех. Вот, надеюсь обычного сертификата им будет достаточно.

Email Service - а какие вопросы с безопасностью? Проверяешь откуда пришло письмо и парсишь его, если от правильного отправителя.

Andrew Muzychuk
Email Service - а какие вопросы с безопасностью? Проверяешь откуда пришло письмо и парсишь его, если от правильного отправителя.

имеется ввиду безопасность в процессе передачи почтовых данных, я плохо знаком с этим механизмом и протоколами: как убедится что они там используют и принимают "почтовые данные" через безопасные соединения вроде https?

[quote="Andrew Muzychuk"]Email Service - а какие вопросы с безопасностью? Проверяешь откуда пришло письмо и парсишь его, если от правильного отправителя.[/quote]

имеется ввиду безопасность в процессе передачи почтовых данных, я плохо знаком с этим механизмом и протоколами: как убедится что они там используют и принимают "почтовые данные" через безопасные соединения вроде http[b]s[/b]?

Там есть такая опция:

Advanced Email Security Settings
Before enabling this option, make sure that your users’ email domains support at least one of the following protocols: SPF, Sender ID, or DomainKeys. When this option is enabled, salesforce.com uses these protocols to verify the legitimacy of the email sender's server. If the server passes at least one protocol and does not fail any, salesforce.com processes the email. If the server fails a protocol or does not support any of the protocols, then salesforce.com does not process the email.

Там есть такая опция:
[quote][b]Advanced Email Security Settings[/b]
Before enabling this option, make sure that your users’ email domains support at least one of the following protocols: SPF, Sender ID, or DomainKeys. When this option is enabled, salesforce.com uses these protocols to verify the legitimacy of the email sender's server. If the server passes at least one protocol and does not fail any, salesforce.com processes the email. If the server fails a protocol or does not support any of the protocols, then salesforce.com does not process the email.[/quote]

Andrew Muzychuk
Там есть такая опция:
Advanced Email Security Settings
Before enabling this option, make sure that your users’ email domains support at least one of the following protocols: SPF, Sender ID, or DomainKeys. When this option is enabled, salesforce.com uses these protocols to verify the legitimacy of the email sender's server. If the server passes at least one protocol and does not fail any, salesforce.com processes the email. If the server fails a protocol or does not support any of the protocols, then salesforce.com does not process the email.

это одна часть "https" - аутентификация сервера. smtp может работать поверх TLS, так что это должно покрывать безопасность "в пути".

А так, если есть база данных без "оболочки" вокруг, то бери чего из ETL, near-realtime пуллы из форса чаще достаточны для таких целей. Talend Community Edition достаточно мощен, поддерживает API и маппинги могут легко допиливаться бизнес-аналитиками и прочими функциональщиками.

Если у тебя повышенные требования к оркестровке транзакцией и сложности бизнес-логики, то придется писать что-нибудь на сторонней технологии, но это уже полноценное приложение, нежели только "возьми отсюда - положи сюда".

[quote="Andrew Muzychuk"]Там есть такая опция:
[quote][b]Advanced Email Security Settings[/b]
Before enabling this option, make sure that your users’ email domains support at least one of the following protocols: SPF, Sender ID, or DomainKeys. When this option is enabled, salesforce.com uses these protocols to verify the legitimacy of the email sender's server. If the server passes at least one protocol and does not fail any, salesforce.com processes the email. If the server fails a protocol or does not support any of the protocols, then salesforce.com does not process the email.[/quote][/quote]

это одна часть "https" - аутентификация сервера. smtp может работать поверх TLS, так что это должно покрывать безопасность "в пути". 

А так, если есть база данных без "оболочки" вокруг, то бери чего из ETL, near-realtime пуллы из форса чаще достаточны для таких целей. Talend Community Edition достаточно мощен, поддерживает API и маппинги могут легко допиливаться бизнес-аналитиками и прочими функциональщиками. 

Если у тебя повышенные требования к оркестровке транзакцией и сложности бизнес-логики, то придется писать что-нибудь на сторонней технологии, но это уже полноценное приложение, нежели только "возьми отсюда - положи сюда".

Den Brown
Опишите ваш подход к интеграции со сторонними традиционными серверами Баз Данных, особенно если у них нет Веб-сервисов (каких-то доступных WS service API).

Писать свой web service на любом доступном знакомом ЯП - самое простое, доступное и гибкое решение. На том же python это делается за пару часов с использованием одного из кучи микрофреймворков. Я думаю другие ЯП не отстают. Да хоть на PHP

[quote="Den Brown"]Опишите ваш подход к интеграции со сторонними традиционными серверами Баз Данных, особенно если у них нет Веб-сервисов (каких-то доступных WS service API).[/quote]

Писать свой web service на любом доступном знакомом ЯП - самое простое, доступное и гибкое решение. На том же python это делается за пару часов с использованием одного из кучи микрофреймворков. Я думаю другие ЯП не отстают. Да хоть на PHP :) 

всем спасибо

cidr8n
ETL, near-realtime пуллы из форса чаще достаточны для таких целей. Talend Community Edition достаточно мощен, поддерживает API и маппинги могут легко допиливаться бизнес-аналитиками и прочими функциональщиками.

я видел такое на одном проекте, но в моем представлении сам ETL тул работает на твоей локальной машине, и ты его в ручную или автоматически по расписанию запускаешь время от времени, так получается?

Dmitry Shnyrev
Писать свой web service

ты предлагаешь запилить WS для клиентской БД к которой не доступа? так не получится

и по поводу готовых "коннекторов" вроде Informatica. Как это работает? это что-то вроде приложения на AppExchange которые ты устанавливаешь в Орг и настраиваешь, или это сервер у самой Informatica, который "подключен" к сторонней БД и к твоему СФ Оргу?

Что кстати с Lightning Connect? он сделает нашу жизнь легче? понимаю, что все что начинается со слова Lightning вызывает у нас сложные эмоции, но все же

всем спасибо

[quote="cidr8n"] ETL, near-realtime пуллы из форса чаще достаточны для таких целей. Talend Community Edition достаточно мощен, поддерживает API и маппинги могут легко допиливаться бизнес-аналитиками и прочими функциональщиками.[/quote]

я видел такое на одном проекте, но в моем представлении сам ETL тул работает на твоей локальной машине, и ты его в ручную или автоматически по расписанию запускаешь время от времени, так получается?

[quote="Dmitry Shnyrev"]Писать свой web service [/quote]
ты предлагаешь запилить WS для клиентской БД к которой не доступа? так не получится

и по поводу готовых "коннекторов" вроде Informatica. Как это работает? это что-то вроде приложения на AppExchange которые ты устанавливаешь в Орг и настраиваешь, или это сервер  у самой Informatica, который "подключен" к сторонней БД и к твоему СФ Оргу?

Что кстати с Lightning Connect? он сделает нашу жизнь легче? понимаю, что все что начинается со слова Lightning вызывает у нас сложные эмоции, но все же

Den Brown
ты предлагаешь запилить WS для клиентской БД к которой не доступа?

Если у тебя нет доступа к клиентской БД, то у тебя никакими способами не получится с ней работать.

[quote="Den Brown"]ты предлагаешь запилить WS для клиентской БД к которой не доступа?[/quote]
Если у тебя нет доступа к клиентской БД, то у тебя никакими способами не получится с ней работать.

Den Brown
и по поводу готовых "коннекторов" вроде Informatica. Как это работает? это что-то вроде приложения на AppExchange которые ты устанавливаешь в Орг и настраиваешь
Они-то готовы, но тебе все-равно нужен доступ к БД. Как Информатика будет записывать данный в БД без доступа к ней?
Где хостится само приложение я не знаю, но от Информатики начали отказываться из-за проблем с подключению к БД. Толи она не поддерживает MS SQL. А! Windows Authentication не поддерживает. По-этому я делал .Net сервисы, которые крутятся в домене компании и имеет доступ к БД.

[quote="Den Brown"]и по поводу готовых "коннекторов" вроде Informatica. Как это работает? это что-то вроде приложения на AppExchange которые ты устанавливаешь в Орг и настраиваешь[/quote]Они-то готовы, но тебе все-равно нужен доступ к БД. Как Информатика будет записывать данный в БД без доступа к ней?
Где хостится само приложение я не знаю, но от Информатики начали отказываться из-за проблем с подключению к БД. Толи она не поддерживает MS SQL. А! Windows Authentication не поддерживает. По-этому я делал .Net сервисы, которые крутятся в домене компании и имеет доступ к БД.

информатика - тот же ETL и даже облачная версия требует установки агента на тачке. можно его поставить на ec2, но это все равно тачка.

даже платная ее версия довольна ущербна в некоторых аспектах, так что я бы смотрел в сторону таленда, даже при его более скромных средствах мониторинга. его джобы экспортируются в jar файл, который ты можешь запускать хоть из кроном.

lightning connect - другой вопрос. нужно "обернуть" данные в odata, репортинг на них ущербен и автоматизации нет. ну и лицензия в районе 40к нерублей в год.

информатика - тот же ETL и даже облачная версия требует установки агента на тачке. можно его поставить на ec2, но это все равно тачка.

даже платная ее версия довольна ущербна в некоторых аспектах, так что я бы смотрел в сторону таленда, даже при его более скромных средствах мониторинга. его джобы экспортируются в jar файл, который ты можешь запускать хоть из кроном.

lightning connect - другой вопрос. нужно "обернуть" данные в odata, репортинг на них ущербен и автоматизации нет. ну и лицензия в районе 40к нерублей в год.

Den Brown
ты предлагаешь запилить WS для клиентской БД к которой не доступа? так не получится

Странная задача.
Вообще база данных обычно крутится на каком-то сервере и по любому должна быть доступна локально. А сам сервер должен быть доступен в интернете. Так везде работает - в принципе ни одна база данных не должна быть доступна извне - это не безопасно.

[quote="Den Brown"]ты предлагаешь запилить WS для клиентской БД к которой не доступа? так не получится[/quote]
Странная задача. 
Вообще база данных обычно крутится на каком-то сервере и по любому должна быть доступна локально. А сам сервер должен быть доступен в интернете. Так везде работает - в принципе ни одна база данных не должна быть доступна извне - это не безопасно.

как понимаю там разные варианты,

есть БД, у которых есть какой-то интерфейс через WS, и с которыми можно использовать какие то коннекторы и прочее.

а есть БД, которые работают локально, к ним никак не обратиться извне, и никто не будет там делать никакие WS для тебя. в таком случае, как я понимаю, нужно просто время от времени обмениваться например CSV файлами с трубуемыми данными и все

как понимаю там разные варианты,

есть БД, у которых есть какой-то интерфейс через WS, и с которыми можно использовать какие то коннекторы и прочее.

а есть БД, которые работают локально, к ним никак не обратиться извне, и никто не будет там делать никакие WS для тебя. в таком случае, как я понимаю, нужно просто время от времени обмениваться например CSV файлами с трубуемыми данными и все

Den Brown
и никто не будет там делать никакие WS для тебя

нормально так - сервис поднимать для тебя никто не будет, но грузить твой CSV раз в неделю/месяц будут.
Мне интересно кто придумывает такие задачи - "сделай то не знаю что".

[quote="Den Brown"]и никто не будет там делать никакие WS для тебя[/quote]
нормально так - сервис поднимать для тебя никто не будет, но грузить твой CSV раз в неделю/месяц будут.
Мне интересно кто придумывает такие задачи - "сделай то не знаю что".