RXL
|
|
« : 24-01-2007 17:27 » |
|
Ситуация примерно такая.
Есть у нас на работе стороннее ПО: сервер, работающий с базой и обеспечивающий логику, и клиенты, работающие с сервером через DCOM. Для модификации клиентов предусмотрена возможность подмены диалогов через специальную dll. Исходные тексты dll имеются (проект для VB6) и мы пересобираем библиотеку при каждом апгрейде этого ПО.
Есть задача доработать один из диалогов, но существующие интерфейсы ПО не имеют требуемого функционала - его нужно дописать. Я могу добавить прямую работу с базой и это было бы простейшим решением, но это не хорошо по двум причинам: необходимо вставлять в программу логин/пароли к базе и повышается нагрузка на саму базу (увеличивается число сессий). Кроме того, получается разносортица: часть через DCOM, а часть напрямую - не красиво. По этому есть идея добавить свои DCOM-компоненты на сервер и соотв. им затычки на машины клиентов.
Как считаете, я правильно выбрал?
Главная проблема во мне - я ни разу не писал COM компоненты. Работать чуть-чуть пробовал, но было это очень давно - экспериментировал с DirectX. Сейчас пробовал работать с существующими компонентами в VB - оказалось намного проще, чем в VC. Попробовал подковаться и заглянул на RSDN, но статей для начинающих я там не увидел. Кроме того, там описываются внутрипроцессовые компоненты, а про удаленные нислова. Мне нужно прежде всего понять, как это работает. Что нужно, а что не обязательно для написания.
Что порекомендуете почитать?
Лучше бумажный вариант на русском. Не надо советовать все подряд - напишите про то, что сами читали и книга понравилась.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #1 : 27-01-2007 14:42 » |
|
Я так понимаю, что DCOM никто не изучал, а узнал "свыше"? Или никто не писал своих компонент?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #2 : 29-01-2007 08:19 » |
|
Третий раз забросил старик невод... (c) АСП.
Таки никто?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Igel
|
|
« Ответ #3 : 30-01-2007 15:10 » |
|
Привет! По большому счету ничего сложного, только я в Дельфе делал. Да и сейчас делаю. Я вижу ситуацию так: Есть сервер DCOM. Есть клиент с "плагинами". Есть проблема, для решения которой не хватает функционала DCOM -сервера. Решение 1 - ты озвучил - это самому с базой. Решение 2 - Сделать еще один DCOM-сервер, с которым будет работать "плагин" - правильно понял? Решение 3 - Создать ДРУГОЙ DCOM сервер, который бы аггрегировал существующий и дополнял своим функционалом. Решение 4 - Похоже на 3-е. Только не уверен, что такое можно сделать. Это сервер - контейнер. Какой у него запрашивают, такой выдает. П.С. Решение 3 можно решить разными способами. Правда озвучить-то получилось, а вот как реализовать - есть ньюансы. П.П.С. Если Дельфийские описания тебе подойдут могу посоветовать.
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
RXL
|
|
« Ответ #4 : 30-01-2007 17:44 » |
|
Igel, я еще с Builder5 работаю, так что твои советы будут кстати. Варианты 3 и 4 не подойдут - там порядка пол сотни интерфейсов! Сделать такую модификацию для билинговой системы я не возьмусь - ошибка может обернуться немалым гиморром. Задача не изменить существующие COM, а дополнить. По этому предпочтительнее вариант 2. За неделю назрела еще возможность его применения - для сопряжения с 1С:Склад и 1С:Бухгалтерия. Я посмотрел имеющиеся возможности Builder-а по созданию COM-dll, но без теории я пока многого не понял. Потому и прошу посоветовать чтиво.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Igel
|
|
« Ответ #5 : 31-01-2007 13:59 » |
|
RXL, Я изучаю по Дейл Роджерс "Основы СОМ". Там тем паче на Сях примеры, но простые - я понял Там-же есть еще и про DCOM одна глава. Варианты 3 и 4 я не возьмусь оценивать, но возможно и не нужно всех перекрывать, а какой-нибудь один, хотя все зависит от сервера. В варианте 2 будет к существующему серверу еще один, возникнет вопрос одновременной работы с БД или можно новому серверу работать с существующим, это уже твоя задача. Своими словами по теории пожалуй трудно будет объяснить. Вот как сделать в Дельфе - примерно могу объяснить.
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
RXL
|
|
« Ответ #6 : 31-01-2007 17:27 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Igel
|
|
« Ответ #7 : 01-02-2007 01:42 » |
|
А ничего забавного, я сам удивляюсь, почему никто ничего не сказал - в делах все! Самое интересное что я не могу большие книжки на компе читать, поэтому распечатывал, подшивал и уже на диване читал.
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
nop
Гость
|
|
« Ответ #8 : 01-02-2007 03:50 » |
|
... Мне нужно прежде всего понять, как это работает. Что нужно, а что не обязательно для написания. Что порекомендуете почитать?
Лучше бумажный вариант на русском. Не надо советовать все подряд - напишите про то, что сами читали и книга понравилась.
Из почитать(все можно нагуглить по названиям): >dir * COM.DCOM Security - FAQ.pdf Essential COM (Дональд Бокс).chm Fingerprinting through rpc.pdf Inside ATL (G. Shepherd).chm Inside COM (Дейл Роджерсон ).pdf Insider COM plus Base Services.chm Introduction to DCOM(William Rubin, Marshall Brain - 1998).pdf Mastering COM and COM+(A.Rofail, Y.Shohoud).pdf MS DCOM Architecture.pdf The COM Specification(MS 1995) .zip Последние две книжки про DCOM ооочень старые, но познавательные. В принципе, можно не читать. +MSDN. По существу: Использовать альтернативы не катит ? NET Remouting например... Или тонкий клиент в виде браузера и вся логика на сервере...
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #9 : 01-02-2007 07:14 » |
|
nop, MSDN - это не учебник, а справочник. Времени на обучение по справочнику у меня нет. Igel, я о том же написал На компе все глаза сломаешь читать такие объемы. В общем, "Основы СОМ" я кратко поглядел - вполне хорошо написано. Буду искать бумажный вариант. Интересно, такой в природе существует - ведь издание древнее? Всем спасибо за советы!
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Igel
|
|
« Ответ #10 : 01-02-2007 15:26 » |
|
RXL, Проще распечатать, если у тебя PDF вариант. Я так и сделал. А статей на тему, мой первый СОМ -сервер - море. Можно сразу сделать, а потом внедряться в тонкости. nop, А ссылочки можно? Insider COM plus Base Services.chm Introduction to DCOM(William Rubin, Marshall Brain - 1998).pdf Mastering COM and COM+(A.Rofail, Y.Shohoud).pdf MS DCOM Architecture.pdf The COM Specification(MS 1995) .zip И они на русском?
|
|
|
Записан
|
Ёжики, это не только ценные шкурки...
|
|
|
RXL
|
|
« Ответ #11 : 01-02-2007 19:21 » |
|
Нашел бумажный вариант "Mastering COM and COM+(A.Rofail, Y.Shohoud)" 2000 года издания. Тоже ориентированная на обучение книга. Я доволен Книг вообще по COM очень мало продают. Я в огромном магазине нашел всего три книги. Книгу издания от DiaSoft отбраковал сразу. Я как-то приобрел их JavaScript и долго плевался: тупой перевод, огромное количество опечаток, самая дешевая серая бумага, отвратная верстка и печать. Их книгу о COM как огкрыл - сразу повеяло той же плесенью.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
nop
Гость
|
|
« Ответ #12 : 01-02-2007 21:51 » |
|
nop, А ссылочки можно?
Ссылок не сохранилось На русском только "Essential COM" "Inside COM"
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #13 : 01-02-2007 22:48 » |
|
nop, если что дельное, то можно у нас продублировать - в инете все достаточно быстро меняется, а у нас хоть копия останется. Еслич его пришлешь, то оччень хелатеьные условия: краткое описание, которое потом все будут читать и которое "застрянет" в поисковиках.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
npak
|
|
« Ответ #14 : 02-02-2007 13:09 » |
|
Основы COM - отличная книга для погружения в COM. Необходима для того, чтобы понять, как COM устроен, но совершенно не приспособлена для реальной жизни, в которой COM компоненты разрабатывают с использованием ATL и OLE. Я сначала тоже хотел её порекомендовать, но потом вычитал у тебя, что ты хочешь имеено DCOM и промолчал.
Когда мне нужен был DCOM, то я пользовался Visual Basic'ом, он автоматически делает DCOM OLE сервера из компонентов.
|
|
« Последнее редактирование: 16-12-2007 13:50 от Алексей1153++ »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #15 : 03-02-2007 11:00 » |
|
Понятно. Меня VB не привлекает прежде всего тем, что опыта работы с ним мало. BC++ тоже имет готовые шаблоны и диалоговый инструментарий для создания компонент. Только "с разбега" я там не много понял, т.ч. пока литературкой подковываюсь. В "Mastering COM and COM+" описывается создание для VB и VC++.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
sss
Специалист
Offline
|
|
« Ответ #16 : 26-02-2007 08:35 » |
|
RXL, есть книга "Разработка ASP компонентов". Прикольно. Одни и те же примеры для Delphi, VC, VB. Я когда ее покупал, даже не думал, что там будет столько про COM (COM+)!!! Очень даже не плохо.
|
|
|
Записан
|
while (8==8)
|
|
|
RXL
|
|
« Ответ #17 : 26-02-2007 14:02 » |
|
Спасибо. Книжка у меня есть, но пока руки не доходят - все находится, чем их занять...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|