Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Межпрограммное взаимодействие. Собираю идеи. [D7, WinXP]


Страницы:   1 2

Людмила ©   (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]

Написано заумным языком  и слишком мутно.... Напишите попроще... Больше конктретики....

Разводить палемику о неизвестных платформах, неизвестных задачах и.т.д это в ПРОЧЕЕ.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо