Конференция "Corba" » Нужно что-то типа OLE, работающее между разными пользователями
 
  • Дмитрий Белькевич (11.05.11 14:33) [0]
    Нужно для взаимодействия сервис <> GUI. Пробовал именованные каналы - неудобно. Т.к. нужны синхронные вызовы процедур и функций (с синхронным возвратом результата) да и форматированные параметры хотелось бы, а не сплошной поток. Что лучше в этом случае использовать?
  • Ega23 © (11.05.11 14:51) [1]

    >  Т.к. нужны синхронные вызовы процедур и функций

    Дык как транспортный протокол организуешь, так оно и будет, нет? И над TCP можно синхронную логику вызовов построить...
  • clickmaker © (11.05.11 14:51) [2]
    DCOM
  • Дмитрий Белькевич (11.05.11 15:30) [3]

    > Дык как транспортный протокол организуешь, так оно и будет,
    >  нет? И над TCP можно синхронную логику вызовов построить.
    > ..


    Это понятно, что транспортом можно всё разрулить, но не хотелось бы стотысячепервый велосипед изобретать.


    > DCOM


    Как он в жизни в настройке? Что-то слышал я, что всё сложно.
  • clickmaker © (11.05.11 15:50) [4]
    > Что-то слышал я, что всё сложно

    с точки зрения использования там как раз все просто.
    Сервис - COM-сервер, Гуй - его клиент. Все сводится к вызову методов. При желании, гуй может быть даже на другом компе
  • oxffff © (11.05.11 15:54) [5]
    Cурово, но все ручками:

    1. Memory Shared Section
       http://msdn.microsoft.com/en-us/library/aa366551(v=vs.85).aspx
    2. Простой Маршалер на базе variant + custom variant.
    3. Dynamic methods поскольку идентификация по ID.
    3. Очередь
    4. +WaitFor...
  • oxffff © (11.05.11 15:55) [6]

    > oxffff ©   (11.05.11 15:54) [5]


    Получается некий аналог remoting.
  • oxffff © (11.05.11 16:04) [7]
    +некий аналог это использование
    RTTI.pas и Tvalue
    +перехват виртуальных вызовов(TVirtualMethodInterceptor).

    То есть на стороне клиента класс у которого методы вызываются привычным способом + просто написаны авто-транслятор в очередь с перехватом вызова.

    А вообще тогда сюда!
    http://blog.barrkel.com/2010/09/virtual-method-interception.html
  • oxffff © (11.05.11 16:14) [8]

    > но не хотелось бы стотысячепервый велосипед изобретать


    Вам бы компонент?
  • Дмитрий Белькевич (11.05.11 18:30) [9]

    > Вам бы компонент?


    Мне бы технологию.

    Посматриваю на SOAP. Не помню только насчет синхронности вызовов и возможности вернуть результат вызова.
  • clickmaker © (11.05.11 19:23) [10]
    > Посматриваю на SOAP

    для взаимодействия сервис - GUI? Они могут быть разнесены по разным доменам?
  • Дмитрий Белькевич (11.05.11 19:33) [11]

    > для взаимодействия сервис - GUI? Они могут быть разнесены
    > по разным доменам?


    Нет.
  • clickmaker © (11.05.11 21:43) [12]
    нет, ну можно, конечно, обмениваться и сериализованными данными в XML, только зачем?
    Если на одной машине, есть гораздо более быстрые и менее ресурсоемкие варианты. Тот же DCOM, пайпы, shared memory
  • Дмитрий Белькевич (11.05.11 21:54) [13]
    DCOM работает сразу после установки системы (Win Server 2000/2003/2008)? Или его нужно всегда дополнительно настраивать?
  • clickmaker © (11.05.11 23:35) [14]
    > DCOM работает сразу после установки системы (Win Server
    > 2000/2003/2008)?

    да
  • Дмитрий Белькевич (12.05.11 10:29) [15]

    > да


    Спасибо, буду разбираться.
 
Конференция "Corba" » Нужно что-то типа OLE, работающее между разными пользователями
Есть новые Нет новых   [119340   +49][b:0][p:0.001]