Механизм динамического синтаксического анализа/компоновки на основе схем для синтаксического анализа мультиформатных сообщений

Иллюстрации

Показать все

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

Реферат

Перекрестная ссылка на родственные заявки

Данная заявка связана с Заявкой (США) номер ________, озаглавленной "ADAPTIVE FRONT END GATEWAY FOR SWITCHING TRANSACTIONS AND DATA ON UNRELIABLE NETWORKS USING CONTEXT-BASED RULES" (номер 16222U-020200US дела поверенного), зарегистрированной параллельно с данной и тем самым образом полностью содержащейся в данном документе по ссылке для всех целей.

Уровень техники

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

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

Традиционно механизмы синтаксического анализа/компоновки используются для этапов синтаксического анализа и компоновки, описанных выше. Механизмы имеют, в общем, один из двух типов, основанные на интерпретаторе механизмы синтаксического анализа/компоновки и компилируемые механизмы синтаксического анализа/компоновки.

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

Компилируемые механизмы синтаксического анализа/компоновки настраиваются для высокой производительности для фиксированного набора форматов данных. Но компилируемые механизмы синтаксического анализа/компоновки не могут поддерживать новые форматы данных динамически. Они требуют изменений в коде, чтобы встроить новые форматы данных, которые могут быть необходимы для того, чтобы поддерживать новые бизнес-требования. Изменения кода затем должны быть перекомпилированы. Таким образом, компилируемые механизмы синтаксического анализа/компоновки не являются оптимальными для систем, которым требуется обрабатывать новые типы сообщений динамически и которые не могут быть остановлены для перекомпиляции.

Сущность изобретения

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

В одном варианте осуществления синтаксический анализатор может загружать корневую схему, соответствующую обнаруженному формату сообщения, такого как финансовое сообщение ISO 8583. Корневая схема должна указывать на обработчик, который определяет то, какой тип сообщения принят (к примеру, сообщение авторизации, сообщение согласования и т.д.). После этого синтаксический анализатор загружает схему для идентифицированного типа сообщения, которая, в свою очередь, предоставляет конкретную грамматику и указывает на обработчики для этого типа сообщения. Таким образом, все грамматики и обработчики для всех типов финансовых сообщений не обязательно должны загружаться, фактически требуется только поднабор, тем самым ограничивая требования к памяти и повышая производительность. Помимо этого, для каждого типа сообщения схема и обработчики загружаются и вызываются только для полей, фактически присутствующих. Это возможно за счет модульной структуры и итеративного подхода изобретения.

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

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

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

Краткое описание чертежей

Фиг.1 иллюстрирует систему для обработки транзакций согласно одному варианту осуществления настоящего изобретения.

Фиг.2 иллюстрирует более подробный вариант осуществления шлюза согласно одному варианту осуществления настоящего изобретения.

Фиг.3 иллюстрирует упрощенную блок-схему последовательности операций способа для обработки транзакций согласно одному варианту осуществления настоящего изобретения.

Фиг.4 иллюстрирует упрощенную блок-схему последовательности операций способа для формирования конфигурационной информации для услуги, предлагаемой процессором транзакций, согласно одному варианту осуществления настоящего изобретения.

Фиг.5 иллюстрирует упрощенную блок-схему последовательности операций способа для подписки на услугу согласно одному варианту осуществления настоящего изобретения.

Фиг.6 иллюстрирует децентрализованную систему множества шлюзов согласно одному варианту осуществления настоящего изобретения.

Фиг.7 иллюстрирует систему, которая демонстрирует шлюз как шлюз внешнего интерфейса согласно одному варианту осуществления настоящего изобретения.

Фиг.8 иллюстрирует систему, в которой шлюз - это Интернет-шлюз согласно одному варианту осуществления настоящего изобретения.

Фиг.9 иллюстрирует систему, в которой шлюз используется в качестве беспроводного шлюза согласно одному варианту осуществления настоящего изобретения.

Фиг.10 иллюстрирует систему для обработки транзакций ISO 8583 согласно одному варианту осуществления настоящего изобретения.

Фиг.11 иллюстрирует систему для синтаксического анализа сообщений согласно одному варианту осуществления настоящего изобретения.

Фиг.12 раскрывает вариант осуществления шлюза согласно вариантам осуществления настоящего изобретения.

Фиг.13A иллюстрирует структуру для IMF-объекта согласно одному варианту осуществления настоящего изобретения.

Фиг.13B иллюстрирует атрибуты в определении сообщения согласно одному варианту осуществления настоящего изобретения.

Фиг.14A, 14B и 14C иллюстрируют возможное сообщение, иерархический формат с кодами идентификаторов объектов и IMF-объект для сообщения согласно одному варианту осуществления настоящего изобретения.

Фиг.15 иллюстрирует упрощенную блок-схему последовательности операций способа для инициализации механизма синтаксического анализа/компоновки, чтобы обрабатывать поток сообщений, согласно одному варианту осуществления настоящего изобретения.

Фиг.16 иллюстрирует упрощенную блок-схему последовательности операций способа для динамического добавления или обновления схемы в механизме синтаксического анализа/компоновки согласно одному варианту осуществления настоящего изобретения.

Фиг.17 иллюстрирует упрощенную блок-схему последовательности операций способа для синтаксического анализа входного сообщения согласно одному варианту осуществления настоящего изобретения.

Фиг.18 иллюстрирует упрощенную блок-схему последовательности операций способа для компоновки выходного сообщения согласно одному варианту осуществления настоящего изобретения.

Подробное описание изобретения

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

Шлюз

Обзор обработки

В одном варианте осуществления предусмотрена интеллектуальная коммутация транзакций. Транзакцией может быть авторизация кредитной карты, авторизация дебетовой карты или транзакция электронной проверки. Другие примеры транзакций включают в себя присуждение баллов или других премий в программе вознаграждений, проверка пароля для аутентификации Verified by Visa, выполнение денежного перевода, вычет платежа с карты предварительной оплаты, например, карты Visa Buxx или зарплатной карты, обработку дистанционного платежа с сотового телефона, пейджера, PDA и т.д., определение покрытия по страхованию здоровья, автомобиля и т.д. Клиент отправляет транзакцию в шлюз, который затем конфигурируется так, чтобы интеллектуально коммутировать транзакцию на процессор транзакций поставщика услуг. Клиентом может быть POS, компьютер магазина, подключенный по сети к POS-устройствам или ECR (электронным кассовым аппаратам), киоск (например, для купонов или денежного перевода), Интернет-сервер веб-узла и т.д.

Шлюз выполнен с возможностью принимать решения о коммутации на уровне приложения на основе контента уровня приложения транзакции, текущего состояния транспортного окружения и/или динамических правил. Контентом уровня приложения может быть информация, которая обрабатывается или используется процессором транзакций при обработке транзакции. В одном варианте осуществления информацией может быть информация уровня OSI-7. Этот уровень непосредственно обслуживает процессор транзакций или конечного пользователя. Он включает в себя такие приложения, как приложения авторизации кредитных карт, авторизации дебетовых карт и т.д. Примерные протоколы уровня приложений - это FTP (протокол передачи файлов), NFS (сетевая файловая система), CIFS (общая межсетевая файловая система), HTTP (протокол передачи гипертекстовых файлов), запрос к базе данных, SQL (язык структурированных запросов) и XML (расширяемый язык разметки). Например, при авторизации кредитных карт контент уровня приложений может включать в себя номер кредитной карты, номер лицевого счета (PAN), номер клиентского счета, общая сумма по транзакции и т.д. Процессор транзакций может использовать эту информацию, чтобы обрабатывать транзакцию.

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

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

Шлюз также может выполнять услуги по транзакции согласно правилам. Услуги могут включать в себя обработку контента уровня приложений. Например, процессоры транзакций могут быть выполнены с возможностью обрабатывать транзакцию в различных форматах. Выбранный процессор транзакций может быть выполнен с возможностью обрабатывать контент уровня приложений в формате, отличном от контента уровня приложений, в данный момент участвующего в транзакции. Таким образом, шлюз может изменять контент уровня приложений на новый формат, с тем чтобы выбранный процессор транзакций мог обработать его. Следовательно, шлюз может изменять информацию в транзакции на уровне приложений. Это отличается от проверки информации на уровне пакетов. Традиционно транзакция может разбиваться на пакеты. Маршрутизатор может проверять информацию в пакете и маршрутизировать пакет соответствующим образом. Тем не менее, проверка информации на уровне пакетов не позволяет маршрутизатору осуществлять обслуживание с помощью контента уровня приложений для транзакции. Например, посредством проверки контента уровня приложений для полной транзакции транзакция может быть интеллектуально маршрутизирована с соответствующими услугами, примененными к транзакции. Если отдельные пакеты, переносящие информацию для транзакции, обрабатываются отдельно, контент уровня приложений транзакции в целом не обрабатывается.

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

