Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как написать свой COM+ сервер? / 20 сообщений из 20, страница 1 из 1
15.11.2018, 18:18
    #39733744
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Здравствуйте.

Есть необходимость создать костыль сервис, работающий на удалённом сервере, который будет предоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC.
Хотелось бы использовать COM+, но я ни разу не пользовался этой технологией... Что выбрать, EXE или DLL сервер? Я слышал, что DLL COM+ может автоматически создать отдельный поток для каждого пользователя, и изолировать их друг от друга, но можно ли в таком случае пользоваться разделяемыми между потоками данными, такими как таблица блокировок или кэш?
...
Рейтинг: 0 / 0
15.11.2018, 18:35
    #39733755
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXХотелось бы использовать COM+, но я ни разу не пользовался этой технологией...
имхо COM+ - мертворожденная технология, я бы не стал к ней прикручивать новый софт
COM+ не дает никаких преимуществ, по сравнению с голым RPC, весь маршалинг все равное придется делать руками (IDL и прочие радости), но тут, конечно, зависит от того, на чем собственно писать собираетесь, какие библиотеки использовать.

Опять же, имхо, если жесткий требований не стоит обеспечить COM совместимость, то я бы писал обычную службу, либо с собственным протоколом и логикой, либо что из современных популярных а ля SOAP.
...
Рейтинг: 0 / 0
15.11.2018, 20:21
    #39733798
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXЕсть необходимость создать сервис, работающий на удалённом сервере, который будет
редоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис,
потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и
кэширование, обеспечивающее более высокую производительность последовательного чтения
записей, чем это даёт ODBC.

Непонятно как связан этот набор разнородных утверждений.

Если уже есть спецификация некоторого API, то выбора "как его реализовать" не остаётся:
его надо реализовывать описанным способом.

Или вопрос в том как организовать взаимодействие между реализацией API и подлегающим MS
SQL? Так это не в этот форум, поскольку опять же надо использовать строго фиксированное
API, представляемое MS SQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.11.2018, 01:32
    #39733846
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Dimitry SibiryakovЕсли уже есть спецификация некоторого API, то выбора "как его реализовать" не остаётся:
его надо реализовывать описанным способом.

Или вопрос в том как организовать взаимодействие между реализацией API и подлегающим MS
SQL? Так это не в этот форум, поскольку опять же надо использовать строго фиксированное
API, представляемое MS SQL.


Нужно реализовать API Btrieve, чтобы очень старый софт мог работать через него с базой данных MS SQL. Софт обладает очень неприятной особенностью: если последовательное чтение записей (строк таблицы) происходит недостаточно быстро, то программа молча прекращает чтение, и отображает пустую таблицу - как будто ничего не было прочитано. Вопрос о том, как именно транслировать вызовы Btrieve в SQL запросы не стоит, вопрос в том, как организовать связь сервера и клиентов при помощи COM+.

Cerebrumимхо COM+ - мертворожденная технология, я бы не стал к ней прикручивать новый софт
COM+ не дает никаких преимуществ, по сравнению с голым RPC, весь маршалинг все равное придется делать руками (IDL и прочие радости), но тут, конечно, зависит от того, на чем собственно писать собираетесь, какие библиотеки использовать.

Опять же, имхо, если жесткий требований не стоит обеспечить COM совместимость, то я бы писал обычную службу, либо с собственным протоколом и логикой, либо что из современных популярных а ля SOAP.
Ну так COM+ вроде бы из коробки обеспечивает многопоточность, что довольно неплохо. Кроме того, мне в первую очередь важна скорость, скорость, и ещё раз скорость, так что текстовые протоколы основанные на XML мне вряд-ли подойдут...
...
Рейтинг: 0 / 0
16.11.2018, 01:43
    #39733847
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXВопрос о том, как именно транслировать вызовы Btrieve в SQL запросы не стоит, вопрос в
том, как организовать связь сервера и клиентов при помощи COM+.

