Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Много звеньевые распределенные системы


Автор: drkot 25.6.2014, 09:59
Кто чем пользовался для построения?
Какие впечатления?

Автор: PointerToNil 25.6.2014, 20:00
на sql.ru больше хороших отзывов о http://www.realthinclient.com/details/ (http://sourceforge.net/projects/rtcsdk/ бесплатна)
http://www.components4programmers.com/products/kbmmw/ тоже все применявшие хвалят и никто не жалуется (есть бесплатная codegear edition)
но без описания задачи это игра в угадайку (может, вам message queue нужно, типа http://zeromq.org?)
а на вопрос "какие велосипеды лучше?" сразу напрашивается ответ - "только свои"

Автор: drkot 25.6.2014, 21:11
Задача достаточно абстрактная, поэтому и вопрос так поставлен.

ключевые задачи:
- достаточно простой и универсальный протокол обмена, что позволит унифицировать сетевую часть (XML, JSON или городить свое)
- очень интересна возможность асинхронной работы. То есть  запрос отправляется и не ждет ответа, а ответы приходят по мере их формирования
- ну и стабильность... например компоненты из серии DBX имеют внутренние утечки по памяти и использовать их в связке не интересно, да и по функционалу позволяют только базовые вещи делать...
 
а то что свои велосипеды лучше, это факт, но их надо зачать, выносить и родить.

Автор: PointerToNil 25.6.2014, 22:35
упомянутые компоненты заточены под трехзвенки, в том числе переправляют на клиента наследник стандартного tdataset (для пользовательского интерфейса - любые любимые db-aware контролы), то есть о протоколе можно вообще не думать, но можно спуститься и уровнем ниже
качай демки, изучай прилагаемые примеры использования, куча документации
оба однозначно надежнее и безглючнее, чем изкоробочный ClientDataSet/MIDAS/DataSnap 

Автор: PointerToNil 26.6.2014, 03:44
велосипеды не всегда "вынашиваются" отдельно от проекта, иногда эволюционно растут вместе с ним

вот и тут - кинуть через сокеты на другой компьютер примитивный тип (интегер, строку и т.п.) и получить такой же примитивный ответ - пара-пяток десятков строк программирования (первый байт - код типа сообщения, для строки - сначала длина и т.д.), синхронность/асинхронность определяется выбранными сокетными функциями/компонентами, если асинхронность дошла до того, что ответы могут прийти в последовательности, не соответствующей вызовам - придется добавить в вызов номер сообщения, который возвращать в ответе, хочется посылать сложные объекты - разобраться со встроенной сериализацией (tstream.writecomponent) и т.д. - если начальные требования просты, то начальный велосипед может быть элементарным, но если хочется сразу датасеты пересылать - лучше взять готовое решение

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)