Каков наиболее эффективный и одновременный способ реализации публичного API для существующей программы командной строки? - PullRequest
0 голосов
/ 29 сентября 2011

Существующая программа командной строки генерирует некоторые выходные данные при вызове с некоторыми параметрами и затем завершается.

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

  • делает API внешним по отношению к программе и делает системные вызовы
  • , превращает программу в библиотеку и включает необходимые функции вСам API
  • локальные сокеты (например, линейный сервер TCP)
  • HTTP-сервер (производит JSON, XML и т. Д.)

С учетом эффективности под нагрузкой, параллелизм и масштабируемость, что будет лучшим подходом?

1 Ответ

1 голос
/ 29 сентября 2011

Api-дизайн также зависит от клиентов, может быть, вы можете дать больше информации:

  • тип клиента (реальный пользователь, технические опросы клиента и т. Д.)
  • уровень доверия клиентов (открытый для всех, закрытый набор клиентов для аутентификации)

Относительно требований к масштабируемости:

  • сколько пользователей ожидается
  • нагрузка (пиковая + средняя)

Другой идеей может быть простой ssh-сервер, так что любой может выполнить скрипт извне:

$ ssh user@yourhost.com yourCLIProgram.sh -param1 value1 -param2 value2

Тогда вам не нужны служебные данныецикла прослушивания событий.

Что программа делает более подробно?

...