Скачиваний:
307
Добавлен:
15.06.2014
Размер:
1.2 Mб
Скачать

Вопрос № 42

Принципы создания Web-приложений с архитектурой БДMulti-Tenant.

http://ru.wikipedia.org/wiki/Software_on-demand

http://msdn.microsoft.com/en-us/library/aa479086.aspx

Saas(Softwareasaservice) – это централизованное решение, при котором ряд продуктов, предназначенных для разных заказчиков, устанавливается в одну общую инфраструктуру.

Проще говоря, это – бизнес-модель продажи и использования программного обеспечения, при которой поставщик разрабатывает веб-приложение и самостоятельно управляет им, предоставляя заказчикам доступ к программному обеспечению через Интернет. Основное преимущество модели SaaS для потребителя состоит в отсутствии затрат, связанных с установкой, обновлением и поддержкой работоспособности оборудования и работающего на нём программного обеспечения.

Есть несколько подходов к обеспечению многодоменности:

  1. Для каждого клиента своя база данных

  2. База данных общая, но для каждого клиента своя схема (т.е. для каждого делаются копии таблиц)

  3. Данные хранятся совместно

Первый случай:

  1. Полная изоляция данных

  2. Хранятся метаданные, позволяющие ассоциировать заказчика с Tenant’ом

  3. Можно легко модифицировать структуру

  4. Легко делать backup

  5. Поддержка требует значительных усилий

  6. Надо больше оборудования, в результате стоимость такого решения будет чувствительно выше, чем в остальных случаях.

Второй случай:

  1. Может быть больше заказчиков

  2. Легче обслуживание

  3. Проблемы с backup– откатывается вся база, а нужно откатить только 1 домен (Tenant). Приходится разворачиватьbackupна новый сервер, а потом переносить туда данные всех заказчиков, кроме того, для которого делалсяbackup(или приостановить работу исходного сервера и перелить туда данные целевогоTennent’aиз нового сервера).

Третий случай:

Одна база, один набор таблиц. Добавляется новое поле TenantId

  1. Наименьшие требования к аппаратуре

  2. Легче всего обслуживать

  3. Проблемы с backup

  4. Много возни с обеспечением безопасности (вплоть до шифрации данных)

Подходит, если заказчиков очень много (тысячи)

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

Но при архитектуре SaaSтакой подход неэффективен, так как при работе с одним заказчиком нам не нужны данные остальных заказчиков. Эту проблему можно решить, используя разбиение на разделы (Partishnen). При этом данные при хранении будут группироваться по значению какого-то поля. Например:

Name

E-mail

Phone

Физически на диске будет храниться так:

Таким образом, если выбираем пользователей и их телефоны, то e-mailвообще не будет трогаться (вытягиваться с жесткого диска).

При партишен архитектуре данные будут храниться так:

Партишен поддерживается только в Enterprise-версиях.

Вопрос № 43

Протокол SOAPи механизм удаленного вызова подпрограмм службы.

SOAP(отангл.Simple Object Access Protocol— простой протокол доступа к объектам) —протоколобмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC). Сейчас протокол используется для обмена произвольными сообщениями в форматеXML, а не только для вызова процедур. Официальнаяспецификацияпоследней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протоколаXML-RPC.

SOAP может использоваться с любым протоколом прикладного уровня: SMTP,FTP,HTTP,HTTPSи др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.

SOAP является одним из стандартов, на которых базируются технологии веб-служб.

Сообщение SOAP выглядит так:

SOAP-конверт

SOAP-заголовок

Элемент заголовка 1

Элемент заголовка 2

Элемент заголовка N

Тело SOAP

Элемент тела N

Элемент тела 2

Элемент тела 1

Использование SOAP для передачи сообщений увеличивает их объём и снижает скорость обработки. В системах, где скорость важна, чаще используется пересылка XML-документов через HTTP напрямую, где параметры запроса передаются как обычные HTTP-параметры.

Хотя SOAP является стандартом, некоторые программы часто генерируют сообщения в несовместимом формате. Например, запрос, сгенерированный AXIS-клиентом, не будет понят серверомWebLogic.