|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Ребята, хотелось бы услышать про чужой опыт (успешный или не очень) по реализации трехзвенки в системе, в которой от 50 клиентов (в моей случае - 70, и все в разных городах). Дело в том, что сейчас возможно придется выбирать технологию для реализации и есть определенный риск, что решая одни проблемы, приобрету другие. В настоящий момент используется система, реализованная в Borland Builder: технология COM, связь осуществляется с помощью сокетов (для чего на сервере всегда запущена утилита scktsrvr.exe). На стороне клиента используется компонент TClientDataSet+TSocketConnection, на сервере - TDataSetProvider. Проблема в том, что система работает нестабильно. Периодически у клиентов возникает ошибка "Invalid SID", природу которой до сих пор толком понять не удалось. Причина в утилите scktsrvr.exe, которая не поддерживается производителем с 2004 года. Для устранения ошибки приходится перезапускать scktsrvr.exe, а так же перезапускать все клиентские программы (что останавливает работу на несколько минут). Было принято решение переводить все на компоненты kbmMW (тут можно узнать подробнее о них: http://www.components4programmers.com/). Соблазнило описание реализованной в них функциональности, однако на деле вся эта прекрасная функциональность работает не совсем гладко. Компоненты эти в некоторых местах сырые (в частности, там реализован модуль поддержки ODAC - именно эту технологию мы используем для доступа к бд Oracle, так в этом модуле были найдены и исправлены несколько ошибок). И реализованная на этих компонентах система работает неприемлимо медленно, хотя и весьма стабильно. Сейчас пытаемся разобраться со структурой кода компонентов, чтобы попытаться понять причины "тормозов" и по-возможности исправить их, однако не исключен вариант, что эта технология (эти компоненты) будет отвергнута. И тогда встанет вопрос (уже задаемся им периодически) — какую технологию использовать? Не хотелось бы вновь потратить много времени и в итоге отказаться от использования. Собственно, мой вопрос потому так и звучит: кто что использует для трехзвенки при написании в Borland Builder и насколько успешен опыт использования? Полагаю многим будет интересно узнать про чужой опыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 16:53 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
сделали в свое время. Транспорт весь собственной разработки, стандартные компоненты не прижились по разным причинам. Проекты разные, как локальные так и распределенные по разным городам-весям. Пользователей от 5 до 350. Но всю "базу" конечно пришлось разрабатывать самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 17:20 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
А какие ресурсы вам для этого понадобились (люди/время)? На основе чего делали свой транспорт (Indy, other)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 17:45 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
john-blackА какие ресурсы вам для этого понадобились (люди/время)? На основе чего делали свой транспорт (Indy, other)? транспорт на основе ADO, если конечно можно так сказать. Ресурсы до 10 ч/лет ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 18:01 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Мы используем COM/DCOM, правда в условиях ЛВС. Клиентов 100+. Для удаленных офисов, т.е. тонких каналов, по моему разумению, подходит не очень. Я бы Вам рекомендовал разработать собсвенный app. сервер на сокетах, альтернативный вариант -реализовать двухзвенку (клиент-Oracle) и разместить логику на стороне СУБД. Вариант тоже так себе, но для вашей задачи может и подойдет. Нотификацию клиентов можно делать DBMS_ALERT. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 18:37 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
BaldrМы используем COM/DCOM, правда в условиях ЛВС. Клиентов 100+. Для удаленных офисов, т.е. тонких каналов, по моему разумению, подходит не очень. Я бы Вам рекомендовал разработать собсвенный app. сервер на сокетах, альтернативный вариант -реализовать двухзвенку (клиент-Oracle) и разместить логику на стороне СУБД. Вариант тоже так себе, но для вашей задачи может и подойдет. Нотификацию клиентов можно делать DBMS_ALERT. :) Логика и так реализована на стороне СУБД, app. сервер требуется в частности для компрессии пакетов (да и для шифрования, чего уж тут скрывать :)). Разработать собственный app. сервер - в наших условиях задача очень трудновыполнимая по причине отсутствия ресурсов (людей мало). Самый хороший вариант - воспользоваться одной из существующих технологий. Вопрос - какой именно? Сейчас используем COM (связь через сокеты). О минусах ее я написал в первом посте. Из известных есть еще MTS (и можно похоронить планы перевода сервера на Linux), CORBA, SOAP (связь по HTTP), и kbmMW(сторонние разработчики, первые впечатления не очень). Возможно есть еще что-то, разработанное сторонними разработчиками, о чем мы не знаем. Вот я и прошу поделиться опытом использования любых конкретных технологий и решений. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 19:02 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
john-black TClientDataSet+TSocketConnection, на сервере - TDataSetProvider в свое время тестировали MIDAS, но скорость работы... Транспорт в принципе TCP/IP, но в связке с ADO. Выглядит в реале так (1.5 мин,500К), с удаленными хостами. (видео требует установки WebEx (2,3МБ)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 19:14 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Уважаемые, а объясните мне вообще необходимость 3-х звенки в данной задаче? Не кажется ли вам что такую систему проще и лучше будет реализовать по архитектуре классического клиент-сервера + сервер терминалов? Что не устаривает в таком решении? Чем не подходит? Плюсы подхода: * простота реализации; (классические, надежные технологии) * высокая надежность; * возможность распараллелить терминал сервера (Citrix). Вкупе с возможностями Oracle RAC мы получаем практически не ограниченную масштабируемость; * относительно низкие требования к каналу; * стабильность соединения. Даже если связь порвется, ваша работа и данные не будут потеряны, при повторном открытии терминальной сессии вы подключитесь к старой сессии. * простота поддержки и обновления приложения(находится в одном месте, на сервере терминалов, настройки и данные пользователя находятся либо в базе, либо в профиле, хранящемся так же на сервере; * возможность клиент работать на любых платформах поддерживающих возможность соединения с терминал-сервером; * стабильность окружения в котором работает ПО, простота отладки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 19:32 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
john-blackЛогика и так реализована на стороне СУБД, app. сервер требуется в частности для компрессии пакетов (да и для шифрования, чего уж тут скрывать :)). Хм. Насчет компрессии - не уверен, надо лезть в доку, а вот насчет шифрования интересно. Я так понимаю, поддерживаемого Oracle-ом SSL вам не хватает? Не секрет ли, в каком именно месте? john-blackВот я и прошу поделиться опытом использования любых конкретных технологий и решений. Присоединяюсь к точке зрения "трехзвенка не нужна". И чуть выше совершенно справедливо сказано о терминальном сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 19:40 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
ArtemiyУважаемые, а объясните мне вообще необходимость 3-х звенки в данной задаче? Не кажется ли вам что такую систему проще и лучше будет реализовать по архитектуре классического клиент-сервера + сервер терминалов? Что не устаривает в таком решении? Чем не подходит? Плюсы подхода: * простота реализации; (классические, надежные технологии) * высокая надежность; * возможность распараллелить терминал сервера (Citrix). Вкупе с возможностями Oracle RAC мы получаем практически не ограниченную масштабируемость; * относительно низкие требования к каналу; * стабильность соединения. Даже если связь порвется, ваша работа и данные не будут потеряны, при повторном открытии терминальной сессии вы подключитесь к старой сессии. * простота поддержки и обновления приложения(находится в одном месте, на сервере терминалов, настройки и данные пользователя находятся либо в базе, либо в профиле, хранящемся так же на сервере; * возможность клиент работать на любых платформах поддерживающих возможность соединения с терминал-сервером; * стабильность окружения в котором работает ПО, простота отладки. Где можно почитать подробности? Я слово Citrix, признаться, слышу впервые. И еще: вы все эти плюсы перечислили, опираясь на собственный опыт? Какие у вас условия? Сколько клиентов? В условиях локальной сети или через интернет (при глючном модемном, gprs, etc)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 19:50 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Не пробовали, но внушает. www.realthinclient.com ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 20:30 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
ValPotНе пробовали, но внушает. www.realthinclient.com Спасибо, ознакомлюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 20:58 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Лично применяю и считаю эту технологию наиболее подходящей в таких случаях. Так же считаю её лучшим вариантом, чем всякие веб-армы и прочие веб сервисы. По крайней мере для ограниченных внутренних информационных систем и армов. У нас на предприятии данное решение широко применяется как для работы с сторонними приложениями, так и для работы с самописными системами (разработкой и поддержкой одной из них я занимаюсь) Похвастаться множеством различных городов с разными каналами я не могу. У нас работают люди в филиалах (крупные города РФ), люди их нашего города по интернету + некоторые пользователи в офисе по локалке. Теоретически все проблемы производительности и масштабируемости решаются простым увеличением мощности терминал-серверов + субд. Обычно нужна только память, много памяти. Можно сервера параллелить, соберать фермы (20 пользователей работают на сервере1, 20 на сервере2) Можете поинтересоваться у 1С-ников, они ИМХО первые в нашей стране начали широко применять данную технологию. Из минусов могу отметить лишь: * не нулевые требования к каналу; * ограниченность в разрешении и цветности клиента (зависит от канала); * стоимость лецензий ЗЫ Считаю, что в будущем привлекательность таких решений будет только расти в связи с развитием каналов связи. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2007, 21:16 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Artemiy ЗЫ Считаю, что в будущем привлекательность таких решений будет только расти в связи с развитием каналов связи. Не будет. :-) Терминалки в распределенных системах - это временный костыль, призванный для лечения криво спроектированных продуктов типа 1С (7.7 и ниже). Дело в том, что как только потребителем информации в удаленной системе станут не только люди, а еще и другие ИС (а это потребуется рано или поздно), вся затея с терминалками накроется медным тазом. Все равно придется писать RPC - интерфейс в дополнение к имеющемуся директ-клиенту. Может лучше все-таки сразу написать нормальную трехзвенку? ;) топикстартеру: вебсервисы - без альтернатив, если объемы передаваемых данных не сильно критичны. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 10:05 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
ArtemiyЗЫ Считаю, что в будущем привлекательность таких решений будет только расти в связи с развитием каналов связи. Наоборот. Такие решения привлекательны в основном на далеких от идеала каналах связи. При идеальных каналах их вытеснит нормальный клиент-сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 10:10 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Глас народа[quot Artemiy] топикстартеру: вебсервисы - без альтернатив, если объемы передаваемых данных не сильно критичны. А нельзя немного поподробнее? Какие объемы считать критичными? Хорошо было бы послушать о личном опыте. Для меня важна скорость работы, а каналы у многих клиентов (в каких-нибудь Урюпинсках) не ахти. А что касается терминалов, то я сильно сомневаюсь, что это подойдет для моих условий. Качество связи очень далеко от идеала, часты обрывы. Потому хотелось бы вернуться к теме топика, а именно: поделитесь опытом реализации трехзвенок в похожих условиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 11:11 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
john-black Глас народа[quot Artemiy] топикстартеру: вебсервисы - без альтернатив, если объемы передаваемых данных не сильно критичны. А нельзя немного поподробнее? Какие объемы считать критичными? Хорошо было бы послушать о личном опыте. Для меня важна скорость работы, а каналы у многих клиентов (в каких-нибудь Урюпинсках) не ахти. А что касается терминалов, то я сильно сомневаюсь, что это подойдет для моих условий. Качество связи очень далеко от идеала, часты обрывы. Потому хотелось бы вернуться к теме топика, а именно: поделитесь опытом реализации трехзвенок в похожих условиях. По субъективным ощущениям, XML-сериализация в среднем раза в четыре объемнее бинарной. Но можно жать трафик на уровне HTTP, немного возрастет нагрузка. Преимущества XML-сервисов в том, что их понимают все современные технологии и платформы (без этого зоопарка: DCOM, CORBA, Remoting...). И свободно проходит брандмауэры по HTTP. Если каналы так себе - можно просто уменьшать размер SOAP-пакетов - дробить на несколько, делать пэйджинг на сервере. Аналогичную систему делали, правда, под .NET, но это непринципиально, на то и вебсервисы. Есть еще такая штука RemObjects , как раз занимается трехзвенками для Дельфей. Сами не мучали, слышали неплохие отзывы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 13:17 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
>john-black > ... по реализации трехзвенки ... Посмотри Архитектура приложений Но ..., написана на С# под .Net. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 13:44 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Гн> По субъективным ощущениям, XML-сериализация в среднем раза в четыре Гн> объемнее бинарной. Но можно жать трафик на уровне HTTP, немного Гн> возрастет нагрузка. Преимущества XML-сервисов в том, что их Гн> понимают все современные технологии и платформы (без этого Гн> зоопарка: DCOM, CORBA, Remoting...). XML - тяжеловесная технология, оправданность ее применения с большими объемами данных сомнительна. Гн> И свободно проходит брандмауэры по HTTP. Т.е. "бесконтрольно" проходит через HTTP. Иными словами: захочешь контролировать доступ к таким сервисам - намучаешься. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 13:54 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 14:25 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Глас народаПо субъективным ощущениям, XML-сериализация в среднем раза в четыре объемнее бинарной. объективные ощущения (один набор данных). До сжатия: XML - 3.81MB, Binary - 2.5MB После сжатия сервером: XML - 588K, Binary - 588K ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 14:27 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Dmitriy Ivanov Гн> По субъективным ощущениям, XML-сериализация в среднем раза в четыре Гн> объемнее бинарной. Но можно жать трафик на уровне HTTP, немного Гн> возрастет нагрузка. Преимущества XML-сервисов в том, что их Гн> понимают все современные технологии и платформы (без этого Гн> зоопарка: DCOM, CORBA, Remoting...). XML - тяжеловесная технология, оправданность ее применения с большими объемами данных сомнительна. Гн> И свободно проходит брандмауэры по HTTP. Т.е. "бесконтрольно" проходит через HTTP. Иными словами: захочешь контролировать доступ к таким сервисам - намучаешься. Posted via ActualForum NNTP Server 1.4 "Бесконтрольно" - это как? HTTP-запросы не ломятся в мою сеть, я сам делаю запросы к вебсервису и получаю HTTP-ответы. Чем это отличается от обычного web-серфинга через брандмауэр (с точки зрения контроля доступа)?? Если же вы имеете в виду контроль на стороне Web-сервиса, то нормальные веб-сервера (Apache, IIS) имеют весьма развитые средства безопасности - для этого они и создавались, в общем-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 16:18 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
>iscrafm > ...объективные ощущения ... Реальные данные - некоторые числовые характеристики прототипа (для первой страницы полной выборки из таблицы Фильмы): - число строк в странице – 240, - размер не сжатой страницы выборки по фильмам, примерно 325 000 байт - сериализация Microsoft (Soap), 60 000 байт - сериализация Microsoft (Binary), 22 000 - моя сериализация, - размер сжатой страницы выборки по фильмам, примерно 22 000 байт - вариант Microsoft (Soap), 13 000 байт - вариант Microsoft (Binary), 12 000 - мой вариант - Вывод: сжимайте сериализованное. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2007, 16:58 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
Глас народа wrote: > Преимущества XML-сервисов в том, что их понимают все современные > технологии и платформы (без этого зоопарка: DCOM, CORBA, Remoting...). И > свободно проходит брандмауэры по HTTP. А CORBA что, не все понимают, что ли ? А про брандмауэры - это никому не нужно. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2007, 02:39 |
|
Технологии для разработки трехзвенной архитектуры.
|
|||
---|---|---|---|
#18+
MasterZiv Глас народа wrote: > Преимущества XML-сервисов в том, что их понимают все современные > технологии и платформы (без этого зоопарка: DCOM, CORBA, Remoting...). И > свободно проходит брандмауэры по HTTP. А CORBA что, не все понимают, что ли ? А про брандмауэры - это никому не нужно. Интересно, а какие такие преимущества у Corba перед вебсервисами? Зы: насчет брандмауэров - не нужно выдавать личное мнение за объективное... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2007, 10:56 |
|
|
start [/forum/moderation_log.php?user_name=author_a]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 442ms |
total: | 595ms |
0 / 0 |