Обзор системы

Фиг.1 иллюстрирует систему 100 для обработки транзакций согласно одному варианту осуществления настоящего изобретения. Как показано, система 100 включает в себя одного или более клиентов 102, один или более шлюзов 104, одну или более сетей 106 и один или более процессоров 108 транзакций. Последующее описание приводится в отношении одного шлюза 104, но следует понимать, что несколько шлюзов 104 может быть предусмотрено для того, чтобы выполнять любые функции, описанные ниже. Помимо этого, хотя шлюзы показаны рядом с клиентами, шлюзы также могут быть развернуты рядом с процессорами транзакций, между процессорами транзакций и сетями 106.

Клиенты 102 включают в себя любую систему, выполненную с возможностью отправлять транзакцию. Например, клиенты 102 могут включать в себя систему вычислительных устройств, которые выполняют транзакции с пользователями. В одном примере клиенты могут включать в себя устройство кассового терминала (POS), которое принимает пользовательскую информацию, такую как информация кредитной карты, PIN-код, имя и т.д., для авторизации кредитной карты, транзакции с чеком и т.д. Клиентом также может быть киоск в магазине для контрольных точек или информации купонов либо киоск для денежных переводов, либо узел для приема беспроводного пользовательского ввода с сотового телефона или другого устройства, либо веб-сервер и т.д. Клиентом также может быть магазинный сервер, посредством которого POS-устройства объединены в сеть.

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

Шлюз 104 включает в себя систему, выполненную с возможностью принимать транзакции от клиентов 102 и маршрутизировать транзакции на процессоры 108 транзакций через сети 106. В одном варианте осуществления шлюз 104 размещается на границе сети 106. Например, шлюз 104 может находиться в точке доступа для клиента 102 или в помещениях для клиента 102. Границей сети 106 может быть точка, в которой транзакции могут быть сконфигурированы для маршрутизации через сеть 106. Например, шлюз 104 может выбирать процессор 108 транзакций и отправлять запрос в маршрутизатор сети 106. Транзакция может быть разбита на ряд пакетов. Маршрутизатор затем может маршрутизировать пакеты для транзакции через сеть 106 в процессор 106 транзакций.

Сетью 106 может быть сеть, выполненная с возможностью переносить данные. Например, сети 106 могут включать в себя любые сети с коммутацией пакетов, коммутируемые телефонные сети общего пользования (PSTN), беспроводные сети, Интернет, частные финансовые сети и т.д.

В одном варианте осуществления сетями 106 могут быть неравноправные и/или ненадежные сети. Сети являются неравноправными в том, что они могут управляться посредством различных объектов, могут маршрутизировать данные с помощью различных протоколов и форматов, могут маршрутизировать данные с помощью различных методов транспортировки и т.д. Например, сети 106 могут управляться посредством различных объектов. В одном примере первый поставщик Интернет-услуг (ISP) может поддерживать сеть 106-1, а второй поставщик услуг может поддерживать сеть 106-2. Транзакции могут маршрутизироваться через сеть 106-1 или сеть 106-2 в одном варианте осуществления.

Кроме того, сети 106 могут быть различных типов. Например, сетью 106-1 может быть сеть с асинхронным режимом передачи (ATM), которая маршрутизирует пакеты данных. Другой сетью 106-2 может быть беспроводная сеть, которая передает данные беспроводным способом. Дополнительно, другой сетью 106 может быть частная сеть для объекта, например, сеть VisaNet. Хотя показаны только две сети 106, следует понимать, что может быть предоставлено гораздо большее число сетей 106. Кроме того, следует понимать, что транзакции могут маршрутизироваться через несколько сетей 106. Например, транзакции могут маршрутизироваться через сеть 106-1, затем сеть 106-2, а затем в процессор 108 транзакций.

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

Поставщики могут регистрировать и публиковать услуги, которые могут предлагаться клиентам 102. Клиенты 102 могут регистрироваться на услуги и иметь транзакции, коммутируемые на поставщиков услуг. Поставщики услуг могут иметь любое число процессоров 108 транзакций, которые выполнены с возможностью предоставлять услуги клиентам 102. В одном варианте осуществления процессоры 108 транзакций обрабатывают финансовые транзакции. Например, процессоры 108 транзакций могут быть ассоциативно связаны с выдающей стороной, покупающей стороной, магазинами или любым другим поставщиком услуг. В одном примере процессоры 108 транзакций упрощают авторизацию транзакций с кредитными картами.

Услуга может предоставляться посредством нескольких процессоров 108 транзакций. Например, поставщик услуг может иметь множество центров данных, которые могут предоставлять услугу клиенту 102. Таким образом, транзакция для услуги может быть коммутирована на любой из процессоров 108 транзакций, который может предоставлять услугу. Процессор 108 транзакций может выбираться шлюзом 104 на основе контента уровня приложений, контекстной информации для транспортного окружения и/или динамических правил, все из этого может динамически изменяться.

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

Контекстная информация для транспортного окружения также может быть динамически изменяющейся. Таким образом, шлюз 104 определяет контекстную информацию для транспортного окружения при определении того, как коммутировать транзакцию. Например, может быть определено текущее состояние исправности сети 106, готовность сети 106, готовность процессора 108 транзакций, скорость, на которой данные передаются через сеть 106, стоимость передачи транзакции через сеть 106, стоимость обработки транзакции, сколько занимает у приложения то, чтобы обработать транзакцию на уровне приложений, и т.д.

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

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

Соответственно, шлюз 104 может динамически выбирать процессор 108 транзакций для услуги, который может обработать транзакцию. Бизнес-логика, конкретная для выбранного процессора транзакций, также может выполняться в транзакции, например, транзакция может быть отформатирована так, чтобы выбранный процессор 108 услуг мог обработать ее. Транзакция после этого может быть отправлена через выбранную сеть 106 в выбранный процессор 108 транзакций. Посредством динамического выбора процессоров 108 транзакций и/или сетей 106 шлюз 104 изолирует клиентов 102 от любых отказов процессоров 108 транзакций и/или сетей 106. Соответственно, это предоставляет чрезвычайно высокую готовность услуги. Шлюз 104 изолирует клиента 102 от всех изменений, которые может потребоваться выполнить, что может вызывать простои процессора 108 транзакций.

Обзор шлюза 104

Фиг.2 иллюстрирует более подробное описание шлюза 104 согласно одному варианту осуществления настоящего изобретения. Как показано, шлюз 104 включает в себя один или более обработчиков 202 запросов, синтаксический анализатор 204 потока поступающих сообщений, менеджер 206 безопасности, адаптивный селектор 208 маршрута, обработчик 210 последовательности операций, компоновщик 212 потока исходящих сообщений, диспетчер 214 сообщений, координатор 216, модуль 218 администрирования, конфигурационный загрузчик 220, база 222 данных правил, база 224 данных контекстной информации и монитор 226 динамической информации.

Обработчики 202 запросов выполнены с возможностью принимать транзакции от клиентов 102. Клиенты 102 могут отправлять транзакции в различных протоколах и форматах, таких как протокол передачи гипертекстовых файлов (HTTP), протокол передачи файлов (FTP), расширяемый язык разметки (XML), стандарты ISO 8583 и т.д. Обработчики 202 запросов обеспечивают интерфейс для транзакций, отправляемых в различных протоколах и форматах, и предоставляют транзакции в синтаксический анализатор 204 потока входящих сообщений. Например, обработчик ISO-сообщений выполнен с возможностью принимать запросы ISO 8583 от клиентов 102 и передавать их в синтаксический анализатор 204 потока входящих сообщений. Кроме того, обработчик XML-сообщений, обработчик HTTP-запросов и обработчик FTP-запросов могут обрабатывать XML-, HTTP- и FTP-сообщения и/или запросы. Соответственно, обработчики 202 запросов позволяют шлюзу 104 принимать сообщения в различных протоколах и форматах. Хотя описаны вышеуказанные протоколы и форматы, следует понимать, что специалисты в данной области техники должны принимать во внимание другие форматы и протоколы, которые обработчики 202 запросов могут обрабатывать.

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

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

