Портал магистров

Поддержка доступа мобильных клиентов при помощи DB2 Everyplace Sync Server


    Авторы: Вей Вонг (Wei Wang), инженер по программному обеспечению, IBM
    Му Ганг Ду (Mu Gang Du, штатный инженер по программному обеспечению, IBM
    Источник: Официальный сайт IBM

С появлением технологий "Pervasive computing" все больше предприятий желают расширить свои традиционные решения на такие мобильные устройства, как КПК или смартфоны, чтобы добиться лучшего времени отклика и лучшего удовлетворения потребностей клиентов. Прочитав эту статью, вы узнаете, как использовать DB2 Everyplace в качестве решения с открытым исходным кодом для поддержки "Pervasive computing". Внедрение такой технологии, как DB2 Everyplace, позволит мобильным специалистам - продавцам, инспекторам, аудиторам, техникам по вызову, врачам, риэлторам и сотрудникам по страховым искам - оставаться в курсе постоянно изменяющейся информации, когда они находятся за пределами офиса. Из этой статьи вы узнаете, как использовать единственный сервер DB2 Everyplace Sync Server для решения проблемы поддержки доступа мобильных клиентов, работающих на различных языковых платформах. Этот процесс может быть использован в качестве эталона для разработки общего решения, позволяющего сотрудникам, находящимся в разных точках планеты, осуществлять доступ к "живым" данным.

Проблема и решение

Если вы хотите разработать мобильное решение, скажем, для клиентов из Китая, то вам нужно обеспечить локальное хранение данных, если сеть недоступна, и синхронизацию этих локальных данных с корпоративной базой данных по возвращении сотрудника в офис или при подключении к сети. Данные, которые хранятся на мобильном устройстве и на серверной базе данных, вероятнее всего, должны быть записаны китайскими иероглифами. Самое очевидное решение - формат данных на серверной и клиентской стороне должен соответствовать китайской кодовой странице. Это решение работает; но как быть, если вы размещаете это же решение у клиентов в Японии или Корее - нужно ли изменять код для этих новых клиентов? Это требует дополнительной работы и часто неприемлемо.

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

Можете ли вы разработать одно решение, которое соответствовало бы всем этим требованиям? Да. Вам нужно только установить сервер синхронизации DB2 Everyplace на платформе одной операционной системы (например, английской) и разрешить всем клиентам синхронизации различных языковых платформ синхронизировать данные на родном языке с одним сервером DB2 Everyplace.

Для решения первой проблемы вам необходимо покопаться в каждой части комплексного решения, чтобы убедиться, что родные языки поддерживаются серверами и клиентами синхронизации. Для решения второй проблемы вы можете использовать функцию горизонтальной фильтрации, предоставляемую DB2 Everyplace. При помощи DB2 Everyplace и Workplace Client Technology™ Micro Edition V5.7.1, вы можете быстро найти решение проблемы и проверить его на одном примере.


Сервер синхронизации DB2 Everyplace

Как правило, решение DB2 Everyplace имеет следующие основные компоненты: Сервер синхронизации; Мобильная база данных, которая может использоваться на разных видах мобильных устройств; Клиент синхронизации, который используется в качестве специалиста по синхронизации для поддержки мобильных устройств и взаимодействия с мобильной базой данных DB2 Everyplace.

Сервер синхронизации DB2 Everyplace управляет двунаправленными данными синхронизации между исходной и целевой базами данных. Он действует как мост между клиентской программой мобильного устройства и сервером базы данных JDBC.

Мы используем сервер синхронизации и клиент синхронизации DB2 Everyplace для реализации синхронизации данных и приложений между мобильным устройством и корпоративной базой данных.

Синхронизация данных может быть однонаправленной и двунаправленной. Процесс синхронизации делится на два этапа: Мобильный клиент передает изменение локальной копии источника данных на корпоративный сервер; Мобильный клиент получает все изменения источника данных, сохраненных на корпоративном сервере с момента последней синхронизации.


Обеспечение поддержки родного языка

Чтобы обеспечить поддержку родного языка для сервера и клиентов синхронизации, унифицируйте кодировку всего процесса синхронизации. На рисунке 3 показано, что на любом этапе синхронизации используется кодировка данных UTF-8. Эта кодировка гарантирует, что данные на родном языке используют унифицированную кодировку и не будут повреждены при обмене данными с сервером синхронизации. Таким способом вы можете настроить одну базу данных на поддержку приложений клиентов синхронизации, работающих на нескольких языковых платформах. Приложения клиента синхронизации DB2 Everyplace, работающие на различных платформах, могут синхронизировать данные с одной исходной базой данных и получать данные на своем родном языке в корректном виде.

Чтобы унифицировать кодировку для сервера и клиента синхронизации DB2 Everyplace, выполните следующие шаги: На стороне сервера DB2 Everyplace: Создайте базу данных и зеркало базы данных для сервера синхронизации с кодовым набором UTF-8. На стороне клиента DB2 Everyplace: Установите свойство "кодировка" клиента синхронизации DB2 Everyplace на UTF-8; Если вы запрашиваете/обновляете локальную базу данных (мобильную базу данных DB2 Everyplace), установите свойство "кодировка" соединения jdbc на UTF-8.

Использование функции горизонтальной фильтрации синхронизации в DB2 Everyplace

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

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

Дополнительную информацию о горизонтальной фильтрации можно найти в Руководстве по администрированию сервера синхронизации IBM DB2 Everyplace (IBM DB2 Everyplace Sync Server Administration Guide) и в статье Джона Кейси (John Casey) "DB2 Everyplace Version 8.2 synchronization horizontal filtering" (Горизонтальная фильтрация синхронизации в DB2 Everyplace версии 8.2)

вверх
Для оформлении сайта использованы графические фрагменты из игры Winding Trail, что согласовано с её авторами