2016-04-29 2 views
1

Я пытаюсь внедрить промежуточное программное обеспечение для обмена сообщениями и хотел бы изучить возможность использования Erlang/OTP. Приложение будет использоваться в банковской отрасли для взаимодействия с платежными сетями EFT и основной банковской системой для обработки транзакций с карточками.Использование Erlang в платежных системах

Он будет отвечать выполнять следующие задачи:

  1. Связь с внешними сетями (например, VISA и MasterCard) с использованием ISO 8583 формат сообщения.
  2. Получите огромное количество данных по сокету (HEX, BINARY, EBCIDIC) , которые представляют собой финансовые транзакции.
  3. Анализ/декодирование полученных данных.
  4. Выполнение некоторых проверок в базе данных для проверки
  5. Интерфейс с модулем безопасности хоста для проверки PIN-кода клиента и других проверок безопасности.
  6. Посылает запрос на основной банковской системы через XML или веб-сервисов вызовов
  7. Ответить обратно к внешним интерфейсам, сформулировав сообщение ответа в формате ISO 8583

Очевидно, что такие приложения должны быть одновременно и достаточно быстро, чтобы обрабатывать транзакции в течение нескольких секунд.
Теперь мой вопрос здесь, Erlang - хороший выбор для реализации подобных приложений? Может ли Erlang эффективно обрабатывать строки, не влияя на производительность системы?

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

+0

Настойчивость необходима для вашего приложения? – ibizaman

ответ

0

Вы когда-нибудь слышали о Klarna? Они используют Erlang именно для этих целей. Они довольно active в сообществе Erlang. Вы также можете проверить их GitHub repositories.

  1. Erlang - идеальный инструмент для реализации протоколов и общения с внешними ресурсами.
  2. Erlang - идеальный инструмент для реализации протоколов и общения с внешними ресурсами.
  3. Я упоминал, что Erlang - идеальный инструмент для реализации протоколов?
  4. Это не проблема для Erlang, даже некоторые высокопроизводительные и масштабируемые базы данных реализованы в Erlang.
  5. Erlang имеет некоторые возможности для осуществления мер безопасности. Например, вы можете установить флаг sensitive, который отключает каждую информацию об отладке и трассировке для процесса, чтобы он больше не показывал свое состояние, включая очередь сообщений. Для более высоких стандартов вы всегда можете использовать код, написанный на C, и использование защиты уровня ОС. Я упоминал, что Erlang - идеальный инструмент для общения с внешними ресурсами?
  6. XML также поддерживается в Erlang.
  7. Я упоминал, что Erlang - идеальный инструмент для реализации протоколов?

Больше вопросов:

  • Параллельное и достаточно быстро - проверить.
  • Хороший выбор для реализации этого типа приложений - спросите Кларну.
  • Ручка обработки строк эффективно, не влияя на производительность системы - не знаю лучшей системы для обработки строк, чем iolist с двоичные файлы - проверить
1

Ваш вопрос как-то предполагает, что обработка ISO 8583 означает, что обработка текста. Erlang представляет собой текст в two different ways:

  1. List - это связанный список отдельных символов. Занимает больше места (каждый элемент - это символ и адрес для следующего элемента), и он медленно обрабатывает длинные тексты, но очень легко работать с lists are the basic types в функциональных языках.

  2. Binary - это набор байтов stored in memory, подобно массивам C/C++, но с гораздо лучше support for processing and pattern matching.

Оба типа support Unicode (including UTF-8) очень хорошо.

Erlang не превосходит необработанную обработку текста (возможно, Perl лучше), но Erlang превосходит эффективную реализацию и обработку различных протоколов, включая текстовые протоколы. Это было изобретено Ericsson системами handle data in telecommunication, которые полны протоколов. Основная библиотека Erlang, OTP, содержит огромное количество модулей, которые реализуют обработчики для самых популярных протоколов: ASN.1, Base64, Corba, LDAP, HTTP, SNMP, TCP, UDP, SCTP и другие.

Некоторые из самых популярных систем обмена сообщениями, которые обрабатывают текстовые сообщения по очевидным причинам, написаны в Erlang: RabbitMQ, EMQTT, ejabberd.

Существует также library to process ISO 8583 с вилами на Gihub: 1st fork, 2nd fork.

Но, пожалуй, самая важная причина для выбора Erlang - это не поддержка протокольных реализаций, а возможность масштабирования. Erlang реализует свой own processes, которые отличаются от системных процессов. Erlang может создавать миллионы процессов на скромном процессоре, чтобы одновременно обрабатывать миллионы рабочих мест. Посмотрите, как он используется в Wooga и WhatsApp среди других.

Смежные вопросы