|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Черт, что-то файл не приаттачился. Попытка номер 2:) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 09:57 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
DrKonitoTSQL хорошо знать придется по-любому. А вот если сервер приложений будет делать работу сервера БД (изоляция, блокировки, сортировка, джойны, фильтры итп) то разработчикам кроме собственно бизнес-логики придется задумываться о действительно сложных вещах. Почему сервер приложений должен заниматься такими вещами, как изоляция, блокировки, сортировка, джойны, фильтры итп ? DrKonitoИз-за нестандартности интерфейса самопального сервера придется самому писать тонны кода, вместо использования стандартных решений. Это самый главный аргумент против СП. Но почему все ведущие производители ERP-систем используют n-звенную архитектуру и никто не держит бизнес-логику в хп? У меня есть пример одного предприятия, в котором из-за обилия и сложности хп на пределе работал 4-хпроцессорный сервер. Только не говорите, что у них кривая структура БД. ВМоисеевНадо учитывать высокую вероятность нежелательного перехвата конфиденциальной информации посторонними лицами. Вы обязаны криптографически защищать трафик. А не проще ли шифровать трафик на шлюзах в интернет? tygraА кто сказал, что сервер данных предназначен только для этого? Этак можно и в dbf данные держать - то же самое получится. Если Вы не понимаете, в чём разница между обработкой 10^n строк в СУБД и dbf - дальнейшее обсуждение не имеет смысла. ВМоисеевDrKonito >Теперь эти люди в перерывах между объяснениями почему мы слезли с пальмы и как у нас все плохо, предлагают для начала написать побольше бизнес-логики на шарпе, запихнуть её "для начала" в толстого клиента, а потом уже разбираться с архитектурой :) Примерно что-то аналогичное сделал. Работает. Бизнес-логика на шарпе. Толстый клиент. По сетям гоняю только данные. Свой подход описал в цетируемой статье. Не подскажешь как связаться с твоими аппанентами? Работать-то работает, пока эта задача не выйдет за пределы локальной сети. !!! Простой рабочийОт себя приведу пример - модуль проведения документа "Расходня накладная" в 1С:Бухгалтерии 7.7 занимает 1750 строк с использованием процедур и объектов.И что этот пример показывает, кроме низкого качества проектирования и реализации? tygra Простой рабочийОт себя приведу пример - модуль проведения документа "Расходня накладная" в 1С:Бухгалтерии 7.7 занимает 1750 строк с использованием процедур и объектов.Это говорит о том, что вы не умеете работать с sql, с ХП и т.д. Я привёл пример размера кода не самого большого документа, а всего лишь алгоритма формирования бухгалтерских проводок накладной. Меня поразили Ваши ответы. У нас с Вами слишком больша разница в понятии бизнес-логики. Возможно я ошибаюсь, но вы не рабтали с ERP-системами (или хотя бы приближенными к ним). ASCRUS Простой рабочийнашёл в книжном магазине пару интересных книжек по пострению 3-хуровневых систем, которые меня ещё сильнее убедили в такой необходимости.Было бы конечно странно, если бы они разубедили. Может быть теперь купить и почитать пару книжек, наоборот описывающих плюсы и ньюансы двухзвенных приложений и критикующих 3-х звенки ? Может. Жду примеры книг, с удовольствием прочту. ASCRUSвсе решалось стандартными средствами, где в БД помимо самих данных на себе описывала и хранила модель и процессы бизнес-логики, а клиентские приложения только вызывали нужные ХП и занимались своими основными задачами - построением для пользователя удобного и адекватного интерфейса. Я бы и не задумывался над СП, если бы система была бы не сложной. DrKonitoСравнивая Контору1 и Контору2 отмечаю следующие факты: 1) 3х звенка тормозила на 30 пользователях, в Конторе2 нормально работают 200 пользователей, несмотря на то что половина мест на жутко неэффективном ацессе. Спасибо за замечания, очень полезные! По-порядку. Контора1 делала случайно не 1Сv77 SQL? Эта на такое способна :-) DrKonito2) Класс разработчиков в Конторе1 был серьезно выше. Им приходилось заниматься действительно нетривиальными проблемами. Но не сказал бы что это является преимуществом 3х звенки :) Абсолютно согласен. Хочу найти технологию по-проще :-) DrKonito3) Любого человека который приходил в Контору1 надо было учить фактически с нуля. Первые полгода-год от новых людей было очень мало толку. В Контору2 можно взять студента на 400 баксов с базовым знанием SQL и быстро поставить его в строй. Не согласен. Когда система грамонтно организована на классовом уровне - как раз в этом случае студенту с улицы легче разобраться, чем копаться в жутком трёхэтажном коде запросов на T-SQL со множествами JOIN и подзапросами. DrKonitoКстати в несколько другой области лучшим примером толстого клиента является пресловутая 1С-ка. Она тоже по сети гоняет только данные :) Это её недостаток, но писать в ней код - одно удовольствие. Может это и кошмар для сисадминов, но для программеров - шоколад :-) Дмитрий Сорокин Обратный пример - самописная учетная система - типичная 2-х звенка, вся логика в хранимых процедурах, MSSQL, 600 одновременных пользователей, 300Gb база, 300млн. проводок, перелезли с 8хXEON700+8Gb RAM на 8xITANIUM2+8Gb RAM , потому что стало подтормаживать - теперь снова летает. Но, конечно, система вылизывалась достаточно долго. Сервер масштабируется до 24 процессоров и 32Gb RAM, поэтому лет на 10-20 хватит. При этом года 3-4 назад vs активно игрались с MTS и DCOM. Переписали основную бизнес-логику по проведению проводок на С++, оформили как DCOM объект под MTS, запустили на тестирование. Может, конечно, у нас руки росли не оттуда, но там, где справлялся 1 MSSQL-сервер нужно было ставить десяток MTS-серверов, чтобы добиться той же производительности при 300 одновременных коннектов. Круто! DCOM, значит отпадает... Что такое MTS? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 10:42 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Простой рабочий Дмитрий Сорокин Обратный пример - самописная учетная система - типичная 2-х звенка, вся логика в хранимых процедурах, MSSQL, 600 одновременных пользователей, 300Gb база, 300млн. проводок, перелезли с 8хXEON700+8Gb RAM на 8xITANIUM2+8Gb RAM , потому что стало подтормаживать - теперь снова летает. Но, конечно, система вылизывалась достаточно долго. Сервер масштабируется до 24 процессоров и 32Gb RAM, поэтому лет на 10-20 хватит. При этом года 3-4 назад vs активно игрались с MTS и DCOM. Переписали основную бизнес-логику по проведению проводок на С++, оформили как DCOM объект под MTS, запустили на тестирование. Может, конечно, у нас руки росли не оттуда, но там, где справлялся 1 MSSQL-сервер нужно было ставить десяток MTS-серверов, чтобы добиться той же производительности при 300 одновременных коннектов. Круто! DCOM, значит отпадает... Что такое MTS? Ну вот, дошли... Народ уже и забыл, что такое Microsoft Transaction Server. А шуму было, а пыли... Лучший сервер приложений, DCOM forever, бесплатно всем сували, даже в дистрибутив NT 4.0 включали! Не прошло и пары лет... Эх, sic transit gloria mundi... Кто же о нас, бедных, вспомнит через пару лет ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 11:02 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Простой рабочий ВМоисеевНадо учитывать высокую вероятность нежелательного перехвата конфиденциальной информации посторонними лицами. Вы обязаны криптографически защищать трафик. А не проще ли шифровать трафик на шлюзах в интернет?Нет уж, будьте последовательны - раз бизнес-логику уносим из сервера БД, то и шифрование тоже в сервер приложений :-)) Простой рабочий !!! Простой рабочийОт себя приведу пример - модуль проведения документа "Расходня накладная" в 1С:Бухгалтерии 7.7 занимает 1750 строк с использованием процедур и объектов.И что этот пример показывает, кроме низкого качества проектирования и реализации? tygra Простой рабочийОт себя приведу пример - модуль проведения документа "Расходня накладная" в 1С:Бухгалтерии 7.7 занимает 1750 строк с использованием процедур и объектов.Это говорит о том, что вы не умеете работать с sql, с ХП и т.д. Я привёл пример размера кода не самого большого документа, а всего лишь алгоритма формирования бухгалтерских проводок накладной. Меня поразили Ваши ответы. У нас с Вами слишком больша разница в понятии бизнес-логики. Возможно я ошибаюсь, но вы не рабтали с ERP-системами (или хотя бы приближенными к ним).Если я вижу процедуру более 100 строк, я спрашиваю разработчика, в чем причина появления подобной процедуры. Если более 200 строк - требую провести рефакторинг. Если процедура занимает более 1000 строк, то, скорее всего, я предложу разработчику подумать о смене рода деятельности, поскольку программировать он не умеет. Простой рабочийЧто такое MTS?Дык, сервер приложений, елы-палы ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 11:36 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Эхххххххх............... Простой рабочийПочему сервер приложений должен заниматься такими вещами, как изоляция, блокировки, сортировка, джойны, фильтры итп? Ну если ему этим не заниматься - тогда чем? :)) авторЭто самый главный аргумент против СП. Но почему все ведущие производители ERP-систем используют n-звенную архитектуру и никто не держит бизнес-логику в хп? У меня есть пример одного предприятия, в котором из-за обилия и сложности хп на пределе работал 4-хпроцессорный сервер. Только не говорите, что у них кривая структура БД. Не скажем. У них просто кривые руки А вы считаете, что если система любой сложности работает на пределе на 4-х процессорном сервере, то трехзвенка тут уж конечно форы даст, наверное будет работать гораздо лучше на пяти двухпроцессорных нодах плюс тот же самый 4-х процессорный сервер . Наверное вы не знаете, что существуют большие задачи и под них существуют большие сервера - с 8-и и даже 16-ю процессорами. Это не для вас? Вы боитесь таких серверов? И кто такие ведущие производители, которые используют n-звенную архитектуру? И как дела у них идут? Неужели вы сравнивали похожие системы на к-с и n-звенке? авторЕсли Вы не понимаете, в чём разница между обработкой 10^n строк в СУБД и dbf - дальнейшее обсуждение не имеет смысла. Я не понимаю, причем тут многозвенка :)) авторЯ привёл пример размера кода не самого большого документа, а всего лишь алгоритма формирования бухгалтерских проводок накладной. Меня поразили Ваши ответы. У нас с Вами слишком больша разница в понятии бизнес-логики. Возможно я ошибаюсь, но вы не рабтали с ERP-системами (или хотя бы приближенными к ним). Наверняка действительно у нас с вами слишком большая разница в понятии БЛ. Давайте определимся, чтобы точно знать, у кого какие понятия. А если вы считаете, что 1С:Бухгалтерия 7.7 это крутая ERP система, код которой нужно считать за эталон - вы ошибаетесь. Тут на форуме найдется куча людей, бухгалтерия которых работает на порядки лучше 1С. И возможно без 1750 строк кода :)) Хотя с другой стороны, если вы не можете написать то, что в этих 1750 строках кода, в ХП - то чьи проблемы? :) авторЯ бы и не задумывался над СП, если бы система была бы не сложной. А у нас всех системы то конечно наипростейшие - вот почему мы в КС можем их запихать, вот оно как! :) авторНе согласен. Когда система грамонтно организована на классовом уровне - как раз в этом случае студенту с улицы легче разобраться, чем копаться в жутком трёхэтажном коде запросов на T-SQL со множествами JOIN и подзапросами. Вы точно знаете по опыту или просто sql не знаете? :)) авторЭто её недостаток, но писать в ней код - одно удовольствие. Может это и кошмар для сисадминов, но для программеров - шоколад :-) Для тех, которые СУБД и sql не знают - а как же! На чем же еще им писать остается? ======= ЗЫ Хоть отдохнуть тут от работы -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 11:49 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Простой рабочий DrKonitoTSQL хорошо знать придется по-любому. А вот если сервер приложений будет делать работу сервера БД (изоляция, блокировки, сортировка, джойны, фильтры итп) то разработчикам кроме собственно бизнес-логики придется задумываться о действительно сложных вещах. Почему сервер приложений должен заниматься такими вещами, как изоляция, блокировки, сортировка, джойны, фильтры итп ? Простой рабочий DrKonito3) Любого человека который приходил в Контору1 надо было учить фактически с нуля. Первые полгода-год от новых людей было очень мало толку. В Контору2 можно взять студента на 400 баксов с базовым знанием SQL и быстро поставить его в строй. Не согласен. Когда система грамонтно организована на классовом уровне - как раз в этом случае студенту с улицы легче разобраться, чем копаться в жутком трёхэтажном коде запросов на T-SQL со множествами JOIN и подзапросами. Да это не очевидно сначала :) Вообще это конечно сильно зависит от сервера приложений и решаемых задач. Ну вобщем опять реальная история. Приложение требовало отчетов и сложных списков на клиенте. В Конторе1 от тупых внедренцев спрятали "неудобный SQL" и дали им "удобные" объекты типа эээ... Контора1Селект. Заполняешь его свойства, вызываешь метод Экзекуте и тебе выдается объект типа Контора1Лист. Хорошо это работало только для очень простых запросов. Сложные запросы либо нельзя было сформулировать вообще либо заполнение свойств объекта Контора1Селект представляло из себя головоломку, которую могли решить только гуру проработавшие там хотя бы годик. Т.к. некоторые запросы не выражались вообще, то все внедренцы очень скоро начинали становится экспертами по структурам данных. Сейчас я знаю как по-умному называются эти приёмы, тогда не знал. Вобщем на ВБА приходилось писать хэш-джойны и мердж-джойны 2-3 массивов, сортировки, группировки итд итп Собирался написать объект балансированного дерева, чтобы делать нестед-луп-джойн, но так и не собрался :) Вобщем с тех пор у меня есть сильное подозрение, что проблему построения сложных списков аппсервера удовлетворительно могут решить только одним путем- заведением отдельного объекта на каждый такой список\отчет. Под "крышкой" объекта естественно прячется обычный SQL. Думаю сложные списки это только один из вопросов, которые прямой SQL решает объективно лучше. Простой рабочий DrKonitoИз-за нестандартности интерфейса самопального сервера придется самому писать тонны кода, вместо использования стандартных решений. Это самый главный аргумент против СП. Но почему все ведущие производители ERP-систем используют n-звенную архитектуру и никто не держит бизнес-логику в хп? У меня есть пример одного предприятия, в котором из-за обилия и сложности хп на пределе работал 4-хпроцессорный сервер. Только не говорите, что у них кривая структура БД. Недавно читал книжку про Enterprise Applications Integration, так там эти системы называли словом stovepipe-application, что в переводе значит - "устанешь интегрироваться" :) Простой рабочий Контора1 делала случайно не 1Сv77 SQL? Эта на такое способна :-)Нет ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 14:00 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
DrKonito Да это не очевидно сначала :) Вообще это конечно сильно зависит от сервера приложений и решаемых задач. Ну вобщем опять реальная история. Приложение требовало отчетов и сложных списков на клиенте. В Конторе1 от тупых внедренцев спрятали "неудобный SQL" и дали им "удобные" объекты типа эээ... Контора1Селект. Заполняешь его свойства, вызываешь метод Экзекуте и тебе выдается объект типа Контора1Лист. Хорошо это работало только для очень простых запросов. Сложные запросы либо нельзя было сформулировать вообще либо заполнение свойств объекта Контора1Селект представляло из себя головоломку, которую могли решить только гуру проработавшие там хотя бы годик. Т.к. некоторые запросы не выражались вообще, то все внедренцы очень скоро начинали становится экспертами по структурам данных. Сейчас я знаю как по-умному называются эти приёмы, тогда не знал. Вобщем на ВБА приходилось писать хэш-джойны и мердж-джойны 2-3 массивов, сортировки, группировки итд итп Собирался написать объект балансированного дерева, чтобы делать нестед-луп-джойн, но так и не собрался :) О, видно что человек знает проблему не по наслышке. Да, в итоге построение "бизнес логики на сервере приложений" выраждается в что-то такое, о чем вы написали. А ведь как славно все выглядит в учебниках... Контора1Селект.... :) DrKonito Вобщем с тех пор у меня есть сильное подозрение, что проблему построения сложных списков аппсервера удовлетворительно могут решить только одним путем- заведением отдельного объекта на каждый такой список\отчет. Под "крышкой" объекта естественно прячется обычный SQL. Да, так и делают, когда надоедать придумывать как же таки "сджоинить" 5 результатов выборок a la Контора1Селект Простой рабочий Но почему все ведущие производители ERP-систем используют n-звенную архитектуру и никто не держит бизнес-логику в хп? У меня есть пример одного предприятия, в котором из-за обилия и сложности хп на пределе работал 4-хпроцессорный сервер. Только не говорите, что у них кривая структура БД. С т.з. теории построения БД у них таки "кривая структура БД". Это раз. Но она портируемая под разные сервера БД. Это два. Грубо говоря, отсутствие логики на ХП - это в какой-то мере попытка маркетологов выдать нужду за добродетель. PS: все больше убеждаюсь, что каждый разработчик бизнес приложений должен хоть раз поучаствовать в проектировании, разработке _и внедрении_ системы с трехзвенной архитектурой и пресловутой "логикой на сервере приложений", чтобы понять чем это грозит и что в итоге получается. На слово юные читатели книг под названием "архитектура коорпоративных систем" не верят, ведь все так здорово описано в умной книжке ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 14:31 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
авторНедавно читал книжку про Enterprise Applications Integration DrKonito, поделитесь, что за книжка, что пишут, какие ощущения? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 14:52 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Один1PS: все больше убеждаюсь, что каждый разработчик бизнес приложений должен хоть раз поучаствовать в проектировании, разработке _и внедрении_ системы с трехзвенной архитектурой и пресловутой "логикой на сервере приложений", чтобы понять чем это грозит и что в итоге получается. На слово юные читатели книг под названием "архитектура коорпоративных систем" не верят, ведь все так здорово описано в умной книжке Это точно. Но также им не мешало бы и поучаствовать в обычных КС проектах - только в путевых, чтобы понять огромную разницу... да и вообще научиться правильно их писать, КС-системы :)) -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 15:14 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
tygraЭто точно. Но также им не мешало бы и поучаствовать в обычных КС проектах - только в путевых, чтобы понять огромную разницу... да и вообще научиться правильно их писать, КС-системы :)) Согласен. Но у меня вот через комнату сидят примеры. Работают с действительно хорошо спроектированным КС. Достаточно удобным и шустрым. А как начинаем обсуждать новый проект, так сразу "только 3 уровня !". Книг начитались, а практического опыта нет. Удалось охладить тем, что 3 уровня - это сейчас не острие науки. Самый писк - service oriented programming (вместо service подставлять language, business, full-circle, короче что угодно). Ушли читать книги. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 15:32 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Совсем затютали простого рабочего:) Все, конечно, правильно. 2-хзвенка, точнее говоря т.н. "терминальные" решения, когда все-все крутится на SQL-сервере, а у клиента лишь создается интерфейс, при хорошей архитектуре данных и вылизанном коде и проще и производительнее и дешевле многозвенки. Но есть один неприятный недостаток SQL-языка - это его "процедурность", что ли. В таком стиле писали в 70-е годы на мэйнфреймах. Вспомните фортран и PL/1:) Когда я смотрю в Query Analyser на структуру нашей БД - э ато тысячи таблиц, вьюх, хранимых процедур, функций - меня коробит, прямо. В нормальных языках программирования творческая мысль не стояла на месте -OOP, методы коллективной разработки, контроль версий и т.д. Кто сейчас лабает на чистом C? Или на форте (а класный был язык:). А вот SQL почему-то застыл на месте. Нет, появляются, конечно, всякие новые операторы, вот SQL2005 уже до TRY/CATCH почти дорос:), но, блин, почему нельзя сделать из SQL нормальный объектно-ориентированный язык? Только не надо мне говорить насчет объектно-ориентированных баз данных - это совсем другое. БД пусть остается реляционной - но язык пусть станет нормальным! Кстати, лет 5 назад microsoft громогласно кричал, что вместе с TSQL в SQL2005 можно будет native програмировать на C# или VB.NET. И во что это вылилось? В возможность регистрировать свои сборки на сервере? Блин! Extended SP, только вид сбоку. По моему, это заговор сторонников трехзвенки:) Может подумать, как из SQL с минимумом изменений сделать что-то вроде OOP языка? Типа SQL++? Да еще и стандартизовать его. Тогда, наверное, никто больше о серверах приложений и не вспомнит:) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 15:51 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Calm авторНедавно читал книжку про Enterprise Applications Integration DrKonito, поделитесь, что за книжка, что пишут, какие ощущения? David S. Linthicum "Enterprise Application Integration" Publisher: Addison Wesley First Edition November 05, 1999 ISBN: 0-201-61583-5, 400 pages Где брал не помню - поищите где-нибудь на http://ebuki.apvs.ru/ и в подобных местах ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 15:56 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Дмитрий СорокинСовсем затютали простого рабочего:) Все, конечно, правильно. 2-хзвенка, точнее говоря т.н. "терминальные" решения, когда все-все крутится на SQL-сервере, а у клиента лишь создается интерфейс, при хорошей архитектуре данных и вылизанном коде и проще и производительнее и дешевле многозвенки. Но есть один неприятный недостаток SQL-языка - это его "процедурность", что ли. В таком стиле писали в 70-е годы на мэйнфреймах. Вспомните фортран и PL/1:) Когда я смотрю в Query Analyser на структуру нашей БД - э ато тысячи таблиц, вьюх, хранимых процедур, функций - меня коробит, прямо. В нормальных языках программирования творческая мысль не стояла на месте -OOP, методы коллективной разработки, контроль версий и т.д. Кто сейчас лабает на чистом C? Или на форте (а класный был язык:). А вот SQL почему-то застыл на месте. Нет, появляются, конечно, всякие новые операторы, вот SQL2005 уже до TRY/CATCH почти дорос:), но, блин, почему нельзя сделать из SQL нормальный объектно-ориентированный язык? Только не надо мне говорить насчет объектно-ориентированных баз данных - это совсем другое. БД пусть остается реляционной - но язык пусть станет нормальным! Кстати, лет 5 назад microsoft громогласно кричал, что вместе с TSQL в SQL2005 можно будет native програмировать на C# или VB.NET. И во что это вылилось? В возможность регистрировать свои сборки на сервере? Блин! Extended SP, только вид сбоку. По моему, это заговор сторонников трехзвенки:) Может подумать, как из SQL с минимумом изменений сделать что-то вроде OOP языка? Типа SQL++? Да еще и стандартизовать его. Тогда, наверное, никто больше о серверах приложений и не вспомнит:) И что Вы на этом ООП SQL делать собираетесь ? Учитесь запросами и с множествами работать, а не записи лопатить. Тогда окажется, что в ХП и триггерах минимум кода, а динамический SQL дает колоссальные возможности в динамической сборке и выполнения скриптов для задач с изменяющимися версиями алгоритмов, что кстати в ООП языках, не так то легко достигается. P.S. И спрашивается, зачем по TSQL судить о языках хранимых процедур других РСУБД ? Мало ли, когда там MS догадалась сделать обработку исключений, когда у других все с прошлого века есть - это личные проблемы MS и не нужно под их гребенку равнять остальные РСУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 16:05 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Один1 Самый писк - service oriented programming Ушли читать книги. Эти самые сервисы - тоже трехзвенка вроде - только доступ стандартизирован. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 16:05 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Дмитрий Сорокин Только не надо мне говорить насчет объектно-ориентированных баз данных - это совсем другое. БД пусть остается реляционной - но язык пусть станет нормальным! Кстати, лет 5 назад microsoft громогласно кричал, что вместе с TSQL в SQL2005 можно будет native програмировать на C# или VB.NET. И во что это вылилось? В возможность регистрировать свои сборки на сервере? Блин! Extended SP, только вид сбоку. По моему, это заговор сторонников трехзвенки:) Может подумать, как из SQL с минимумом изменений сделать что-то вроде OOP языка? Типа SQL++? Да еще и стандартизовать его. Тогда, наверное, никто больше о серверах приложений и не вспомнит:) Заговора никакого нет- голая целесообразность: Для Микрософта это простой расчет: при двузвенке - 1 сервер БД = 20тыс при трехзвенке - 1 сервер БД + 10 апп серверов по Win 2000Server = 20 + 20 = 40 тыс + стратегические выгоды от перетаскивания разработчиков с относительно космополитичного SQL на проприетарную платформу НЕТ Для Сана все также очень просто: при двухзвенке: железка под сервер БД - 1 штука при трехзвенке: железка под сервер БД + 10 железок под апп-сервера + стратегические выгоды от перетаскивания разработчиков на платформу Жаба Для поставщиков апп-серверов (БЕА) и так все понятно Про Оракл не скажу- очень далек я от него. Хотя и без оракла денег у первых двух игроков достаточно чтобы как следует пропиарить любые архитектурные решения :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 16:33 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
DrKonito Про Оракл не скажу- очень далек я от него. Хотя и без оракла денег у первых двух игроков достаточно чтобы как следует пропиарить любые архитектурные решения :) Оракл тоже производит свой J2EE сервер, с которым работает их E-Business Suite. Я бы сюда добавил еще ИБМ с вебсферой и SAP - когда то давно они придумали некий заменитель SQL - ABAP - язык и процессор отчетов (читай - сервер приложений). Делали они это не от хорошей жизни - им надо было слезть с ассемблера:) Тогда, насколько я понимаю, SQL еще не придумали:) Еще я сказал бы, что сервера приложений выгодны IT-менеджерам - под них можно выбить дополнительные ставки админов и программеров, новое железо и серверное помещение, да и откаты растут:) Еще она выгодна программерам - изучая ABAP или J2EE повышаешь свою рыночную стоимость:) Все мы видели объявления "ищу программистов на ABAP, оклад - 3 штуки... А кто видел объявления "ищу программистов на SQL за 3 штуки"? Вообщем - трехзвенка, похоже, выгодна всем, кроме тех, кто на ней работает:) Но кого интересуют такие мелочи:) Так что, господа ретрограды - вперед, к трехзвенке! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 17:21 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
2 Дмитрий Сорокин Вы хоть пример такого ООП-SQL языка предложите - а то я не пойму, об чем вы? Чем вам не нравится sql? Что там такого нельзя сделать? Не пойму я. -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 17:42 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Дмитрий Сорокин Может подумать, как из SQL с минимумом изменений сделать что-то вроде OOP языка? Типа SQL++? Да еще и стандартизовать его. Тогда, наверное, никто больше о серверах приложений и не вспомнит:) Есть такой язык, OQL называется. Кое-где даже реализован. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 17:46 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
tygra2 Дмитрий Сорокин Вы хоть пример такого ООП-SQL языка предложите - а то я не пойму, об чем вы? Чем вам не нравится sql? Что там такого нельзя сделать? Не пойму я. -- Tygra's -- Сделать то на SQL все можно! Сам делаю. Только возмите к примеру С и С++. Или обычный паскаль и Delphi. А еще лучше С и С#. На ООП-языках можно добиться гораздо более красивой и стройной архитектуры приложения, чем на процедурных. Можно порассуждать, что тут можно сделать с SQL. У ООП есть 3 важнейшие свойства: 1. Инкапсуляция - код и данные вместе. В SQL уже есть что-то подобное - триггера. Может пойти дальше и привязывать к таблицам хранимые процедуры? Или вообще отказаться от понятия отдельно стоящей процедуры, пусть любая процедура является чьим-то методом (да хоть некоего функционального класса). Кстати, сюда можно будет впихнуть и понятие области видимости - public и private. 2. Полиморфизм - один общий интерфейс объединяет множество процедур, делающих похожие вещи. Ну, к примеру, иметь возможность объединять процедуры с разными форматами вызова под одним названием - сервер пусть сам решает, какую процедуру вызыват - например в зависимости от типов и числа параметров. 3. Неследование. Пусть таблицы и привязанные к ним процедуры (объекты) можно будет использовать как шаблон (или родитель) при создании новых объектов. У этих объектов потом можно будет переопределять свойства (поля) и методы (процедуры) PS. Прошу ногами не пинать - сам вижу, что бред получается:) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 18:23 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Все дело в том, что Вы пытаетесь в РСУБД мыслить рамками реализации вот уж действительно процедурных ООП языков. Как говориться, привыкли уже думать известными способами решения. Однако и ООП языки были придуманы не просто так, я для реализации поставленных задач. Так вот если рассматривать именно решение задач, то оказывается, все навороты ООП абсолютно не нужны, просто нужны другие подходы и другой взгляд на решение проблем в абсолютно другом разрезе. ООП изначально предполагает работу с единичными обьектами, SQL изначально работа с множествами. Имея на борту динамический SQL (фактически свой встроенный интрепретируемый язык), можно логику расписывать на уровне метасхемы, которая хранится в табличках и при сборке можно запросами выжать с алгоритмов гораздо больше и гибче, чем реализовывая это на интерфейсах в ООП. Имея представления об организации деревьев на SQL (и тем более, если РСУБД поддерживает рекурсивные запросы), можно элементарно организовать наследование на уровне аттрибутов обьектов. Делать наследование самих таблиц в БД я смысла совершенно не вижу - достаточно сделать главную таблицу и дочерние, которые в зависимости от типа обьекта в записи содержат необходимые для него аттрибуты и использовать LEFT JOIN, функциональность будет та же. В общем список можно долго продолжать - выглядит в SQL совершенно по другому, но по спектру решений ничем не уступает, а даже превосходит ООП в той области, для которой SQL и был создан - обработка данных. Как аналогично функциональные языки так же превосходят ООП в своих областях применения. Я лично не могу сказать, что ООП удобен для обработки данных, он удобен для реализации алгоритмов, здесь даже функциональные языки оказываются предпочительней, где в принципе и SQL в какой то мере можно наверное отнести близким родственником к функциональным языкам с моей точки зрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 19:03 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Простому рабочему. >А не проще ли шифровать трафик на шлюзах в интернет? Ссылку на статью, где рассказываю как строю прототип (типовую модель) многозвенки, ранее уже приводил. Схема передачи данных клиентские приложения <--> .Net сервис <--> абонентские <--> сервера (WinForm приложение) поверх IIS ящики приложений <--> сервер данных с точки зрения безопасности более разумно делать криптооперации на клиентых и серверах приложений. Серверов приложений столько, скольно надо для опримизации работы сервера данных. Клиентские приложения и сервера приложений сериализуют/десериализуют, архивируют/деархивируют и шифруют/дешифруют запросы/ответы >Работать-то работает, пока эта задача не выйдет за пределы локальной сети. На каких фактах базируется это заключение? IIS? С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2005, 21:19 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Дмитрий СорокинМожет подумать, как из SQL с минимумом изменений сделать что-то вроде OOP языка? Типа SQL++? Да еще и стандартизовать его. Тогда, наверное, никто больше о серверах приложений и не вспомнит:) Ну не могу не вспомнить старый добрый Visual FoxPro 8.0 :) Как раз он позиционируется Microsof для написания слоя БЛ (ессно что командой разработки его самого). Кстати, Fox живет и развивается ... С ностальгией вспоминаю дни работы с VFP (даже наверное, не работы, а учебы). В общем, вкратце о разработанной мной системе: В 2002 писал по курсовому проекту для предприятия ЖЭУ систему (прием платежей, расчета квартплаты и пр. бизнес-правила). Уровень представления был написан на Borland C++ Builder 6.0 - лучшего средства в те времена для построения UI, я считаю, не было. Уровень бизнес-логики был реализован в in-process automation сервере на VFP 7.0/8.0 beta Уровень данных на том же VFP. БД с триггерами и ограничениями целостности. Система реально тестировалась как многопользовательская файл-серверная, т.е. файлы БД лежали на сетевом ресурсе. Здесь могло быть много вариантов физического расположения слоев (при минимальном изменении технологий) и, как следствие, хорошее масштабирование. В планах было: перевод БД на MS SQL, а уровня БЛ в out-of-process automation server и связи с уровнем представления по DCOM – ну чем не 3-х уровневая архитектура с сервером приложений? Но что мог сделать один студент в насквозь совковой конторе? (Они до сих пор работают в файл-серверной ДОСовской программе). Конечно, у VFP куча минусов и непоняток, но для написания уровня БЛ я, до сих пор, считаю, что это лучшее решение и причиной тому - самая сладкая синтаксическая парочка SQL+OOP-language (из виденных мною). Сейчас появился Cw (си-омега) .NET с поддержкой SQL, XPath и параллельного программирования (и пр. полезных вещей), но среда разработки интегрированная в VS ещё слишком сырая (редактор XAML-овских форм). Может, кто использовал VFP для написания уровня БЛ, может с Web-services, или ещё как? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2005, 00:19 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
vialexis Конечно, у VFP куча минусов и непоняток, но для написания уровня БЛ я, до сих пор, считаю, что это лучшее решение и причиной тому - самая сладкая синтаксическая парочка SQL+OOP-language (из виденных мною). Сейчас появился Cw (си-омега) .NET с поддержкой SQL, XPath и параллельного программирования (и пр. полезных вещей), но среда разработки интегрированная в VS ещё слишком сырая (редактор XAML-овских форм). Блин, так как раз таких сладких парочек и хочется избежать! Получается, мы должны использовать сервер приложений только для того, чтобы "объектизировать" данные, хранящиеся в БД и создать красивую архитектуру приложения. Мы сейчас сами занимаемся этим (см. мои посты выше), но ведь не из-за того, что нам заняться нечем! Посмотрите все стандартные рекомендации по созданию среднего слоя: "создайте класс INVOICE, опишите связь этого класса с таблицей INVOICE на уровне get/set, добавьте необходимые методы (чья логика обычно остается в хранимых процедурах) и тд. Почему нельзя это делать уже на уровне сервера БД, где хранятся все данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2005, 09:47 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
Почему же нельзя? Посмотрите в сторону Cashe. -------------------- Не учи отца и баста! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2005, 10:08 |
|
Создание сервера приложений
|
|||
---|---|---|---|
#18+
2 Дмитрий Сорокин ASCRUS уже ответил, добавить нечего. Кстати, этот же пост желательно прочитать vialexis . Потому как утверждение авторКонечно, у VFP куча минусов и непоняток, но для написания уровня БЛ я, до сих пор, считаю, что это лучшее решение и причиной тому - самая сладкая синтаксическая парочка SQL+OOP-language (из виденных мною). именно как раз из-за того, что пытаетесь скрестить ежа и ужа, и не видели ничего другого (наверное), путево реализованного с БД на сервере БД. Это конечно естественно - я после Фокса тоже не сразу привык разделять систему на клиентскую часть, которая только отображает, и серверную часть, а собственно БД, которая все и делает. Но ничего, прошло - сейчас уже не могу по другому. Никто не заставит держать БЛ на клиенте или каком там звене - бррр. -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2005, 10:14 |
|
|
start [/forum/topic.php?fid=33&msg=33309476&tid=1548944]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
133ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 252ms |
0 / 0 |