|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть необходимость создать костыль сервис, работающий на удалённом сервере, который будет предоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC. Хотелось бы использовать COM+, но я ни разу не пользовался этой технологией... Что выбрать, EXE или DLL сервер? Я слышал, что DLL COM+ может автоматически создать отдельный поток для каждого пользователя, и изолировать их друг от друга, но можно ли в таком случае пользоваться разделяемыми между потоками данными, такими как таблица блокировок или кэш? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 18:18 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXХотелось бы использовать COM+, но я ни разу не пользовался этой технологией... имхо COM+ - мертворожденная технология, я бы не стал к ней прикручивать новый софт COM+ не дает никаких преимуществ, по сравнению с голым RPC, весь маршалинг все равное придется делать руками (IDL и прочие радости), но тут, конечно, зависит от того, на чем собственно писать собираетесь, какие библиотеки использовать. Опять же, имхо, если жесткий требований не стоит обеспечить COM совместимость, то я бы писал обычную службу, либо с собственным протоколом и логикой, либо что из современных популярных а ля SOAP. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 18:35 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXЕсть необходимость создать сервис, работающий на удалённом сервере, который будет редоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC. Непонятно как связан этот набор разнородных утверждений. Если уже есть спецификация некоторого API, то выбора "как его реализовать" не остаётся: его надо реализовывать описанным способом. Или вопрос в том как организовать взаимодействие между реализацией API и подлегающим MS SQL? Так это не в этот форум, поскольку опять же надо использовать строго фиксированное API, представляемое MS SQL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 20:21 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
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 мне вряд-ли подойдут... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 01:32 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXВопрос о том, как именно транслировать вызовы Btrieve в SQL запросы не стоит, вопрос в том, как организовать связь сервера и клиентов при помощи COM+. Какого сервера с какими клиентами? Насколько я помню, клиентское API BTrieve это одна функция в одной DLL. Никакого СОМ+ там и близко нет. Вы хотите добавить ещё одну прокладку, которая увеличит шансы на таймаут и пустую таблицу?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 01:43 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXНужно реализовать API Btrieve, чтобы очень старый софт мог работать через него с базой данных MS SQL.Сам Btrieve - система управления записями: надёжные обновления, вставки, блокировки и всё такое. Поверх этого Pervasive делал упрощённый SQL, но, убей меня бог, если я понимаю, как можно провернуть фарш назад и предоставить низкоуровневый доступ к записям через высокоуровневый SQL ... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:42 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКакого сервера с какими клиентами? Очевидно, между сервером где устанвлен MS SQL и клиентскими компьютерами. Да это прокладка, но она необходима для сетевого взаимодействия серверной части (которая обрабатывает блокировки и содержит кэш таблиц), и клиентской - той самой DLL с одной функцией. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:44 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Basil A. SidorovСам Btrieve - система управления записями: надёжные обновления, вставки, блокировки и всё такое. Поверх этого Pervasive делал упрощённый SQL, но, убей меня бог, если я понимаю, как можно провернуть фарш назад и предоставить низкоуровневый доступ к записям через высокоуровневый SQL ... Можно, например, читать таблицу из базы данных большими кусками в память, и уже с этими данными работать в рамках Btrieve API. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:50 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXМожно, например, читать таблицу из базы данных большими кусками в память, и уже с этими данными работать в рамках Btrieve API."МожноМашкуЗаЛяжку ..." Зачем создавать геморрой там, где вполне гармонично смотрится какой-нибудь ETL/интеграционное приложение? Уровень сложности - вполне сравнимый, но качество результата - принципиально разное. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 12:57 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, нет, данные должны браться из таблицы SQL с помощью API Btrieve, и никак иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 13:42 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Однако мне сейчас нужно написать многопоточный COM+ сервер с использованием ATL, и с возможностью использования переменных разделяемых между потоками. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 13:46 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatX, сдается мне, ты путаешь COM+ (MS TS) с DCOM (Distributed COM). Если нужны основательные знания по COM/DCOM, рекомендую почитать Дейла Роджерсона - " Inside COM ". Нечего лучше не найдешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 13:58 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXона необходима для сетевого взаимодействия серверной части (которая обрабатывает блокировки и содержит кэш таблиц), и клиентской - той самой DLL с одной функцией. Нет, с этим всем справится и MS SQL непосредственно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 14:11 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXЗдравствуйте. Есть необходимость создать костыль сервис, работающий на удалённом сервере, который будет предоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC. Хотелось бы использовать COM+, но я ни разу не пользовался этой технологией... Что выбрать, EXE или DLL сервер? Я слышал, что DLL COM+ может автоматически создать отдельный поток для каждого пользователя, и изолировать их друг от друга, но можно ли в таком случае пользоваться разделяемыми между потоками данными, такими как таблица блокировок или кэш? А вы уверены, что вам удастся легко с налету оптимизировать то, что написано в одбц? Разделяемые потоки для юзеров то еще х.с.н., а что эти потоки будут делат с данными? т.е. вы хотите заменить механизм блокировок SQL Server своим велосипедом? пишите тут, что получится, удачи и настроения (ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 15:13 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
если это надо для конкретного приложения сделать то я бы просто сделал репликацию из ms sql базы данных в btrieve таблички у pervasive были средства организации подобного взаимодействия то что вы предлагаете сделать можно, но это сложно и долго ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2018, 18:07 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
rdb_dev...рекомендую почитать Дейла Роджерсона - " Inside COM ". Нечего лучше не найдешь. +100500 (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2018, 12:17 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
RedCatXЗдравствуйте. Есть необходимость создать костыль сервис, работающий на удалённом сервере, который будет предоставлять довольно древнее NoSQL API к современной MS SQL базе данных. Именно сервис, потому что необходимо реализовать отличную от SQL схему блокировок строк таблицы, и кэширование, обеспечивающее более высокую производительность последовательного чтения записей, чем это даёт ODBC. Хотелось бы использовать COM+, но я ни разу не пользовался этой технологией... Что выбрать, EXE или DLL сервер? Я слышал, что DLL COM+ может автоматически создать отдельный поток для каждого пользователя, и изолировать их друг от друга, но можно ли в таком случае пользоваться разделяемыми между потоками данными, такими как таблица блокировок или кэш? Вряд ли сейчас вообще надо связываться с COM. Попытайся для начала обойтись без него вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2018, 10:59 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Кто-то стряхнул пыль с книги образца 2000x. В наше время вопросы интеграции нужно решать так чтобы COM+ вообще не звучал в ТЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 01:01 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
Почему СОМ+, ну явно ведь речь о DCOM. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 01:18 |
|
Как написать свой COM+ сервер?
|
|||
---|---|---|---|
#18+
rdb_devRedCatX, сдается мне, ты путаешь COM+ (MS TS) с DCOM (Distributed COM). Если нужны основательные знания по COM/DCOM, рекомендую почитать Дейла Роджерсона - " Inside COM ". Нечего лучше не найдешь. Некогда тратить впустую время на какие-то книжки. Чем больше читаешь, тем глупее становишься (ц, Мао Цзэ Дун) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 12:08 |
|
|
start [/forum/topic.php?fid=57&msg=39737247&tid=2017714]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 186ms |
0 / 0 |