Pull to refresh

Microsoft Customer Care Framework или как Microsoft предлагает заботиться о клиентах

Reading time 6 min
Views 1.8K

Введение



На фоне того, как Google пытается стать для нас Всем, приятно видеть, что и другие компании не сдаются и продолжают развивать новые сервисы и технологии…

Побывав на прошлой неделе в Microsoft, с удовольствием послушал рассказ о системе Microsoft Customer Care Framework. Более того, удалось побеседовать с одним из ведущих архитекторов этой системы.



О Системе


Коротко о том, что это за система и с чем её едят.
Сама компания Microsoft описывает свою систему следующим образом.

Microsoft Customer Care 2009 (CCF) — это сквозная программная инфраструктура для поставки составных приложений. Она (система) включает в себя как компоненты для разработки приложений, так и компоненты времени выполнения. Приложения, построенные на базе CCF, предоставляют унифицированный доступ к информации заказчика, распределённой по множеству корпоративных приложений, агрегируя различные режимы взаимодействия с заказчиком. ©Вольный перевод из MSDN.

Чтобы проще было понять, о чём идёт речь, попробую объяснить «на пальцах».

Типичный сценарий


Представьте себя сотрудником службы поддержки огромного банка. Вы сидите в наушниках с микрофоном и ждёте, пока на телефонную службу поступит звонок от разъярённого клиента. Теоретически клиент может позвонить по какой угодно проблеме. У него может быть заблокирована пластиковая карта, он хочет узнать, сколько ещё ему осталось платить по кредиту, уточнить детали условий нового вклада и т.д. Как правило, в банках за услугу или группу услуг отвечают разные приложения, с разными UI, в которых могут быть разные учётные записи авторизованных пользователей.
Теперь представим себе картину… Звонит клиент по какому-то из вышеперечисленных вопросов (а, может, и по нескольким вопросам). Ему отвечает сотрудник службы поддержки. Просит подождать минутку, пока он найдёт и запустит нужное приложение. Потом ещё минутку, т.к. ему нужно залогиниться под своей учётной записью именно в данной системе. Потом ещё минутку, т.к. сотрудник ошибся выбранным приложением. И вот наступает долгожданный момент… Сотрудник службы поддержки неожиданно понял, что ответить на данный вопрос он не может и нужно перенаправить звонок в другой отдел… В общем, немудрено, что в подобной ситуации клиент может просто не сдержаться и бросить трубку об пол в порыве ярости. Ну кому хочется висеть по 10 минут на трубке и по 3 раза объяснять одну и ту же проблему совершенно разным людям? Кстати, вполне возможно, что кто-то из вас уже оказывался в подобной ситуации на стороне клиента. Не было чувства, что банку на вас просто наплевать и он не заботится о своих клиентах?

Заботимся о клиентах


Чтобы решить ряд проблем, возникающих в описанном выше сценарии, Microsoft разработала концепцию, которая позволяет объединять в одном пользовательском окне, называемом Agent Desktop, всё множество внутренних корпоративных приложений, необходимых сотруднику службы поддержки для работы с клиентом.



При этом как сама Система, так и платформа обладают рядом очень полезных свойств и возможностей. Наиболее важные из них, на мой взгляд, перечислю ниже:

  • Поддержка SSO
  • UI всех приложений, необходимых оператору, отображаются в одном окне на разных закладках
  • Так как интеграция происходит на уровне UI, разработка интеграционного приложения происходит очень быстро
  • Наиболее важные части платформы поставляются с открытыми исходными кодами
  • Контекст клиента доступен разным интегрируемым приложениям
  • Система объединяет в себе различные средства коммуникаций
  • Система легко масштабируется


А теперь подробнее по каждому пункту.

Single Sign On


За счёт того, что оператор вводит всего один логин и пароль для доступа, значительно экономится время, необходимое для входа во множество разнородных приложений.

Единый UI


За счёт объединения UI оператору не нужно переключаться между приложениями. Вся информация удобно размещается в одном окне, включая общую контекстную информацию: клиент, проблема и пр. Тут может быть небольшая «засада». Если приложение рассчитано на высокое разрешение, то при размещении на закладках Agent Desktop'а могут появиться полосы прокрутки. Это может доставлять неудобство оператору.

Быстрая интеграция


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

Открытый исходный код


Да-да, Microsoft готов идти на встречу своим партнёрам и предоставляет исходные коды некоторых частей платформы, что позволяет реализовывать самые изощрённые методы интеграции. Как я понял, речь идёт об исходных кодах Agent Desktop'а. Возможно, что-то ещё.

