Re[6]: в общую кучу вопрос по теме (DCOM-thread)
От: INT Россия  
Дата: 23.01.02 06:24
Оценка:
INT>>Очень актуальный для меня вопрос!

VD>Какой конкретно?

по теме:)

VD>DAO — это совсем зря. Это все равно, что поставить в современную Таёту движок от замечательного форда, но 1917 г. выпуска. Его как минимум некому обслуживать будет.

а что такого с DAO? что не может ДАО а может ADO в случае с mdb?
Кстати, ADO может работать с dbf?

INT>>назовем этот класс враппером.

INT>>Есть ПО которое работает с этим классом.
INT>>Как такое ПО сделать многопользовательским,сетевым?

VD>Похоже вопрос поставлен не верно. Сетевым оно будет если БД положить в сетке (даже DBF-ную) и подключаться к ней с удаленных машин. Причем замена DAO на Oracle (если не использовать его триггеров) даст только повышение производительности (т.е. ничего с архитектурной точки зрения).

я понимаю, что "сетевым" оно станет если положить базу на удаленный хард и подключаться к ней..В этом случае оно станет файл-серверным, нам же требуется клиент сервер, т.е. нам не нужно перекачивать таблицы на локал,
нам не нужно каждые 5 секунд опрашивать изменения, Сервер сам потревожит нас если интересующие нас надоры были изменены..

VD>Вот если на сервере нужно выполнять некие алгоритмы, то это другое дело. Вот здесь появляется ниша для распределенных архитектур, таких как DCOM/COM+, CORBA, RMI, .Net-ремоутинг, Web-сервисы...


VD>Оповещение клиентов задача сложная. Обычно нафиг (этим самым клиентам) не нужная. Решить ее можно, но надо понимать чем за это придется платить и во что это станет.


INT>> А еще лучше если этот самый враперр будет возвращать только результатирующие наборы данных,


VD>Ну, это в распределенных архитектурах вещь сама-собой разумеющаяся.

VD>При этом нужно только определиться в каком виде передавать данные.

VD>Так можно просто засунуть их в массив.

VD>Можно сделать коллекции и передавать все в ОО-виде (но будет или не эффективно или много геморроя по оптимизации передачи)
VD>Можно попользоваться ADO-recordset-ом. При этом делается моментальный снимок данных. Его можно передать на клиента и обратно. Тоже можно достичь использую DataSet из .Net.
VD>Можно воспользоваться специально заточенными под распределенными вычисления Borland MIDAS-ом или нашим
ascDB.

Я ознакомился с этим продуктом.. Вся фишка в том, что в продукте не надо использовать разработки сторонних производителей, это и финансовые и трудовые затраты на приобретение и поддержку..

INT>>а не гонять все таблицы по сети — собственно для этого и делается вся кухня :)


VD>Собственно этим занимаются сегодня многие. И мы в том числе. Ссылку я уже дал...


Вот! Краеугольный вопрос.. Представте себе эдакого тонгокого клиента, в процессе редактирования справочника..
В справочнке (скажем "Товары") 25 тысяч напименований.. Как здесь можно поступить?
Если использовать на локале чьи то рекордсеты, то какой же это тонкий клиент? Если реализовывать самому взаимодействие с сервером — другое дело, т.е. сервер нас извещает по определенной схеме, что данные запрошенные нами претерперли изменение, и мы опрашваем заново набор..
А теперь ситуация "Добавить новый элемент"... В БД используется некий механизм автонумерации, как в случае тонкого клиента реализовать добаление нового элемента (не используя на локальной машине никаких адо) сохранив при этом позиционирование на новом товаре, нои получив код из БД?


VD>Общий принцип простой — пишем сервер который обрабатывает данные, реализует бизнес-логику, кэширует все подряд, соединяется с другими сарваерами... короче, центр обработки данных. Клиенты занимаются получением данных и отображением их пользователю.


Получение и отображением.. А кто же занимается добавлением и обновлением?

VD>Оповещать их обычно не о чем не нужно, ведь их задача спросить у сервера текущее состояние данных и VD>вывести их пользователю. Далее пользователь может изменить данные. При этом клиент должен вызвать некий VD>метод у сервера, а тот уже произведет все нужные изменения в БД. Причем клиента эта самая БД даже VD>интересовать не должна. Он должен работать через четко специфицированный программный интерфейс.


на счет этого чуть выше ...

VD>COM здесь является только одним из протоколов позволяющих общаться клиенту и серверу...

я понимаю...
VD>VC — инструмент хороший, но вот работать на нем с БД и бизнес логикой довольно сложно. Уровень абстракции не тот. Мы, например, делаем прикладной код на VB6. В ближайшее время будем переходить на .Net (C#). Можно тоже и на Дельфи делать, но VC — это чересчур. Зато когда нужно компоненты низкоуровневые писать, то VC — лучшее средство.
мне кажется — без разницы..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.