Как написать веб сервис на паскале?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 26.05.2017 18:13:59

vitaly_l, не слабо, но лень. Погугли про node.js -- это целый сервер почти чисто на ява-скрипте. (есть еще варианты, но этот вроде как самый тюнингованный).
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 26.05.2017 18:21:49

Лекс Айрин писал(а):не слабо, но лень. Погугли про node.js -- это целый сервер почти чисто на ява-скрипте. (есть еще варианты, но этот вроде как самый тюнингованный).

Опять флудишь!
вот текст описания Node.js:
Код: Выделить всё
Node или Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и Mac OS) и даже программировать микроконтроллеры (например, tessel и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

соответственно он не связывается с БД, без программы на С++ взято здесь: https://ru.wikipedia.org/wiki/Node.js

Так реальный пример кода запроса из JS к БД, флудеру, в топик привести слабо? :wink:
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 26.05.2017 18:41:22

vitaly_l, ответ в самой твоей цитате...

vitaly_l писал(а):добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода.

Если читать, то станет ясно, что api лишь реализует доступ к железу и не факт, что реализует его к внешним библиотекам (они же не устройства ввода/вывода)... ну а то, что это не интерпретатор, а компилятор вообще мелочь.

vitaly_l писал(а):соответственно он не связывается с БД, без программы на С++

Логично. FPC, кстати, тоже использует обертки над БД и внешние библиотеки. Их даже приходится прикладывать к программе. Это называется внешний интерфейс к БД. И да будет тебе известно, что без программы сервера никакой доступ сайтов к БД невозможен. Будь у тебя их хоть двадцать.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 26.05.2017 18:49:05

Лекс Айрин писал(а):И да будет тебе известно, что без программы сервера никакой доступ сайтов к БД невозможен.

Ну так значит я сказал правду, а Вы свистели и вводили людей в заблуждение (да будет всем это известно). 8)
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 26.05.2017 18:57:59

vitaly_l, в чем? В том, что нельзя использовать JS со стороны сервера? Да пофиг, на самом деле, через сколько прокладок идет доступ к БД. Программирование это и есть использование прокладок, костылей и велосипедов. Да и вполне реально написать БД встроенную в node.js как один из модулей. Да и не факт, что БД вообще там нужна.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как написать веб сервис на паскале?

Сообщение stanilar » 26.05.2017 21:42:12

vitaly_l писал(а):Так реальный пример кода запроса из JS к БД, в топик привести слабо?

Вот библиотека доступа к любимому всеми делфийцами firebird'у, с примером использования. Дальше то что? Неужели непонятно, что это очевидная возможность?

vitaly_l писал(а):javascript это клиентская технология и клиент серверные архитектуры с помощью JS - не возможны.

Есть еще js в расширениях браузера, который разрешает использование DLL. Это клиентская или серверная технология?

Добавлено спустя 13 минут 8 секунд:
vitaly_l писал(а):javascript это клиентская технология и клиент серверные архитектуры с помощью JS - не возможны.


Если говорить про винду, то у компонента TWebBrowser из коробки есть возможность экспортировать функции из приложения. Бросаете кварик на форму, при вызове js процедуры открываете его, экспортируете данные в json, передаете в качестве результата.
Такой подход будет клиент серверной архитектурой?
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 26.05.2017 22:35:44

stanilar писал(а):Такой подход будет клиент серверной архитектурой?

Во всех случаях - нет.

Сервер - это, то, что расположено например далеко на другом континенте. И к серверу юзеры, подключаются из любой точки мира, через браузер, на котором нет ни dll ни node.exe - позволяющих соединиться с БД. Единственное что там есть, это стандартный JS из браузера. И всегда, между клиентом и БД, есть какая-то прокладка: php, perl или исполняемый файл, которые лежат на сервере.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 26.05.2017 22:40:17