Адаптивный селектор 208 маршрута выполнен с возможностью коммутировать транзакцию на процессор 108 транзакций через сеть 106. Адаптивный селектор 208 маршрута коммутирует транзакцию на основе контента уровня приложений, текущего состояния транспортного окружения и/или динамических правил.

Адаптивный селектор 208 маршрута использует правила, находящиеся в базе 222 данных правил, и динамическую контекстную информацию, находящуюся в базе 224 данных контекстной информации, чтобы маршрутизировать транзакцию. Как упоминалось выше, контекстная информация может быть сохранена в базе 224 данных контекстной информации. В одном варианте осуществления контекстная информация может быть динамической. Монитор 226 динамической информации может отслеживать и определять контекстную информацию. Затем динамическая информация сохраняется в базе 224 данных контекстной информации. Примеры контекстной информации включают в себя готовность сетей 106, состояние исправности процессоров 108 транзакций, стоимость на транзакцию, время, требуемое для приложения, чтобы обработать предыдущую транзакцию на уровне приложений, и т.д. В одном варианте осуществления монитор 226 динамической информации может определять динамическую контекстную информацию во время исполнения, когда транзакция принимается. В другом варианте осуществления монитор 226 динамической информации может определять динамическую контекстную информацию через определенные интервалы.

Каждая различная услуга, осуществляемая посредством процессоров 108 транзакций, может указывать тестовые сообщения, которые могут быть выполнены монитором 226 динамической информации. Тестовые сообщения отправляются и дают возможность информации быть собираемой на основе состояния процессора 108 транзакций и/или сети 106. Например, монитор 226 динамической информации может проверять сеть командой PING, чтобы определять то, доступна ли сеть. Если с процессором 108 транзакций или сетью 106 не может быть установлено соединение, они могут рассматриваться как недоступные, и информация состояния отражается в базе 224 данных контекстной информации. Если со всеми процессорами 108 транзакций для услуги не могут быть установлены соединения, то услуга может рассматриваться как недоступная. Шлюз 104 может определять другого поставщика услуг, который в этом случае предоставляет услугу. Кроме того, время, которое требуется приложению в процессоре 108 транзакций для того, чтобы обработать транзакцию, может быть измерено. Например, измеряется то, сколько требуется приложению для того, чтобы авторизовать авторизацию кредитной карты. Данное измерение предоставляет контекст уровня приложений, который может быть использован для того, чтобы коммутировать транзакцию.

База 222 данных правил включает в себя правила для определения услуги для транзакции помимо сети 106 и процессора 108, чтобы обработать транзакцию. Правила также могут выражать критерии для клиента. Например, чтобы услуга была выбрана, определенная контекстная информация и контент уровня приложений должно удовлетворять правилам. Клиенты могут предоставлять конкретные для клиентов правила, которые могут быть использованы для того, чтобы выбирать услугу для транзакции. В одном примере, когда транзакция принимается для клиента 102, адаптивный селектор 208 маршрута может определять заданные клиентом правила выбора и определять услугу, которая может обрабатывать транзакцию. Чтобы скоммутировать транзакцию на поставщика услуг, который предоставляет услугу, контент уровня приложений определяется из транзакции, и/или динамическая контекстная информация определяется из базы 224 данных контекстной информации. Контент уровня приложений и/или контекстная информация применяется к правилам, чтобы определить поставщика услуг, который может обработать транзакцию согласно правилам. Например, на основе конкретных факторов, таких как затраты, клиенты 102 могут указывать, что самая дешевая услуга должна быть выбрана первой, но если недоступна, должна быть выбрана вторая более дорогая услуга. Кроме того, на основе контента уровня приложений, такого как номера счетов, транзакции могут быть коммутированы на конкретную услугу кредитной карты. Например, определенные номера счетов могут указывать кредитную карту относительно дебетовой карты либо то, что конкретная система баллов или вознаграждений применяется. Другие номера счетов или поля могут указывать необходимость в других услугах, таких как денежный перевод или проверка пароля (к примеру, Verified by Visa). Помимо этого, контент уровня приложений может включать в себя местоположение клиента и любые региональные либо конкретные для страны нормы, которые диктуют то, должна ли транзакция быть обработана локально или отправлена процессору 108 в другой стране.

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

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

Обработчик 210 последовательности операций может включать в себя множество последовательностей операций. Каждая последовательность операций может обрабатывать набор бизнес-логики, которая обрабатывает класс сообщений. Каждая последовательность операций вклю