Приветик.
Вот смотрел на досуге примеры из Delphi...
Наткнулся на пример ...\Demos\Midas\Login и мне понравилась идея обмена информацией между компами, не задумавывась о протоколах и т.д. Однако данная технология мне обсолютно не известна. Из примера понял, что послать серверу можно что игодно — но вот как обратно? Подскажите, как реализовать вызов какой-нибудь процедурки в клиенте.
Здравствуйте Shuric, Вы писали:
S>Приветик. S>Вот смотрел на досуге примеры из Delphi... S>Наткнулся на пример ...\Demos\Midas\Login и мне понравилась идея обмена информацией между компами, не задумавывась о протоколах и т.д. Однако данная технология мне обсолютно не известна. Из примера понял, что послать серверу можно что игодно — но вот как обратно? Подскажите, как реализовать вызов какой-нибудь процедурки в клиенте.
МИДАС это средство передачи курсоров БД через RPC. Изначально он целиком был основан на DCOM. Потом прикрутили другие каналы работы. Но полноценно все равно можно работать только через DCOM (там маршалинг куда серьезнее).
Так что "вызов какой-нибудь процедурки в клиенте" это глупость.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте Shuric, Вы писали:
S>>Приветик. S>>Вот смотрел на досуге примеры из Delphi... S>>Наткнулся на пример ...\Demos\Midas\Login и мне понравилась идея обмена информацией между компами, не задумавывась о протоколах и т.д. Однако данная технология мне обсолютно не известна. Из примера понял, что послать серверу можно что игодно — но вот как обратно? Подскажите, как реализовать вызов какой-нибудь процедурки в клиенте.
VD>МИДАС это средство передачи курсоров БД через RPC. Изначально он целиком был основан на DCOM. Потом прикрутили другие каналы работы. Но полноценно все равно можно работать только через DCOM (там маршалинг куда серьезнее).
VD>Так что "вызов какой-нибудь процедурки в клиенте" это глупость.
по моему оно у Борланда все через DCOM реализовано. даже если используется CORBA connection
Больше всего мне понравилось запускать Midas через http. позволяет вполне сносно работать с базой по 56K модему.
Re: Midas, COM
От:
Аноним
Дата:
23.08.02 10:58
Оценка:
Здравствуйте Shuric, Вы писали:
S>Приветик. S>Вот смотрел на досуге примеры из Delphi... S>Наткнулся на пример ...\Demos\Midas\Login и мне понравилась идея обмена информацией между компами, не задумавывась о протоколах и т.д. Однако данная технология мне обсолютно не известна. Из примера понял, что послать серверу можно что игодно — но вот как обратно? Подскажите, как реализовать вызов какой-нибудь процедурки в клиенте.
Это делается очень просто, а может мне это кажется. Короче вызвать какую-нибудь процедурку на стороне клиента можно несколькими способами. Первый и наиболее распространенный это через интерфейс диспетчирования, который легко реализуется в Delphi 5,6 второй менее распространненный, но работает несколько быстрее первого. Для этого необходимо создать два интерфейса на стороне сервера, один из которых реализовать на стороне клиента. И при вызове сервера в качестве параметра передавать ссылку на реализацию данного интерфеса. Сервер через эту ссылку буден вызывать процедуры и функции на стороне клиента, реализованные в интерфейсе обратного вызова.
Надеюсь я понятно изложил? :)
Здравствуйте Аноним, Вы писали:
А>Здравствуйте Shuric, Вы писали:
S>>Приветик. S>>Вот смотрел на досуге примеры из Delphi... S>>Наткнулся на пример ...\Demos\Midas\Login и мне понравилась идея обмена информацией между компами, не задумавывась о протоколах и т.д. Однако данная технология мне обсолютно не известна. Из примера понял, что послать серверу можно что игодно — но вот как обратно? Подскажите, как реализовать вызов какой-нибудь процедурки в клиенте.
А>Это делается очень просто, а может мне это кажется. Короче вызвать какую-нибудь процедурку на стороне клиента можно несколькими способами. Первый и наиболее распространенный это через интерфейс диспетчирования, который легко реализуется в Delphi 5,6 второй менее распространненный, но работает несколько быстрее первого. Для этого необходимо создать два интерфейса на стороне сервера, один из которых реализовать на стороне клиента. И при вызове сервера в качестве параметра передавать ссылку на реализацию данного интерфеса. Сервер через эту ссылку буден вызывать процедуры и функции на стороне клиента, реализованные в интерфейсе обратного вызова. А>Надеюсь я понятно изложил?
Все енто хорошо, вплане мудрые мысли, изложенные на бумаге. А вот примерчик бы?!
Но все равно спасибо.
Здравствуйте Awaken, Вы писали:
A>по моему оно у Борланда все через DCOM реализовано. даже если используется CORBA connection
В качестве носителя используется сэйфэрэй, но маршалинг они написали ручной. Кстити, после этого ценность библиотеки упала, так как они стали придерживаться "стратегии сокетов", а не создавать тип данных который можно передавать средствами миделвари.
A>Больше всего мне понравилось запускать Midas через http. позволяет вполне сносно работать с базой по 56K модему.
Секьюрити при этом по боку идет. К тому же это (по 56K модему) можно делать и с родными драйверами к БД. Я уже не говорю о том, что это формум тоже вроде как через БД работает, а у меня модем на 28.8 и тормозной ужасно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Секьюрити при этом по боку идет. К тому же это (по 56K модему) можно делать и с родными драйверами к БД. Я уже не говорю о том, что это формум тоже вроде как через БД работает, а у меня модем на 28.8 и тормозной ужасно.
почему побоку если можно использовать HTTPS? а DCOM нам никто не даст использовать через файрвол т.к. политика сисадминов такова — не открывать лишние дырки кроме http
есть еще один способ весьма секьюрный — VPN (на основе PPTP). но очень тормозной и не со всеми интернет-провайдерами работает
VD>>Секьюрити при этом по боку идет. К тому же это (по 56K модему) можно делать и с родными драйверами к БД. Я уже не говорю о том, что это формум тоже вроде как через БД работает, а у меня модем на 28.8 и тормозной ужасно.
A>почему побоку если можно использовать HTTPS?
Это защищенный протокол. А я говорю о защите. В DCOM можно например разрешить кому нибудь вызов метода или узнать кто его сейчас вызывает.
A> а DCOM нам никто не даст использовать через файрвол т.к. политика сисадминов такова — не открывать лишние дырки кроме http
Ну, этой дырки достаточно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>>>Секьюрити при этом по боку идет. К тому же это (по 56K модему) можно делать и с родными драйверами к БД. Я уже не говорю о том, что это формум тоже вроде как через БД работает, а у меня модем на 28.8 и тормозной ужасно.
A>>почему побоку если можно использовать HTTPS?
VD>Это защищенный протокол. А я говорю о защите. В DCOM можно например разрешить кому >нибудь вызов метода или узнать кто его сейчас вызывает.
кстати такую секьюрити о которой ты говоришь можно
на уровне СУБД делать, ограничив просмотр данных путем создания VIEW и т.д.
но это получается "защита от самих себя".
большую опасность для корпоративной сети представляет перехват данных кем-то посторонним (поэтому нужен VPN или HTTPS)
Здравствуйте Awaken, Вы писали:
A>кстати такую секьюрити о которой ты говоришь можно A>на уровне СУБД делать, ограничив просмотр данных путем создания VIEW и т.д. A>но это получается "защита от самих себя".
Такую нельзя. Ты не знаешь кто вызвал метод. Придется много вручную делать да и прозрачность пропадет. (информацию о юзере придется таскать явно).
A>большую опасность для корпоративной сети представляет перехват данных кем-то посторонним (поэтому нужен VPN или HTTPS)
Ну, одно другому не мешает. Я прото говорю, что кое чем придется пожертвовать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.