IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Information Management | WebSphere | SOA и Web-сервисы  >

Интеграция данных и композитные бизнес-сервисы, Часть 1: Создание единого представления о клиенте

Интеграция WebSphere Customer Center в существующую банковскую среду

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: средний

Мэри Тейлор, старший архитектор информационных систем, IBM
Ли Вей, инженер по программному обеспечению, IBM

25.10.2007

Возможность компании интегрировать несколько репозиториев данных о клиентах для создания "единого представления о клиенте" является критически важным моментом для эффективных преобразований сервис-ориентированной архитектуры (Service-Oriented Architecture, SOA). WebSphere® Customer Center (WCC), компоновочный блок для создания решений, предоставляет центральный концентратор, позволяющий интегрировать данные о клиентах и их операциях в одном репозитории, доступном для всех каналов и направлений бизнеса, которым необходим доступ к этим данным и к их обновлению. Эта статья - первая в серии из двух статей, описывающей процедуру интеграции WCC в существующую среду на примере банковского учреждения.

Введение

Данная статья - первая в серии статей, в которой рассматриваются различные аспекты интеграции данных в процессе разработки композитных бизнес-сервиcов (composite business services, CBS). CBS-сервисы представляют собой коллекцию связанных и интегрированных бизнес-сервисов, поддерживающих некоторый бизнес-процесс, построенный на SOA. Многие предприятия имеют несколько репозиториев с информацией о клиентах, созданных для того, чтобы поддерживать различные каналы или направления бизнеса.

Внимательно изучив учебный пример банковского сценария, первоначально описанный в статье "Building SOA composite business services, Part 1" (Создание композитных бизнес-сервисов в SOA, Часть 1) (Web-сайт developerWorks, июнь 2006 г.), вы сможете понять, как осуществить первоначальную загрузку данных в репозиторий WCC.

Сценарий: Интегрируем банковскую информацию

Рассмотрим следующий воображаемый сценарий. В рамках внутренней инициативы интеграции данных о клиентах (Customer Data Integration, CDI), банк Jivaro только что приобрел программный продукт WCC для организации хранения имен и адресов своих клиентов. Согласно этому сценарию, в Jivaro планируют продолжить использование уже существующего репозитория для хранения таких банковских данных, как счета и информация о сегментах, но личные данные о клиентах можно перенести в WCC. Путем консолидации данных об именах и адресах клиентов в WCC, банк Jivaro может избавиться от нескольких репозиториев для отдельных каналов, в которых эти данные хранятся на текущий момент, и предоставить общий набор сервисов для доступа к этим данным из всех подразделений внутри компании. Как только данные об именах и адресах клиентов будут перенесены в WCC, Jivaro планирует использовать специальный информационный сервис для извлечения как информации Jivaro по кредитам из существующего репозитория, так и информации о клиентах из WCC для вывода этой информации в портлет Customer Profile (Профиль клиента). Для создания информационного сервиса используется инструмент IIS WebSphere Information Server Directory (WISD) (Каталог информационного сервера WebSphere) (см. рисунок 1). Работа с WISD в данной статье не рассматривается, это тема одной из следующих статей этой серии.


Рисунок 1. Интеграция репозитория WCC в информационную систему банка Jivaro
Интеграция репозитория WCC в информационную систему банка Jivaro

Интеграция этого программного обеспечения для создания центрального репозитория данных о клиентах (CDI) осуществляется следующим образом:

  1. Загрузка данных из существующих хранилищ в репозиторий WCC
    • На первом этапе выполняется перемещение данных об именах и адресах клиентов из существующих хранилищ данных банка Jivaro в репозиторий WCC. Для загрузки данных в репозиторий WCC можно использовать любой ETL-инструмент, но эта задача станет намного проще, если вомпользоваться инструментом WebSphere DataStage, поскольку в нем предусмотрена возможность создавать задания массовой загрузки (High Volume Load, HVL), которые могут осуществить вставку имеющихся данных в репозиторий WCC. DataStage - это один из модулей пакета программ Information Server. При использовании заданий HVL специалисту остается только сгенерировать входной файл HVL, содержащий загружаемые данные. Создание такого файла будет рассмотрено в данной статье. Данные Jivaro хранятся в DB2, но DataStage поддерживает практически неограниченное количество источников данных, включая текстовые файлы, сложные структуры данных в XML, ERP-системы, например, SAP и PeopleSoft, а также почти все базы данных (в том числе секционированные базы данных), Web-сервисы и инструменты бизнес-анализа, например, SAS.
  2. Создание портлета WCC
    • Второй шаг связан с использованием пользовательского интерфейса WCC Data Stewardship для замены портлета профиля клиента Jivaro новым портлетом. Этот новый портлет обеспечивает доступ к более полному набору атрибутов профиля клиента, который предоставляется репозиторием WCC.
  3. Расширение сервисов WCC
    • На третьем этапе выполняется расширение предоставляемых WCC сервисов для доступа к информации Jivaro, для которой таких сервисов не имелось. Чтобы обеспечить возможность поиска по полю специального идентификатора клиента Jivaro в репозитории WCC, банк Jivaro создает новый сервис.