Какого сервера с какими клиентами? Насколько я помню, клиентское API BTrieve это одна
функция в одной DLL. Никакого СОМ+ там и близко нет. Вы хотите добавить ещё одну
прокладку, которая увеличит шансы на таймаут и пустую таблицу?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.11.2018, 12:42
    #39734031
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXНужно реализовать API Btrieve, чтобы очень старый софт мог работать через него с базой данных MS SQL.Сам Btrieve - система управления записями: надёжные обновления, вставки, блокировки и всё такое.
Поверх этого Pervasive делал упрощённый SQL, но, убей меня бог, если я понимаю, как можно провернуть фарш назад и предоставить низкоуровневый доступ к записям через высокоуровневый SQL ...
...
Рейтинг: 0 / 0
16.11.2018, 12:44
    #39734035
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Dimitry SibiryakovКакого сервера с какими клиентами?
Очевидно, между сервером где устанвлен MS SQL и клиентскими компьютерами. Да это прокладка, но она необходима для сетевого взаимодействия серверной части (которая обрабатывает блокировки и содержит кэш таблиц), и клиентской - той самой DLL с одной функцией.
...
Рейтинг: 0 / 0
16.11.2018, 12:50
    #39734045
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Basil A. SidorovСам Btrieve - система управления записями: надёжные обновления, вставки, блокировки и всё такое.
Поверх этого Pervasive делал упрощённый SQL, но, убей меня бог, если я понимаю, как можно провернуть фарш назад и предоставить низкоуровневый доступ к записям через высокоуровневый SQL ...
Можно, например, читать таблицу из базы данных большими кусками в память, и уже с этими данными работать в рамках Btrieve API.
...
Рейтинг: 0 / 0
16.11.2018, 12:57
    #39734061
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXМожно, например, читать таблицу из базы данных большими кусками в память, и уже с этими данными работать в рамках Btrieve API."МожноМашкуЗаЛяжку ..."
Зачем создавать геморрой там, где вполне гармонично смотрится какой-нибудь ETL/интеграционное приложение?
Уровень сложности - вполне сравнимый, но качество результата - принципиально разное.
...
Рейтинг: 0 / 0
16.11.2018, 13:42
    #39734092
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Basil A. Sidorov, нет, данные должны браться из таблицы SQL с помощью API Btrieve, и никак иначе.
...
Рейтинг: 0 / 0
16.11.2018, 13:46
    #39734094
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Однако мне сейчас нужно написать многопоточный COM+ сервер с использованием ATL, и с возможностью использования переменных разделяемых между потоками.
...
Рейтинг: 0 / 0
16.11.2018, 13:58
    #39734102
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatX, сдается мне, ты путаешь COM+ (MS TS) с DCOM (Distributed COM). Если нужны основательные знания по COM/DCOM, рекомендую почитать Дейла Роджерсона - " Inside COM ". Нечего лучше не найдешь.
...
Рейтинг: 0 / 0
16.11.2018, 14:11
    #39734115
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXона необходима для сетевого взаимодействия серверной части (которая обрабатывает
блокировки и содержит кэш таблиц), и клиентской - той самой DLL с одной функцией.

Нет, с этим всем справится и MS SQL непосредственно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.11.2018, 15:13
    #39734181
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXЗдравствуйте.

Есть необходимость создать костыль сервис, работающий на удалённом сервере, который будет предоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC.
Хотелось бы использовать COM+, но я ни разу не пользовался этой технологией... Что выбрать, EXE или DLL сервер? Я слышал, что DLL COM+ может автоматически создать отдельный поток для каждого пользователя, и изолировать их друг от друга, но можно ли в таком случае пользоваться разделяемыми между потоками данными, такими как таблица блокировок или кэш?

А вы уверены, что вам удастся легко с налету оптимизировать то, что написано в одбц?
Разделяемые потоки для юзеров то еще х.с.н., а что эти потоки будут делат с данными? т.е. вы хотите заменить механизм блокировок SQL Server своим велосипедом? пишите тут, что получится, удачи и настроения (ц)
...
Рейтинг: 0 / 0
16.11.2018, 18:07
    #39734300
tehKosh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
если это надо для конкретного приложения сделать
то я бы просто сделал репликацию из ms sql базы данных в btrieve таблички
у pervasive были средства организации подобного взаимодействия
то что вы предлагаете сделать можно, но это сложно и долго
...
Рейтинг: 0 / 0
19.11.2018, 12:17
    #39735083
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
rdb_dev...рекомендую почитать Дейла Роджерсона - " Inside COM ". Нечего лучше не найдешь.


+100500

(круглый)
...
Рейтинг: 0 / 0
20.11.2018, 10:59
    #39735477
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
RedCatXЗдравствуйте.

Есть необходимость создать костыль сервис, работающий на удалённом сервере, который будет предоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC.
Хотелось бы использовать COM+, но я ни разу не пользовался этой технологией... Что выбрать, EXE или DLL сервер? Я слышал, что DLL COM+ может автоматически создать отдельный поток для каждого пользователя, и изолировать их друг от друга, но можно ли в таком случае пользоваться разделяемыми между потоками данными, такими как таблица блокировок или кэш?

Вряд ли сейчас вообще надо связываться с COM.
Попытайся для начала обойтись без него вообще.
...
Рейтинг: 0 / 0
23.11.2018, 01:01
    #39737247
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Кто-то стряхнул пыль с книги образца 2000x. В наше время вопросы интеграции нужно решать так чтобы COM+ вообще не звучал в ТЗ.
...
Рейтинг: 0 / 0
23.11.2018, 01:18
    #39737254
Фэйтл Эра
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
Почему СОМ+, ну явно ведь речь о DCOM.
...
Рейтинг: 0 / 0
26.11.2018, 12:08
    #39738459
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать свой COM+ сервер?
rdb_devRedCatX, сдается мне, ты путаешь COM+ (MS TS) с DCOM (Distributed COM). Если нужны основательные знания по COM/DCOM, рекомендую почитать Дейла Роджерсона - " Inside COM ". Нечего лучше не найдешь.

Некогда тратить впустую время на какие-то книжки.
Чем больше читаешь, тем глупее становишься (ц, Мао Цзэ Дун)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как написать свой COM+ сервер? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]