Клиентский контекст


Контекстом клиента называют наиболее общую информацию, которой интегрируемые приложения могут обмениваться между собой.
Обычно контекст отображается в отдельном фрейме Agent Desktop'а, расположенном в верхней части главного окна, над фреймом, объединяющим вкладки интегрируемых приложений. Состав информации и её вид определяется разработчиками.

Многоканальное общение


Система также способна консолидировать разные каналы, по которым приходят запросы от клиентов. Это электронная почта, служба мгновенных сообщений, IVR, SMS и пр.
Такой подход позволяет хранить в одном месте все информационные потоки и получать к ним быстрый и лёгкий доступ.

Масштабирование


CCF построен на базе стандартных Microsoft Composite Application Blocks с учётом современных требований по многопоточности. Как уровень базы данных, так и уровень сервера приложений легко кластеризуется, что позволяет Системе обеспечивать бесперебойную работу в режиме «24*7» и выдерживать высокие нагрузки при работе с большим числом пользователей.

Немного технических деталей


На самом деле, много технических деталей я вам просто не смогу рассказать, так как практического опыта у меня нет. Но есть некоторые элементы, которые я уловил в процессе разговора с Архитектором. Прежде всего, надо чётко понимать, что CCF — это именно Framework, а не просто приложение/система. То есть это набор инструментов, позволяющих создавать Систему. Там есть и много готовых модулей, механизмов, расширений и т.д. Microsoft позаботилась и о разработчиках, продумав довольно много деталей и создав как можно больше готовых средств для интеграции с уже существующими приложениями.

Приложение, созданное на базе MS CCF, будет построено с учётом современных многоуровневых подходов.

База данных


В качестве базы данных, как и следовало ожидать, предлагается использовать Microsoft SQL Server. Уже на этом этапе Microsoft рекомендует подумать о кластере.
В базе данных хранится информации об аудите действий пользователей Системы и конфигурация, которая обновляется администраторами Системы. Кроме того, в БД сохраняется контекст пользователя в том случае, если необходимо перенаправить входящий звонок другому оператору.

Уровень сервера приложений


На уровне сервера приложений выполняются методы доступа к данным (предполагаю, что некий DAL), а также бизнес-логика, которая может быть описана в терминах WWF с использованием, кстати говоря, визуальных средств разработки.

Пользовательский интерфейс


UI представляет из себя классическое Windows .Net приложение, которое способно отрисовывать в себя (в закладки — Tab Strip Control) главные окна других приложений как Windows UI, так и Web UI. Хитрость решения состоит в том, что Agent Desktop оборачивает вызов других приложений таким образом, что они отрисовывают себя не на Desktop (как это происходит по умолчанию), а в закладки самого Agent Desktop'а.
Обмен данными происходит прямо через элементы управления окон (в случае Windows приложений) или через HTTP-GET, HTTP-POST, SOAP (в случае Web-приложений). Благодаря такому подходу не требуется согласование интерфейсов между агрегирующим приложением и его агрегатами.
Ещё раз отмечу, что приложения могут ничего не знать о существовании родительского окна (Agent Desktop'а) и других приложений, с которыми происходит интеграция. Они не обязаны быть написаны по каким-то жёстким стандартам или с поддержкой каких-то строгих протоколов. Это могут быть самые обычные windows, web приложения или даже консольные терминалки, которые используются в компании уже много лет. Нет необходимости их как-то адаптировать или переписывать. Всё происходит прозрачно для них самих.

Заключение


Как видно из описания, Система, построенная на базе MS CCF, позволяет заметно сэкономить время, а также уменьшить количество ошибок в процессе обслуживания заявок клиентов. Что, в свою очередь, означает снижение стоимости обслуживания и повышение уровня удовлетворённости Клиентов. В целом, эта штука мне показалась довольно интересной. Прежде всего, интересной по своей, на мой взгляд, оригинальной идее — интеграции на уровне UI. На самом деле, здесь я описал только верхушку айсберга. Я совсем не затронул возможности CCF, связанные с интеграцией с BizTalk, с инфраструктурой SOA и т.д. Всего и не осветить в рамках данной статьи. Надеюсь, удастся «пощупать» её где-нибудь в более реальном применении и тогда уже поделиться с вами деталями применения. Спасибо, что дочитали до конца.

P.S.: Более плотно с описанной выше платформой можно ознакомиться здесь.
Технические статьи тут.

Tags:
Hubs:
+7
Comments 0
Comments Leave a comment

Articles