Шаги 2 и 3 описаны во второй статье данной серии.

Загрузка существующих данных в репозиторий WCC

Для загрузки данных Jivaro в репозиторий WCC необходимо выполнить три задачи.

  1. Преобразование имеющихся данных в форматы записей HVL WCC;
  2. Создание задания (job) DataStage для генерации файла, содержащего переносимые данные в формате HVL;
  3. Выполнение последовательности заданий HVL для загрузки данных в репозиторий WCC repository.

В разделе "Преобразование имеющихся данных в форматы HVL WCC" на примере базы данных Jivaro описывается, как подойти к работе по преобразованию данных. В разделе "Создание задания DataStage для генерации входного файла HVL" описывается задание DataStage, созданное в Jivaro для генерации файла загрузки с данными Jivaro. В разделе "Выполнение последовательностей заданий HVL" рассказывается о том, как выполнить созданные в HVL задания по загрузке данных.

1. Преобразование имеющихся данных в форматы HVL WCC.

WCC предоставляет набор заданий HVL, которые используют модуль WebSphere DataStage для загрузки уже существующих данных в репозиторий WCC. Для всех этих заданий необходим единый входной файл. Этот файл должен включать все загружаемые данные в формате, описанном в документации по HVL. В HVL определено три типа данных, которые могут быть загружены в WCC (они называются типами записи): это типы "contact", "organization" и "contract". С каждым из этих типов записи связаны "подтипы", которые еще более детализируют информацию в каждом из макетов записи. Необходимо преобразовать переносимые данные в форматы файлов, определенные для этих типов/подтипов и передать на вход задания загрузки DataStage WCC общий входной файл. На рисунке 2 показаны поддерживаемые типы/подтипы записи.


Рисунок 2. Типы и подтипы записи HVL
Типы и подтипы записи HVL

Порядок записей во входном файле, поставляемом заданию HVL, критически важен. Записи должны быть отсортированы по клиенту, а затем по типу/подтипу записи. Такой порядок сортировки гарантирует, что в базе данных WCC будут созданы корректные первичные и внешние ключи. Дополнительные рекомендации можно найти в документации по HVL.

Преобразование переносимых данных в форматы HVL может быть выполнено следующим образом:

  1. Преобразуйте очевидные отношения, такие как легко узнаваемые элементы данных:
    • Поля Street (Улица) и City (Город) в Jivaro отображаются на addr_line_1 и city.
  2. Преобразуйте неочевидные отношения; перед этим ознакомьтесь с документацией WCC HVL, чтобы разобраться в содержании каждой входной записи:
    • Данные в базе Jivaro содержат три номера телефона. В макетах HVL не существует поля phone_number. HVL определяет поле REF_NUM в файле LocationGroup_ContactMethodGroup_ContactMethod, в котором хранится номер контактных данных, номера телефона или адреса электронной почты и соответствующие кодовые значения используются во входном файле, который строится на основе указываемого типа номера контакта, например, 1 для домашнего телефона, 7 для личного адреса электронной почты.
  3. Преобразуйте символьные значения переносимых данных в целочисленные коды WCC:
    • В WCC имеется более 90 справочных таблиц, содержащих целочисленные кодовые значения и их описания. Целочисленные кодовые значения требуются во многих файловых форматах;
    • Семейное положение в Jivaro является символьным значением, а в WCC - целочисленным кодом. Чтобы правильно преобразовать эти данные, необходимо найти в справочной таблице WCC семейное положение, в описании найти совпадение и соответствующий код. Этот код затем указывается во входном файле HVL.
  4. Добавьте новые значения в справочные таблицы WCC, если это необходимо для отображения переносимых данных:
    • Справочные таблицы WCC содержат небольшой набор примеров значений, которых может оказаться недостаточно для всех имеющихся систем;
    • В данных Jivaro имеются значения "Regular" и "Premium" для обозначения группы, к которой принадлежит клиент. В WCC имеется код для обозначения "важности клиента", который выбирается из примеров значений "Bronze", "Platinum", "Gold", и "Silver." До начала загрузки данных Jivaro необходимо добавить в эталонную таблицу два дополнительных кодовых значения, после чего эти кодовые значения надо указать во входном файле. Кроме того, если какие-либо примеры кодовых значений никогда не будут использоваться в данных Jivaro, их можно удалить.
  5. Преобразуйте переносимые данные, которые не имеют очевидного соответствия в WCC:
    • Для всех полей, оставшихся непреобразованными, изучите дополнительные сущности WCC, которые предназначены для работы с нетипичными переносимыми данными. Решите, имеется ли среди них подходящий вариант для преобразования нетипичного элемента переносимых данных. Если такой вариант нельзя подобрать, то сущность WCC можно "расширить", то есть изменить, добавив дополнительные столбцы для хранения переносимых данных. Если необходимо расширение, то данные придется загружать вручную, а не через задание HVL, что может отразиться на производительности. Если планируется предоставить пользователям функцию поиска, то следует добавить в индекс по этому полю;
    • Данные Jivaro содержат алфавитно-цифровой элемент customerID, который представляет собой идентификатор, используемый каждым клиентом для своей идентификации в системе банка. Идентификатор Jivaro customerId не может быть отображен на идентификатор контактных данных WCC, потому что идентификатор контактных данных - это число, генерируемое случайным образом. Можно расширить таблицу Contact, включив в нее дополнительный столбец; как вариант для хранения этого значения можно использовать другую сущность WCC. В Jivaro использовали сущность WCC "Contact Equivalent", которая предназначена для хранения идентификационных данных клиента. Поскольку это поле необходимо для функции поиска, сервисы поиска WCC были дополнены возможностью выполнять поиск по нему. Это расширение сервиса описано во второй статье этой серии.

2. Создание задания DataStage для генерации входного файла HVL

В этом разделе описывается, как в Jivaro использовали предоставляемые WCC задания HVL, а также задания, которые были созданы для генерации файла загрузки HVL, содержащего переносимые данные банка Jivaro.

Первый шаг - это импорт проекта WCC DataStage в новый проект в DataStage. Для этого необходимо следовать инструкциям HVL, которые предоставляет WCC.

Следующий шаг - создание последовательности заданий в DataStage для генерации общего входного файла HVL, который будет содержать данные для загрузки в WCC.

Чтобы создать последовательность заданий Jivaro, необходимо выполнить следующие три задачи (см. рисунок 3):

  1. Создайте параллельное задание с именем RetrieveAllCustomerData, которое сгенерирует общий выходной файл для каждого типа/подтипа записи, необходимого для отображения переносимых данных Jivaro;
  2. Используя вызов этапа последовательности заданий CMDtoMergeFiles, объедените все файлы в один файл;
  3. Создайте второе параллельное задание с именем FormatWCCInput, чтобы выполнить сортировку данных в едином файле в соответствии с порядком, необходимым для задания загрузки HVL.

После того, как единый файл загрузки, содержащий переносимые данные банка Jivaro, будет создан, выполните последовательность заданий HVL, предоставленную WCC, чтобы загрузить данные в репозиторий WCC.


Рисунок 3. Последовательность заданий для генерации входного файла HVL
Последовательность заданий для генерации входного файла HVL

I. Создайте параллельное задание

Сначала создайте параллельное задание, чтобы извлечь переносимые данные из хранилища Jivaro, при необходимости преобразовать их и сохранить преобразованные данные в серии плоских файлов, по одному файлу на каждый тип/подтип записи (см. рисунок 4). В процессе выполнения этого задания необходимо добавить этапы поиска для элементов данных, которые требуется преобразовать из символьных констант в кодовые значения. Затем воспользуйтесь этапом преобразования, чтобы выполнить синтаксический разбор данных на отдельные форматы по типам/подтипам записей, которые были указаны как составляющие преобразования. Разработайте этап преобразования, чтобы создать отдельную ссылку вывода для каждого типа/подтипа записей; где потребуется, создайте несколько экземпляров типа записи.


Рисунок 4. Параллельное задание RetrieveAllCustomerData для извлечения данных из хранилища Jivaro
Параллельное задание RetrieveAllCustomerData для извлечения традиционных данных из репозиториев Jivaro

II. Создайте единый файл

В результате выполнения параллельного задания будут получены 11 плоских файлов, каждый из которых имеет свой макет записи. Эти файлы необходимо соединить в единый файл, который затем будет подвергнут сортировке в процессе выполнения второго параллельного задания. Было установлено, что самый простой способ слить все эти файлы в единый файл - это воспользоваться этапом Execute Command в последовательности заданий. Этот пример выполняется в среде операционной системы Windows, а команда TYPE используется на этапе Execute Command, чтобы объединить все эти файлы в единый файл (см. рисунки 5 и 6).


Рисунок 5. Начало выполнения команды TYPE
Начало выполнения команды TYPE


Рисунок 6. Результитующий файл команды TYPE - allFileInput
Цель команды TYPE

