Поделиться через


Сведения о примере адаптера выставления счетов

 

Область применения: Windows Azure Pack

Пример адаптера выставления счетов — это решение Microsoft Visual Studio 2012, доступное в https://www.microsoft.com/en-us/download/details.aspx?id=41146. Пример архитектуры состоит из двух частей: основного модуля адаптера выставления счетов и компонента адаптера выставления счетов для конкретной системы. Основной обработчик взаимодействует с API выставления счетов в Пакете Windows Azure и предоставляет удобные интерфейсы. Компонент, зависящий от системы, состоит из клиента, который взаимодействует с фактической системой выставления счетов в сочетании с реализациями некоторых интерфейсов из основного механизма. Для отдельных системных адаптеров и клиентов выставления счетов предоставляются два — WHMCS и HostBill. Для любой другой системы выставления счетов необходимо создать новую реализацию.

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

Важно!

Предоставленная реализация, зависящая от системы, использует базу данных для выполнения сопоставления удостоверений. Он сопоставляет идентификаторы Windows Azure Pack с определенными идентификаторами системы выставления счетов. Если ваша система выставления счетов может использовать (или хранить) идентификаторы Windows Azure Pack, базы данных сопоставления удостоверений не нужны в рамках реализации.

Пример выставления счетов в Пакете Windows

Общие примеры наблюдений

  • Адаптер выставления счетов может быть запущен как служба Windows или консольное приложение. Дополнительные сведения см. в статье Создание и запуск примера адаптера выставления счетов.

  • Адаптер выставления счетов можно разместить в любом месте, если он может подключаться к API выставления счетов Windows Azure Pack и к системе выставления счетов. Если используется какой-либо из ответчиков (API блокировки или API ценообразования), то Пакет Windows Azure также должен иметь доступ к адаптеру выставления счетов.

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

Аспекты ядра ядра

Ниже описаны аспекты ядра ядра. Сведения о примере проекта см. в разделе О файлах примеров ядра адаптера выставления счетов.

Упрощение & абстракции

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

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

Основной механизм абстрагирует ошибки из конкретной реализации системы, выполняя все повторные попытки внутри системы. Для ошибок, исходящих из Пакета Windows Azure (которые считаются временными ошибками, такими как сбой сети), основной обработчик будет продолжать повторять попытки до тех пор, пока не будет возвращен успешный ответ. Для ошибок, возникающих из адаптера выставления счетов (которые могут быть временными или постоянными), ядро будет повторять до пяти раз. После пяти раз ошибка будет считаться постоянной, и основной обработчик остановит обработчик обработки, ожидая, пока системный администратор проанализирует ошибку и исправит ее вручную. Основной обработчик записывает сообщения об ошибках в журнал событий Microsoft Windows. Подсистема переходит в спящий режим в течение предопределенного времени между повторными попытками. Сведения о app.config см. в разделе О примерах файлов ядра адаптера выставления счетов.

Примечание

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

Высокий уровень доступности & выбора главного или подчиненного элемента

Для обеспечения высокой доступности и масштабируемости адаптер выставления счетов можно развернуть на нескольких компьютерах. Все ответчики (блокирующие API и API ценообразования), если они включены, будут работать на всех экземплярах. Выбор главного & ведомого экземпляра гарантирует, что только один экземпляр каждого процессора (события уведомлений и записи об использовании), если он включен, будет выполняться одновременно между процессами и компьютерами.

Ведение журнала

Журналы можно просматривать в microsoft Просмотр событий. Они доступны в канале Microsoft-WindowsAzurePack.BillingAdapter в разделе Журналы приложений и служб .

Управление состоянием

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

Аспекты компонентов, относящихся к системе

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

Обработка повторных попыток

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

Аспекты примера HostBill и WHMCS

Оба примера реализации напрямую взаимодействуют с базой данных системы выставления счетов (из-за отсутствия необходимых вызовов API). Внутренняя структура базы данных системы выставления счетов может меняться в разных версиях, что означает, что примеры реализаций могут нарушиться. Пример реализации WHMCS был протестирован в WHMCS версии 5.2.7, а реализация HostBill была протестирована в HostBill версии 4.9.8. Если версия системы выставления счетов отличается, необходимо повторно протестировать текущие реализации на совместимость. Предоставленные реализации считывают ожидаемую версию из app.config (дополнительные сведения о app.config см. в разделе О примерах файлов ядра адаптера выставления счетов) и не будут выполняться, если версия системы выставления счетов не соответствует ожидаемой версии.

Обе реализации реализуют обработку уведомлений о событиях и блокирующие ответчики API. HostBill также реализует средство реагирования на цены.

См. также:

Сведения о файлах примеров ядра модуля адаптера выставления счетов
Сведения о примерах файлов, относящихся к системе адаптера выставления счетов