АДАПТИВНЫЙ ШЛЮЗ ДЛЯ ПЕРЕКЛЮЧЕНИЯ ТРАНЗАКЦИЙ И ДАННЫХ НА НЕНАДЕЖНЫХ СЕТЯХ, ИСПОЛЬЗУЯ ОСНОВАННЫЕ НА КОНТЕКСТЕ ПРАВИЛА
ADAPTIVE GATEWAY FOR SWITCHING TRANSACTIONS AND DATA ON UNTRUSTED NETWORKS USING CONTEXT-BASED RULES

Перекрестные ссылки на родственные заявки
Настоящая заявка относится к заявке США №___________, озаглавленной “SCHEMA-BASED DYNAMIC PARSE/BUILD ENGINE FOR PARSING MULTI-FORMAT MESSAGES” (Основанный на схемах механизм динамического синтаксического анализа/сборки для синтаксического анализа многоформатных сообщений), (реестр поверенного №16222U-020300US), поданной одновременно с данным документом и включенной данным документом по ссылке для любых целей.
Уровень техники
Настоящее изобретение в основном относится к телекоммуникации и, более конкретно, к методам интеллектуального переключения транзакций на прикладном уровне, основываясь на содержимом транзакции, динамической контекстной информации для транспортной среды и/или динамических правилах для переключения транзакций.
Когда транзакции, такие как авторизация кредитных карточек, транзакции по дебетовым карточкам, транзакции по электронным чекам и т.д., выполняются на клиенте, клиенты посылают транзакции поставщику услуг. Поставщик услуг предоставляет услуги клиенту, такие как авторизации кредитных карточек, совершение транзакций и т.д. Обычно клиенты маршрутизируют транзакции на процессор транзакций поставщика услуг для обработки. Транзакция может маршрутизироваться по различным сетям. Различные сети могут представлять собой несовместимые сети, которые могут быть или могут не быть надежными.
Обычно транзакция требует быстрого ответного действия и высокой надежности. Например, пользователь может выполнять транзакцию по кредитной карточке с клиентом. В данной транзакции может быть необходимым послание запроса на авторизацию кредитной карточки для обработки на процессоре транзакций, который может способствовать авторизации транзакции. Транзакция может быть завершена неуспешно или может быть задержана, так как произошел отказ одной из различных сетей, по которой посылается транзакция, или процессора транзакций, который используется для обработки транзакции для клиента. Если произошел какой-либо отказ, клиент подвергается опасности потерять транзакцию и любые выгоды, получаемые от завершения транзакции.
Обычно транзакция может быть разбита на последовательность пакетов. Варианты осуществления настоящего изобретения работают с транзакциями на прикладном уровне, тогда как большая часть известного уровня техники относится к маршрутизации на сетевом уровне, работая с пакетами. Каждый индивидуальный пакет может маршрутизироваться на пакетном уровне или маршрутизироваться на основе информации в пакете, такой как информация в заголовке. Следующие патенты описывают маршрутизацию пакетов на сетевом уровне (в противоположность переключению на прикладном уровне в вариантах осуществления настоящего изобретения). Патент 5974460 компании IBM описывает выбор одного из нескольких зеркальных сайтов в Интернете для загрузки данных посредством определения сначала, какой из сайтов имеет наилучшие скорости пересылки данных в момент времени выбора сайта. Патент 5341477 компании DEC аналогичен. Патент 5754543 компании Alcatel описывает маршрутизацию по сети, принимая во внимание стоимость передачи. Другими патентами, принимающими во внимание стоимость передачи, являются патент 6535488 и патент 6487286 компании Nortel. Патент 5459837 компании DEC описывает систему для контролирования производительности серверов по сети и для определения, какой сервер имеет наибольшую пропускную способность для оперирования запросом. Патент 5521910 компании Cabletron Systems изображает пакеты в каноническом формате кадра и определяет наилучший путь по сети, используя различные метрики. Патент 6839700 описывает выравнивание нагрузки запросов содержимого, основываясь на стоимости генерирования документов. Патент 6754188 описывает маршрутизацию пакетов, основываясь на содержимом пакета - является ли оно пересылкой речи, видео или файлов.
Патент США 6460120 компании IBM изображает сетевой процессор, который с первыми тремя уровнями модели взаимодействия открытых систем (ВОС). Процессор, который обращается к уровням 4 и выше для управления потоком, чтобы принимать решения по маршрутизации, основываясь на качестве обслуживания, показан в патенте США 6430184 компании Top Layer Networks. Он позволяет выполнять различение между основанной на приоритете электронной почтой и мультимедиа, основанной на гарантировании пропускной способности.
Патент 6732175 компании Intel изображает переключение в сети, основываясь на исследовании содержимого пакета, чтобы определить тип бизнес-транзакции (например, заказа на покупку), и направлении его на соответствующий сервер для обработки этого типа обслуживания. Это делается после того, как будет послано сообщение по сети по адресу назначения веб-сайта, не раньше, чем оно будет послано по сети. Существует много примеров систем на сервере назначения, которые маршрутизируют сообщения, основываясь на содержимом, такие как интеллектуальные выравниватели нагрузки. Патент 6302326 компании Diebold описывает преобразование финансовых сообщений в общий формат, затем маршрутизацию их на соответствующую программу в системе. Патент 5805798 компании EDS описывает сетевые узлы, которые контролируют состояние серверов финансовой обработки и маршрутизируют сообщения на средство резервирования в случае недоступности.
Вышеупомянутые патенты сосредотачивают свое внимание или на маршрутизации индивидуальных пакетов на пакетном уровне, или на маршрутизации данных, основываясь на статических правилах. Они могут обеспечить эффективную маршрутизацию пакета; однако не рассматривается переключение транзакции на прикладном уровне, основываясь на динамическом контексте транспортной среды и динамических правилах. Кроме того, где выполняется выбор между процессорами, то это обычно выполняется на узле, таком как выравниватель нагрузки, между сетью и пунктом назначения. Следовательно, желательно обеспечить методы для интеллектуального переключения транзакции на прикладном уровне.
Современные технологии на прикладном уровне требуют, чтобы клиент оперировал взаимодействием на прикладном уровне. Клиенту необходимо изменять свои программные системы в ответ на изменения на процессоре транзакций и также необходимо поддерживать различные форматы сообщений, ожидаемые различными процессорами транзакций. Клиенту также необходимо обрабатывать сбои на серверных системах и в сетях и выполнять аварийное переключение на альтернативные серверные процессоры, чтобы обеспечить непрерывную работу для пользователей клиента.
Сущность изобретения
Варианты осуществления настоящего изобретения в основном относятся к переключению транзакций на прикладном уровне, основываясь на содержимом прикладного уровня транзакции, динамической контекстной информации транспортной среды и/или динамических правилах для переключения транзакций. Прикладной маршрутизатор может предусматриваться на клиентской границе сети, чтобы (1) обеспечивать интеллектуальную маршрутизацию, основанную на информации прикладного уровня, (2) выполнять предварительную обработку услуг перед направлением на сервер или (3) выполнять выгруженные услуги без маршрутизации на сервер и возвращение ответа клиенту.
В одном варианте осуществления обеспечивается интеллектуальное переключение транзакций. Клиент посылает транзакцию на шлюз, который затем конфигурируется на интеллектуальное переключение транзакции на процессор транзакций. Шлюз конфигурируется на переключение транзакции, основываясь на содержимом прикладного уровня, текущем состоянии транспортной среды и/или динамических правилах для переключения транзакций. Например, несколько возможных поставщиков услуг могут быть выбраны для данного типа транзакции, и шлюз может контролировать не только время кругового прохода по сети (сетям) до различных возможных поставщиков услуг, но также время, необходимое для завершения транзакции поставщиком услуг на прикладном уровне и возвращения ответа.
Переключение согласно вариантам осуществления настоящего изобретения выполняется на посылающей стороне сети, а не на принимающей стороне. Транзакции не только форматируются для маршрутизации по конкретной сети, но они форматируются для обработки конкретным процессором на конце назначения сети, чем выполнять такое форматирование на принимающем узле. Таким образом, узел на посылающей стороне сети (сетей) включает в себя информацию о рабочем потоке процессоров на принимающей стороне сети (сетей). В одном варианте осуществления это является возможным и практичным посредством работы только с ограниченным количеством полей в конкретном формате, таким как ограниченное количество полей, необходимое для одобрения финансовой транзакции. В одном варианте осуществления маршрутизация выбирает между Интернетом и частной финансовой сетью для маршрутизации финансовых транзакций для одобрения. Однако варианты осуществления настоящего изобретения могут применяться с любым типом транзакции или содержимым, таким как заказ и распределение музыки, видео и т.д.
В одном варианте осуществления поставщики услуг прикладного уровня могут публиковать, объявлять или регистрировать свою услугу по сети (сетям). Шлюз согласно вариантам осуществления настоящего изобретения может принимать и сохранять все или выбранные из этих опубликованных услуг. Шлюз может проверить, что издателем является доверенный субъект (такой как зарегистрированный банк или торговец) и определить, подходит ли услуга издателя к транзакциям клиента (клиентов) шлюза. Услуги могут регистрироваться и обновляться динамически, без необходимости ожидания окончания дня или вмешательства человека-оператора.
В одном варианте осуществления, используя хранимые подробности услуг, предоставляемых поставщиками услуг, шлюз может не только выбирать, какой услуге послать транзакцию, но может форматировать транзакцию соответствующим образом для поставщика услуг на прикладном уровне. Кроме того, на шлюзе могут выполняться некоторые этапы предварительной обработки или приведения к требуемым техническим условиям перед посылкой транзакции по сети поставщику услуг. Альтернативно, в некоторых или во всех случаях вся обработка транзакции может выполняться на шлюзе согласно правилам, принятым от поставщика услуг. Например, могут одобряться транзакции по кредитным карточкам, меньшие чем пороговая величина, не только без необходимости идти в банк для одобрения, но также даже без необходимости прохождения по сети до компании кредитной карточки.
В одном варианте осуществления клиент может задать правила или критерии для определения, какого поставщика услуг выбрать. Эти правила или критерии могут быть сохранены на шлюзе. Эти критерии клиента могут загружаться перед транзакцией или могут загружаться непосредственно перед или после того, как будет послано сообщение о транзакции.
В одном варианте осуществления возможности шлюза согласно настоящему изобретению распределяются по нескольким шлюзам. Каждый шлюз физически располагается на границе сети, в точке доступа клиента, и может быть даже в физическом помещении клиента. Шлюз хранит информацию, касающуюся клиента (клиентов), с которыми он соединен, и зависит от других шлюзов для предоставлении информации об услугах, с которыми соединены другие шлюзы. Это в некоторой степени аналогично маршрутизатору, получающему табличную информацию от других маршрутизаторов, с которыми он соединен, для передачи сетевых пакетов, кроме тех случаев, когда варианты осуществления настоящего изобретения имеют дело с услугами прикладного уровня. Каждому шлюзу необходимо только сохранять широковещательную информацию поставщика услуг, в которой он или его клиенты заинтересованы, и необходимо только сохранять адрес других шлюзов, через которые он выполняет это соединение, хотя могут потребоваться другие соединения кроме этого.
Дополнительное понимание сущности и преимуществ изобретений, раскрытых в данном документе, может быть осуществлено ссылкой на остальные части описания изобретения и прилагаемые чертежи.
Краткое описание чертежей
Фиг.1 изображает систему для обработки транзакций согласно одному варианту осуществления настоящего изобретения.
Фиг.2 изображает более подробный вариант осуществления шлюза согласно одному варианту осуществления настоящего изобретения.
Фиг.3 изображает упрощенную блок-схему последовательности операций способа для обработки транзакции согласно одному варианту осуществления настоящего изобретения.
Фиг.4 изображает упрощенную блок-схему последовательности операций для генерирования конфигурационной информации для услуги, предлагаемой процессором транзакций, согласно одному варианту осуществления настоящего изобретения.
Фиг.5 изображает упрощенную блок-схему последовательности операций способа для подписки на услугу согласно одному варианту осуществления настоящего изобретения.
Фиг.6 изображает децентрализованную систему множества шлюзов согласно одному варианту осуществления настоящего изобретения.
Фиг.7 изображает систему, которая показывает шлюз в качестве входного шлюза согласно одному варианту осуществления настоящего изобретения.
Фиг.8 изображает систему, где шлюз представляет собой Интернет-шлюз согласно одному варианту осуществления настоящего изобретения.
Фиг.9 изображает систему, где шлюз используется в качестве беспроводного шлюза согласно одному варианту осуществления настоящего изобретения.
Фиг.10 изображает систему для обработки транзакций по стандарту ISO 8583 (Международная организация по стандартизации (МОС)) согласно одному варианту осуществления настоящего изобретения.
Фиг.11 изображает систему для синтаксического анализа сообщений согласно одному варианту настоящего изобретения.
Фиг.12 изображает вариант осуществления шлюза согласно вариантам осуществления настоящего изобретения.
Фиг.13А изображает структуру для объекта внутреннего формата сообщений (ВФС) согласно одному варианту осуществления настоящего изобретения.
Фиг.13В изображает атрибуты для определения сообщения согласно одному варианту осуществления настоящего изобретения.
Фиг.14А, 14В и 14С изображают возможное сообщение, иерархический формат с кодами идентификатора (ИД) объектов и объект ВФС для сообщения согласно одному варианту осуществления настоящего изобретения.
Фиг.15 изображает упрощенную блок-схему последовательности операций способа для инициализации механизма синтаксического анализа/сборки для обработки потока сообщений согласно одному варианту осуществления настоящего изобретения.
Фиг.16 изображает упрощенную блок-схему последовательности операций способа для динамического добавления или обновления схемы в механизме синтаксического анализа/сборки согласно одному варианту осуществления настоящего изобретения.
Фиг.17 изображает упрощенную блок-схему последовательности операций способа для синтаксического анализа входного сообщения согласно одному варианту осуществления настоящего изобретения.
Фиг.18 изображает упрощенную блок-схему последовательности операций способа для сборки выходного сообщения из объекта ВФС согласно одному варианту осуществления настоящего изобретения.
Подробное описание изобретения
Обзор обработки
В одном варианте осуществления обеспечивается интеллектуальное переключение транзакций. Транзакцией может быть авторизация кредитной карточки, транзакция по дебетовой карточке или транзакция по электронному чеку. Другие примеры транзакций включают в себя присуждение очков или других наград в программе поощрительных вознаграждений, проверку пароля для аутентификации Verified by Visa (проверено Visa), выполнение денежных переводов, вычет платежа с предоплаченной карточки, такой как карточка Visa Buxx или зарплатная карточка, обработка бесконтактного платежа с сотового телефона, пейджера, персонального цифрового помощника (ПЦП) и т.д., определение общей суммы договоров по страхованию здоровья, автомобиля или другого страхования и т.д. Клиент посылает транзакцию на шлюз, который затем конфигурируется на интеллектуальное переключение транзакции на процессор транзакций поставщика услуг. Клиентом может быть кассовый терминал (КТ), компьютер торговца, подключенный по сети к устройствам КТ или электронным кассовым аппаратам (ЭКА), киоск (такой как для купонов или денежного перевода), сервер веб-сайта Интернета и т.д.
Шлюз конфигурируется на принятие решений по переключению на прикладном уровне, основываясь на содержимом прикладного уровня транзакции, текущем состоянии транспортной среды и/или динамических правилах. Содержимое прикладного уровня может представлять собой информацию, которая обрабатывается или используется процессором транзакций при обработке транзакции. В одном варианте осуществления информацией может быть информация уровня 7 ВОС. Этот уровень непосредственно обслуживает процессор транзакций или конечного пользователя. Он включает в себя приложения, такие как авторизация кредитных карточек, приложения транзакции по дебетовой карточке и т.д. Примерными протоколами прикладного уровня являются протокол передачи файлов (ППФ), сетевая файловая система (СФС), общая файловая система Интернета (ОФСИ), протокол передачи гипертекста (ППГТ), запрос базы данных, язык структурированных запросов (ЯСЗ) и расширяемый язык разметки (РЯР). Например, при авторизации кредитной карточки содержимое прикладного уровня может включать в себя номер кредитной карточки, номер личного счета (НЛС), номер клиентского счета, общую сумму для транзакции и т.д. Процессор транзакций может использовать эту информацию для обработки транзакции.
Текущее состояние транспортной среды включает в себя информацию, поступающую в реальном масштабе времени, связанную с сетями, которые могут транспортировать транзакцию, и процессорами транзакций, которые могут обрабатывать транзакцию. Информация, поступающая в реальном масштабе времени, может включать в себя степень исправности сетевого процессора или процессора транзакций, доступность сетевого процессора или процессора транд.
Динамическими правилами может быть информация, которая используется для принятия решения, как интеллектуально переключить транзакцию. Правила используются для переключения транзакции в соответствии с содержимым прикладного уровня и текущим состоянием транспортной среды. Например, правила могут задавать, что, в зависимости от некоторого содержимого прикладного уровня и текущего состояния транспортной среды, должна быть выбрана некоторая услуга, предлагаемая поставщиком услуг. Далее, правила могут использоваться для выбора процессора транзакций для поставщика услуг, чтобы обработать транзакцию. Например, в некоторых странах может потребоваться локальная обработка для внутренних транзакций, таким образом требуя маршрутизацию на региональный центр обработки. Эти правила также могут учитывать статическую информацию, такую как стоимость сети, стоимость услуг и т.д., чтобы сделать выбор. Правила могут динамически изменяться без останова функционирования шлюза.
Шлюз также может выполнять услуги по транзакции согласно правилам. Услуги могут включать в себя обработку содержимого прикладного уровня. Например, процессоры транзакций могут конфигурироваться на обработку транзакции в других форматах. Выбранный процессор транзакций может конфигурироваться на обработку содержимого прикладного уровня в формате, отличном от содержимого прикладного уровня, находящегося в настоящий момент в транзакции. Таким образом, шлюз может изменять содержимое прикладного уровня на новый формат, так что выбранный процессор транзакций может его обрабатывать. Следовательно, шлюз может изменять информацию в транзакции на прикладном уровне. Это отличается от просмотра информации на пакетном уровне. Обычно транзакция может быть разбита на пакеты. Маршрутизатор может просматривать информацию в пакете и маршрутизировать пакет соответствующим образом. Просмотр информации на пакетном уровне, однако, не позволяет маршрутизатору выполнять услуги, используя содержимое прикладного уровня для транзакции. Например, посредством просмотра содержимого прикладного уровня для полной транзакции транзакция может интеллектуально маршрутизироваться, причем соответствующие услуги применяются к транзакции. Если индивидуальные пакеты, несущие информацию для транзакции, обрабатываются индивидуально, содержимое прикладного уровня транзакции не обрабатывается в целом.
Следовательно, обеспечивается шлюз, который интеллектуально переключает транзакцию на прикладном уровне, основываясь на содержимом прикладного уровня, текущем состоянии транспортной среды и/или динамических правилах. Шлюз также может предоставлять услуги, которые применяются на основе принятия решения о переключении.
Обзор системы
Фиг.1 изображает систему 100 для обработки транзакций согласно одному варианту осуществления настоящего изобретения. Как показано, система 100 включает в себя один или несколько клиентов 102, один или несколько шлюзов 104, одну или несколько сетей 106 и один или несколько процессоров 108 транзакций. Следующее описание описывается в отношении одного шлюза 104, но понятно, что многочисленные шлюзы 104 могут быть предусмотрены для выполнения любой функции, описанной ниже. Также, хотя шлюзы показаны рядом с клиентами, шлюзы также могут быть размещены рядом с процессорами транзакций, между процессорами транзакций и сетями 106.
Клиенты 102 включают в себя любую систему, сконфигурированную для посылки транзакции. Например, клиенты 102 могут включать в себя систему вычислительных устройств, которые выполняют транзакции с пользователями. В одном примере клиенты 102 могут включать в себя устройства кассовых терминалов (КТ), которые принимают информацию о пользователях, такую как информация о кредитной карточке, номер ПИН (персональный идентификационный номер), имя и т. д., для авторизации кредитной карточки, транзакции по чековой карточке и т. д. Клиентом также может быть киоск в магазине для проверки информации об очках или купонах, или киоск для денежных переводов, или узел приема беспроводного ввода пользователя с сотового телефона или другого устройства, или сервер веб-сайта и т.д. Клиентом также может быть сервер торговца, через который подсоединены к сети устройства КТ.
Клиент (например, устройство КТ) может тогда посылать транзакцию, которая запрашивает услугу транзакции у процессора 108 транзакций. Услугой транзакции может быть любое действие, которое может быть выполнено процессором 108 транзакций. В одном варианте осуществления эти услуги транзакции увеличивают стоимость для транзакций, выполняемых клиентами 102. Примеры услуг транзакции включают в себя способствование авторизации кредитной карточки, транзакциям по дебетовой карточке, транзакциям по электронному чеку и т.д. Услуга транзакции также может включать в себя обработку транзакции или обмен данными.
Шлюз 104 включает в себя систему, сконфигурированную для приема транзакций от клиентов 102 и маршрутизации транзакций на процессоры 108 транзакций по сетям 106. В одном варианте осуществления шлюз 104 располагается на границе сети 106. Например, шлюз 104 может быть в точке доступа для клиента 102 или может быть в помещении клиента 102. Границей сети 106 может быть точка, где транзакции могут конфигурироваться для маршрутизации по сети 106. Например, шлюз 104 может выбирать процессор 108 транзакций и посылать запрос маршрутизатору сети 106. Транзакция может быть разбита на несколько пакетов. Маршрутизатор тогда маршрутизирует пакеты для транзакции по сети 106 на процессор 106 транзакций.
Сетями 106 может быть любая сеть, сконфигурированная для пересылки данных. Например, сети 106 могут включать в себя любые основанные на пакетах сети, коммутируемые телефонные сети общего пользования (ТфОП), беспроводные сети, Интернет, частные финансовые сети и т.д.
В одном варианте осуществления сетями 106 могут быть несовместимые и/или ненадежные сети. Сети являются несовместимыми в том, что они могут управляться различными субъектами, могут маршрутизировать данные, используя различные протоколы и форматы, могут маршрутизировать данные, используя различные способы транспортировки, и т.д. Например, сети 106 могут управляться различными субъектами. В одном примере первый поставщик услуг Интернета (ПУИ) может сопровождать сеть 106-1 и второй поставщик услуг Интернета может сопровождать сеть 106-2. Транзакции могут маршрутизироваться или по сети 106-1, или по сети 106-2 в одном варианте осуществления.
Также сети 106 могут быть различных типов. Например, сетью 106-1 может быть сеть асинхронного режима передачи (АРП), которая маршрутизирует пакеты данных. Другая сеть 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 могут посылать транзакции в различных протоколах и форматах, таких как протокол передачи гипертекста (ППГТ), протокол передачи файлов (ППФ), расширяемый язык разметки (РЯР), стандарты ISO 8583 и т.д. Обработчики 202 запросов обеспечивают интерфейс для транзакций, посылаемых в различных протоколах и форматах, и обеспечивают транзакции для синтаксического анализатора 204 потока входящих сообщений. Например, обработчик сообщений ISO конфигурируется на прием запросов ISO 8583 от клиентов 102 и подает их на синтаксический анализатор 204 потока входящих сообщений. Также обработчик сообщений РЯР, обработчик запросов ППГТ и обработчик запросов ППФ могут обрабатывать сообщения и/или запросы РЯР, ППГТ и ППФ. Следовательно, обработчики 202 запросов позволяют шлюзу 104 принимать сообщения в различных протоколах и форматах. Хотя описаны вышеприведенные форматы и протоколы, понятно, что специалист в данной области техники примет во внимание другие форматы и протоколы, которые обработчики 202 запросов могут обрабатывать.
Синтаксический анализатор 204 потока входящих сообщений конфигурируется на прием транзакции от обработчиков 202 запросов и преобразует запрос в каноническую форму. Синтаксический анализатор 204 потока входящих сообщений может принимать сообщения в различных форматах и обрабатывать эти запросы в канонический формат, который затем может быть обработан другими компонентами шлюза 104. Следовательно, запросы транзакций в многочисленных различных форматах могут обрабатываться шлюзом 104. Синтаксический анализатор 204 потока входящих сообщений также обеспечивает расширяемую архитектуру, в которой могут быть разрешены эти новые форматы, которые могут обрабатываться шлюзом 104. Если добавляется новый формат, трансляция из нового формата в канонический формат добавляется к процессору 104 потока входящих сообщений. Таким образом, так как используется канонический формат, изменения всех компонентов в шлюзе 104 не являются необходимыми, когда добавляются новые форматы. Скорее, синтаксический анализатор 204 потока входящих сообщений конфигурируется на синтаксический анализ запроса в канонический формат, который может обрабатываться другими компонентами шлюза 104. Дополнительные подробности процессора 204 потока входящих сообщений могут быть найдены ниже.
Менеджер 206 защиты конфигурируется на обеспечение функциональных возможностей защиты для транзакций. Например, могут обеспечиваться функциональные возможности защиты, такие как подключаемая аутентификация и авторизация, управление ролевым доступом (УРД), шифрование, целостность файла и т.д. Функциональная возможность подключаемой аутентификации и авторизации обеспечивает стандартный интерфейс для аутентификации и авторизации и, следовательно, дает возможность добавлять более новые способы аутентификации и управления доступом без влияния на существующие способы. Для специалиста в данной области техники будут понятны другие функциональные возможности защиты, которые могут быть добавлены к транзакциям.
Адаптивный селектор 208 маршрута конфигурируется на переключение транзакции на процессор 108 транзакций по сети 106. Адаптивный селектор 208 маршрута переключает транзакцию, основываясь на содержимом прикладного уровня, текущем состоянии транспортной среды и/или динамических правилах.
Адаптивный селектор 208 маршрута использует правила, обнаруженные в базе 222 данных правил, и динамическую контекстную информацию, обнаруженную в базе 224 данных контекстной информации, для маршрутизации транзакции. Как упомянуто выше, контекстная информация может храниться в базе 224 данных контекстной информации. В одном варианте осуществления контекстная информация может быть динамической. Монитор 226 динамической информации может контролировать и определять контекстную информацию. Динамическая информация затем сохраняется в базе 224 данных контекстной информации. Примеры контекстной информации включают в себя доступность сетей 106, степень исправности процессоров 108 транзакций, стоимость транзакции, время, затраченное на обработку приложением предыдущей транзакции на прикладном уровне, и т.д. В одном варианте осуществления монитор 226 динамической информации может определять динамическую контекстную информацию во время выполнения, когда принимается транзакция. В другом варианте осуществления монитор 226 динамической информации может определять динамическую контекстную информацию через некоторые интервалы.
Каждая другая услуга, выполняемая процессорами 108 транзакций, может задавать тестовые сообщения, которые могут выполняться монитором 226 динамической информации. Тестовые сообщения посылаются и позволяют выполнять сбор информации на основе статуса процессора 108 транзакций и/или сети 106. Например, монитор 226 динамической информации может проверять возможность установления соединения по сети посредством запроса/отклика для определения, доступна ли сеть. Если не может быть достигнут процессор 108 транзакций или сеть 106, они могут рассматриваться недоступным, и информация о статусе отражается в базе 224 данных контекстной информации. Если не могут быть достигнуты все процессоры 108 транзакций для услуги, тогда услуга может рассматриваться недоступной. Шлюз 104 может определить другого поставщика услуг, который предоставляет услугу в данном случае. Также может измеряться время, которое занимает обработка транзакции приложением на процессоре 108 транзакций. Например, измеряется, сколько времени занимает выполнение приложением авторизации кредитной карточки. Это измерение обеспечивает контекст прикладного уровня, который может использоваться для переключения транзакции.
База 222 данных правил включает в себя правила для определения услуги для транзакции в дополнение к сети 106 и процессору 108 для обработки транзакции. Правила также могут выражать критерии для клиента. Например, для того чтобы услуга была выбрана, некоторая контекстная информация и содержимое прикладного уровня должны удовлетворять правилам. Клиенты могут предоставить характерные для клиента правила, которые могут использоваться для выбора услуги для транзакции. В одном примере, когда транзакция принимается для клиента 102, адаптивный селектор 208 маршрута может определить заданные клиентом правила выбора и определить услугу, которая может обработать транзакцию. Для того чтобы переключить транзакцию на поставщика услуг, который предоставляет услугу, определяется содержимое прикладного уровня из транзакции, и/или динамическая контекстная информация определяется из базы 224 данных контекстной информации. Содержимое прикладного уровня и/или контекстная информация применяются к правилам для определения поставщика услуг, который может обработать транзакцию в соответствии с правилами. Например, основываясь на некоторых факторах, таких как стоимость, клиенты 102 могут задавать, что сначала должна выбираться самая дешевая услуга, но, если она недоступна, должна выбираться вторая, более дорогая услуга. Также, основываясь на содержимом прикладного уровня, таком как номера счета, транзакции могут переключаться на некоторую услугу по кредитной карточке. Например, некоторые номера счета могут указывать кредитную или дебетовую карточку или что применяется конкретная система очков или вознаграждений. Другие номера счета или поля могут указывать необходимость в других услугах, таких как денежный перевод или проверка пароля (например, Проверено Visa). Также содержимое прикладного уровня может включать в себя расположение клиента и любые региональные или характерные для страны положения, которые предписывают, должна ли транзакция быть обработана локально или быть послана на процессор 108 в другой стране.
Услуги также могут включать в себя спецификацию услуги, которая задает правила для услуги. Например, правила могут задавать формат сообщений, необходимый для транзакций, сетевые адреса процессоров 108 транзакций, которые предоставляют услугу, предпочтения для переключения транзакций на процессоры 108 транзакций, диапазон номеров счета, которые являются правомочными на услугу, и т.д. Эти правила предоставляются поставщиком услуг при регистрации, как описано более подробно ниже. Поставщик услуг может непосредственно загружать правила на шлюз 104, который затем опубликует правила для других заинтересованных шлюзов.
Правила могут задавать потоки, которые могут обрабатывать транзакцию. Потоки оперируют обработкой транзакции для посылки на процессор 108 транзакций. Сообщение затем посылается на выбранный обработчик 210 потоков. После того как будут выбраны процессор 108 транзакций и сеть 106, обработчик 210 потоков может выполнить бизнес-услуги по транзакции. Например, различные процессоры 108 транзакций могут обрабатывать транзакции в разных форматах. Обработчик 210 потоков может определять соответствующий формат для выбранного процессора 108 транзакций и форматировать транзакцию в этом формате. Другие бизнес-услуги могут включать в себя конвертацию валюты, шифрование восприимчивых полей, заменяющую обработку на клиентской стороне для значений транзакций ниже некоторого порога и т.д.
Обработчик 210 потоков может включать в себя множество потоков. Каждый поток может оперировать набором бизнес-услуг, которые обрабатывают класс сообщений. Каждый поток включает в себя обработчик потоков, который координирует все бизнес-услуги в потоке. Последовательность услуг в потоке задается спецификацией потока, которая может быть загружена во время выполнения, используя загрузчик 220 конфигурации. Спецификация потока представляет собой последовательность услуг, которая определяет, как оперировать входящими сообщениями. Каждая услуга представляет собой код программного приложения, который выполняет конкретную функцию. Новые услуги и спецификации потока могут динамически загружаться на шлюз 104.
После того как обработчик 210 потоков обработает транзакцию в потоке, посылается сообщение на построитель 212 потока исходящих сообщений. Построитель 212 конфигурируется на сборку исходящего сообщения из канонического формата, основываясь на форме сообщения, ожидаемой определенным процессором 108 транзакций. Построитель 212, таким образом, конфигурируется на генерирование сообщения в любом формате сообщений, основываясь на каноническом формате сообщений. Построитель 212 потока исходящих сообщений описывается более подробно ниже.
Диспетчер 212 сообщений конфигурируется на посылку транзакции на процессор 108 транзакций. Диспетчер 214 может гарантировать, что транзакция достигнет выбранного процессора 108 транзакций. Он может управлять подключениями к различным процессорам 108 транзакций, попыткой повторного подключения к отказавшим процессорам 108 транзакций и также предоставляет статус процессоров 108 транзакций и сетей 106 монитору 226 динамической информации. В одном варианте осуществления транзакция может пакетироваться, т.е. разбиваться на последовательность пакетов и посылаться на маршрутизатор. Маршрутизатор может маршрутизировать пакеты по сети 106 на процессор 108 транзакций.
Координатор 216 предусматривается для координации обработок шлюза 104 и гарантирования того, что транзакции правильно обрабатываются. Также координатор 216 предоставляет услуги для возможностей управления приложениями, распределения программного обеспечения, контролирования системы и преодоления отказа для шлюза 104. Управление приложениями поддерживает запуск и остановку приложений и услуг локально и удаленно. Оно также позволяет выполнять добавление новых приложений и услуг шлюзу 104. Распределение программного обеспечения позволяет выполнять установку обновлений программного обеспечения на шлюзе 104 и включает в себя поддержку выполнения отката обновлений, если необходимо. Услуга контролирования системы контролирует ключевые параметры системных компонентов, таких как память, центральный процессор (ЦП), сетевые интерфейсы и процессы, и генерирует предупреждения, если сконфигурированные параметры отклоняются от пороговых значений. Она также повторно запускает процесс, если она обнаруживает сбой процесса. Координатор 216 также контролирует степень исправности однорангового шлюза 104, используя механизм синхронизации (в случае развертывания кластера многочисленных шлюзов) и перенимает нагрузку по обработке однорангового шлюза 104, если произойдет отказ однорангового шлюза 104.
Динамическая загрузка правил
После начальной регистрации услуги (описано ниже) могут динамически изменяться правила и бизнес-услуги, выполняемые шлюзом 104. Модуль 218 административного управления и загрузчик 220 конфигурации конфигурируются на динамическую загрузку изменений в базу 222 данных правил и обработчик 210 потоков.
Загрузчик 220 конфигурации конфигурируется на загрузку изменений конфигурации, правил маршрутизации, новых спецификаций потока и т.д. в базу 222 данных правил во время выполнения. Следовательно, загрузчик 220 конфигурации позволяет выполнять динамическую реконфигурацию правил маршрутизации в базе 222 данных правил. База правил поддерживает многочисленные версии объектов правил и имеет синхронизированную ссылку на текущую версию базы правил. Перед тем как загрузчик 220 конфигурации загрузит обновления в базу правил, он создает точную копию активной базы правил и версии ее. Затем для каждого объекта, который обновляется, он создает новый экземпляр объекта и обновляет ссылку в новой версии базы правил. Когда будут завершены все обновления, он изменяет ссылку для указания на новую версию базы правил.
Модуль 218 административного управления конфигурируется на возможность выполнения административных действий. Модуль 218 административного управления может использоваться агентом пользователя для администрирования одним или несколькими шлюзами 104. Например, модуль 218 административного управления может использоваться для определения новых правил в базе 222 данных правил или динамического изменения правил маршрутизации. Также модуль 218 административного управления также может использоваться для загрузки и выгрузки новых спецификаций потока для обработчика 210 потоков, запуска и останова бизнес-услуг и загрузки и выгрузки конфигураций. Загрузчик 220 конфигурации затем конфигурируется на выполнение изменений.
Динамическое изменение вариантов осуществления изобретения делается возможным посредством комбинации модуляризации услуг и вызова во время выполнения услуг для обработки сообщений при помощи потока (например, см. выше описание потоков). Когда новая транзакция принимается адаптивным селектором 208 маршрута, он считывает текущую версию базы правил и применяет правила для выбора соответствующего потока. Так как обработчик 210 потоков использует заданную версию потока для всего времени существования транзакции, и каждая спецификация потока ссылается на заданные версии услуг, потоков и правил. Таким образом, они могут обновляться без создания помех существующей транзакции в этот момент времени, так как обновления осуществляются в другой версии, чем версия, используемая в данный момент существующими транзакциями.
Обработка транзакции
Фиг.3 изображает упрощенную блок-схему 300 последовательности операций способа для обработки транзакции согласно одному варианту осуществления настоящего изобретения. На этапе 302 транзакция принимается от клиента 102. Транзакцией может быть транзакция любого типа, такая как авторизация кредитной карточки, транзакция по чековой карточке и т.д.
На этапе 304 определяется содержимое прикладного уровня для транзакции. Как упомянуто выше, содержимое прикладного уровня используется для обработки транзакции. Например, содержимым прикладного уровня может быть номер кредитной карточки, ПИН, название банка - члена (запрашивающая сторона или эмитент) и т.д. Содержимое прикладного уровня может рассматриваться в целом. Например, если транзакция была разбита на несколько пакетов, содержимое прикладного уровня может находиться в полезной нагрузке многочисленных пакетов. Эта информация может быть повторно собрана в содержимое прикладного уровня для транзакции.
На этапе 306 определяется текущее состояние транспортной среды. Например, степень исправности процессора транзакций, который может предоставить определенные услуги. Далее, также может быть определена степень исправности сети для сетей 106, которые могут маршрутизировать транзакцию. Эта информация может определяться в реальном масштабе времени для предоставления текущего состояния транспортной среды.
На этапе 308 правила применяются к информации прикладного уровня и/или текущему состоянию транспортной среды для определения услуги. Например, некоторые клиенты 102 могут быть связаны с некоторыми услугами. Хост процессора, такой как Visa, может пожелать, чтобы его транзакции были переключены на процессоры 108 транзакций, которыми владеет Visa. Далее, другие хосты процессоров могут пожелать, чтобы их транзакции были переключены на вторичные процессоры транзакций, такие как Vital.
На этапе 310 правила применяются для определения процессора транзакций и/или сети 106, в которой переключить транзакцию для услуги. Это решение может определяться на основе содержимого прикладного уровня и/или текущего состояния транспортной среды, применимого к правилам. Например, определяется услуга для обработки транзакции. Затем определяется применимый процессор 108 транзакций, основываясь на доступности сети.
Также услуга может быть связана с различными процессорами 108 транзакций и сетями 106. Например, авторизация кредитных карточек может конфигурироваться на посылку на некоторые процессоры 108 транзакций. Далее, транзакции по чековым карточкам могут конфигурироваться на посылку на второй набор процессоров 108 транзакций. Эти правила определяются для клиента и/или услуги транзакции.
На этапе 312 любые бизнес-услуги могут выполняться на прикладном уровне по транзакции, как потребуется. Например, транзакция может форматироваться в формат, ожидаемый выбранным процессором 108 транзакций, любая информация на прикладном уровне может быть добавлена к транзакции, или могут быть выполнены любые другие бизнес-услуги.
На этапе 314 транзакция может быть переключена на выбранный процессор 108 транзакций по сети 106.
Альтернативно, в другом варианте осуществления шлюз 104 конфигурируется на обработку транзакции без переключения транзакции на поставщика услуг. Поставщик услуг может задавать правила, которые устанавливают, что шлюз 104 может обрабатывать транзакции, если удовлетворяются некоторые критерии. Например, если транзакция меньше, чем некоторая величина. В одном примере могут быть одобрены транзакции по кредитной карточке, меньшие, чем пороговая величина, не только без необходимости идти в банк для одобрения, но также без необходимости прохождения по сети 106 до компании кредитной карточки. Это предлагает многие преимущества, так как транзакции могут быть обработаны на границе сети. Это устраняет узкое место сети и обеспечивает систему децентрализованной обработки.
Создание и подписка на услугу
Как упомянуто выше, правила могут динамически загружаться в базу 222 данных правил. Фиг.4 изображает упрощенную блок-схему 400 последовательности операций для загрузки правил в шлюз 104 для услуги, предлагаемой процессором 108 транзакций, согласно одному варианту осуществления настоящего изобретения. На этапе 402 принимается запрос на создание услуги. Например, поставщик услуг может попытаться зарегистрировать услугу посредством посылки запроса на создание услуги, который задает услугу, которая предлагается поставщиком услуг. Альтернативно, шлюз 104, связанный с процессором транзакций или другим поставщиком услуг, может динамически объявлять новые услуги, и шлюз, связанный с клиентом, может определять, инициировать ли регистрацию для этих новых услуг. Новой услугой может быть услуга по денежному переводу, новой программой начисления очков и т.д.
На этапе 404 принимаются правила для услуги. Например, правила могут задавать адреса для процессоров 108 транзакций, которые могут обработать услугу. Сетевыми адресами могут быть адреса протокола Интернета (ПИ) или любые другие идентификаторы, которые могут использоваться для маршрутизации транзакций на процессоры 108 транзакций. Кроме того, также может приниматься информация для сетей 106, которые могут использоваться для маршрутизации запроса на процессоры 108 транзакций. Правила также могут задавать критерии для использования услуги. Например, ожидается прием критериев, задающих сообщения формата, стоимости использования услуги (как фиксированные стоимости, так и стоимости транзакции), и могут приниматься любые другие критерии для использования услуги. Правила могут задавать, какие типы карточек, или типы счетов, или диапазоны номеров счетов являются правомочными или регистрируются для услуги.
На этапе 406 правила для услуги динамически загружаются в базу 222 данных правил модулем 218 административного управления, используя загрузчик 220 конфигурации. Далее, любые спецификации потока, которые необходимы для обработки транзакций для услуги, могут загружаться в обработчик 202 потоков.
Следовательно, когда услуга создана и опубликована, клиенты 108 могут подписаться на услуги. Фиг.5 изображает упрощенную блок-схему 500 последовательности операций способа для подписки на услугу согласно одному варианту осуществления настоящего изобретения. На этапе 502 запрос принимается от клиента 108 на подписку на созданную услугу. Запрос может приниматься через Интернет-портал или любыми другими способами. Клиенты 102 могут контактировать и обращаться непосредственно к шлюзу 104.
На этапе 504 от клиента 108 принимается спецификация для правил или критериев для использования услуги. Эта спецификация может указывать критерии, которые необходимы для выбора услуги для транзакции, принятой от клиента 108. Критерии могут быть характерными для клиента или могут быть единообразными для многих клиентов 108 (например, для всех устройств КТ для субъекта). Также, спецификация может быть в виде приоритета для каждой услуги, на которую подписан клиент 108. Например, клиент может задать, чтобы для транзакции была выбрана первая услуга, но, если эта услуга не работает, тогда должна быть выбрана вторая услуга, и т.д. Критерии также могут быть более сложными и включать более сложные правила, которые учитывают стоимость сети, стоимость услуги и т.д.
На этапе 506 генерируются правила для маршрутизации запросов для услуг. Эти правила могут задавать критерии, которые должны быть выполнены, основываясь на содержимом прикладного уровня и/или текущем состоянии транспортной среды сети, чтобы услуга была выбрана.
На этапе 508 эти правила могут динамически загружаться в базу 222 данных правил. Следовательно, услуга может немедленно быть доступной клиенту 108, который подписывается на услугу.
На этапе 510 генерируются определения потока для услуги. Определения потока могут конфигурироваться для поддержки услуги. В одном варианте осуществления определения потока для услуги может уже существовали и может быть нет необходимости, чтобы их генерировать. Однако если специализированные бизнес-услуги должны быть выполнены для клиента 108, могут генерироваться новые определения потока.
На этапе 512 определения потока, сгенерированные на этапе 510, могут динамически загружаться загрузчиком 220 конфигурации.
В одном варианте осуществления правила могут приниматься от клиента 102 до того, как будет послана транзакция. Например, клиент 102 может подписаться на услугу и предоставить правила для использования услуги. В другом варианте осуществления правила могут посылаться непосредственно перед или после того, как будет послана транзакция. Например, клиент 102 может задавать правила для использования в сообщении, посылаемом перед или после транзакции. Правила затем динамически загружаются в шлюз 104. Это позволяет клиенту 102 динамически конфигурировать шлюз 104 во время выполнения.
Децентрализация правил для услуг
В системе может быть развернуто множество шлюзов 104. Каждый шлюз 104 может предоставлять свои собственные услуги клиентам 102, с которыми он связан. Шлюз 104 может располагаться на границе сети 106, в точке доступа клиента, и, возможно, в физическом помещении клиента 102. В одном варианте осуществления шлюз 104 хранит только информацию для услуг, предлагаемых шлюзом 104. Другие шлюзы 104 могут иметь информацию для другого набора услуг. Следовательно, информация для предоставления различных услуг, которые зарегистрированы поставщиками услуг или на которые подписаны клиенты 102, может распределяться по шлюзам 104 или децентрализоваться. Вследствие децентрализации информации шлюзы 104 конфигурируются для обращения к другим шлюзам 104, или для запроса информации для услуги, или для предоставления информации для услуги.
Фиг.6 изображает систему 550, имеющую децентрализованную систему шлюзов 104 согласно одному варианту осуществления настоящего изобретения. Как показано, изображено множество клиентов 102 и шлюзов 104. Шлюзы 104 располагаются на границе одной или нескольких сетей 106.
Каждый шлюз 104 может быть связан с одним или несколькими клиентами 102. Для целей описания показан один клиент 102, связанный со шлюзом 104, но понятно, что многочисленные клиенты 102 могут быть связаны со шлюзом 104. Также понятно, что шлюзы 104 могут быть связаны с процессорами 108 транзакций вместо клиентов 102.
Шлюз 104 конфигурируется на обработку транзакций для клиентов 102, с которыми он связан, на границе сети 106. Например, шлюз 104-1 конфигурируется на обработку транзакций для клиента 102-1, и шлюз 104-2 конфигурируется на обработку транзакций для клиента 104-2. Шлюз 104-1 хранит информацию для услуг, предлагаемых клиенту 102-1, и также информацию, касающуюся предпочтений для клиента 102-1. Это верно и для других шлюзов 104 и клиентов 102.
Шлюзы 104 поддерживают контактную информацию для других шлюзов 104, чтобы способствовать распределению информации для услуг. Например, когда первому шлюзу 104 необходима информация для услуги, не предлагаемой в данный момент первым шлюзом 104, он может обратиться ко второму шлюзу 104, который предлагает услугу, чтобы ему послали информацию, такую как правила для услуги. В другом варианте осуществления первый шлюз 104 может посылать транзакцию для услуги на второй шлюз 104, где второй шлюз 104 может обрабатывать транзакцию. В этом случае второй шлюз 104 может переключить транзакцию на процессор 108 транзакций, принять ответ и затем послать ответ обратно на первый шлюз 104.
Контактная информация также может использоваться для распределения информации для услуг по другим шлюзам 104. Например, поставщик услуг может загрузить новую услугу на первый шлюз 104. Правила для услуги тогда могут распределяться по другим шлюзам 104. Например, шлюзам, которые связаны с клиентами 102 на границе, посылаются правила, если клиенты 102 заинтересованы в услуге. Клиенты 102 также могут загрузить свои собственные правила.
Каждый клиент может загрузить только правила для услуг, которые он желает, снижая требования к памяти и обновлению и повышая скорость обработки шлюзом. Например, клиент отеля может захотеть услугу присуждения очков или вознаграждений, но не услугу денежного перевода. Посредством загрузки только требуемых услуг отель может получить больше информации на свой шлюз без оказания влияния на производительность. Например, номера счетов или диапазоны номеров счетов, которые находятся в программе начисления очков, могут храниться на шлюзе, поэтому обработка для определения, заслуживает ли пользователь очки, может быть выполнена локально. Клиент веб-сайта, с другой стороны, может быть больше заинтересован в услуге Проверено Visa. Аналогично, информация и правила, конкретные для Проверено Visa, могут храниться локально, например, подписан ли держатель карточки и имеет ли пароль, предоставляя подсказку для ввода пароля без выхода в сеть для определения, является ли пользователь подписчиком. Некоторые торговцы, которые ведут большую предпринимательскую деятельность с некоторыми корпорациями, могут быть более заинтересованы в деловой карточке Visa и могут быть заинтересованы в локальных списках номеров счетов закупочных карточек, которые одобрены для закупок у этого конкретного торговца.
Таким образом, клиенты 102 и поставщики услуг могут взаимодействовать непосредственно со шлюзами 104 для загрузки или запроса услуг. Это может быть выгодным для клиентов 102, так как шлюзы могут быть адаптированы к потребностям этого клиента. Далее, так как шлюз 104 может поддерживаться на стороне клиента, к шлюзу 104 можно обращаться легко и без задержки.
Следовательно, системой 550 обеспечивается децентрализованный набор услуг. Вместо центрального процессора обработка распределяется по границе сети. Это устраняет узкие места и обеспечивает защиту с преодолением отказа. Например, обычно, если используется центральный процессор и он выходит из строя, тогда это может оказывать влияние на обработку транзакций для всей системы. Однако если шлюз 104 выходит из строя, то это не оказывает влияние на обработку для всей системы 550, и транзакции могут повторно маршрутизироваться на другие шлюзы 104.
Сценарии развертывания
Шлюз 104 может быть развернут по многим различным сценариям. Например, шлюз 104 может быть развернут в качестве входного шлюза в частной сети, в качестве Интернет-шлюза и/или в качестве беспроводного шлюза. Фиг.7 изображает систему 600, которая показывает шлюз 104 в качестве входного шлюза, согласно одному варианту осуществления настоящего изобретения. Система 600 соединяет одного или нескольких клиентов 102 с одним или несколькими процессорами 108 транзакций по несовместимым сетям 106. Процессорами 108 транзакций может быть любая система, которая может обрабатывать транзакцию от клиента 102. Например, Visa, MasterCard и т.д. могут владеть процессорами транзакций для транзакций по кредитной карточке и дебетовой карточке, и банк-член (приобретатель/эмитент) может быть клиентом 102.
Центр 602 клиентских данных может принимать транзакции от клиента 102. Транзакциями могут быть авторизации кредитной карточки или транзакции по дебетовой карточке. Центром данных может быть центральный компьютер, соединенный через частную сеть клиента с многочисленными устройствами КТ, например. Шлюз 104 обрабатывает транзакции и интеллектуально переключает транзакции на центр 108 данных процессора транзакций. Например, если транзакцией является транзакция Visa, центры А и В данных процессоров транзакций могут быть связаны с Visa. Если транзакцией является транзакция MasterCard, могут быть выбраны центры С данных процессоров, так как они связаны с MasterCard.
Шлюз 104 определяет соответствующий процессор 108 транзакций и сеть 106, в которой маршрутизировать транзакцию. Затем транзакция посылается на маршрутизатор 604, который затем может маршрутизировать транзакцию. В одном варианте осуществления маршрутизатор 604 может маршрутизировать пакеты на выбранный процессор 108 транзакций по сети 106.
Фиг.8 изображает систему 700, где шлюз 104 представляет собой Интернет-шлюз согласно одному варианту осуществления настоящего изобретения. Интернет-клиент 702 включает в себя клиента 102. Клиент 102 может посылать транзакции на шлюз 104 по Интернету 704. Шлюз 104 может конфигурироваться на конкретные услуги, необходимые для электронной торговли, такие как обычная авторизация кредитных карточек, аутентификация пароля (Проверено Visa), обработка вознаграждений или очков и т.д.
Шлюз 104 обеспечивает возможность соединения с различными процессорами 108 транзакций для клиента 102. Шлюз 104 может принимать запросы по протоколу ППГТ (протоколу защищенной передачи гипертекста (ПЗПГТ)) и другие основанные на РЯР запросы. Основываясь на содержимом прикладного уровня и текущем состоянии транспортной среды, может быть выбран процессор 108 транзакций и услуг. Так как транзакция может быть послана в запросе по протоколу ППГТ или в любом другом основанном на РЯР запросе, шлюз 104 может транслировать сообщение в формат, ожидаемый процессором 108 транзакций перед переключением транзакции. Например, процессор 108 транзакций может потребовать, чтобы сообщение обрабатывалось в формате ISO 8583. Обычно, когда устройство КТ обрабатывает транзакцию, транзакция может посылаться в формате ISO 8583. Однако, когда транзакция обрабатывается Интернет-шлюзом, Интернет-клиент 702 может не конфигурироваться на посылку сообщения ISO 8583. Таким образом, шлюз 104 конфигурируется на форматирование сообщения в формате ISO 8583, требуемом процессором 108 транзакций.
В одном примере шлюз 104 может обрабатывать Интернет-транзакции от Интернет-клиента 702. Интернет-клиент 702 посылает запрос ППГТ (ПЗПГТ) на шлюз 104. Шлюз 104 транслирует запрос ППГТ (ПЗПГТ) в канонический внутренний формат сообщений. Тогда любая бизнес-услуга может быть обработана по транзакции. В одном примере данные прикладного уровня могут быть изменены, чтобы соответствовать формату, требуемому процессором 108 транзакций. Например, транзакция РЯР может быть преобразована в формат ISO 8583. Шлюз 104 тогда интеллектуально переключает транзакцию на процессор 108 транзакций.
Процессор 108 транзакций обрабатывает транзакцию и посылает ответ обратно на шлюз 104. Этот ответ может быть в характерном для процессора транзакций формате. Шлюз 104 затем составляет ответ ППГТ (ПЗПГТ) и посылает его Интернет-клиенту 702. Следовательно, транзакция через Интернет может быть обработана с использованием шлюза 104.
Фиг.9 изображает систему 800, где шлюз 104 используется в качестве беспроводного шлюза согласно одному варианту осуществления настоящего изобретения. Шлюз может принимать беспроводные сообщения от мобильного телефона, ПЦП, пейджера и т.д. пользователя. Шлюз 104 может конфигурироваться на поддержку различных беспроводных форматов, таких как протокол беспроводных приложений (ПБП), протокол мобильного устройства с информационными функциями (ПМУИФ), протокол JQME и т.д. Мидлет посылает запросы формата РЯР по сетям, таким как глобальная система мобильной связи (ГСМС) или общая услуга пакетной радиосвязи (ОУПР). Шлюз 104 может преобразовывать полезные нагрузки входящих запросов в канонический внутренний формат сообщений. Внутренний формат сообщений (ВФС) затем может обрабатываться бизнес-услугами. Построитель 212 потока исходящих сообщений преобразует ВФС в полезную нагрузку ответа для посылки на процессор 108 транзакций. Следовательно, беспроводные транзакции могут обрабатываться шлюзом 104.
Ниже описывается беспроводная транзакция. В одном варианте осуществления беспроводный клиент 808 инициирует беспроводную транзакцию платежа посредством посылки запроса РЯР по ППГТ(ПЗПГТ)/ГСМС/ОУПР. Шлюз 104 принимает запрос РЯР и преобразует его в канонический внутренний формат сообщений перед обработкой запроса. Содержимое прикладного уровня в транзакции используется в дополнение к текущему состоянию транспортной среды для переключения транзакции на процессор 108 транзакций. В зависимости от выбранного процессора 108 транзакций обработчик 210 потоков может выполнять бизнес-услуги по транзакции. Транзакция затем посылается на процессор 108 транзакций.
Процессор 108 транзакций определяет банк (или эмитента) 802 клиента и маршрутизирует сообщение эмитенту 802. Эмитент 802 обрабатывает запрос и посылает ответ обратно на процессор 108 транзакций. Процессор 108 транзакций затем посылает ответ (в характерном для процессора транзакций формате) обратно приобретателю 804. Шлюз 104 принимает ответ, транслирует его в формат РЯР и посылает его беспроводному клиенту 808. Следовательно, шлюз 104 конфигурируется на маршрутизацию платежей беспроводной транзакции.
Фиг.10 изображает систему 900 для обработки транзакций ISO 8583 согласно одному варианту осуществления настоящего изобретения. Как показано, банк 902 эмитента и банк 904 приобретателя участвуют в транзакции. Компьютер 102 клиента в банке 904 приобретателя посылает запрос ISO 8583 на шлюз 104. Шлюз 104 использует содержимое прикладного уровня и текущее состояние транспортной среды для выбора процессора 108 транзакций для обработки запроса. Затем посылается сообщение на выбранный процессор 108 транзакций после того, как будет выполнена любая бизнес-услуга по запросу.
Процессор 108 транзакций обрабатывает транзакцию и переключает ее на соответствующего эмитента 902 для авторизации. Эмитент посылает ISO 8583 обратно на процессор 108 транзакций. Процессор 108 транзакций затем посылает ответ шлюзу 104, который затем посылается клиенту 102 банка 102 приобретателя.
В одном примере процессор 108 транзакций может быть недоступным. В этом случае, например, процессор А, центр 01 данных может быть недоступным. Им может быть предпочтительный процессор для клиента 102 для услуги. Шлюз 104 тогда посылает транзакцию на второй процессор, процессор А, центр 02 данных. Шлюз 104 может продолжать проверку на доступность первичного центра данных и, если он становится доступным, может начать маршрутизировать сообщения на первичный центр данных. Повторная маршрутизация транзакций выполняется таким образом, что она является прозрачной для клиента 102. Следовательно, исключается время простоя для любого процессора 108 транзакций, используя интеллектуальное переключение шлюза 104.
В другом варианте осуществления центры данных для процессора А могут быть неработающими и может потребоваться использование других центров данных для других процессоров, таких как процессоры В и С. Процессоры В и С могут обрабатывать транзакции в другом формате, чем формат процессора А. В этом случае шлюз 104 может преобразовывать формат транзакции в формат, который соответствует формату для процессора В или процессора С. Отформатированная транзакция затем посылается на процессор В или процессор С. Следовательно, различные процессоры могут использоваться таким образом, который является прозрачным для клиентов 102. Даже если процессоры используют различные форматы, шлюз 104 конфигурируется все же на маршрутизацию транзакции в этом формате.
Синтаксический анализ/сборка сообщений
Обзор механизма синтаксического анализа и сборки
Фиг.11 изображает систему 1000 для синтаксического анализа сообщений согласно одному варианту осуществления настоящего изобретения. Система 1000 конфигурируется на синтаксический анализ потоков многоформатных сообщений, таких как сообщения ISO 8583, в канонический формат сообщений, упоминаемый как внутренний формат сообщений (ВФС), и сборку потоков многоформатных сообщений, таких как потоки сообщений ISO 8583, из ВФС. Хотя описываются потоки финансовых сообщений, понятно, что может выполняться синтаксический анализ и сборка потоков любых многоформатных сообщений, используя систему 1000.
Механизм 1004 синтаксического анализа/сборки соответствует синтаксическому анализатору 204 потока входящих сообщений и построителю 212 потока исходящих сообщений по Фиг.2. Хотя все компоненты, показанные на Фиг.2, не показаны на Фиг.11, понятно, что те компоненты также могут быть включены в систему 1000. Кроме того, механизм 1004 синтаксического анализатора/сборки может быть включен в шлюз 104, но также может быть включен в другие компоненты. Например, механизм 1004 синтаксического анализа/сборки может быть совместимым с любыми приложениями программного обеспечения, которые обрабатывают данные в формате данных, отличном от других гетерогенных систем.
Механизм 1004 синтаксического анализа/сборки конфигурируется на прием потока 1010 входных сообщений от системы 1006 и синтаксический анализ сообщения во внутренний формат сообщений. Внутренний формат сообщений (ВФС) затем может обрабатываться другими компонентами, такими как приложение бизнес-услуг, показанное в шлюзе 104. После того как компоненты в шлюзе 104 обработают сообщение в ВФС, механизм 1004 синтаксического анализа/сборки составляет поток 1012 выходных сообщений из обработанных ВФС. Поток 1012 выходных сообщений затем может посылаться на систему 1008 или возвращаться на инициирующую систему 1006.
Системами 1006 и 1008 могут быть любая система, которая конфигурируется на посылку сообщений 1010 и/или прием сообщений 1012 от механизма 1004 синтаксического анализа/сборки (или шлюза 104). В одном варианте осуществления системами 1006 и 1008 могут быть устройства кассовых терминалов, устройства смарт-карт, процессоры 108 транзакций, любая система, сконфигурированная на обработку транзакций, такая как приобретатель, эмитент, поставщик услуг, аутентификатор транзакций и т.д. Системы 1006 и 1008 могут посылать/принимать сообщения во многих различных форматах, таких как сообщения ISO 8583, расширяемый язык разметки (РЯР), язык разметки гипертекста (ЯРГТ) и т.д. Поток входных сообщений также может быть в любой из многочисленных схем кодирования, таких как американский стандартный код обмена информацией (АСКОИ), расширенный двоично-десятичный код обмена информацией (РДДКОИ), двоично-десятичный код (ДДК) и т.д., и может иметь различные типы данных, такие как числовые, строковые, байтового массива и т.д.
Механизм синтаксического анализа/сборки по Фиг.11 использует таблицу 1028 схем. Каждая схема представляет собой структуру данных, которая обеспечивает метаданные, включающие в себя грамматическую структуру для принимаемого формата, а также указатели на обработчики в Таблице 1030 обработчиков. Обработчики соответствуют конкретным полям в сообщении и преобразуют различные поля сообщения во внутренний формат сообщений, используя грамматическую структуру. Обработчики представляют собой код, который индивидуально компилируется. Таким образом, вместо того чтобы компилировать всю систему, обработчики компилируются отдельно, предоставляя скорость скомпилированного программного обеспечения, в то же самое время сохраняя модульную систему, которая легко может быть модернизирована без создания помех другим элементам механизма.
Механизм 1004 синтаксического анализа/сборки загружает идентифицированную схему и вызывает функциональную возможность обработчиков, связанную со схемой. Затем обработчики выполняют синтаксический анализ полей сообщения в объект ВФС.
Схемы и любые связанные обработчики, еще не загруженные, могут быть загружены из файла 1026 определения схемы в Таблицу 1028 схем и Таблицу 1030 обработчиков, используя загрузчик 1024 схем. Таблица 1026 схем включает в себя различные схемы, обозначенные именем 1, именем 2 … именем N схемы. Для каждого формата сообщения, который может быть синтаксически анализирован и собран механизмом 1004 синтаксического анализа/сборки, может предусматриваться соответствующая схема. Каждое имя схемы связывается с объектом схемы, который определяет «грамматику», состав потока сообщений во внешнем формате. Состав может включать в себя последовательность полей, тип поля, длина, кодирование знаков и другие поля, которые являются необязательными или обязательными. Новая схема и скомпилированные обработчики могут загружаться и использоваться механизмом 1004 синтаксического анализа/сборки без повторной компиляции механизма 1004 синтаксического анализа/сборки.
Поток синтаксического анализа/сборки
Ниже описывается примерный поток. Как показано на Фиг.11, когда принимается сообщение, программа бизнес-услуг вызывает механизм 1004 синтаксического анализа/сборки. Сообщение 1010 (поток сообщений в проводном формате) посылается на механизм синтаксического анализа/сборки, где оно сначала принимается компонентом 1016 синтаксического анализатора. Приложение бизнес-услуг также предоставляет имя 1011 схемы компоненту 1016 синтаксического анализатора. Компонент синтаксического анализатора создает объект внутреннего формата сообщений (ВФС), который предназначен для хранения значений из полей сообщения, когда они транслированы в ВФС. В одном варианте осуществления компонент 1016 синтаксического анализатора распознает источник сообщения 1010 и определяет, какая схема необходима для сообщений 1010, посланных от источника. В другом варианте осуществления информация в сообщении 1010 может синтаксически анализироваться для определения формата данных и, таким образом, соответствующей схемы, которая должна использоваться. Далее, сообщение 1010 может указывать, какая схема соответствует формату данных.
В одном примере компонент 1016 синтаксического анализатора сначала просматривает корневую схему, соответствующую формату обнаруженного сообщения, такого как финансовое сообщение ISO 8583. Такое сообщение ISO может иметь побитовое отображение в начале, которое идентифицирует, какие поля присутствуют. Корневая схема указывает на обработчик, который вызывается и который синтаксически анализирует поле типа для определения, какой тип сообщения был принят (например, сообщение авторизации, сообщение согласования и т.д.). Компонент синтаксического анализатора затем просматривает схему в отношение идентифицированного типа сообщения, которое, в свою очередь, обеспечивает конкретную грамматику и указывает на обработчики для этого типа сообщения. Схема и обработчики просматриваются и вызываются только для полей, фактически присутствующих в сообщении. Так как новые поля идентифицируются или они указываются, новая схема может просматриваться, и могут вызываться соответствующие обработчики. Конкретное поле может быть составным полем с одним или несколькими условиями, и транслирование или синтаксический анализ условий может указывать на дополнительную схему и связанные с ней необходимые обработчики, в зависимости от результата условия.
Объект 1018 ВФС (описанный более подробно ниже) заполняется вызываемыми обработчиками. Единственными заполняемыми полями являются поля, соответствующие полям, включенным во входящее сообщение.
Объект 1018 ВФС затем может обрабатываться бизнес-приложением программного обеспечения шлюза 104. После обработки объект 1018 ВФС посылается на компонент 1020 сборки вместе с именем схемы для потока исходящих сообщений. Так как обработка обработанного объекта 1018 ВФС может выполняться в другом формате данных, компонент 1020 построителя конфигурируется на сборку потока 1012 выходных сообщений из обработанного объекта 1018 ВФС. Описанный выше процесс повторяется в обратном порядке, при этом компонент 1020 построителя просматривает корневую схему, вызывая указанный обработчик, чтобы выполнить сборку информации о типе в процессе, который может повторяться много раз. Вызванные обработчики выполняют сборку значений, обнаруживаемых в объекте 1018 ВФС, в поля, которые должны быть включены в поток 1012 выходных сообщений. Поток 1012 выходных сообщений затем может посылаться на систему 1008, которая может обрабатывать поток 1012 выходных сообщений.
Фиг.12 иллюстрирует приложение 1102 бизнес-услуг, которое использует объект 1018 ВФС для выполнения любых услуг, предоставляемых шлюзом 104. Приложение 1102 бизнес-услуг выполняет операции над объектом 1018 ВФС. Операции могут включать в себя маршрутизацию прикладного уровня, такую как определение банка эмитента или центра обработки для посылки на него сообщения. Кроме того, услуги могут выполняться над сообщением, такие как форматирование на прикладном уровне потока сообщений, протоколирование, установление временной метки, создание новых полей, необходимых для ответа или дополнительной обработки и т.д. Приложение бизнес-услуг может выполнять предварительную обработку для эмитента или финансовой сети, или оно может выполнять локальную обработку, которая была разгружена. Например, могут быть одобрены сообщения авторизации для покупок на менее чем $50, и может посылаться ответное сообщение без необходимости направления сообщения финансовому учреждению для одобрения. Приложение 1102 бизнес-услуг конфигурируется для обработки данных во внутреннем формате сообщений, а не во внешних форматах. Следовательно, приложение 1102 бизнес-услуг изолируется от любых внешних форматов, которые используются другими системами, посредством синтаксического анализа сообщений в ВФС.
Структура ВФС
Фиг.13А изображает структуру ВФС 1018 согласно одному варианту осуществления настоящего изобретения. Как показано, N полей предусматривается в ВФС 1018. Поля могут представлять собой совокупность полей, где каждое поле также может включать в себя любое количество дочерних полей, которые, в свою очередь, могут включать в себя внучатые поля и т.д. в иерархической структуре. Например, поле 1 включает в себя дочерние поля 1.1, 1.2, … 1.N. Поля 1.2, … 1.N также могут включать в себя любое количество дочерних полей (не показаны). Когда принимается сообщение, заполняются данными только поля, фактически используемые.
Фиг.14В изображает иерархический формат с кодами ИД объектов, индексами для определений поля для полей, показанных на Фиг.13А. ИД объекта (ИДО) позволяет осуществлять индексирование для различных полей в объекте 1018 ВФС. К определениям поля обращаются для полей в объекте 1018 ВФС, используя ИДО. В одном варианте осуществления ИДО представляет собой восьмибайтовое число, которое представлено показанным десятичным представлением с разделительными точками. ИДО для первого поля кодируется как 1.0.0. Любые подполя кодируются как 1.1.0, 1.2.0 и т. д. Второе поле кодируется как 2.0.0, при этом любые подполя кодируются как 2.1.0, 2.2.0 и т. д.
Структура схемы
Фиг.13В изображает примерную схему. Адресом схемы является первая строка, определение сообщения (MessageDef). Схема включает в себя грамматику и указатели на обработчики для каждого поля в сообщении. В показанном примере первое поле сообщения идентифицируется объектом (FieldDef) 1202 определения поля с индексом 1.0.0. Это также упоминается как атрибут 1202 ИДО. После индекса для этого поля следует идентификация обработчика 1204, подлежащего вызыванию (HDR). Остальные элементы на этой строке представляют собой определения грамматики для этого конкретного поля. Эти определения поля описывают свойства поля, такие как последовательность полей, тип поля, длина, кодирование знаков, имена необходимых обработчиков и т.д. Определения поля могут использоваться для синтаксического анализа/сборки полей, кодированных в различных кодировках, таких как АСКОИ, РДДКОИ, ДДК и т.д., и различных типов данных, таких как числовые, строковые, массивы байтов и т.д. Таким образом, потоки многоформатных сообщений могут обрабатываться с использованием определения сообщения. В одном варианте осуществления схема представляет собой метаданные в виде схемы РЯР.
Определения поля могут включать в себя ряд атрибутов. Понятно, что атрибуты, изображенные на Фиг.13В, не являются исчерпывающими, и специалист в данной области техники может оценить, что могут использоваться другие атрибуты.
Атрибутом 1204 обработчика является имя поля. Обязательный/необязательный атрибут 1206 указывает, является ли поле обязательным или необязательным в сообщении. Первый атрибут 1208 формата данных представляет собой формат данных для значения поля, обнаруживаемого во внешнем формате (также упоминаемого как проводной формат). Второй атрибут 1210 формата данных представляет собой внутренний формат, в котором поле сохраняется в ВФС и обрабатывается бизнес-услугами.
Специальный/неспециальный атрибут 1212 указывает, использует ли поле специальный обработчик или общий обработчик для синтаксического анализа и сборки поля.
Седьмой атрибут 1214 указывает имя обработчика, которое необходимо для обработки значения в поле сообщения. Обработчик принимает значение в идентифицированном поле в принятом сообщении и или синтаксически анализирует его в ВФС (для схемы синтаксического анализатора), или составляет значение из ВФС для внешнего формата (для схемы построителя).
Восьмой атрибут 1216 указывает количество подполей в поле.
Примерные поля сообщения, используемые в ВФС (внутреннем формате сообщений)
Фиг.14А изображает пример полей, используемых для конкретного объекта 1010 сообщения, который включает в себя ряд ИД объектов (ИДО) для различных полей, ИДО 1.0.0, 1.1.0, 1.1.1, 2.0.0, 2.2.0, 4.0.0 и 4.1.0. Это поля, указанные схемой по Фиг.13В. Таким образом, для этого примерного сообщения только поля, идентифицированные на Фиг.14С, будут заполняться в объекте сообщения, который показан на Фиг.13А. Фиг.14В изображает часть иерархических общих ИД объектов для полного набора полей во внутреннем формате сообщений. Как можно видеть, сообщение 1010 включает в себя только часть этих полей, которые необходимы. Например, ИД 1.2.0, 3.0.0 и 4.2.0 объектов не используются. Отметьте, что эти поля могут иметь любое количество дочерних полей.
ИД объектов обеспечивают систему быстрого индексирования в иерархическом внутреннем формате сообщений объекта сообщения, показанного на Фиг.13А. Эта система индексирования использует кодированные ИД (1.0.0 и т.д.) объектов, которые для каждого поля, использованного в принятом формате, индексируют в (указывают на) соответствующее поле внутреннего формата сообщений. Индексы могут указывать непосредственно на поля, которые находятся на несколько уровней ниже в иерархической структуре.
Когда компоненты шлюза 104 обрабатывают объект 1018 ВФС, не выполняется обработка необязательных полей. Таким образом, увеличивается скорость обработки.
Требуемые поля также могут добавляться к объекту 1018 ВФС. Некоторые поля могут требоваться для модуля 1102 бизнес-услуг или процессоров 108 транзакций. Если определяется, что поле, которое является необходимым для использования, не включено в принятое сообщение 1010, поле может быть заполнено модулем бизнес-услуг для включения в сообщение, подлежащее составлению для повторной передачи. Таким образом, «требуемые» поля в схеме по Фиг.13В могут добавляться к объекту 1018 ВФС, если они не включены в сообщение 1010.
Инициализация механизма синтаксического анализа/сборки
Фиг.15 изображает упрощенную блок-схему 1400 последовательности операций способа для инициализации механизма 1004 синтаксического анализа/сборки при запуске приложения бизнес-услуг. На этапе 1402 от приложения принимается запрос на инициализацию. Запрос включает в себя расположение одного или нескольких файлов 1026 определения схемы.
На этапе 1404 проверяется достоверность схем, обнаруженных в файлах 1026 определения схемы. Проверяется достоверность схем посредством ряда процедур, таких как проверка, что выполняется ссылка на правильный тип данных, что обработчики, идентифицированные схемой, фактически существуют, и т.д.
На этапе 1406 схемы в файлах 1026 определения схемы загружаются в системный реестр 1022 с диска или другого репозитория хранения в память ДОЗУ (динамического запоминающего устройства), используя загрузчик 1024 схем.
На этапе 1408 любые обработчики, заданные в схеме, загружаются в системный реестр 1022. Например, обработчики, заданные определениями поля в объекте определения сообщения, загружаются в таблицу 1030 обработчиков. В одном варианте осуществления обработчики хранятся в виде объектов с ключом посредством имени обработчика.
На этапе 1410 обработчики привязываются к соответствующим объектам определения сообщения. Например, все обработчики, которые задаются определениями поля в объекте определения сообщения, привязываются к этому объекту определения сообщения.
Механизм 1004 синтаксического анализа/сборки теперь был инициализирован для схемы. В одном варианте осуществления компилирование механизма 1004 синтаксического анализа/сборки не является необходимым. Это из-за использования скомпилированных обработчиков, которые используются для синтаксического анализа/сборки значений полей.
Во время выполнения схемы могут динамически обновляться и добавляться к механизму 1004 синтаксического анализа/сборки. Схемы могут обновляться посредством изменения объектов определения сообщения или могут добавляться посредством добавления новых объектов определения сообщения. Если необходимы новые обработчики, они также могут динамически добавляться к механизму 1004 синтаксического анализа/сборки в качестве скомпилированных объектов.
Схемы могут добавляться без повторного компилирования механизма 1004 синтаксического анализа/сборки и без прекращения его функционирования. Таким образом, механизм 1004 синтаксического анализа/сборки может продолжать выполнять синтаксический анализ/сборку сообщений, даже когда схемы обновляются.
Добавление или обновление схем
Фиг.16 изображает упрощенную блок-схему 1500 последовательности операций способа для динамического добавления или обновления схемы в механизме 1004 синтаксического анализа/сборки согласно одному варианту осуществления настоящего изобретения. На этапе 1502 принимается запрос на динамическое добавление или обновление схемы от приложения. Запрос включает в себя расположение одного или нескольких файлов 1026 определения схемы, которые включают в себя новую или обновленную схему.
На этапе 1504 проверяется достоверность схем, обнаруженных в файлах 1026 определения схемы.
На этапе 1506 схемы в файлах 1026 определения схемы загружаются в системный реестр 1022. Если обновленная схема предусматривается с набором новых определений поля или измененными определениями поля, только новые или измененные определения поля могут загружаться в системный реестр 1022. Во время добавления или обновления схемы соответствующие структуры данных блокируются от записи для гарантирования того, что оперативные сообщения не повреждаются в результате изменения схемы. Оперативные сообщения продолжают использовать предыдущую версию схемы, тогда как загрузчик 1024 схем загружает обновленную версию схемы.
На этапе 1508 любые обработчики, указанные в объекте определения сообщения, загружаются в системный реестр 1022. Механизм 1004 синтаксического анализа/сборки может проверить с целью определения, присутствуют ли уже какие-либо обработчики в системном реестре 1022, и может не загружать повторно эти обработчики в системный реестр 1022. Однако, если какие-либо обработчики были изменены, измененные обработчики загружаются.
На этапе 1510 обработчики привязываются к соответствующим объектам определения сообщения. В одном варианте осуществления только новые или измененные обработчики привязываются к объекту определения сообщения, который был обновлен. Механизм 1004 синтаксического анализа/сборки теперь был динамически обновлен.
Блок-схема последовательности операций процесса синтаксического анализа
Фиг.17 изображает упрощенную блок-схему 1600 последовательности операций способа для синтаксического анализа потока 1010 входных сообщений согласно одному варианту осуществления настоящего изобретения. На этапе 1602 определяется схема для сообщения. Схема соответствует формату данных, в котором составлен поток 1010 входных сообщений.
На этапе 1604 определяются любые обработчики для объекта определения сообщения из указателей в схеме.
На этапе 1606 обработчики для каждого поля присоединяются к полю.
На этапе 1608 обработчик транслирует поля сообщения. Вызывается обработчик для каждого поля. Обработчики используют определения поля в схеме для транслирования значений полей в ВФС. ИДО для поля как указывает на определения поля в схеме для этого поля, так и указывает также соответствующее поле в объекте 1018 ВФС.
В одном варианте осуществления компонент 1016 синтаксического анализатора поддерживает смещение для полей, считанных в сообщение 1010. Например, количество считанных байтов сохраняется в качестве смещения. Компонент синтаксического анализатора уменьшает это смещение при вызове каждого обработчика. Когда обработчики достигают конца сообщения 1010 (например, когда смещение равняется некоторой длине) или последнего определения поля в объекте определения сообщения, компонент синтаксического анализатора узнает, что трансляция завершена.
На этапе 1610 оттранслированные поля сохраняются в соответствующей иерархии объекта 1018 ВФС. ИДО для поля может использоваться для сохранения оттранслированных значений в соответствующие положения в иерархии в объекте 1018 ВФС.
Если вышеупомянутая трансляция завершается неудачно в любой точке, может быть возвращена ошибка на шлюз 104. Синтаксический анализ может продолжаться, и объект 1018 ВФС может быть возвращен. Флаги ошибки, однако, могут быть отмечены в объекте 1018 ВФС.
Блок-схема последовательности операций процесса сборки
Ниже описывается процесс сборки в отношении Фиг.18. Фиг.18 изображает упрощенную блок-схему 1700 последовательности операций способа для сборки потока 1012 выходных сообщений из объекта 1018 ВФС согласно одному варианту осуществления настоящего изобретения. На этапе 1702 определяется имя схемы и объект 1018 ВФС. В одном варианте осуществления сначала определяется объект 1018 ВФС. Имя схемы может определяться на основе информации в объекте 1018 ВФС. Например, имя схемы может сохраняться в информации в объекте 1018 ВФС. Также имя схемы может определяться каналом или системой назначения, в которую будет посылаться информация в объекте 1018 ВФС.
На этапе 1704 объект определения сообщения используется для адресования схемы в системном реестре 1022. На этапе 1706 также определяются любые обработчики, необходимые для схемы.
На этапе 1708 для каждого поля, обнаруженного в объекте 1018 ВФС, загружается значение из соответствующего поля в иерархии в объекте 1018 ВФС. ИДО для поля используются для обращения к определениям поля.
На этапе 1710 значение транслируется из поля в объекте 1018 ВФС в соответствии с атрибутами определения поля для поля. Следовательно, значение, обнаруженное в формате ВФС, транслируется в формат, совместимый с другой системой.
На этапе 1712 построенные значения составляются в соответствующих полях сгенерированного потока 1012 выходных сообщений.
Если значение для поля в объекте 1018 ВФС не обнаруживается для поля, необходимого для внешнего формата, значение для этого поля во внешнем сообщении может устанавливаться на отсутствие информации, или сгенерированное сообщение может просто не иметь этого поля в сообщении. Далее, если определяется, что объект 1018 ВФС должен иметь это поле, тогда может быть возвращена ошибка, указывающая, что поле не было обнаружено в объекте 1018 ВФС.
Варианты осуществления настоящего изобретения обеспечивают многочисленные преимущества. Например, комбинация содержимого прикладного уровня, текущего состояния транспортной среды сети и/или конфигурационной информации может использоваться для интеллектуального переключения транзакции. Это добавляет ценности любой транзакции, которая посылается клиентом. Например, если имеются любые сбои в сети или процессорах транзакций, транзакции могут маршрутизироваться на другие процессоры транзакций по другим сетям. Это исключает время, потерянное из-за неисправностей, и любые потери транзакций.
Далее, бизнес-услуги могут применяться к содержимому прикладного уровня. Это позволяет получить повышенную гибкость для шлюза 104, чтобы интеллектуально маршрутизировать транзакции. Например, процессоры 108 данных могут обрабатывать транзакции в различных форматах. Шлюз 104 может конфигурироваться на изменение формата содержимого прикладного уровня, основываясь на формате, необходимом процессору транзакций. Далее, бизнес-услуги, которые могут применяться к транзакции, могут дать возможность шлюзу 104 принимать транзакции в многочисленных форматах или протоколах. Например, могут обрабатываться платежи по беспроводным транзакциям, Интернет-транзакции, транзакции КТ и т.д. Это позволяет получить повышенную гибкость при обработке транзакций.
Хотя варианты осуществления настоящего изобретения были описаны как обработка транзакций и, в некоторых случаях, финансовых транзакций, понятно, что транзакции могут обрабатываться для многочисленных областей. Например, транзакции могут обрабатываться для услуги коллективного использования музыки. Транзакции могут включать в себя запросы на загрузку музыки, для которых шлюз 104 затем обеспечивает интеллектуальное переключение запроса на поставщика услуг и маршрутизирует запрошенное содержимое обратно клиенту. Также могут предоставляться видеоуслуги. Запросы видео, или по требованию, или с оплатой по факту просмотра программы, могут приниматься и обрабатываться шлюзом 104. Запрос и последующие загрузки могут интеллектуально переключаться согласно вариантам осуществления настоящего изобретения.
Настоящее изобретение может быть реализовано в виде управляющей логики программным обеспечением, или аппаратными средствами, или комбинацией обоих. Управляющая логика может храниться на носителе для хранения информации в виде множества инструкций, предназначенных для того, чтобы направлять устройство обработки информации на выполнение набора этапов, раскрытых в варианте осуществления настоящего изобретения. На основании описания и идей, предоставляемых данным документом, для специалиста в данной области техники будут понятны другие пути и/или способы реализации настоящего изобретения.
Вышеупомянутое описание является иллюстративным, но не ограничивающим. Многие разновидности изобретения станут очевидными для специалиста в данной области техники при анализе описания. Объем изобретения поэтому должен определяться не с ссылкой на вышеупомянутое описание, но вместо этого должен определяться с ссылкой на рассматриваемую формулу изобретения в ее полном объеме или ее эквиваленты.