stanilar, ему не понятно. Он иногда путает язык с компилятором(((

Добавлено спустя 12 минут 33 секунды:
vitaly_l писал(а):Сервер - это, то, что расположено например далеко на другом континенте.

ой ли.. я только в этой теме говорил, что ставил программу сервер на обычный комп.
vitaly_l писал(а):И к серверу юзеры, подключаются из любой точки мира, через браузер, на котором нет ни dll ни node.exe - позволяющих соединиться с БД. Единственное что там есть, это стандартный JS из браузера. И всегда, между клиентом и БД, есть какая-то прокладка: php, perl или исполняемый файл, которые лежат на сервере.

Да будет тебе известно, клиент-серверная технология мало связана с серверами. Это лишь стратегия написания сложных, возможно пространственно разделенных, комплексов программ. Началось это еще со времен юникса.
А БД в серверах нужна лишь для хранения настроек, не более. А так называемые серверы баз данных нужны для использования программами типа 1С-предприятия, когда требуется локальные копии нерентабельны. И в интернет они выпускаются настолько редко, что проще считать, что никогда.
Тебя попутало слово "сервер" в названии.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 26.05.2017 22:55:51

Ой нет, это пустая полемика о пустоте. Возможно кто-то и захочет пофлудить в эту сторону, но без меня. Так изгаляться чтобы на локальной машине подключиться к базе данных зачем-то из браузера через какой-то ноде... на локальной машине я могу напрямую из программы к БД обратиться. Как впрочем и не на локальной.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Лекс Айрин » 26.05.2017 23:03:24

vitaly_l, то, что ты что-то не понимаешь, еще не значит, что тема разговора об этом пуста. Нельзя во всем быть экспертом.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как написать веб сервис на паскале?

Сообщение Cheb » 29.05.2017 21:35:00

Я как-то писал тесты быстродействия, один алгоритм на 3 языках.
JavaScript в среднем немного быстрее ФриПаскаля, и многократно удобнее для быстрого написания всяких мелочей.
Оба они вытирают ноги об php, что в плане скорости, что в плане удобства.
В php чудовищно неэффективное использование памяти массивами. Создайте многомерный - и познаете БОЛЬ (во времена оны, каждый массив, даже пустой, начинался от 3 килобайт). А лимит памяти - 64/128/сколько-там-в-настройках-прописано мегабайт.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 29.05.2017 23:05:09

Cheb писал(а):В php чудовищно неэффективное использование памяти массивами. Создайте многомерный - и познаете БОЛЬ

Странно, я грузил туда громадные многомерные массивы, порядка 100-500 мб. и они вполне себе считались и обрабатывались, правда по несколько минут. Но на моей машине они считались бы ещё медленнее, т.к. сервер - мощнее моей машины (поэтому сравнить не могу).

Ограничения в php действительно есть, но они могут настраиваться, вначале скрипта или в установках. Кроме того, загрузка громадных php массивов - это довольно редкая для php задача, т.к. в основном - сервер работает с малыми данными и php вполне хватает с запасом. ИМХО.

А что за задачи решались? Может дело было не в многомерном массиве, а в сложных расчётах?

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение Cheb » 29.05.2017 23:23:24

вначале скрипта или в установках.

И типовой апач тебе даст по рукам, всё прибито гвоздями ради безопасности.

порядка 100-500 мб

:shock:
Да вы, батенька, гоните :?
Или это вообще не веб был, или не php.
Так не бывает.

Может дело было не в многомерном массиве, а в сложных расчётах?

Какие они сложные, порядка двух-трёх тысяч объектов обрабатывать с дюжиной полей в каждом, подсчитать и выполнить сортировку по сложным правилам. В паскале или жаваскрипте - подтереться такой нагрузкой. В php - нужны особые настройки сервера чтобы поднять лимит памяти, особые настройки сервера чтобы увеличить время выполнения секунд, хотя бы, до 300... А админы всё время норовят всё это уменьшить и запретить всё, что только можно, потому что где-то на том же или смежном хостинге ещё крутятся сопливые сайты на дырявой древней джумле.
Я уже давно уяснил, что всё, что можно, надо спихивать на mySQL, который те же задачи решает со скоростью света по сравнению с php. Хоть и вообще не для этого предназначен.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: Как написать веб сервис на паскале?

Сообщение vitaly_l » 29.05.2017 23:46:57

Cheb писал(а):И типовой апач тебе даст по рукам, всё прибито гвоздями ради безопасности. Да вы, батенька, гоните

вот на вскидку, примеры для установок:
Код: Выделить всё
upload_max_filesize = 2000M (это максимальный размер загружаемого файла)

max_execution_time = 18000 — это максимально допустимое время выполнения скрипта, при работе с большими объёмами данных и на локальном хосте можно выставить и побольше.

max_input_time = 18000 — это время за которое PHP скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Время измеряется от момента, когда сервером получены все данные, до момента, когда скрипт начинает выполняться. Не столь важная директива для целей преследуемых данной статьёй.

Размер памяти можно увеличить
memory_limit = 128M (это максимальный выделяемый размер памяти для обработки скрипта. Если у вас «тяжелые» файлы или с ними надо сделать достаточно ресурсоемкие действия, например распаковать большой архив базы данных, то выставляйте размер больше). В конце всех действий просто перезагрузить веб сервер.

взято вот здесь: http://softodom.com/173/kak-uvelichit-dopustimyjj-razmer-zagruzhaemogo-fajjla-cherez-php.html

Cheb писал(а):порядка двух-трёх тысяч объектов обрабатывать с дюжиной полей в каждом, подсчитать и выполнить сортировку по сложным правилам

Ну это с моей точки зрения - очень сложная задача, особенно для php. Там такие задачи, как правило - не решают. Это ведь сервер, и там важна скорость ответа сервера и весь код максимально простой. А такое, в любом случае займёт много времени.

Cheb писал(а):увеличить время выполнения секунд, хотя бы, до 300... А админы всё время норовят всё это уменьшить и запретить всё, что только можно, потому что где-то на том же или смежном хостинге ещё крутятся сопливые сайты на дырявой древней джумле.

Это правда, но там можно давать скрипту, команду на увеличение времени конкретного скрипта, т.к. иначе скрипт отрубится за 1-5 секунд. Если php скрипт работает больше секунды при общении с клиентом, то это 100% неправильный скрипт.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как написать веб сервис на паскале?

Сообщение azsx » 30.05.2017 10:28:41

JavaScript в среднем немного быстрее ФриПаскаля, и многократно удобнее для быстрого написания всяких мелочей.

Я пишу всякие парсеры, работают сутками, вылетают постоянно (но может потому, что я их так пишу). php может использовать много памяти, не знаю в чём негатив. Хотя один из скриптов у меня стабильно вылетает каждые 2 суток, так как пытается выделить более 1 гб памяти. Как я понял -- это баг версии 7,0.
Очень интересно про скорость, работа велась со строками или с цифрами, где php проиграл, а js выиграл? Как вы добиваетесь, что у вас js работает также быстро как fpc? Всё таки запуск с браузера, один поток, нет доступа к оборудованию.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru