Подтвердить что ты не робот

Как сделать веб-сервер REST с Delphi в качестве бэкэнда для большого веб-приложения?

Я прочитал этот вопрос, но был как-то не удовлетворен ответами.

Я также быстро прочитал (как было предложено в этом вопросе) последнюю главу "Руководства Марко Канти 2010", из которой я цитирую следующее (я думаю, что могу процитировать такой короткий текст):

У меня [Marco Cantù] действительно много инвестиции в серверную сеть и REST приложений, написанных на Delphi, и в в последние годы я начал играть с и представить на конференциях Delphi Web Application REST Framework119 (т.е. DWARF), который в это время еще не публично доступно... просто потому, что это слишком отрывочный и незавершенный опубликован. Я видел другие текущие усилия по клонированию Rails в Delphi и предлагают другие архитектуры сервера REST. Я думаю, что если вы хотите построить очень большое приложение REST архитектуры, вы должны собственной технологии или использовать один из этих прототипных архитектур.

Учитывая, что я владею Delphi XE Professional и DataSnap, там нет, и я хотел бы рассмотреть возможность написания больших приложений также в соответствии с приведенными выше комментариями. Кажется, DataSnap не является вариантом.

Есть ли для этого коммерческое решение? Я не хочу рассматривать "свою собственную реализацию REST", я хотел бы создать веб-сервер, который использует некоторые из моих datamodules, где я использую DAC, который я выбираю (Devart в этом случае).

Заключительное примечание: моя цель - написать бэкенд для большого веб-приложения, на клиенте, который я хотел бы использовать Ext JS 4.0, но я хочу, чтобы весь клиент работал в javascript, чтобы в полной мере использовать EXT JS, поэтому в основном мне нужен веб-сервер только для данных и отслеживания состояния, а не для обслуживания веб-страниц.

4b9b3361

Ответ 1

Чтобы создать свои службы REST, попробуйте Open Source проект mORMot. Теперь это хорошо известный и стабилизированный проект, используемый во всем мире в производстве.

Вы можете использовать любой ЦАП с текущим состоянием фреймворка, внедряя собственный класс TSQLRestServerStatic (аналогичный классу TSQLRestServerStaticInMemory, но вызывающий ваш ЦАП): так что вы выиграете для ORM и JSON RESTful архитектуры, а также высокоскоростной сервер режима ядра http.sys.

Двигатель SQLite3 НЕ является обязательным для нашей инфраструктуры, даже если он был разработан для работы с ним лучше.

Ответ 2

Если вы начнете приложение с нуля, я думаю, что mORMot - хороший вариант, если Delphi - ваш единственный вариант. Если вы выберете datasnap, вам придется жить с проблемами производительности и стабильности.

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

Анализ DataSnap, основанный на тестах скорости и стабильности

Ответ 3

Я думаю, вам стоит взглянуть на kbmMW, есть способ реализовать базовый сервер REST на основе HTTP-сервера, управляемого событиями.

Проверьте группы новостей news.components4developers.com, там будет много документации.

Ответ 4

FireHttp - это высокопроизводительный веб-сервер, основанный на языке Delphi/Object Pascal. Он поддерживает HTTP 1.1, HTTPS (SSL/TLS), WebSocket, GZip, Deflate, IOCP, EPOLL. Он принимает модель многопроцессорности + многопоточности, имеет хорошую стабильность и производительность параллелизма, а также предоставляет исходный код SDK. Разработчики могут использовать SDK для быстрого создания высокопроизводительных кроссплатформенных веб-приложений.