удаленное подключение к OPC серверу |
Ответить | Страница <1234> |
Автор | |
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
Опубликовано: 09 Март 2007 21:19 |
Приветствую ! Так-ли я понимаю ? Или все изложение надо переправить ?
|
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Это не подставной клиент, это proxy заглушка доступ осуществляется через нее и здесь же осуществляется контроль доступа. Смысл изначально остался и был перенесен в COM+ И заключается он в следующем: Для COM-компонента создается прокси сервер, который содержит информацию местоположении компонента и информацию для маршалинга (сигнатуры интерфейса) в общем все что необходимо для локального вызова (а в COM+ еще и сигнатуры доступа по моему) эта прокси переноситься на хост-клиент компонента и далее вызов осуществляется обычным путем. Заглушка на хосте компонента зарегистрирована и содержится в депозитарии DCOM компонентов. Когда на хост приходит RPC вызов, служба депозитария осуществляет поиск компонента и доступ к нему через его заглушку. По какой то причине этот механизм показался OPC foundation не привлекательным. В связи с чем они разработали свой интерфейс без инсталляции на клиенте прокси. Интерфейс OPC стандартизирован и информация о маршалинге содержится в библиотеках самого клиента, для перечисления OPC серверов используется либо удаленный реестр (устарело) либо OPCenum энумератор OPC серверов хоста. Поэтому достаточно только указать хост и имя OPC сервера что бы к нему обратиться, но DCOM должен быть запущен. По настройке сетевого клиента NT пожалуй ничего не смогу посоветовать, дело в том, что клиент был переделан и нормально работать с предыдущими версиями работает если то криво в режиме совместимости. Думаю, что если вы хорошенько поковыряете MSDN то наверняка найдете какой нить материал по теме.
|
|
Новичок Присоединился: 02 Март 2007 Категория: Russian Federation Online Status: Offline Публикации: 26 |
|
Здравствуйте!
Тут в процессе эксплуатаци заметил интересную особенность. Когда я создаю два одинаковых пользователя внутри рабочей группы на разных машинах (т.е. имена и группа у них одна и та же)(спасибо Dismay'ю) все работает без сучка и задоринки. Я могу читать тэги с удаленного сервера и т.д. НО! когда со стороны клиента я регистрируюсь под другм именем и пытаюсь достучаться до сервера, происходит не обращение к текущему (т.е. запущеному), а запуск нового сервера! Пробовал на advantech'овской игрушке (OPC сервер и клиент) там все работает отлично. Под каким бы пользователем на клиенте не заходил, коннектится к серверу и тэги читает на ура.... Отсюда можно сделать вывод: мой OPC сервер кривой? или нет? (на стороне клиента и сервера настроены DCOM компоненты так: расположение: на данном компе удостоверение: текущий пользователь)))))) |
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Это так было не всегда у Вас видимо WinXP ИМХО они уже слишком заморочились с безопасностью. Мне суть даже их текущей концепции не ясна, смысл в том что видимо они при любой неоднозначности стремятся разделить клиентов по сессиям, весьма спорно и для нашего случая неприемлемо за частую, но это так. Если требуется рулить пользователями на локальных клиентах рекомендую использовать ярлык для запуска клиента и его функцию запуск от имени. Благо что почти во всех OPC’вых СКАДА’х система безопасности не завязана на виндовую, да и вообще зачастую имеет достаточно примитивный характер. Скоро если только OPC не переедет на COM+ где все достаточно прозрачно настраивается будет все сложнее поддерживать эту структуру если конечно не пренебрегать безопасностью (мануалы по настройки OPC извините меня за скудность речи но это полная лажа блин “ВСЕ” в админы, руби Баха даешь металл). Еще найдите Ваш OPC сервер в списке DCOM компонентов и убедитесь, что он использует умолчальные настройки запуск под текущим пользователем вполне возможно, что он имеет индивидуальные настройки. Так же настоятельно рекомендую посетить сайт покинувшего наши нестройные ряды непоклонников Билла, господина Русиновича http://www.microsoft.com/technet/sysinternals/default.mspx и дернуть там Process Explorer http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx который лучше чем стандартный диспетчер задач и позволит отслеживать все сессии по именам. На многие вопросы позволит ответить самостоятельно. ;-) Так же бывают глюки, если иметься запущенный компонент и права на запуск клиент не имеет, он как то уж видимо от безысходности находит уже запущенную копию, попробуйте еще и так… |
|
Новичок Присоединился: 02 Март 2007 Категория: Russian Federation Online Status: Offline Публикации: 26 |
|
Идея с ярлыком сработала..:) А вот последняя, про бесправного клиента, не прошла...:( Но все таки это лучше чем ничего! (Благодарю за совет) Но мне не дает покоя одна деталь. ПОЧЕМУ к Advantech'ому OPC серверу можно подключиться удаленно с OPC клиента, запущеного под ЛЮБОЙ учетной записью!!! Придется рыть чужие коды...
|
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
К вопросу о поведении OPC сервера при изменении настроек в dcomcnfg могу еще добавить следующее. В принципе приложение может не реагировать на изменение настроек, так как возможны варианты реализации: 1. Игнорирующие систему безопасности, тесть реализующие анонимный доступ к компоненту так работают все компоненты под DCOM на Win98 и ниже, ибо для этого DCOM безопасность не реализована в принципе. Например компания GigaByte для своих системных драйверов (chipset) реализовала по DCOM для анонимного доступа систему сбора информации об установленном оборудовании, ИМХО это уже Троян. Естественно если OPC реализовать таким образом он будет работать всегда если запущен DCOM. В этом случае можно пойти еще дальше и построить свой механизм минующий службу вызова удаленных процедур (не механизм, а именно службу) за руки GigaByte никто не держал и они и это сделали. 2. Зашить параметры доступа в компонент и игнорировать настройки реестра, тогда хоть заменяйся параметры доступа будут не выше чем зашиты 3. Правильный когда настройки безопасности поднимаются из реестра. Так что вопрос о кривости серверов вполне правомерен. |
|
Действительный член Присоединился: 27 Июль 2006 Online Status: Offline Публикации: 304 |
|
Может, немного не в тему, но чисто из практики общения с готовыми OPC-серверами, гораздо проще подключаться и удаленно, и локально к серверу, который запускается в виде Service (т.е. работает под аккаунтом System). Есть ли в таком подходе какие-то подводные камни?
|
|
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как. |
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Особых каких то камней тут нет на мой взгляд, есть даже одно неоспоримое преимущество. Дело в том что зачастую при подключении к OPC его еще нужно запустить и вот тут и начинаются основные проблемы. Если OPC выполнен как сервис то при режиме запуска “авто” он при первом обращении уже тепленький и готов к работе. Хотя если намудрить с настройками DCOM можно и в этом случае увидеть вторую копию ;-). Кстати есть простая достаточно возможность запустить любую программу как сервис, фреварного барахла делающего это более чем предостаточно. Сервис от программы отличается только дополнительным интерфейсом для управления собственно и все. Кстати сервис может быть запущен под любым пользователем, не только SYSTEM |
|
Действительный член Присоединился: 27 Июль 2006 Online Status: Offline Публикации: 304 |
|
А на что в настройках DCOM нужно обратить внимание, чтобы не запускались копии сервиса при подключении нескольких клиентов?
|
|
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как. |
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
я в общем то все расписал вроде по параметрам запуска, обратить внимание на запускающего пользователя следует, проще всего использовать текущего пользователя и по возможности стараться избегать запускающего и заморочки с автологоном выше по топику
|
|
Ответить | Страница <1234> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |