|
|
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Приветствую! Разрабатывал сетевой софт на базе RealTninClient. Библиотека хорошая, но платная. Сам тупанул что не увидел изначально сей факт. Сейчас в рублях она стоит 42 000 р в год. Ищу варианты подешевле)) Никто не решал такую проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2019, 23:33 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Starter edition недостаточно? Если нет, то перепиши на что-то бесплатное (например, Synapse). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 08:49 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Можно охватить более широкий круг отвечающих, если поведать, что именно из этой либы ты применяешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 09:59 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
из полностью бесплатного по уровню навороченности наверное только mormot и dmvc можно хоть как-то сравнивать с Rtc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 10:29 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
P.S. На Sourceforge ссылка на файл больше не работает, но я то его когда можно было скачал ;) Залил на дропбокс, вот пожалуйста: RealThinClient 2.85 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 11:33 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, Гигантское спасибо! Возможно Вы мне сэкономили 42 000 Р)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 11:41 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
P.P.S. Еще кое-что на GitHub'е нашлось, даже посвежее: RealThinClient SDK v8.04 - LITE https://github.com/maciej-izak/sdk-lite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 11:52 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Василий 2, Да не особо много: Есть клиенты, которые цепляются по логину и паролю. Дальше каждый клиент посылает периодические запросы на обновление некторой инфы. Инфа приходит в JSON, клиент парсит и что то делает... Т.е. просто обмен текстовой информацией + сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 11:58 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Кроик Семён P.P.S. Еще кое-что на GitHub'е нашлось, даже посвежее: RealThinClient SDK v8.04 - LITE https://github.com/maciej-izak/sdk-lite Посмотрел ограничения Lite версии: A) LITE RTC SDK version ONLY has blocking WinSock API support. LITE RTC SDK version does NOT have multi-platform support (required to target iOS, OSX and Android platforms), support for WinInet and WinHTTP APIs (Firewall/Proxy and SSL support on Windows), Async WinSock API support (higher load capacity and reduced resource usage for Windows Servers), ISAPI support (compile Server-side code into an ISAPI DLL), Message-based Client/Server support, UDP and TCP Client/Server support. B) LITE RTC SDK version ONLY has basic HTTP Client/Server and Remote Function components. LITE RTC SDK version does NOT include more advanced features and components (like SSL and RSA Encryption, Scripting, Data Routing, Load Balancing, general-purpose Gateway and Multi-Gate Clients, in-memory DataSets and DataSet monitoring). C) LITE RTC SDK version does NOT include support. Единственное что вызывает сомнение - у меня сейчас серверная часть работает в NonBlocking режиме. Как будет держать 100 параллельных коннектов в Blocking режиме - это вопрос... Остальное вроде не столь необходимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 12:38 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Basketbol, и ещё, раз уж топик называется "альтернативы", то стоит наверное о них вспомнить. Например Overbyte ICS . Это свободный продукт, был разработан и хостился раньше здесь , но попадаются и клоны типа этого . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 13:18 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Overbyte ICS теперь здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 13:49 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Кроик Семён Это свободный продукт, был разработан и хостился раньше здесь Раньше? Вроде и сейчас там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 14:19 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Basketbol Василий 2, Да не особо много: Есть клиенты, которые цепляются по логину и паролю. Дальше каждый клиент посылает периодические запросы на обновление некторой инфы. Инфа приходит в JSON, клиент парсит и что то делает... Т.е. просто обмен текстовой информацией + сессии. По описанию - вообще ерунда, таких фреймворков море. Вот тут https://github.com/Fr0sT-Brutal/awesome-pascal#network широкий выбор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 14:20 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
wadman Кроик Семён Это свободный продукт, был разработан и хостился раньше здесь Раньше? Вроде и сейчас там. Когда я туда захожу у антивируса Касперского истерика начинается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 19:25 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Basketbol Приветствую! Разрабатывал сетевой софт на базе RealTninClient. Библиотека хорошая, но платная. Сам тупанул что не увидел изначально сей факт. Сейчас в рублях она стоит 42 000 р в год. Ищу варианты подешевле)) Никто не решал такую проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 19:57 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Народ, человек попросил бесплатные альтернативы библиотеке для разработки сервисов, овербайт это скорее ближе к Indy и сетевым библиотекам. Именно названные мной mORMot и DMVC ближе всего именно к rtc, при этом тот же dmvc собирается и работает под тем же centos, это я проверил лично. Понятно что можно взять тот же Indy и начать ваять на нем, но смысл, эти библиотеки предлагают значительно более широкий функционал для разработки именно веб-сервисов. Так зачем изобретать велосипед там где есть превосходные бесплатные решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 20:00 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Коллеги, спасибо всем за обсуждение и помощь! Пошел по пути бесплатного варианта RTC Кроик Семён P.P.S. Еще кое-что на GitHub'е нашлось, даже посвежее: RealThinClient SDK v8.04 - LITE https://github.com/maciej-izak/sdk-lite Спасибо Кроик Семён ! Чем привлекательны RTC: Есть механизм сессий, есть свой пул потоков для обработки запросов, много хелпа, свой форум с примерами и QuickStart. И это все есть в Lite версии. Поэтому снес платную версию, установил бесплатную. Все скомпилировалось без каких либо проблем и вроде даже работает) P.S. и почему то в ограничениях сказано что Lite версия работает только в блокирующем режиме. Но по факту у rtcHttpServer Lite версии есть свойство "Режим работы" где можно выбрать и неблокирующий режим. Странно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 20:33 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
rgreat А чем встроенный в среду функционал не устраивает? Дельфийские стандартные компоненты? Нет такого механизма как "пул потоков". Т.е. в неблокирующем режиме работы сокетов пришлось бы писать обработчики запросов в отд потоках самому. Нет механизма сессий (чтоб в сессии можно было сохранить переменную) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 20:40 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Basketbol Нет такого механизма как "пул потоков". Т.е. в неблокирующем режиме работы сокетов пришлось бы писать обработчики запросов в отд потоках самому. Нет механизма сессий (чтоб в сессии можно было сохранить переменную) TIdTCPServer.Scheduler TIdTCPServer.Contexts Ы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2019, 21:29 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
энди Народ, человек попросил бесплатные альтернативы библиотеке для разработки сервисов, овербайт это скорее ближе к Indy и сетевым библиотекам. Так сервисы это тонкая надстройка над сетевыми функциями. В ICS есть и REST, и сессии, и даже MidWare ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 10:21 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Василий 2 и даже MidWare Чтоб понять, что его по сути нет, нужно попробовать этим попользоваться. Там лишь какая-то попытка его реализации, которая ею и осталась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 10:37 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Как мне кажется ICS это все же ближе к Indy чем к RTC. Да и middleware там было то еще чудо в противозачаточной форме :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 11:06 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
энди Как мне кажется ICS это все же ближе к Indy чем к RTC. Да и middleware там было то еще чудо в противозачаточной форме :) согласен, так как сам делал сервер приложений на нем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2019, 19:16 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
А может кто-нибудь пояснить, каким образом все эти асинхронные фреймворки умудряются держать тысячи подключений в рамках одного потока и при этом работать с файлами и базами данных? Ведь если я обращаюсь к файлу, или выполняю запрос к БД, то эта операция может длиться несколько секунд! В этом случае обмен со всеми подключениями замораживается? Или же в этих фреймворках под капотом имеются свои функции работы с файлами и базами данных, которые и не создают кучу доп. потоков и не замораживают поток, из которого произошёл вызов из контекста подключения (но при этом приостанавливают выполнение кода, который такую функцию вызвал)? Есть ли в них такие волшебные функции для работы с Firebird? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 09:32 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
DmSer, А с чего ты взял что все это делается в них "в рамках одного потока"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 10:33 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Vlad F DmSer, А с чего ты взял что все это делается в них "в рамках одного потока"? Я лишь написал, эти фреймворки могут держать тысячи подключений в рамках одного потока. Может сотни. Вопрос не в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 10:40 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
DmSer, Тысячи (одних курьеров) подключений в рамках КАКОГО ТАКОГО одного потока? И, вообще, разбил бы ты свой исходный мегавопрос на ряд простых попроще и задавал бы их по одному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 10:53 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Vlad F DmSer, Тысячи (одних курьеров) подключений в рамках КАКОГО ТАКОГО одного потока?. Не важно. Пусть будет main thread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 11:02 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
DmSer, Важно. Я же тебя к этому и подвожу, с какой стороны thread имеется ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 11:04 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Vlad F DmSer, Важно. Я же тебя к этому и подвожу, с какой стороны thread имеется ввиду? Не понял вопроса. Они с разных сторон бывают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 11:16 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
DmSer, Бывают. Иногда.)) Но что то я уже начал сомневаться, - мы двухзвенку или трехзвенку обсуждаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 11:25 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Vlad F DmSer, Бывают. Иногда.)) Но что то я уже начал сомневаться, - мы двухзвенку или трехзвенку обсуждаем? Мне интересна организация веб-сервера на асинхронном фреймворке, но чтобы он не просто hello world в ответ отсылал, но и запросы к бд делал, работал с файлами и обращался к другим микросервисам . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 11:42 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
DmSer, Так это трехзвенка все таки, получается, или нет?)) По кругу ходим, - с чего ты взял, что то на стороне веб-сервиса все это должно делаться в одном на все про все потоке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 12:23 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Vlad F DmSer, Так это трехзвенка все таки, получается, или нет?)) По кругу ходим, - с чего ты взял, что то на стороне веб-сервиса все это должно делаться в одном на все про все потоке? Наверное трехзвенка: Клиент (браузер) - Сервер - СУБД/микросервисы. Допустим, 10000 клиентов по http решили одновременно отправить запрос на сервер. Сервер для обработки каждого из запросов обращается к СУБД. СУБД находится на другом компьютере на другой стороне земного шара (Ping = 100 мс). Из-за длительного пинга каждый запрос к СУБД условно занимает 1 секунду (хреновый случай, когда каждый запрос нужно предварительно препарировать, а это ещё куча лишних сетевых запросов). Вопрос: через сколько времени наши 10000 клиентов увидят ответы на свой запросы (например, при использовании RTC / ICS / mORMot)? Если эти фреймворки асинхронные, то в идеале, они как-то должны уметь и с удалённой СУБД обменяться асинхронно, не плодя 10000 потоков лишь для ожидания ответа от СУБД. Каким образом они будут ожидать ответа от удалённой СУБД? а) асинхронно (например через порты завершения ввода/вывода). В этом случае не должны создаваться никакие лишние потоки, не затрачиваются лишние ресурсы (ОЗУ, вирт. память, процессор). Все клиенты увидят ответ одновременно (спустя 1 секунду). Однако в этом случае разработка сильно осложняется, т.к. мало того, что нам нужно писать асинхронный код обмена с клиентами, так ещё нужно писать асинхронный код обмена с СУБД. б) асинхронно, но за счёт создания 10000 доп. потоков (лишь для ожидания ответа от СУБД). В этом случае, если программа 32-битная, то на создание 10000 потоков может не хватить виртуальной памяти. Значительные вычислительные ресурсы тратятся на создание большого числа потоков. В этом случае разработка также сильно осложняется, т.к. мало того, что нам нужно писать асинхронный код обмена с клиентами, так ещё нужно писать асинхронный код обмена с СУБД. в) асинхронно, но за счёт создания пула из нескольких доп. потоков, например 100 (для ожидания ответа от СУБД). В этом случае, первые 100 счастливчиков получат ответ через 1 секунду, следующие 100 ещё через 1 сек и т.д. В этом случае разработка также сильно осложняется, т.к. мало того, что нам нужно писать асинхронный код обмена с клиентами, так ещё нужно писать асинхронный код обмена с СУБД. г) тупо блокировать поток, в котором осуществляется обмен с 1000 клиентов. Это самый грустный вариант. Первый клиент получит ответ через 1 сек, следующий ещё через 1 сек и т.д., пока у клиентов не возникнет ошибка таймаута. Тогда уж лучше писать на Indy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 15:10 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
DmSer А может кто-нибудь пояснить, каким образом все эти асинхронные фреймворки умудряются держать тысячи подключений в рамках одного потока и при этом работать с файлами и базами данных? Ведь если я обращаюсь к файлу, или выполняю запрос к БД, то эта операция может длиться несколько секунд! В этом случае обмен со всеми подключениями замораживается? Или же в этих фреймворках под капотом имеются свои функции работы с файлами и базами данных, которые и не создают кучу доп. потоков и не замораживают поток, из которого произошёл вызов из контекста подключения (но при этом приостанавливают выполнение кода, который такую функцию вызвал)? Есть ли в них такие волшебные функции для работы с Firebird? Никакой магии, работа с БД в потоках. Хотя сейчас движки постепенно добавляют асинхронность, но скармливание потоку остается классическим методом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 09:56 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Василий 2 Никакой магии, работа с БД в потоках. Хотя сейчас движки постепенно добавляют асинхронность, но скармливание потоку остается классическим методом. Это похоже на вариант б) или в)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 12:50 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
б) асинхронно, но за счёт создания 10000 доп. потоков (лишь для ожидания ответа от СУБД). В этом случае, если программа 32-битная, то на создание 10000 потоков может не хватить виртуальной памяти. Значительные вычислительные ресурсы тратятся на создание большого числа потоков. В этом случае разработка также сильно осложняется, т.к. мало того, что нам нужно писать асинхронный код обмена с клиентами, так ещё нужно писать асинхронный код обмена с СУБД. Ну, 32 разрядный сервер это уже лет пять как несерьезно. Затраты на создание потоков незначительны по сравнению с затратами на запрос, если он длительный; ну а если он короткий, то уже в дело вступает пул потоков/соединений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 14:35 |
|
||
|
Альтернативы RealThinClient
|
|||
|---|---|---|---|
|
#18+
Василий 2 Ну, 32 разрядный сервер это уже лет пять как несерьезно. Затраты на создание потоков незначительны по сравнению с затратами на запрос, если он длительный; ну а если он короткий, то уже в дело вступает пул потоков/соединений. Всё то же самое и у Indy :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 15:19 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038844]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 563ms |

| 0 / 0 |
