Лучшие практики Perl Web-сервисов (серверов) - PullRequest
5 голосов
/ 17 июля 2009

В настоящее время я использую модифицированный HTTP :: Daemon :: Threaded сервер в комбинация с SOAP :: WSDL и Pod :: WSDL для предоставления веб-сервисов используется различными типами клиентов и ролями.

---- это не вопрос, следующее -----

Я бы хотел найти оптимальное решение (насколько это возможно) в отношении следующих тем:

  • Скорость запроса / отправки / ответа
  • Безопасность протокола (правильное использование аутентифицированного клиента SSLv3 / TLS)
  • Безопасность ресурсов (роли / характеристики безопасности для каждого ресурса и для каждого метода)
  • Декларативная спецификация типов, сигнатур методов и требуемых ролей и характеристик безопасности.

Вопросы:

  1. Я бы хотел использовать сервер IO :: Select или IO :: Async :: Loop :: IO_Ppoll , но я понимаю, что это несовместим с аутентификацией SSL на сервере. Правильно ли мое понимание?

  2. Я хотел бы перейти от проверки сертификата клиента при каждом запросе к чему-то вроде CA SiteMinder, где после успешной проверки сертификата клиента я выдаю ограниченный по времени файл cookie сеанса, который можно использовать при последующих проверках. просит избежать этого временного штрафа (и уменьшить нагрузку на сервер). Это будет так же безопасно? (или даже достаточно хорошо?)

  3. Есть ли какой-нибудь модуль / фреймворк, на который я могу опираться при условии авторизации на основе признаков и ролей для выставленного объекта и методов. Pod :: WSDL действительно имеет дело только с типами (и даже не со сложными). Я хотел бы использовать / реализовать некоторую схему декларативных аннотаций (или внешних YAML) для обработки сложной WSDL-типизации, а также Trait & Role Authorization. Кто-нибудь делал это? (даже отдельно?) Есть ли другие модули, которые могут быть хорошей отправной точкой?

  4. Наконец - Я просто схожу с ума от того, что делаю это в Perl5? ;)

Ответы [ 3 ]

1 голос
/ 24 июля 2009

Хорошо, все отвечают на все, кроме реальных вопросов.

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

0 голосов
/ 16 мая 2012

Я знаю, что это старый вопрос, но FYI IO::Async будет отлично работать с SSL, начиная с модуля IO::Async::SSL.

0 голосов
/ 18 июля 2009

Вы без ума от того, что делаете это в Perl: -)

Серьезно, больше сил для тебя. Мой вопрос: если у вас есть основания изобретать это колесо, почему бы не рассмотреть Python? Perl жив и здоров, но большая часть такого рода вещей (низкоуровневые скрипты) сейчас выполняется в Python.

Наконец, предполагая, что у вас нет реальной причины делать это (помимо веселья), вы действительно должны рассмотреть Web Framework (конечно, Django) и что-то вроде nginx для обработки взаимодействия HTTP.

...