|  | 
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ До сего момента работал только с двухуровневыми приложениями БД (клиент-сервер). В настоящий момент есть огромное желание изучить трехзвенку. Кто может помочь ссылками либо путными книгами? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.07.2003, 20:40 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Кросспостинги не приветсвуются. Вам ответят на Ваш постинг в форуме по Delphi.  Если захочут. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 01:03 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ захотят. :) а что трезвенки только дельфины умеют делать?  во прикол  всегда считал, что трезвенка это трезвенка, а делфай всего-лишь один из инструментов. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 02:09 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ нда..... почитал я что там пишут. толпа _ламеров_ рассуждает что лучше трезвенка и двузвегка. сразу скажу почему ламеры. для этого расскажу историю из моей жизни: Перец: Линукс - сакс и мастдай! (к слову я не люблю линукс) Я: Почему? Перец: Я его даже поставить не смог! Тоже в том треде. Сравнивают дву и трезвенку люди которые не делали нормальных проектов на третьем звене никогда. Когда человек начинает орать что третье звено сакс и мастдай не сделав на нем ни одного проекта -- все что я могу сказать про этого человека что он ламер. Я делал трезвенку, даже не трех.... распределенная система с кешами. я делал двузвенные системы. прочитав все что там написано у меня возникло единственное чуство: мне жаль всех новичков, мозги которых будут "изуродованны" скопом товарищей способных ляпать маленькие программки, людей которые не видели никогда больших систем и считают что мир ограничевается их знаниями. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 02:33 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Анекдот в догонку: - А Вы кошек любите? - Нет! - А-а-а! А Вы их просто готовить не умеете! ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 04:23 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ 2 Ученик: \r До сего момента работал только с двухуровневыми приложениями БД (клиент-сервер). В настоящий момент есть огромное желание изучить трехзвенку. Кто может помочь ссылками либо путными книгами? \r \r IMHO нет книжек, посвященных только данному типу архитектуры. Я много видел книг по архитектурам, их проектированию и вообще инженерии ПО (те же Липаев, Ларман, Кратчен, Смит, Мацяшек и тд). (Может и появились надо на Ozon.ru - компьютерная литература "Проектирование ПО" посмотреть.) Нет там даже глав, посвященных каким-то особенностям именно типов архитектур , а трехзвенность это просто тип (см. подскажите о выборе архитектуры для корпоративной информационной системы (стр.3) (Дата: 30 май 03, 23:31)) . Да, даны определения трехзвенного типа, а остальное - рассказы про проектирование архитектуры, ее качество и т.д., т.е не самого типа, а именно реализации архитектуры (NET/J2EE, Web/неWeb и т.д). Книга про трехзвенку - это все равно что книга, посвященная, например, представлению/подходу MVC или универсальному архитектурному шаблону. Практически, нет предмета для книги. Обычно не так интересен тип архитектуры (например, двузвенная или многозвенная), а ее реализация (компонентная, программная и т.д). Попробуйте начать проектировать, опираясь на свои знания по двузенной архитектуре. Тогда у вас возможно появятся более конкретные вопросы, к-рые уже можно будет обсуждать, например, здесь или искать на них ответы в книгах (по J2EE, ADO, MSSQL и т.д). Что касается определений и общего знакомства, то посмотрите документации MSDN или J2SE/EE SDK. Там это есть, а все остальное опять же про конкретную реализацию ASP/JSP, COM/CORBA, ADO/JDBC и тд и т.п. Что же касается таких стандартных принципов, касающихся компонентности, связности, увязки, единого пространства имен, параллелизма и т.д, то они работают как в двузвенной так и в трехзвенной типах архитектур ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 09:08 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Попробую прояснить ситуацию.  Есть весьма приличный опыт по разработке клиент-серверных систем. Естественно, вся логика отрабатывается хранимыми процедурами на сервере БД. Но сложность задач увеличивается настолько, что внутри одних только ХП ее решить становится уже невозможно. Вот и приходится посматривать в сторону 3-х звенки, т.е. вынесения бизнес логики и части подсистемы безопасности на промежуточное звено - сервер приложений. Используемые СУБД - MSSQL, Sybase ASE & ASA. Клиентская часть писалась на Delphi. C Ораклом поработать не довелось. Сейчас начинаю изучать midas (тот что от Борланда). Думаю, что сузил круг своих "интересов". Если у кого есть готовые примеры по этой части, поделитесь пожалуйста. Либо книгами, ссылками на материалы в интернете. Спасибо. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 11:21 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Но сложность задач увеличивается настолько, что внутри одних только ХП ее решить становится уже невозможно  Что же это за задачи-то такие? Расскажите по-подробней. Есть много аргументов за и против 3-х звенок, но вот сложность задачи - э.... по-моему, как правило, это заблуждение. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 12:45 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ папа Карло  Когда человек начинает орать что третье звено сакс и мастдай не сделав на нем ни одного проекта -- все что я могу сказать про этого человека что он ламер. Хе хе - не согласен. Ламер - это человек широкого профиля по отсутствию знаний в некой области. Проф наоборот - человек с углубленными знаниями в некой области в определенной технологии. Так что если кто и орут, так это профы, а не ламеры - с чего ламерам то орать, когда они ничего не знают и не имеют собственных взглядов на проблему. В основном тут проблема я бы сказал чисто психологическая, а не отраслевая - человек выбрал технологию и естественно будет ее отстаивать при сравнениях с другими конкурирующими технологиями. Это просто надо перерасти. Как только до человека дойдет, что главное не технология, а правильный и мотивированный выбор соотвествующей технологии под поставленную задачу и любые вопросы "что лучше" отпадут сами собой. Ученик Если не секрет, поделитесь что за условия возникли в задаче, благодаря которым Вы не можете ее расчетную часть реализовать средствами СУБД ? Мне просто интересно с практической точки зрения, как проектировщику БД. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 13:03 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ 2  ASCRUS  Ну чтож, пожалуйста. Требования по безопасности: система должна быть дурако и хакеро устойчивой, любой пользователь может получить только те данные, на которые он имеет права. Т.е. пользователь установив у себя Access и подключившись через него к базе не мог ничего увидеть, не говоря о том, чтобы что-то там исправить. (Речь идет о двузвенке и авторизации пользователя средствами SQL сервера). Почему нельзя давать права на чтение. Представьте себе, что будет если простой оператор выполнит в ISQLw следующие запросы, а результаты выставит на всеобщее обозрение: Код: plaintext 1. 1. Есть некий упрощенный вариант складской системы. Сущности: Контрагент, документ (шапка), товарная позиция документа (например строчка в расходной накладной), товар, товарная группа. Есть реестр неких документов (например расходных) накладных. Требуется отфильтровать эти документы по любому из полей и сочетанию полей документа. Например, мы хотим получить список расходных накладных в диапазоне дат, и чтобы у получателя товара обязательно была еще и дисконтная карта. (Т.е. простой розничный покупатель нас не интересует.) Потом приходит менеджер направления и просит из этого списка отобрать только накладные с его товарными группами и определенными товарами другого , но смежного, соседнего направления. 2. Теперь берем CRM систему. Основная сущность - клиент со множеством связанных с ней других сущностей: адрес, способы связи (тел, факс, email, ...), проект, действие (телефонный разговор, проведенная встреча, ...). Ограничения на видимость: менеждер работает только с своими клиентами (и видит только их), оператор - только с тем, что создал за сегодя (в рамках имеющихся у него прав), начальниг отдела - все в своем отделе (но только видит и ничего не изменяет), ... некоторые отделы/подразделения имеют право видеть данные некоторых других отделов. И вот в рамках всего этого пользователь хочет получить весь список доступных ему клиентов, а кроме этого наложить фильтр по определенным видам деятельности, степени активности, результатам контактов, ... Естественно, в клиент-сервере это все делается через вызов некой процедуры GetAllClients. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 15:32 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ про реальную практическую трехзвенку можно посмотреть в форумах по ASP.Net и .Net, если там, конечно, это обсуждается, конкретно, искать надо WebService, он же SOAP то есть приложение дергает по http сервис, который, в свою очередь, дергает то, что ему нужно, базы данных, другие сервисы, приложения и пр., т.е. как раз вся сложная логика очень удобно в него зашивается мы строили нечто подобное, так там, если начинать считать звенья, их от 5 до 8 выходило :) а вот чтобы чисто по теории с чего начать, так даже и не знаю в MS Press есть книжка именно по разработке баз данных, там трехзвенка изложена, называется не помню как, средней толщины, на обложке нечто зеленое на черном фоне :) а, вот, нашел http://www.ozon.ru/?context=detail&id=151135 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 16:11 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Собственно, пока я не нашел ничего такого сложного, что было бы невозможно реализовать средствами SQL сервера. И даже более - типичная складская задача. И почему она должна делать именно в рамках 3-хзвенки, пока непонятно. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 18:34 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ ASCRUS  Так что если кто и орут, так это профы, а не ламеры - с чего ламерам то орать, когда они ничего не знают и не имеют собственных взглядов на проблему. этим ламер от чайника и отличается, что ламер говорит как надо делать или утвердает что-то не зная этого, а чайник говорит сразу что он/она этого не знает. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 18:43 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ папа Карло  А орут вот все равно профы :) Сидит например человек лет 7 в Delphi и когда слышит, что кто то на форуме обсуждает, что нехорошо батенька данные в парадоксных табличках хранить, страшно начинает возмущаться - типа как это не хорошо, работает же :) Или тот же пример с Access, в который по старинке многие "деды" программеры пытаются такие проекты всунуть, что волосы дыбом встают. Ученик Действительно - пока повода покидать стан 2-звенщиков нет :) Если уж так важна защита, то например самое примитивное решение - все таблицы закрыты на доступ, вся работа с выборкой и сохранением изменений ведется посредством ХП. А там что хотите, то и творите. - раздали гранты на выполнение ХП, а в них уже и определились кому что надо возвращать и кто что может изменять. Ну а все остальное Вами перечисленное элементарно решается запросами. Зачем огород с 3-звеном городить в данном случае не понятно. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 18:57 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ 2 Ученик (по мотивам ответа ASCRUS :-) А если неудобно ХП использовать, еще в СУБД представления есть (view по нашему:-) - тоже позволяют доступ разграничивать как угодно. ИМХО, разумеется :-) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 20:13 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Действительно - пока повода покидать стан 2-звенщиков нет :) все с тобой понятно. :) и рассуждения тоже понятны. доказать тебе что тот подход не верен не имеет смысла. тебе пережить это надо. доказать что не всегда имеет смысл закладывать бизнес логику на уровень БД разумно не всегда тоже не буду. дам единственный совет. лучше отучиться говорить за всех. есть целый ряд приложений которые невозможно сделать на двузвенной технологии без огромных вложений денег. если учесть что бюджет проекта и продукта в нормальных местах определяют заранее, то реализовать подобные проеткы на двузвенке вообще не представляется возможным. добавлю, что тебя с удовольствием возьмут в МС. там любыт людей которые помогают зарабатывать им деньги. пропагандируя размещать больше логики и покупать дороже железки мы помогаем им. :) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 20:22 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ 2 папа Карло Не стоит переходить на личности. Относительно многозвенок ничего сказать не могу, ни разу не пробовал :-), но вот, например, в начале третьего тысячелетия немалое количество задач не требует и клиент-серверных решений, вполне себе можно обходиться консольными (читай досовскими) файл-серверными програмками и отлично себя чувствовать, если безопасность и надежность хранения данных некритичны, а админа содержать дороговато :-). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 20:38 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ там вагон смайликов специально чтобы это не было персональным наездом.  двузвенка это один из подходов к решению проблеммы. одно из отлиций от многозвенок, это то, что масштабировать многозвенку много проще и дешевле чем двузвенку. у двузвенки есть предел. у распределенной системы "почти" нет. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 21:31 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ PL99  А если неудобно ХП использовать, еще в СУБД представления есть (view по нашему:-) - тоже позволяют доступ разграничивать как угодно. Если я закрыл доступ на таблицы, но раздал права на представления, то тот же пользователь написав в QA запрос вида Код: plaintext получит неположенные ему данные. В крупных конторых об этом уже задумываются. ASCRUS Передо мной встала задача создать систему фильтров произвольной сложности по реестру документов. Любые условия могут налагаться на любые поля из списка, а также на некоторые (а может быть и любые) поля из связанных таблиц. Пока обхожусь динамическим SQL синтаксисом. Т.е. если мне (точнее пользователю) нужно получить только список накладных за последние 3 дня, то внутри ХП будет сформирован и выполнен запрос Код: plaintext Далее, нужно получить все выписанные, но неотгруженные накладные за последние 2 дня: Код: plaintext 1. Теперь тоже самое, но только для товара 'Потолочная люстра зеленая N158-D' Код: plaintext 1. 2. 3. 4. 5. Я могу в тексте процедуры динамически формировать предложения From и Where, но в MSSQL успешное выполнение динамического синтаксиса требует наличие прав у юзера на то, что в этом DSQL написано. И мне пришлось открывать доступ на чтение всем к таблицам с документами. А в случае промежуточного слоя, этого бы не было. Вы, ASCRUS, наверное скажете, мол, уходи с MS на Sybase ASA, там это можно сделать, но ASA это СУБД для рабоих групп. Т.е. кол-во юзеров не рекомендуется превышать 20-30. А у меня их за сотню. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 21:34 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Ученик писал: SELECT * FROM MySuperView получит неположенные ему данные. В крупных конторых об этом уже задумываются. Видно недавно они крупными стали, если только сейчас об этом задумались. Во вьюхах можно сделать горизонтальное разбиение, что бы юзер видел только то, что ему положено. И еще вопросик. А откуда юзер знает имя вьюхи? Я не говорю, что это нельзя узнать, просто для этого надо предпринимать некие целенаправленные и нетривиальные действия. Впрочем, на мой взгляд, хранимые процедуры, с точки зрения безопасности предпочтительнее, так как могут быть более гибко настроены. Про один из способов реализации WHERE с "переменным" числом параметров без динамического SQL можно посмотреть FAQ. http://www.sql.ru/faq/faq_topic.aspx?fid=114 Ученик. Прощу прощения, но если Вы не знаете как что-то можно сделать, то это не значит, что это сделать невозможно. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2003, 23:23 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Cat2 Я уже давно знаю про указанные Вами. Только он работает тогда, когда на каждое поле можно наложить только одно условие и эти условия объединены по И. А мне нужно на поле наложить столько условий, сколько я хочу. И объединить их так как я хочу. Так однажды потребовалось получить список документов за понедельник, среду и четверг. Один список. Т.е. что-то типа этого: Код: plaintext 1. 2. 3. Как Вы сможете реализовать такой фильтр? Я однажды посмотрел план выполнения запроса, несколько похожего на Ваш, в случае, когда все параметры были Null: Код: plaintext 1. 2. 3. 4. 5. План сильно отличался от прана вот такого запроса: Код: plaintext 1. Время выполнения, кстати тоже. А у меня, как еще и несколько таблиц (контрагент, документ, товарная позиция документа, товар, товарная группа). Это на сколько же упадет производительность SQL сервера в этом случае? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2003, 01:37 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ папа Карло  Ну со мной понятно только одно - сначала я хочу видеть причины выбора методик решения задачи и насколько они оправданы. Если я вижу что проблема надумана или же вообще с другой оперы, то мне всегда интересно, с чего это ее еще хотят и усложнить. Ну давайте теперь все писать на 3-звенках, рассуждая что если они могут все, то остальное ничего не нужно. Берем ту же постановку кадров или бухгалтерии - тут явно без 3-звенки не обойтись, то то 1С теперь все на 3-е звено перекладывает, наверное вняло советам. Кстати не понимаю, чего Вас так и себя мое заявление вывело насчет того, что в данном случае 3-звенка не нужна. Она действительно не нужна, потому как проблема решается не с той стороны, поэтому и идет усложнение реализации. Я вообще то просто попросил рассказать проблему. добавлю, что тебя с удовольствием возьмут в МС Я надеюсь, что меня с удовольствием возьмут на работу любые работодатели, ценящие здравомыслие и практичность. Если в MS это ценят я могу работать и на них, если передо мной будут поставленны интересные задачи и достойным образом решен финансовый вопрос. P.S. И не надо меня таким вот ярым 2-звенщиком изображать, я кстати с 89 года с ООП знаком и уже на TP 5.5 писал зачатки движка БД и визуально событийное программирование, а то прям создается впечатление, что я кроме SQL ничего и не видел, что на самом деле не так, я с SQL всего то с 98 года работаю. Ученик ну во первых ни кого я не агитирую за ту же ASA, я только в форумах сравниваю ее с другими СУБД. Ни разу не помню, чтобы я написал - "Народ бросаем все и айда на ASA или чего еще" (тот же PB) :) Во вторых динамические фильтры как то далеко от бизнес-логики, эта задача уже ближе к логике клиента стоит, так как ни на целостность, ни на изменения содержимого БД они никак не влияют. Надеюсь папа Карло опять не взъестся, но опять подчеркну, что из за такого вот усложнять систему это просто смешно. В третьих давайте рассмотрим Вашу постановку задачи, так сказать, чтобы понять, правильно ли присутствующие здесь ее поняли: a) в системе поддерживаются роли пользователей и документы, которые доступны для просмотра и изменения их владельцам или же назначенным по разрешениям указанным ролям пользователей б) для оперативного анализа информации требуется ее получение в неизвестном кол-ве разрезов, но опять же с учетом установленных прав пользователей Если я все правильно описал, то логически вытекает, что задача то двух- уровневая, то есть решается одновременно в двух уровнях: клиентской и серверной части. Все описания прав пользователей и их привязки по юзерам БД естественно храним в БД. Всякие динамические запросы должен сам клиент генерить, с чего это вдруг с него работу на сервер перекладывать, которую он выполнять и должен. Как все это организовать тоже пока проблем не вижу - закрываем на просмотр таблицы, создаем на них вьювер, в котором по User_ID() не забываем отобрать то множество информации, которое пользователю полагается видеть. Ну а клиент уже может генерить как ему вздумается скрипты на эти вьюверы и радоваться жизни. P.S. Вот так вот :) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2003, 03:38 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ Ученик Ответ на пост 30 июля 2003 01:37 Да Вы совершенно правы, запрос из FAQ со всеми NULL работает намного хуже, чем тот же, но вообще без параметров отбора. Но где и когда нужно возвращать юзеру ПОЛНУЮ таблицу? На выборках, которые возвращают более 1000 (это мое мнение, некоторые считают, что более 3000) записей можно и нужно ограничивать юзера, заставляя обязательно ставить критерии. Да, кстати. FAQ надо переделать. Если в том примере в умолчаниях ставить не NULL, а какие-то конкретные параметры, план резко улучшается. Как сделать выбор из нескольких дат без динамики. Один из вариантов Код: plaintext 1. 2. 3. 4. 5. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2003, 08:07 |  | ||
| 
С чего начать изучение трехзвенки ? | |||
|---|---|---|---|
| #18+ 2 All: \r Ну вот, как оказалось 3-звенка автору топика вовсе и не нужна! А нужен был "Cat2" :о)\r Нет, 3-звенка имеет, конечно, очевидные преимущества (вы все о них знаете), но весь вопрос в том перевесят ли они те сложности , к-рые возникнут с переходом на 3-звенность ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2003, 08:59 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=179&tid=1546885]: | 0ms | 
| get settings: | 8ms | 
| get forum list: | 12ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 34ms | 
| get topic data: | 11ms | 
| get forum data: | 3ms | 
| get page messages: | 64ms | 
| get tp. blocked users: | 2ms | 
| others: | 11ms | 
| total: | 153ms | 

| 0 / 0 | 
