![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Межпрограммное взаимодействие. Собираю идеи. [D7, WinXP]
Людмила © (2007-03-16 19:19:00)Добрый вечер всем!
Я на пороге нового проекта. Есть необходимость обеспечить обмен большими блоками данных между программами, написанными на разных платформах. Я пишу на Delphi. Компетентные люди, кто имел опыт работы с подобными вещами, подскажите пожалуйста варианты технологий. В данный момент собираю разные идеи и рассматриваю все варианты с их плюсами и минусами. Специфика данных - большие потоки чисел. Передаваться должны быстро. Заранее благодарна.
Людмила (2007-03-20 14:28:00) [21]>> имеется ввиду платформа разработчика - Delphi, С#, C++
> это не платформа.
> Это среда разработки + язык
Цитирую техзадание - там упоминается платформа, хотя явно имеется ввиду среда. Может, это просто вопрос терминов ;) ?
clickmaker (2007-03-20 14:11:00) [22]
> имеется ввиду платформа разработчика - Delphi, С#, C++
это не платформа.
Это средаразработки + язык
Грамотно сформулированный вопрос быстрей приведет к ответу :)
Людмила (2007-03-20 14:08:00) [23]Идеи пришли с разницей в 4 минуты :)
Людмила (2007-03-20 14:07:00) [24]> С - это не платформа, а один из языков программирования...
Платформа - имеется ввиду платформа разработчика - Delphi, С#, C++ и возможно что-то еще.
> По сколько конкретики нет, то есть только мысли...
Именно мысли мне сейчес и нужны :)
> Ты пишешь, что пишешь на Delphi и тебе скажут, что тут лучше писать на > Accambler-переучишся? ;)
Нет, я спрошу, чтоб мне такое использовать, чтобы ко мне могли пристыковаться те, кто пишет на Assembler ;)
> а под обменом данных , ты что подрузомиваешь?
Речь о том, чтоб выбрать этот способ обмена данными - БД, Mapped Files или что другое. То, что удобно при передаче больших объемов цифровых сигналов между приложениями, которые эти сигналы отрисовывают, обсчитывают и т.п.
> и ещё, без внутренних буферов в этом случае не обойтись, вообще
Похоже :(. Просто хотелось эти буферы как-нибудь унифицировать. Поскольку структура данных-то у всех приложений будет одинаковая. Типа, предъявить всем некоторый стандарт.
> Что, заказчик сам не в курсе, чего он хочет?
Заказчик не в курсе, кто участвует в проекте и на каких языках пишет. Отсюда требование - чтоб все общались независимо от платформы разработчика.
P.S. Интересно, а почему никто не предлагает COM?
Romkin (2007-03-20 14:04:00) [25]Чем СОМ плохо? Универсально.
clickmaker (2007-03-20 12:24:00) [26]
> Возможность стыковки с разными платформами - это требование,
> и оно видимо принципиально не уточняется
весьма расплывчатое требование. Что, заказчик сам не в курсе, чего он хочет? Платформа - если это ОС (Windows - Unix etc) - в этом случае сокеты - пожалуй, единственное приемлимое решение.
> Для небольших порций данных - пробовали, нормально. Но что
> будет, если сразу те же 30 метров передать?
музычку и прочее из сети качаешь? Если канал выделенный (типа ADSL), то хоть 3, хоть 30 метров - особо не почувствуешь. А это все сокеты.
Dust (2007-03-20 00:25:00) [27]лучшие средства IPC предоставляет MSDN.
и не только сокеты MMF и окна, но так же Pipe's, Named Pipe's, Mail Slot's, etc
и ещё, без внутренних буферов в этом случае не обойтись, вообще
zdm (2007-03-19 21:11:00) [28]
> Людмила (16.03.07 19:19)
Ты пишешь, что пишешь на Delphi и тебе скажут, что тут лучше писать на Accambler-переучишся? ;)
а под обменом данных , ты что подрузомиваешь? если БД, то и пиши как писала, а если Edit чужого запущенного окна словить, то API-FindWindow
zdm (2007-03-19 21:05:00) [29]IMHO, тока камни сразу не кидайте. По сколько конкретики нет, то есть только мысли...
. Большие перемещающиеся блоки подразуамевают, в основном нагрузку на CPU-Cach_Lavel2_Memory и по этому , нагружать только сервак, конечно правильно, но лучше уже (с подрузомиванием мощности современных компов) рассредоточить расчет математеки на клиентские машины, а серваку пусть достанутся только запросы и процедуры.
Belorus (2007-03-19 18:44:00) [30]> > было бы интересно узнать, что подразумевается под разными
> платформами
> Как минимум C
С - это не платформа, а один из языков программирования...
Людмила (2007-03-19 18:08:00) [31]> было бы интересно узнать, что подразумевается под разными платформами
Как минимум C, и наверняка что-то еще. Конкретики нет. Возможность стыковки с разными платформами - это требование, и оно видимо принципиально не уточняется.
> Memory Mapping
Самый приятный вариант в плане скорости. Но в чистом виде - недостаточный. Каждое из приложений будет лезть в разделяемую память и побайтово считывать мегабайты данных, а потом перегонять их в какой-нибудь внутренний формат. Т.е. каждое приложение вынуждено писать конвертер "разделяемая память - внутренной формат". Хочется как-то этого избежать. Что-нить универсальное выдумать.
> БД
Лучше, потому что там данные уже будут структурированными, да и отслеживать транзакции будет легче. Проблема - скорость. Вот как запросит какое-нибудь приложение 30 мегабайт, и чтоб моментально. Надо пробовать каждую конкретную СУБД. Пробовали 3 года назад Oracle 8 - было медленно, отказались. Да и проблемы с лицензированием и поставкой.
> сокеты
Для небольших порций данных - пробовали, нормально. Но что будет, если сразу те же 30 метров передать? Да и необходимость перекачивать данные из сокетов в какой-нибудь внутрений формат остается. В этом случае разделяемая память лучше.
P.S. Данные - цифровые сигналы разного характера, разного и большого объема, в разных условиях и т.п. В общем, не очень структурированные, но и не один сплошной поток.
clickmaker (2007-03-18 12:23:00) [32]> [0] Людмила (16.03.07 19:19)
если ключевой момент именно "между программами, написанными на разных платформах", то tcp/ip, сокеты. А какие еще варианты?
Loginov Dmitry (2007-03-17 21:25:00) [33]Не слышал здесь упоминание о наладонниках. Что касается термина "разные платформы" - как-то здесь туманно все.
Desdechado (2007-03-17 21:12:00) [34]> Memory Mapping
мдя, а как его на наладоннике сделать?
Loginov Dmitry (2007-03-17 21:04:00) [35]Memory Mapping
Все остальное от лукавого :)
Desdechado (2007-03-17 21:02:00) [36]MsGuns © (17.03.07 20:38) [4]
Вряд ли подойдет, если это "потоки" и "обрабатываться должно быстро". Хотя конкретики нет, все может быть.
MsGuns (2007-03-17 20:38:00) [37]БД
Германн (2007-03-17 02:21:00) [38]> Людмила (16.03.07 19:19)
>
> Добрый вечер всем!
> Я на пороге нового проекта. Есть необходимость обеспечить
> обмен большими блоками данных между программами, написанными
> на разных платформах.
TCP/IP - "рулёз форева"!
Virgo_Style (2007-03-16 23:14:00) [39]было бы интересно узнать, что подразумевается под разными платформами, учитывая, что
> Я пишу на Delphi.
Belorus (2007-03-16 19:53:00) [40]Написано заумным языком и слишком мутно.... Напишите попроще... Больше конктретики....
Разводить палемику о неизвестных платформах, неизвестных задачах и.т.д это в ПРОЧЕЕ.