В данном разделе приводятся соображения по планированию службы синхронизации и топологии прокси-сервера синхронизации.
Обзор развертывания
Ниже перечислены компоненты, которые необходимо развернуть для интеграции Microsoft Project Server 2007:
-
Служба синхронизации. Это компонент службы операционной системы Windows, использующий службу WCF (Windows Communication Foundation) и компонент .NET Business Connector для интеграции с приложением Microsoft Dynamics AX.
-
Очереди синхронизации. Это очереди службы очередей сообщений MSMQ (Microsoft Message Queuing), используемые службой синхронизации. По умолчанию эти очереди устанавливаются на тот же сервер, на который установлена служба синхронизации. Имеется возможность установить очереди MSMQ на разные серверы для масштабируемости.
-
Прокси-сервер синхронизации. Это .NET-компонент, установленный на сервере Project Server. Прокси-серверу синхронизации требуется, чтобы очереди сообщений были установлены на сервер со службой MSMQ. Очереди приложений могут быть на том же сервере, на котором установлен прокси-сервер синхронизации, или на другом сервере.
Соображения о масштабируемости и доступности при развертывании службы синхронизации и прокси-сервера синхронизации
При планировании службы синхронизации и топологии прокси-сервера синхронизации следует учитывать следующее:
-
Служба WCF (Windows Communication Foundation) для службы синхронизации настроена по умолчанию в режиме установки "на вызов". В этой конфигурации служба WCF создает экземпляр класса службы для обработки каждого запроса от клиента. Таким образом, служба синхронизации не сохраняет состояния сеансов. Установка "на вызов" может повлиять на производительность службы. Чтобы поддерживать высокую производительность по обработке запросов, система Microsoft Dynamics AX 2009 реализует для класса службы группирование объектов.
-
Справочник сеансов AX-клиента по компаниям кэшируется в каждом экземпляре службы WCF, упомянутом выше. Служба загружает из справочника AX-сеанс для компании, с которой ей нужно соединиться в системе Microsoft Dynamics AX. Если ключевая запись не существует, новый AX-сеанс будет создан и сохранен после использования в справочнике для использования другими потоками.
-
Чтобы предотвратить потерю обновлений, служба синхронизации использует программный интерфейс приложений (API) для оформления выдачи проекта с сервера проектов, обработки необходимых обновлений, а затем для записи проекта обратно. Если проект, который пытаются синхронизировать, уже оформлен для выдачи другому пользователю, служба синхронизации прервет процесс синхронизации и отправит стандартное сообщение об ошибке синхронизации администратору синхронизации. Служба синхронизации сравнивает поле RecVersion главной таблицы простого объекта, который обновляется, с RecVersion объекта в службе синхронизации. Если эти версии отличаются, служба синхронизации прерывает процесс и отправляет уведомление об ошибке администратору синхронизации.
-
Служба синхронизации использует преимущества надежного обмена сообщениями службы WCF, чтобы гарантировать, что сообщения читаются из очередей один единственный раз. Этот надежный обмен сообщениями достигается отправкой сообщения в очередь посредством транзакции, чтобы сообщение помещалось в очередь только в том случае, если все охватываемые транзакцией действия обработаны без ошибок. Аналогично служба синхронизации читает сообщения из очереди также посредством транзакции.
-
Приложение Microsoft Dynamics AX и Project Server не поддерживают распределенные транзакции. Таким образом, когда для транзакции требуется обновить как приложение Microsoft Dynamics AX, так и Project Server, служба синхронизации:
-
Сохраняет транзакции в хранилище синхронизации (специальной таблице в базе данных Microsoft Dynamics AX) и предоставляет возможность повторить обработку транзакций, если предыдущая попытка обработки не удалась.
-
Реализует идемпотентность действий создания, обновления, отсоединенияи удаления. Идемпотентность позволяет этим действиям быть реализованными таким способом, что даже если эти действия выполняются над экземпляром объекта несколько раз, система будет рассматривать их как одно действие. Например, действие созданиядля проекта создает один проект, даже если действие созданияобрабатывается дважды для определенной транзакции.
-
-
Служба синхронизации является службой WCF и поддерживает как увеличение, так и уменьшение масштаба. Это обсуждается ниже в разделе топологии.
Соображения по топологии
При планировании топологии необходимо тщательно учитывать влияние на загрузку и время отклика интеграции Project Server с системой Microsoft Dynamics AX. В данном разделе описывается топология службы синхронизации. На следующей схеме показана топология с одиночным сервером и топология мелкомасштабного развертывания с возможностью использования двух и трех серверов.
Развертывание с одиночным сервером
Имеется возможность установить Project Server, службу синхронизации и сервер AOS (Application Object Server) на один сервер в среде разработки или тестирования.
Важно |
---|
Этот сценарий не поддерживается для рабочей среды. |
Мелкомасштабное развертывание
Используйте одну из следующих топологий для мелкомасштабного развертывания.
-
Конфигурация с двумя серверами включает:
-
Project Server на выделенном сервере с прокси-сервером синхронизации.
-
Сервер AOS и службу синхронизации, включая очереди синхронизации на базе MSMQ, на выделенном сервере.
-
-
Конфигурация с тремя серверами включает:
-
Project Server на выделенном сервере с прокси-сервером синхронизации.
-
Службу синхронизации на выделенном сервере (включая очереди синхронизации на базе MSMQ).
-
Сервер AOS на выделенном сервере.
-
Крупномасштабное развертывание
Служба синхронизации является службой WCF и поддерживает как режим увеличения, так и режим уменьшения масштаба следующим образом:
-
Увеличение масштаба. Служба WCF автоматически выполняет увеличение масштаба. Нужно только развернуть на сервере один экземпляр службы синхронизации. Служба WCF будет использовать столько потоков, сколько нужно для чтения сообщений из очередей, отправленных от клиентов, Project Server или приложения Microsoft Dynamics AX.
-
Уменьшение масштаба. Имеется возможность развернуть службу синхронизации на нескольких серверах, и каждый экземпляр будет обрабатывать запросы от клиента. Имеется возможность уменьшить масштаб службы синхронизации двумя способами:
Конфигурация
Сценарий 1. Служба синхронизации и служба MSMQ развернуты на одном и том же сервере в кластере балансировки сетевой нагрузки Microsoft Windows (NLB-кластере).
Сценарий 2. Служба синхронизации развернута на нескольких серверах, а служба MSMQ развернута на выделенном сервере.
Механизм кластеризации
Балансировка сетевой нагрузки Microsoft Windows (Windows Network Load Balancing - NLB).
Отсутствует. Служба синхронизации получает сообщения из очереди приложения.
Местоположение очередей синхронизации (MSMQ)
Как служба синхронизации, так и очереди синхронизации хранятся на одном и том же сервере.
Очереди синхронизации хранятся на отдельном сервере. Служба синхронизации развернута на нескольких серверах и настроена на получение сообщений из очереди приложения. Прокси-сервер синхронизации настроен на отправку сообщений в очередь приложения.
Модель
Это модель "push", при которой полученные от клиента сообщения перенаправляются службой NLB в очереди синхронизации.
Это модель "pull", при которой служба синхронизации на всех компьютерах берет сообщения из одной и той же очереди.
Обсуждение
В определенных сценариях служба NLB может потенциально перенаправить сообщение на тот же сервер, что и в предыдущем запросе, а не на компьютер с меньшим числом сообщений в очереди для обработки.
Данная роль поддерживается только системой Windows Vista. Она не поддерживается системой Windows Server 2003. Это связано с тем, что чтение с помощью транзакций из внешней очереди в службе WCF доступно только в новой версии службы MSMQ, которая входит в систему Windows Vista.
На следующей схеме показана топология для сценария 1 из предыдущей таблицы, когда и служба синхронизации, и служба MSMQ развернуты на серверах, настроенных в NLB-кластере Windows.
На следующей схеме показана топология для сценария 2 из предыдущей таблицы, когда служба синхронизации развернута на нескольких серверах, а служба MSMQ развернута на выделенном сервере.