Хотя этот подход самый простой, он имеет ряд недостатков. Во-первых, Execute Command выполняет специфическую для данной платформы команду. Поэтому при ее выполнении в среде AIX потребуется настройка. Во-вторых, этап Execute Command не предусматривает использование параметров, поэтому путь для каждого файла придется жестко прописать в коде. Обратите внимание на то, что на рисунках 5 и 6 путь c:\dsland\src необходимо указать для каждого из файлов, добавляемого в целевой файл. Если это задание потребуется переместить на другой сервер DataStage, то данный этап Execute Command необходимо будет изменить, задав корректный путь для каждого файла.

III. Выполните сортировку данных в файле

Заключительный шаг - создание параллельного задания, которое примет на вход файл, созданный в процессе выполнения этапа Execute Command, выполнит сортировку данных по идентификатору клиента, типу записи и подтипу записи, а затем сохранит данные в единый плоский файл. Затем укажите этот файл как входной файл для задания загрузки HVL (см. рисунок 7).


Рисунок 7. FormatWCCInput
FormatWCCInput

После создания входного файла HVL можно выполнить последовательность заданий HVL, чтобы обработать наши переносимые данные.

Выполните последовательность заданий HVL

HVL предоставляет две последовательности заданий. Одна последовательность загружает данные непосредственно в репозиторий WCC (режим базы данных), другая создает файлы загрузки, которые можно обработать при помощи команд SQL для загрузки данных в WCC (файловый режим). Оба набора последовательностей выполняют одинаковые наборы заданий проверки корректности. На рисунке 8 показан моментальный снимок последовательности DBLoadJobFlow, которая загружает данные непосредственно в репозиторий WCC.


Рисунок 8. Последовательность DBLoadJobFlow, которая обрабатывает входной файл Jivaro
Последовательность DBLoadJobFlow

Последовательности HVL вызывают задание ParseInput, которое считывает предоставленный входной файл и выполняет его синтаксический разбор на отдельные наборы данных, содержащие данные для каждого типа/подтипа записи (см. рисунок 9).


Рисунок 9. Задание HVL ParseInput HVL
Задание HVL ParseInput

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

При загрузке данных в базу данных WCC важно соблюдать порядок загрузки таблиц ввиду ограничений ссылочной целостности. Необходимо соблюдать порядок загрузки, если загрузка выполняется вручную, или, если вставка выполняется непосредственно через DataStage, соблюдать требование об удалении всех внешних ключей до запуска задания DataStage с последующим их восстановлением. Это требование документировано в руководстве по HVL.

Считается, что лучший метод - сначала выполнить задание WCC DataStage в файловом режиме, чтобы убедиться, что все загружаемые файлы были созданы правильно, а затем создать задание SQL, которое может выполнить очистку таблиц WСС за счет удаления только тех данных, которые были вставлены через задание DataStage. Это даст вам возможность повторно выполнить задание WCC DataStage в режиме базы данных.

Заключение

Поделитесь мнением...

digg Отзыв на digg.com
del.icio.us Публикация на del.icio.us
Slashdot Публикация на slashdot

CDI (Customer data integration, интеграция данных о клиенте) или "панорамное видение клиента" (360 degree view of the customer) - это термины, которые говорят о возможности создания единого представления о клиенте в рамках торговой марки, канала или компании. WCC помогает в решении этой задачи, предоставляя репозиторий, в котором можно хранить данные о клиентах, а также инфраструктуру для доступа и расширения этих данных. WCC облегчает перенос имеющихся данных в репозиторий WCC, предоставляя задания DataStage, которые помогают пользователям в выполнении этой задачи. Мы описали процедуру из пяти шагов для преобразования имеющихся данных в файловый формат HVL, и процедуру из трех шагов для генерации входного файла с переносимыми данными. В результате интеграции данных Jivaro с WCC банк теперь имеет консолидированный, многоканальный репозиторий информации о клиентах, который доступен через общий набор сервисов, предоставляемых WCC. Прочитайте вторую статью из этой серии, в которой подробно описано создание в WCC портлета профиля клиента, процедура интеграции сервисов WCC в среду Jivaro и процедура расширения предоставляемых сервисов.



Ресурсы

Научиться

Получить продукты и технологии

Обсудить


Об авторах

Мэри Тейлор (Mary Taylor) является старшим разработчиком архитектуры информационных систем. Она работает в группе Strategic Technology Architecture and Incubation (STAI) и в данный момент занимается пилотным проектом SOA CBS. Среди ее интересов DB2 и DataStage.


Интегрируем WebSphere Customer Center в существующую среду на примере банковского бизнеса. Это первая из двух статей, в которой рассказывается о том, как выполнить задачу.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



ДаНетНе знаю
 


 


12345
 


В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.

    IBM в России Конфиденциальность Контакты