Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

удаленное подключение к OPC серверу

 Ответить Ответить Страница  <1234>
Автор
Сообщение
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: удаленное подключение к OPC серверу
    Опубликовано: 09 Март 2007 21:19

Приветствую !
Вопрос конечно не в том, что нужнее - метр или килограмм. Связь по сети и технология DCOM - вещи довольно независимые. Но практически, одно плавно переходит в другое, разбираясь с одним неизбежно сталкиваешся с другим.
Хочу вернуться к схеме DCOM связи. Разглядывая Вашу картину можно заметить, что от Клиента к Компоненту просматриваются разные пути. Можно понять так, что эти пути действуют в разное время ? Так, при начальном установлении связи идет вызов функции CoCreateInstance, через OLE32 (OleOut32.dll) и другие нужные функции, в конце-концов получаются необходимые ссылки на интерфейсы компонента. Дальнейший обмен переключается на другой маршрут : через подставной прокси-об'ект, функции RPC и дальше по стеку OSI - туда-сюда по сети. Где-то здесь и засел контроль доступа (Security Provider) ?
Получается, что установление связи происходит вроде-как в обход служб доступа. И потом, какими настройками можно избавиться от препятствий обмену данными ?

Так-ли я понимаю ? Или все изложение надо переправить ?
С уважением, SAN.

 

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Март 2007 06:14

Это не подставной клиент, это proxy заглушка доступ осуществляется через нее и здесь же осуществляется контроль доступа. Смысл изначально остался и был перенесен в COM+ И заключается он в следующем:

Для COM-компонента создается прокси сервер, который содержит информацию местоположении компонента и информацию для маршалинга (сигнатуры интерфейса) в общем все что необходимо для локального вызова (а в COM+ еще и сигнатуры доступа по моему) эта прокси переноситься на хост-клиент компонента и далее вызов осуществляется обычным путем. Заглушка на хосте компонента зарегистрирована и содержится в депозитарии DCOM компонентов. Когда на хост приходит RPC вызов, служба депозитария осуществляет поиск компонента и доступ к нему через его заглушку. По какой то причине этот механизм показался OPC foundation не привлекательным. В связи с чем они разработали свой интерфейс без инсталляции на клиенте прокси. Интерфейс OPC стандартизирован и информация о маршалинге содержится в библиотеках самого клиента, для перечисления  OPC серверов используется либо удаленный реестр (устарело) либо OPCenum энумератор OPC серверов хоста. Поэтому достаточно только указать хост и имя OPC сервера что бы к нему обратиться, но DCOM должен быть запущен.

По настройке сетевого клиента NT пожалуй ничего не смогу посоветовать, дело в том, что клиент был переделан и нормально работать с предыдущими версиями работает если то криво в режиме совместимости. Думаю, что если вы хорошенько поковыряете MSDN то наверняка найдете какой нить материал по теме.

 

Наверх
fakel15 Смотреть выпадающим
Новичок
Новичок


Присоединился: 02 Март 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 26
Свойства публикации Свойства публикации   Ответить, цитируя автора - fakel15 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Март 2007 17:15
Здравствуйте!
Тут в процессе эксплуатаци заметил интересную особенность. Когда я создаю два одинаковых пользователя внутри рабочей группы на разных машинах (т.е. имена и группа у них одна и та же)(спасибо Dismay'ю) все работает без сучка и задоринки. Я могу читать тэги с удаленного сервера и т.д. НО! когда со стороны клиента я регистрируюсь под другм именем и пытаюсь достучаться до сервера, происходит не обращение к текущему (т.е. запущеному), а запуск нового сервера! Пробовал на advantech'овской игрушке (OPC сервер и клиент) там все работает отлично. Под каким бы пользователем на клиенте не заходил, коннектится к серверу и тэги читает на ура....
Отсюда можно сделать вывод: мой OPC сервер кривой? или нет? (на стороне клиента и сервера настроены DCOM компоненты так:
расположение: на данном компе
удостоверение: текущий пользователь))))))
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Март 2007 06:16

Это так было не всегда у Вас видимо 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

который лучше чем стандартный диспетчер задач и позволит отслеживать все сессии по именам. На многие вопросы позволит ответить самостоятельно.

;-) Так же бывают глюки, если иметься запущенный компонент и права на запуск клиент не имеет, он как то уж видимо от безысходности находит уже запущенную копию, попробуйте еще и так…

Наверх
fakel15 Смотреть выпадающим
Новичок
Новичок


Присоединился: 02 Март 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 26
Свойства публикации Свойства публикации   Ответить, цитируя автора - fakel15 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Март 2007 11:46
Идея с ярлыком сработала..:) А вот последняя, про бесправного клиента, не прошла...:( Но все таки это лучше чем ничего! (Благодарю за совет) Но мне не дает покоя одна деталь. ПОЧЕМУ к Advantech'ому OPC серверу можно подключиться удаленно с OPC клиента, запущеного под ЛЮБОЙ учетной записью!!! Придется рыть чужие коды...
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Март 2007 06:15

К вопросу о поведении OPC сервера при изменении настроек в dcomcnfg могу еще добавить следующее. В принципе приложение может не реагировать на изменение настроек, так как возможны варианты реализации:

1. Игнорирующие систему безопасности, тесть реализующие анонимный доступ к компоненту так работают все компоненты под DCOM на Win98 и ниже, ибо для этого DCOM безопасность не реализована в принципе. Например компания GigaByte для своих системных драйверов (chipset) реализовала по DCOM для анонимного доступа систему сбора информации об установленном оборудовании, ИМХО это уже Троян. Естественно если OPC реализовать таким образом он будет работать всегда если запущен DCOM. В этом случае можно пойти еще дальше и построить свой механизм минующий службу вызова удаленных процедур (не механизм, а именно службу) за руки GigaByte никто не держал и они и это сделали.

2. Зашить параметры доступа в компонент и игнорировать настройки реестра, тогда хоть заменяйся параметры доступа будут не выше чем зашиты

3. Правильный когда настройки безопасности поднимаются из реестра.

Так что вопрос о кривости серверов вполне правомерен.

Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Март 2007 13:05
Может, немного не в тему, но чисто из практики общения с готовыми OPC-серверами, гораздо проще подключаться и удаленно, и локально к серверу, который запускается в виде Service (т.е. работает под аккаунтом System). Есть ли в таком подходе какие-то подводные камни?
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Март 2007 06:26

Особых каких то камней тут нет на мой взгляд, есть даже одно неоспоримое преимущество. Дело в том что зачастую при подключении к OPC его еще нужно запустить и вот тут и начинаются основные проблемы. Если OPC выполнен как сервис то при режиме запуска “авто” он при первом обращении уже тепленький и готов к работе. Хотя если намудрить с настройками DCOM можно и в этом случае увидеть вторую копию ;-). Кстати есть простая достаточно возможность запустить любую программу как сервис, фреварного барахла делающего это более чем предостаточно. Сервис от программы отличается только дополнительным интерфейсом для управления собственно и все.

Кстати сервис может быть запущен под любым пользователем, не только SYSTEM

Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Март 2007 06:39
А на что в настройках DCOM нужно обратить внимание, чтобы не запускались копии сервиса при подключении нескольких клиентов?
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Март 2007 06:55
я в общем то все расписал вроде по параметрам запуска, обратить внимание на запускающего пользователя следует, проще всего использовать текущего пользователя и по возможности стараться избегать запускающего и заморочки с автологоном выше по топику
Наверх
 Ответить Ответить Страница  <1234>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz