Архитектура Синхронайзера

Транспортная система Синхронайзера подобна кровеносной системе живого организма

При проектировании архитектуры Синхронайзера мы не стали "изобретать велосипед". Все лучшее уже изобретено самой природой, надо только суметь это найти. Обычно подобные аналоги и становится наиболее эффективными и естественными решениями. За основу Системного Смнхронайзера мы взяли кровеносную систему - транспортную среду, которая осуществляет доставку необходимого материала (в нашем случае - информации) с целью поддержания жизнедеятельности клеток живого организма.

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

Архитектура Синхронайзера реализована максимально просто. При проектировании решения мы заложили следующие обязательные условия:

  • Система является модульной, что позволяет адаптировать ее практически к любому бизнес-окружению Заказчика. Модули можно комбинировать друг с другом, добавлять, удалять, включать пользовательские модули и т.д.
  • Сбой в любом модуле Синхронайзера не нарушит процесс синхронизации в целом. В самом крайнем случае перебои будут связаны с синхронизацией только отдельной системы, в то время как все остальные системы будут обмениваться данными бесперебойно.
  • Формат XML лежит в основе синхросообщений (синхросообщение - элементарная единица передаваемых данных при синхронизации), которыми обмениваются системы, что позволяет легко управлять этими данными даже в малодоступном окружении, а также наложить на них дополнительную промежуточную обработку. В частности, синхросообщения легко зашифровать и дешифровать налету любыми доступными средствами, в том числе сторонними, и это не нарушит работу модулей Синхронайзера.
  • Синхросообщения можно накапливать при отложенной синхронизации с внешней системой, если последняя недоступна, например, в связи с проведением регламентных работ. В этом случае, если отключенная система снова станет активной, Синхронайзер выполнит синхронизацию данных, последовательно обработав синхросообщения, поступившие ранее, в порядке их получения. Такой подход дает огромное преимущество в обеспечении высокой надежности передачи синхронизирующих данных, позволяя избегать любых потерь информации.
  • Мультиплатформенность является отличительной характеристикой большинства модулей Синхронайзера, которые могут работать практически на любых операционных системах и платформах. Синхронайзер может быть развернут в Windows, Linux, Unix, HP-UX, Solaris и т.д.
  • Пользователь может выбрать способ развертывания модулей Синхронайзера: автономные приложения или приложения, предназначенные для того или иного сервера приложений (Apache Tomcat или IBM WebSphere Application Server). В случае использования серверов приложений процедура инсталляции все равно крайне проста (например, в случае Apache Tomcat достаточно лишь переместить развертываемый модуль в папку приложений, и произойдет автоматическое развертывание модуля и его запуск).

Простейшая двусторонняя синхронизация данных внешних систем с помощью Системного Синхронайзера

В самом простейшем варианте Системный синхронайзер обеспечивает синхронизацию данных между двумя внешними системами. Для этого достаточно установить по одному специальному шлюзу для каждой из систем и модуль Mapper. Каждый шлюз обеспечивает надежный обмен данными со своей системой, если точнее, обработку входящих синхросообщений, а также создание исходящих синхросообщений по результатам изменений данных внутри связанной системы.

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

В более общем случае задачей Синхронизатора является перенаправление потоков сообщений к той системе, для которой конкретное синхросообщение предназначено. Здесь одновременно могут работать несколько Мапперов. При этом каждый может выполнять свою собственную функцию, связанную с необходимостью обеспечения специфической обработки данных. Например, информация об инцидентах (предположим, имеем такой тип данных в одной системе) должна быть преобразована в соответствии с одними правилами синхронизации, информация о проектных задачах (другой тип данных) - по другим правилам и т.д. Количество Мапперов, которые можно использовать - безгранично, т.к. все в конечном итоге определяется числом синхронизируемых систем, а также конкретными задачами, поставленными в области синхронизации данных.

Предположим надо организовать синхронизацию сразу трех систем. Могут быть разные схемы сборки модулей Синхронайзера в единую транспортную среду, но один из примеров такой сборки может быть представлен на следующем рисунке.

Пример сложной синхронизации трех систем с помощью Системного СинхронайзераЗдесь, чтобы отправить данные синхронизации из одной системы сразу в несколько других систем, необходимо предварительно поделить исходящий транспортный поток на несколько потоков с помощью специального модуля Splitter. После этого становится возможным использовать Mapper для преобразования синхронизирующих данных в соответствии с правилами синхронизации для конкретной целевой системы.

© 2008-2016 Финэкософт.

 

Oracle Silver Partner
+7 (495) 664 4727
Учебный центр
Центр обучения и сертификации в области информационных технологий (IT).

Широкий выбор курсов и программ обучения. Подробности здесь.

Отправить письмо
Обратная связь

 

Для Ваших вопросов и отзывов