Движок онлайн-сервиса на Lazarus

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

Движок онлайн-сервиса на Lazarus

Сообщение Ichthyander » 17.04.2016 08:49:09

1. Есть идея сделать сайт. На PHP написать, конечно, можно, но в FreePascal для меня будет на порядки быстрей и проще. Функционал сайта нестандартный (нефорум, непортал, неблог, некий сервис объединяющий множество других с помощью API) и само-собой будет динамический. Хочеться услышать советы и мнения от тех, кто пробовал делать движки сайтов на Lazarus, так как тема для меня новая и хочется заранее знать о подводных камнях и в каком направлении лучше сразу смотреть.
Предварительно думаю реализовать его как cgi приложение под Linux. Достаточно будет десктопной версии Ubuntu/Debian для тестирования приложения?
Сайт не должен быть особо трафиковым (думаю не больше 100 уников в сутки), но будет предоставлять услуги авторизованным пользователям сервиса.
2. Есть также идея попробовать к моему существующему трафиковому (относительно) сайту (2000-3000 уников до 10тыс.просмотров) приделать дополнительный расчетный сервис (не очень сложные расчеты, можно даже обойтись без использования базы данных одним кешом). Судя по тому, что я успел изучить по топикам на этом форуме это будет не очень хорошая идея, так как на каждую сессию будет запускаться отдельный процесс. С другой стороны у меня на моем немецком VPS несколько десятков сайтов с CMS типа Joomla порой даже без кеширования и ничего, все нормально держит. Что думаете?
Спасибо заранее за ответы. Хочеться услышать рекомендации, советы, возможно полезные примеры на Lazarus
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 551
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Движок онлайн-сервиса на Lazarus

Сообщение скалогрыз » 17.04.2016 09:42:48

Ichthyander писал(а): Функционал сайта нестандартный (нефорум, непортал, неблог, некий сервис объединяющий множество других с помощью API) и само-собой будет динамический. Хочеться услышать советы и мнения от тех, кто пробовал делать движки сайтов на Lazarus, так как тема для меня новая и хочется заранее знать о подводных камнях и в каком направлении лучше сразу смотреть.

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

Ichthyander писал(а):Предварительно думаю реализовать его как cgi приложение под Linux. Достаточно будет десктопной версии Ubuntu/Debian для тестирования приложения?

декстопная версия тебе как раз не нужна. тебе нужна консольная версия.
скалогрыз
долгожитель
 
Сообщения: 1726
Зарегистрирован: 03.09.2008 02:36:48

Re: Движок онлайн-сервиса на Lazarus

Сообщение Ichthyander » 17.04.2016 10:01:02

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

Хм.. Я сам за использование готовых решений. Но вся соль проекта в узкой специализации. Движков под такое нет. Ну разве что, использовать популярную CMS как обертку, но в этом нет проблем и вопросов. Меня интересует начинка основного функционала сайта, которого в готовом или сыром виде нет в платном или открытом коде. Есть мои наработки в десктопных программах в Lazarus, которые я в принципе и мог бы использовать для портирования в серверную версию
декстопная версия тебе как раз не нужна. тебе нужна консольная версия.
Ну а я смогу собирать cgi приложение в десктопной версии и заливать на свой сервер для теста? Хотя я думал, что можно будет как-то настроить десктоп и тестить на нем Linux-серверные приложения: что-нибудь вроде Денвера для Windows...
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 551
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Движок онлайн-сервиса на Lazarus

Сообщение SSerge » 17.04.2016 10:12:46

Ichthyander писал(а):ля меня будет на порядки быстрей и проще.


Результат со временем сведется к тому, что любые изменения на порядки быстрее и проще вносить в код php, чем в паскалевский. Особенно, когда уже забыл о всех тонкостях и взаимосвязях и то, как все запрограммировано. Кроме того нет паразитной ступени в виде необходимости это всё сначала компилировать, а потом на сайт копировать

Ichthyander писал(а):не очень сложные расчеты


Смотря какие расчеты. Прелесть в том, что если программа в результате каких либо некорректных данных или программирования зациклится, то cgi процесс навсегда повиснет в памяти, причем в активном виде, с потреблением ресурсов, в отличие от потока php, который будет сервером снят в среднем секунд через 30 (по настройкам). С десяток таких зомби - и сервер ляжет. Т.е., чтобы этого не происходило, нужно предельно внимательно контролировать и данные и алгоритмику. А потому - jeden das seine. Расчётные программы под cgi - очень плохая идея с точки зрения устойчивости их работы и ресурсоёмкости
SSerge
энтузиаст
 
Сообщения: 898
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Движок онлайн-сервиса на Lazarus

Сообщение Ichthyander » 17.04.2016 10:27:54

SSerge писал(а):
Ichthyander писал(а):ля меня будет на порядки быстрей и проще.

Результат со временем сведется к тому, что любые изменения на порядки быстрее и проще вносить в код php, чем в паскалевский. Особенно, когда уже забыл о всех тонкостях и взаимосвязях и то, как все запрограммировано. Кроме того нет паразитной ступени в виде необходимости это всё сначала компилировать, а потом на сайт копировать

Почему? Я спокойно вношу изменения в свой код в программах. И для меня он более читабельный, чем скажем код на PHP, просто потому что в PHP на порядок меньше опыта. В компиляции проблем не вижу

SSerge писал(а):
Ichthyander писал(а):не очень сложные расчеты

Смотря какие расчеты. Прелесть в том, что если программа в результате каких либо некорректных данных или программирования зациклится, то cgi процесс навсегда повиснет в памяти, причем в активном виде, с потреблением ресурсов, в отличие от потока php, который будет сервером снят в среднем секунд через 30 (по настройкам). С десяток таких зомби - и сервер ляжет. Т.е., чтобы этого не происходило, нужно предельно внимательно контролировать и данные и алгоритмику. А потому - jeden das seine. Расчётные программы под cgi - очень плохая идея с точки зрения устойчивости их работы и ресурсоёмкости

Про такое читал на этом форуме. В принципе согласен. Я конечно не могу назвать себя супер-профессионалом в программировании, но тем не менее такое с моими прогами случается редко... Вылетать-вылетают конечно программы, могут быть неэффективными, а вот зацикливание (не сглазить), даже не могу припомнить. Но мысль понятна и это действительно значительный минус.
По поводу утойчивости понятно. По поводу ресурсоемкости почему могут быть проблемы, при условии, что программа будет написано правильно и аккуратно (а это мне на FreePascal сделать будет проще)

Добавлено спустя 1 минуту 45 секунд:
Да и кстати про один из плюсов (может я чего-то не понимаю): по идее cgi-приложение сломать сложней, чем любой другой скриптовое приложение, ведь доступ к исходному коду ограничен по определению?
Да, и специфика проекта №1 такова, что несанкционированный доступ на порядки опасней, чем падения сервера. А вот специфика проекта №2 с расчетной утилитой безопасность не важна, так как она не будет завязана с деньгами пользователей, но трафик там большой
Последний раз редактировалось Ichthyander 17.04.2016 10:44:48, всего редактировалось 2 раз(а).
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 551
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Движок онлайн-сервиса на Lazarus

Сообщение SSerge » 17.04.2016 10:38:00

Ichthyander писал(а):о идее cgi-приложение сломать сложней


Дырок в программировании GET/POST запросов номинально больше, чем для подобных интерфейсов для php, особенно если CGI интерфейс программируешь самостоятельно. Да и в готовых библиотеках могут быть дыры - всё потому что не массовая и не популярная технология.
Ichthyander писал(а): вот зацикливание (не сглазить), даже не могу припомнить.

Я и говорю - смотря какие расчеты. Иногда это означает многочисленные итерации и возвраты с целью автоматической коррекции данных - вот и зацикливание.

Да, кстати, сессионность то тоже писать придётся руками.
И каки прожить - руками.

...не вижу никаких преимуществ.
SSerge
энтузиаст
 
Сообщения: 898
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Движок онлайн-сервиса на Lazarus

Сообщение grot » 17.04.2016 10:44:29

nginx + TFPHTTPServer (find an example how to setup a linux diemon)
grot
новенький
 
Сообщения: 50
Зарегистрирован: 13.02.2010 16:33:03

Re: Движок онлайн-сервиса на Lazarus

Сообщение SSerge » 17.04.2016 10:46:30

Да, кстати, для CGI недоступно много чего, оказывающего косвенное влияние на функционирование прграмм FPC: навскидку - программа, например, не в состоянии определить текущую локаль системы (полезут косяки со строками с кириллицей, особенно в 3.х компиляторах), у нее права доступа такие же как у сервера Apache - а это обычно пораженный в правах процесс. Переменные окружения тоже недоступны. Недоступна часть информации, которая легко и само собой получается кодом PHP, и в целом процесс передачи потока на CGI медленнее, чем встроенному модулю - хотя, это уже для фанатов. :D

Добавлено спустя 2 минуты 44 секунды:
А, ну да! :idea: Таки пока видимо одно преимущество - исходник наглухо спрятан от хостера сервера, и он не сумеет покрасть твой код!
SSerge
энтузиаст
 
Сообщения: 898
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Движок онлайн-сервиса на Lazarus

Сообщение Ichthyander » 17.04.2016 10:58:24

grot писал(а):nginx + TFPHTTPServer (find an example how to setup a linux diemon)

Ну, у меня нет цели писать веб-сервер вообще вместо апач. Апач вполне устраивает. Возможно даже буду использовать CMS на PHP как обертку, да и другие сайты есть на сервере.

Добавлено спустя 5 минут 48 секунд:
SSerge писал(а):Да, кстати, для CGI недоступно много чего, оказывающего косвенное влияние на функционирование прграмм FPC: навскидку - программа, например, не в состоянии определить текущую локаль системы (полезут косяки со строками с кириллицей, особенно в 3.х компиляторах), у нее права доступа такие же как у сервера Apache - а это обычно пораженный в правах процесс. Переменные окружения тоже недоступны. Недоступна часть информации, которая легко и само собой получается кодом PHP, и в целом процесс передачи потока на CGI медленнее, чем встроенному модулю - хотя, это уже для фанатов. :D

Ну всякие системные переменные, определение локали и прочее мне не понадобится. Будет взаимодействие с пользователем, базой данных (можно даже без нее) с другими сторонними онлайн-сервисами. Так что это не проблема тоже. По поводу медленности, может окажется проблемой для проекта №2. В проекте №1 с этим думаю все ok.
SSerge писал(а):Добавлено спустя 2 минуты 44 секунды:
А, ну да! :idea: Таки пока видимо одно преимущество - исходник наглухо спрятан от хостера сервера, и он не сумеет покрасть твой код!

Немаловажно. Есть еще преимущества того же рода. В случае взлома сервера/сайта максимум, код также будет наглухо спрятан... Ну, почти. И еще, приложение можно будет продавать, не боясь расползания кода и воровство идей левыми кодерами
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 551
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Движок онлайн-сервиса на Lazarus

Сообщение Лекс Айрин » 17.04.2016 13:00:25

вообще-то взлом CGI, если я помню, даже легче чем PHP/HTML. Минус веб-технологий как таковых, в разрозненности -- каждая следующая затыкает потребности других, не всегда, кстати, точно. Да и результатом любых махинаций на сервере будет выхлоп страницы в html (или ее части). Ну и клиентская часть всегда доступна для изучения -- скрипты, запросы, обработчики... А в случае ошибки в конфигурации можно вообще выпасть в каталог сайта -- тогда любой ламер сможет скопировать все. (возможно кроме БД) Несколько раз я сам так случайно попадал из поисковика.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Движок онлайн-сервиса на Lazarus

Сообщение pupsik » 17.04.2016 15:39:37

которого в готовом или сыром виде нет в платном или открытом коде
http://www.fastplaz.com/#, http://silvioprog.github.io/brookframework/ и т.д., не подходят под "сырой" вид?

... скрипты, запросы, обработчики... А в случае ошибки в конфигурации можно вообще выпасть...
если я не ошибаюсь: это касаемо любого сайта, сервиса.
pupsik
энтузиаст
 
Сообщения: 1144
Зарегистрирован: 20.08.2014 16:20:13

Re: Движок онлайн-сервиса на Lazarus

Сообщение azsx » 18.04.2016 06:12:57

Будет взаимодействие с пользователем, базой данных (можно даже без нее) с другими сторонними онлайн-сервисами. Так что это не проблема тоже.

php подходит идеально.
---
вообще интересно иное, в каких случаях cgi на freepascal имеет преимущества перед php. Как я понимаю первым и главным преимуществом является объемный алгоритм расчета. То есть если алгоритм на 15 тысяч строчк кода, то логичнее его не писать на php. Или есть какие то иные преимущества?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Движок онлайн-сервиса на Lazarus

Сообщение скалогрыз » 18.04.2016 07:44:32

azsx писал(а):Или есть какие то иные преимущества?

наличие опыта в разработке и необходимых библиотек.

на самом деле, ничто не мешает держать паскаль на сервере на уровне "скрипта". Т.е. компилировать исходники прямо на сервере. Т.е. поступил запрос в cgi, он сначала проверит "не поменялись ли исходники", если да, то попробует их скомпилировать.

Вся крутизна в скорости компиляции паскаля ;) Если поменялся один-два модуля, программа пересоберёться очень быстро.

Во времена делфи такое не прокатило бы. Ибо лицензия делфи запрещает распространение самого делфи, как компилятора. А вот на FPC такого ограничения нет. И такое его использование не противоречит GPL лицензии
скалогрыз
долгожитель
 
Сообщения: 1726
Зарегистрирован: 03.09.2008 02:36:48

Re: Движок онлайн-сервиса на Lazarus

Сообщение Лекс Айрин » 18.04.2016 10:47:51

pupsik писал(а):если я не ошибаюсь: это касаемо любого сайта, сервиса.


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

Re: Движок онлайн-сервиса на Lazarus

Сообщение Ichthyander » 18.04.2016 16:34:39

pupsik писал(а):
которого в готовом или сыром виде нет в платном или открытом коде
http://www.fastplaz.com/#, http://silvioprog.github.io/brookframework/ и т.д., не подходят под "сырой" вид?

... скрипты, запросы, обработчики... А в случае ошибки в конфигурации можно вообще выпасть...
если я не ошибаюсь: это касаемо любого сайта, сервиса.

Я имел ввиду готовых решений на PHP. Хотя за ссылки большое спасибо! Впервые слышу о таких фреймворках на FreePascal. Изучу эту тему. Сами, кстати, не пробовали?

Добавлено спустя 2 минуты 48 секунд:
azsx писал(а):php подходит идеально.
---
вообще интересно иное, в каких случаях cgi на freepascal имеет преимущества перед php. Как я понимаю первым и главным преимуществом является объемный алгоритм расчета. То есть если алгоритм на 15 тысяч строчк кода, то логичнее его не писать на php. Или есть какие то иные преимущества?

Ну, кроме взаимодействия нужно будет еще реализовать алгоритм работы сервиса, в котором я вся соль так сказать. Для меня является большим преимуществом, что относительно сложные приложения на PHP я не реализовывал, в основном доработка и небольшие скрипты. А также то, что исходный код программы не своруют просто так.

Добавлено спустя 6 минут 1 секунду:
Лекс Айрин писал(а):вообще-то взлом CGI, если я помню, даже легче чем PHP/HTML. Минус веб-технологий как таковых, в разрозненности -- каждая следующая затыкает потребности других, не всегда, кстати, точно. Да и результатом любых махинаций на сервере будет выхлоп страницы в html (или ее части). Ну и клиентская часть всегда доступна для изучения -- скрипты, запросы, обработчики... А в случае ошибки в конфигурации можно вообще выпасть в каталог сайта -- тогда любой ламер сможет скопировать все. (возможно кроме БД) Несколько раз я сам так случайно попадал из поисковика.

Да нет, приложение "сломать" не получится. К тому, чтобы его "принудить" выдать содержимое папки? На PHP это представляю. Даже представляю чем грозит то, что если злоумышленник получить хотя бы доступ к чтению к какой-либо папки со скриптами. Но скрипты обеспечат максимум функцию обертки, а вообще, можно только cgi обойтись. В случае CGI приложение он максимум сможет прочесть набор данных исполняемого модуля. Реинжиниринг гораздо сложнее в этом случае. По поводу безопасности все-таки не согласен... Мне кажется тут есть большие преимущества именно исполняемых модулем, чем скриптов...
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 551
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

След.

Вернуться в Сети

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

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

Рейтинг@Mail.ru