|
|
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
Согласен с Репликант. Развертывать и администрировать два сервера (БД и приложения) сложнее и дороже чем один ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 09:52 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
по поводу задач, которые на sql-сервер не стоит перекладывать с математикой у него тяжело, бинарные операции еще туда-сюда, обойтись можно, а вот операции с матрицами совсем тяжко идут, скомпилированный компонент в сотни раз быстрее все считает в таких вещах БД как источник и хранилище хорошо использовать про расширенные процедуры не стоит говорить, т.к. если она упадет, то вместе с сервером, а сервер должен жить, и, кстати, .net из-под sql server не работает, для многих это уже важно в распределенных системах многозвенка тоже хороша, т.к. открывать надо для доступа не сам сервер БД, а всего лишь сервис, который если и сдохнет, то не страшно и потом, сервис - это не пользователь, который может делать нетривиальные вещи и совать свой нос куда не надо, нормальный сервис делает только то что ему сказано в системе произвольной фильтрации можно забрать массив с сервера БД, (пусть даже на него уже будут наложены некоторые базовые условия, чтобы совсем все не тащить к себе), потом наложить на него сколько надо условий и передать клиенту, клиент сырой массив никогда не увидит и уж тем более не получит доступ к сервисам БД при этом, распараллеливать нагрузку можно не очень трудно, т.к. средних звеньев может быть несколько и они могут выполнять разные функции обработки, а на основной сервер данных нагрузка по обработке не будет ложиться, его можно и для других целей попользовать, по более прямому назначению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 15:08 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
ASCRUS писал:Берем ту же постановку кадров или бухгалтерии - тут явно без 3-звенки не обойтись Я сейчас занимаюсь предпроектным исследованием. Не могли бы Вы более подробно объяснить это утверждение. Меня особенно интересуют кадры. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 17:34 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
AndrewS Это утверждение желательно в контексте всего моего ответа рассматривать :) Я наоборот привел на основе Кадров пример, что там 3-е звено просто не нужно. Под вопросом даже стоит целесообразность использования СУБД, так как Кадры программа информационно-накопительная и в принципе для хранения данных подойдет тот же Jet движок. Другое дело, что если Кадры пишутся в комплексе вместе с зарплатой, тогда естественно будет удобнее и правильней хранить их данные на СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 18:35 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
ASCRUS писал:Другое дело, что если Кадры пишутся в комплексе вместе с зарплатой, тогда естественно будет удобнее и правильней хранить их данные на СУБД В моем случае Кадры являются одной из подсистем на крупном предприятии и идут в комплексе с зарплатой, складом и проч. Просто хотелось узнать о целесообразности использования 3-го звена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2003, 18:48 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
PL99 Согласен с Репликант. Развертывать и администрировать два сервера (БД и приложения) сложнее и дороже чем один все зависит от архитектуры и процесса. :) ASCRUS Ну со мной понятно только одно - сначала я хочу видеть причины выбора методик решения задачи и насколько они оправданы. Если я вижу что проблема надумана или же вообще с другой оперы, то мне всегда интересно, с чего это ее еще хотят и усложнить. Ну давайте теперь все писать на 3-звенках, рассуждая что если они могут все, то остальное ничего не нужно. Я не утверждаю что трезвенка лучше двузвенки. я не утверждаю что трезвенка панацея. Я могу привести пример где двузвенка будет рулить, а могу привести пример который ты на двузвенке не сделаешь. :) Берем ту же постановку кадров или бухгалтерии - тут явно без 3-звенки не обойтись, то то 1С теперь все на 3-е звено перекладывает, наверное вняло советам. Кстати не понимаю, чего Вас так и себя мое заявление вывело насчет того, что в данном случае 3-звенка не нужна. Она действительно не нужна, потому как проблема решается не с той стороны, поэтому и идет усложнение реализации. Я вообще то просто попросил рассказать проблему. человек не спрашивал о чем-то конкретном. он абстрактно спросил о трезвенке. народ начал требовать для чего надо, да зачем. почему просто человеку не дать самому выбрать что он хочет? расскажи ему про двузвенку я расскажу про распрделенные системы с десятками тысяч онлайн юзеров. и он сам быдет выбирать Я надеюсь, что меня с удовольствием возьмут на работу любые работодатели, ценящие здравомыслие и практичность. Если в MS это ценят я могу работать и на них, если передо мной будут поставленны интересные задачи и достойным образом решен финансовый вопрос. про здравомыслие: а кто тебе сказал что ты всегда принимаешь правильные решения? :) вот тебе пример: я сделал архитектуру которая всем понравилась итд итп..... после был разговор с директором.... он сказал что надо ее немного сломать и убрать кое какую функциональность. я сказал... это не логично.... продукт потеряет value. на что мне сказали что именно это и надо. надо чтобы клиент купил это, а потом заплатил еще 100 штук баксов. это практично? что ты бы делал? (ситуация реальная. я ухудшил систему которая уже работала). P.S. И не надо меня таким вот ярым 2-звенщиком изображать, я кстати с 89 года с ООП знаком и уже на TP 5.5 писал зачатки движка БД и визуально событийное программирование, а то прям создается впечатление, что я кроме SQL ничего и не видел, что на самом деле не так, я с SQL всего то с 98 года работаю. при чем ООП и двузвенщик? я тоже много чего знаю. только нужны тебе мои пальцы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 03:12 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
2 xGuest: с математикой у него тяжело, бинарные операции еще туда-сюда, обойтись можно, а вот операции с матрицами совсем тяжко идут, ... Так он и не предназначался для матриц. Перекладывать на него сложную математику можно только от безысходности или с больной головы :о) про расширенные процедуры не стоит говорить, т.к. если она упадет, то вместе с сервером, а сервер должен жить, и, кстати, .net из-под sql server не работает, для многих это уже важно Зачем писать какую-то расширяющую dll к MSSQL когда для той же Win2000 можно написать отдельный COM+ сервис на VС, например, с помощью того же MATLAB-Maple, к-рый будет эти матрицы обсчитывать? Пусть даже это будет и не совсем 3-звенная архитектура в смысле ее строгого определения поскольку часть бизнес-тира будет функционировать в процессе дата-тира, т.е MSSQL. А что значит ".net из-под sql server не работает"? Он должен работать из под .Net framework, а не из под MSSQL при этом, распараллеливать нагрузку можно не очень трудно, т.к. средних звеньев может быть несколько и они могут выполнять разные функции обработки, ... Вот это было бы интересно пообсуждать! У меня многозвенная архитектура как-то (традиционно?) ассоциируется с функциональной декомпозицией, т.е когда звенья/тиры выполняют отдельные общие пользовательские функции (например, бухгалтерия, склад и т.д). Однако, у того же Лармана есть масса разнообразных архитектурных шаблонов, например, тот же Layers, когда функциональная декомпозиция понятие гораздо более общее нежели, чем просто декомпозиция пользовательских функций. Например, есть тир "бухгалтерия", есть тир "кадры", а они используют тир "данные" и тир "документооборот" или еще и тир "Web" 2 AndrewS: В моем случае Кадры являются одной из подсистем на крупном предприятии и идут в комплексе с зарплатой, складом и проч. Просто хотелось узнать о целесообразности использования 3-го звена. Целесообразность использования 3-звенности определяется нефункциональными требованиями к вашей ИС. Откуда ASCRUS по-вашему может о них знать? Нет какого-то универсального правила, отдающего предпочтение тому или иному типу архитектуры потому что у каждого типа есть свои как достоинства так и недостатки . Лушче поставить вопрос по-другому, например, перечислить хотя бы основные достоинства 2- и 3-звенного типов архитектур 2 папа Карло: все зависит от архитектуры и процесса. :) То есть от процесса? Тип архитектуры зависит от архитектуры? Интересно. Обычно он выбирается в самом начале проектирования архитектуры , когда определились основные и существенные требования и варианты использования на 80%, если брать официальный RUP. Хотя бывают случаи, когда в процессе проектирования появляются трудности и новые понимания чего-то, что приводит к необходимости отказаться или ввести еще тир, но - это IMHO неопытность или незнания проектировщиков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 09:53 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
папа Карло Я не утверждаю что трезвенка лучше двузвенки. я не утверждаю что трезвенка панацея. Я могу привести пример где двузвенка будет рулить, а могу привести пример который ты на двузвенке не сделаешь. :) Ну а тогда о чем идет спор ? :) По subj темы выяснилось, что автору топика 3-звенка не обязательна, можно обойтись и более простым и сердитым решением. Вы же мне тут упорно что то доказываете, только я вот никак не въеду, что именно. ситуация реальная. я ухудшил систему которая уже работала Все правильно - Вам изменили условия постановки. С чего это Вы решили, что будете определять, какой функционал должен присутствовать в проектах Вашего работодателя. Наша задача по ТЗ сделать проект, причем если в ТЗ даже входят требования к модели его реализации, то они тоже должны быть соблюдены. Однако сама реализация это уже на совести программиста, тут ему директор указывать не должен, иначе грош ему цена. Говоря о здравомыслии я и имел ввиду, что я например не возьмусь за проект для работодателя, который в качестве условий выдвигает требования сделать его на определенном инструментарии, явно не подходящим для реализации проекта (не люблю заниматься садомазохизмом). Вот например мои работодатели хотят написать очень крупный проект, причем обязательно в связке Access 2000 + MS SQL 2000. Бог им в помощь, против MSSQL я ничего не имею, а вот использовать под проект с сотнями форм и отчетов Access в кач-ве клиента я бы не рискнул. Поэтому взялся за другой проект, где мне не выдвигались требования на чем лучше реализовывать, а просто вместе со мной рассмотрели варианты и остановились на приемлимых. человек не спрашивал о чем-то конкретном. он абстрактно спросил о трезвенке. народ начал требовать для чего надо, да зачем. почему просто человеку не дать самому выбрать что он хочет? расскажи ему про двузвенку я расскажу про распрделенные системы с десятками тысяч онлайн юзеров. и он сам быдет выбирать Как оказалось, этому человеку не нужны системы с десятками тысяч юзеров. Он всего лишь делает маленькую задачку складского учета. Поэтому то и не зря спросили, а зачем ему 3-звенка. И даже решения дали, как его проблемы можно решить на текущей 2-звенной реализации. Это я тоже называю здравомыслием :) Если бы у него была более абстрактная задача - не конкретный проект переделать, а просто выучить 3-звенку, чтобы потом сменить работу, где они используются, тогда другое дело. P.S. И кстати (пожалуй я действительно пальцы погну) - так может все таки поможете Ученику ссылками на литературу и книги по 3-звенной архитектуре. А то как то в этом топике Вы больше на меня внимание обращаете, чем на автора темы :) Все остальные присутствующие кто как мог постарались ему помочь ... :) Ну а я счастливо покидаю эту тему, а то опять все в флейм начало перерастать. Ответ папы Карло правда прочитаю, самому интересно по русскоязычным ссылочкам походить о 3-звенке, тем более что у меня друзья, которые активно с ней работают просили такие ссылочки им подбрасывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 11:46 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
Раздувая затухающий флейм... На мой взгляд, Репликант привел очень точное замечание: Целесообразность использования 3-звенности определяется нефункциональными требованиями к вашей ИС. Откуда ASCRUS по-вашему может о них знать? Нет какого-то универсального правила, отдающего предпочтение тому или иному типу архитектуры потому что у каждого типа есть свои как достоинства так и недостатки. Лушче поставить вопрос по-другому, например, перечислить хотя бы основные достоинства 2- и 3-звенного типов архитектур Поскольку на форуме не утихают яростные схватки апологетов той и другой архитектур, может быть Репликант и осветит, какие, по его мнению, требования влияют на выбор архитектуры и какие достоинства/недостатки и той и др. архитектуры для внутрикорпоративных проектов . Ибо, он, - Репликант - кажется мне наименее ангажированным тем или иным лагерем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 16:24 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
2 Репликант Зачем писать какую-то расширяющую dll к MSSQL когда для той же Win2000 можно написать отдельный COM+ сервис на VС, например, с помощью того же MATLAB-Maple, к-рый будет эти матрицы обсчитывать? Пусть даже это будет и не совсем 3-звенная архитектура в смысле ее строгого определения поскольку часть бизнес-тира будет функционировать в процессе дата-тира, т.е MSSQL. А что значит ".net из-под sql server не работает"? Он должен работать из под .Net framework, а не из под MSSQL Ядро mathlab-mapple работает, прямо скажем, небыстро. И плюс у него, скорее, в функциях символьной математики, нежели в скоростях расчета. Если задача полностью формализована, то ее быстрее своей программой посчитать, особенно если нужно данные из базы забрать не самым прямым образом. Компоненты, использующие .net framework, из-под SQL Server недоступны. Другими словами, расширенная процедура не может попользовать функционал и классы framework. Что-то там у них не срослось на системном уровне. Хотел как-то попользовать богатые классы шифрования framework - пришлось обойтись своими силами. Вообще, здесь, конечно, можно без трехзвенки обойтись, но трехзвенка дает возможность распределить нагрузку между сервером БД, сервером сервиса и клиентом, распределить риски падения серверов. Если клиент совсем тонкий, только браузер у него, то без этого вообще никак. Вот это было бы интересно пообсуждать! У меня многозвенная архитектура как-то (традиционно?) ассоциируется с функциональной декомпозицией, т.е когда звенья/тиры выполняют отдельные общие пользовательские функции (например, бухгалтерия, склад и т.д). Однако, у того же Лармана есть масса разнообразных архитектурных шаблонов, например, тот же Layers, когда функциональная декомпозиция понятие гораздо более общее нежели, чем просто декомпозиция пользовательских функций. Например, есть тир "бухгалтерия", есть тир "кадры", а они используют тир "данные" и тир "документооборот" или еще и тир "Web" У нас все растет от Web, поэтому распараллеливание нагрузки на среднем звене - самое милое дело. Если один сервис занят или недоступен, то всегда можно попробовать обратиться на соседний, главное чтобы данные у них у всех были одинаковые, и версии подходили. Кстати, о версиях, если нет возможности централизованно обновлять клиентское ПО, а функциональность его такова, что на БД не повесишь, то опять же среднее звено может выручить, т.к. его немного, а клиентов может быть ну очень много. Отсюда же вытекает и распределенная архитектура. Если хостинг проекта не свой, то DLL свою туда нельзя подвесить, БД перегружать функционалом тоже не следует. Места обычно тоже не очень много, свои гигабайты положить если и можно, то очень дорого. Единственный плюс - широкий канал обычно у хостинга. Ну и таким вот образом получается, что все серьезные вычисления надо куда-то скидывать, то есть строится webservice, к которому в .net framework можно достаточно удобно и прозрачно обращаться. Сам webservice тоже может обращаться куда ему надо будет. То есть, мы не зависим от того, где и в какой форме находится клиентская часть, лишь бы один из сервисов был доступен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 16:52 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
Репликант То есть от процесса? Тип архитектуры зависит от архитектуры? Интересно. Обычно он выбирается в самом начале проектирования архитектуры, когда определились основные и существенные требования и варианты использования на 80%, если брать официальный RUP. Хотя бывают случаи, когда в процессе проектирования появляются трудности и новые понимания чего-то, что приводит к необходимости отказаться или ввести еще тир, но - это IMHO неопытность или незнания проектировщиков немного не то имелось ввиду. я имел ввиду что при разработке системы определяют ее архитектуру, а так-же процессы (операционные) которые будут при ее использовании (ты же не делаешь систему которую будет не известно как использовать). следовательно может получиться так, что стоимость поддержки одного сервака будет 100 рублей, а добавление еще одного (операционные затраты) будет 100 руб. 10 коппеек. чем можно принебреч если так позвояют требования. так что мы немного про разные вещи говорим. ASCRUS Ну а тогда о чем идет спор ? :) По subj темы выяснилось, что автору топика 3-звенка не обязательна, можно обойтись и более простым и сердитым решением. Вы же мне тут упорно что то доказываете, только я вот никак не въеду, что именно. прочитай внимательно вопрос Ученика. Он хотел изучить, а не чтобы ему архитектуру выбрали. сейчас когда вы ему сказали что ему надо два звена, он возможно так и не поймет почему, ибо трезвенку в этом треде "задавили". :) заметь, я не говорю что лучше. я говорю что когда человек не видит альтернатив он может принять не совсем правильное решение. сейчас у него кадры, он делает два звена, потом появляется еще что-то, еще что-то..... мы не знаем всей картины, поэтому я привык не додумывать за человека, а просто отвечать на конкретный вопрос. :) Репликант ответил сразу ближе всего к теме..... потом начался флейм :) Все правильно - Вам изменили условия постановки. С чего это Вы решили, что будете определять, какой функционал должен присутствовать в проектах Вашего работодателя. Наша задача по ТЗ сделать проект, причем если в ТЗ даже входят требования к модели его реализации, то они тоже должны быть соблюдены. Однако сама реализация это уже на совести программиста, тут ему директор указывать не должен, иначе грош ему цена. Говоря о здравомыслии я и имел ввиду, что я например не возьмусь за проект для работодателя, который в качестве условий выдвигает требования сделать его на определенном инструментарии, явно не подходящим для реализации проекта (не люблю заниматься садомазохизмом). Вот например мои работодатели хотят написать очень крупный проект, причем обязательно в связке Access 2000 + MS SQL 2000. Бог им в помощь, против MSSQL я ничего не имею, а вот использовать под проект с сотнями форм и отчетов Access в кач-ве клиента я бы не рискнул. Поэтому взялся за другой проект, где мне не выдвигались требования на чем лучше реализовывать, а просто вместе со мной рассмотрели варианты и остановились на приемлимых. А с чего вы решили что инструменты не могут быть оговорены в требованиях тоже? например мне выставлено было требование построить террабайтную базу с откликом не более 10 секунд на _все_ запросы и 1-2 секунды на 80% запросов на скл сервере. я к тому моменту знал как это сделать в оракле и страшно его защищал потом мне сказали. скл сервер -- требование, оракла не будет. подумал головой, сделал. сейчас 80% запросов возвращают результат менее чем за 1 секунду при этом размер данных растет. другими словами, сказали бы сделать на аксессе, сделал бы на акссесе. у меня нет двойных сткандартов к требованиям. требования есть требования. ссылок про трезвенки у меня нет. все только через опыт..... Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2003, 20:32 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
А действительно, некрасиво получилось. Мы тут кинулись сравнивать, а вопрос был не о том. Я листал в книжном магазине книжку, называлась просто - "Delphi". Там был пример написания простейшего сервера приложений. Очень подробно. Загляните в книжные магазины, если они у Вас есть. Это не издевательство. Просто я знаю, что во многих населенных пунктах таких магазинов нет. Ученик. Извините, чем могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 20:46 |
|
||
|
С чего начать изучение трехзвенки ?
|
|||
|---|---|---|---|
|
#18+
2 aag: Ибо, он, - Репликант - кажется мне наименее ангажированным тем или иным лагерем :) Как это так, что я наименее ангажированый лагерем?! Такого просто не бывает, чтобы человек, а тем более разработчки не был кем-то (или чем-то) ангажирован. Я, например, приблизительно ангажирован Microsoft на 50%, Rational на 30%, Borland на 15% и еще Sybase - 5%. Это если считать по суммарной стоимости всех средств разработки, использующихся у нас. Вот скажи мне, что Sybase PowerBuilder или IBM VisualAge удобнее, чем тот же VS я соглашусь, конечно, но ангажемент есть ангажемент и его придется соблюдать (т.е ведь в него были уже деньги вложены). Собственно это не имеет прямого отношения к выбору типа арх-ры, но на выбор той же реализации такая ангажированность имеет влияние в реальной жизни :о) Поскольку на форуме не утихают яростные схватки апологетов той и другой архитектур, может быть Репликант и осветит, какие, по его мнению, требования влияют на выбор архитектуры и какие достоинства/недостатки и той и др. архитектуры для внутрикорпоративных проектов. ((А что значит для "внутрикорпоративных проектов"? Может имелись в виду просто корпоративные проекты , т.е для автоматизации какого-то бизнеса , т.е производственного процесса(ов) заказчика? Ладно, попробуем исходить из этого более понятного всем определения.)) Проблема выбора или процесс (прикладной) определения необходимого типа архитектура на самом деле не такая простая как кажетс, если к ней подходить с позиций ИТ-науки, к-рую я вкратце изложу ниже ч.II. I. Обычно (будем уж объективны!) тип архитектуры выбирается интуитивно , т.е на основе нескольких простых правил ("шаблонов") . Например, если абстрактно: 1 клиент и БД (локальная) - 1-звенный тип много клиентов и БД - 2-звенный тип много клиентов и БД и отдельная бизнес-логика (БЛ) - 3-звенный тип очень много клиентов и БД и/или отдельная БЛ - 3,4...N-звенный тип ...ну и так далее с вариантами типа Web, типа повышенная надежность БД/БЛ/Web и т.д. Этот пождход неплох, когда дело касается традиционных архитектурных решений, к-рые уже проверенны временем, опытом и разработчик просто знает, что вот эта архитектура (тип архитектуры и т.д) сдюжит кол-во пользователей X, обеспечит функциональность сервиса Y и его расширяемость Z и т.д. Другой вопрос, когда имеешь дело с какими-то НОВЫМИ (например, для себя), сложными , дорогими (т.е предполагающим покупку дорого софта или оборудования) или надежными решениями. Тут конечно неплохо бы убедиться заранее, что выбранная архитектура соответствует требованиям, т.е если не искать эту архитектуру с помощью методологии, то хотя бы обосновать ее выбор II. Теперь о выборе типа архитектуры с позиций ИТ-науки (программной инженерии) и тех же современных методологий ООAD, SPE и т.д. Прежде всего цель: найти такой вариант архитектуры, чтобы он наилучшим образом удовлетворял нашим условиям или требованиям. Что значит наилучшим образом ? Для простоты допустим, что это значит а) удовлетворять обязательным требованиям и б) удовлетворять наибольшему числу обязательным (желательным) . Все это, конечно, рассуждения "на пальцах", но для грубого объяснения допустимые. Иначе придется привлекать, например, анализ на основе весов (WPA) . Архитектуру, к-рая удовлетворяет заданным условиям наилучшим образом можно назвать оптимальной архитектурой . Напомню, что "архитектура" как понятие является достаточно общим и неопределяемым четко как, например, "счастье" или "народ", но вот классическое определение: Архитектура программной системы - описывает: 1. структуру: организацию элементов системы и подсистемы; 2. состав: элементы системы и ее подсистемы ; 3. взаимодействие: интерфейсы и поведение элементов системы и ее подсистем; 4. технологию: ...... или в оригиналах: "architecture IS design, structure, infrastructure, technology....and more" и "the work of a single architect." (с) Брукс, Кратчен, Якобсон-Буч-Рамбо. Понятно, что программная инженерия не дает какой-то универсальной "формулы" или алгоритма "вычисления" типа архитектуры. Только общие (и, конечно, обоснованные) рекомендации относительно тех же модульностей, связанностей, параллельности и т.д Далее.. Методологии проектирования наподобии OOAD (Object-oriented Analysis & Design) - позволяют, исходя из вариантов использования (ВИ) или функциональных требований получить архитектуру, в виде модель реализации системы, т.е классы, интерфейсы и взаимодействие между ними - пп.2-3 в Архитектуре; Архитектурные шаблоны также позволяют оптимально выделить подсистемы даже если система достаточно сложная, но тривиальная для шаблона - пп.1-3; SPE (Software Performance Engineering) - позволяет еще на стадии проектирования опрделить будет ли система удовлетворять необходимым требованиям (производительность, расширяемость/масштабируемость) с помощью моделей выполнения и моделей работы системы; WPA (Weighed Points Analysis) - позволяет оценить и выбрать под пп.1-3 технологию - п.4; ... Тип архитектуры можно, конечно, "угадывать" вначале проекта, чтобы быстренько вписать его в то же ТЗ, но это просто а) не нужно и б) рискованно. Лучше его честно получать в процессе проектирования архитектуры, а заодно и обосновывать. В РФ традиционно и в основномй массе коммерческие разработчики не очень грамотные по части проектирования поэтому они также, например, когда составляют ТЗ по ГОСТ 34.602 "забывают", что согласно ГОСТу 34-й серии тому же ТЗ должны предшестовать предварительные исследовательские работы с важным результатом - ТЭО, в к-ром как раз и обосновывывается определенный выбор той или иной архитектуры. Вот как бы почти "все", если вкратце 2 xGuest: Ядро mathlab-mapple работает, прямо скажем, небыстро. И плюс у него, скорее, в функциях символьной математики, нежели в скоростях расчета. Если задача полностью формализована, то ее быстрее своей программой посчитать, особенно если нужно данные из базы забрать не самым прямым образом. Все верно! Это я так привел самый относительно легкий по исполнению вариант, к-рый просто лучше, чем математика, считабщаяся в MSSQL. Конечно, самый быстрый вариант - это писать все самому, используя те же GNU С/С++ библиотеки для работы с матрицами Компоненты, использующие .net framework, из-под SQL Server недоступны. Другими словами, расширенная процедура не может попользовать функционал и классы framework. Что-то там у них не срослось на системном уровне. Хотел как-то попользовать богатые классы шифрования framework - пришлось обойтись своими силами. А зачем это нужно - вызов .net из расширенной процедуры под MSSQL? Вызов из .net расширенной в MSSQL это понятно. Просто судя по обычным проектам СУБД функционально используется как пассивное (т.е здесь не имеется в виду, например, репликация или другие служебные процессы для поддержания целостности бизнес-данных) хранилище данных, т.е клиент в самом общем смысле делает запрос и СУБД изменяет/возвращает данные по запросу. А здесь дата-тир обращается к бизнес-тиру, т.е там что-то обсчитывается и складируется обратно в БД? Кстати, о версиях, если нет возможности централизованно обновлять клиентское ПО, а функциональность его такова, что на БД не повесишь, то опять же среднее звено может выручить, т.к. его немного, а клиентов может быть ну очень много. Все это понятно, но апологеты (в хорошем смысле!) 2-звенных архитектур скажут, что можно обойтись и без этого, т.к бизнес-логику в БД надо менять в нерабочее время тем более это происходит не так часто. Возможны и варианты, когда можно менять без остановки БД (offline), если преспичет 2 папа Карло: немного не то имелось ввиду. я имел ввиду что при разработке системы определяют ее архитектуру, а так-же процессы (операционные) которые будут при ее использовании (ты же не делаешь систему которую будет не известно как использовать). следовательно может получиться так, что стоимость поддержки одного сервака будет 100 рублей, а добавление еще одного (операционные затраты) будет 100 руб. 10 коппеек. чем можно принебреч если так позвояют требования. так что мы немного про разные вещи говорим. Да нет же, мы говорим про одни и те же вещи! Тип архитектуры, т.е N-звенность, конечно(!!) определяется также и из затрат на сопрвождение (TCO). Например, введение того же Web-тира подтребует "Web-администратора". Даже если он и будет одновременно в одном лице ДБА и сисадмином, то все равно забот у него прибавится порядочно особенно, если Web-тир еще и публичный, т.е Инете. Другое дело, что сам по своему опыту знаю, что заказчики обычно "забивают" на рекомендацию 2 админов и ТСО, считая, что вот у них ДБА и так уже есть, так пусть он еще за одно и Web администерит. Потом через 2 мес. выясняется, что пришлось нанять еще 2-го админа. И начинаются якобы "невинные" возмущения, что мол "вот, почему вы нам не сказали, что затраты на сопровождение вашей системы требуют еще +6000$ в год?!". 2 папа Карло & ASCRUS: А с чего вы решили что инструменты не могут быть оговорены в требованиях тоже? например мне выставлено было требование построить террабайтную базу с откликом не более 10 секунд на _все_ запросы и 1-2 секунды на 80% запросов на скл сервере. я к тому моменту знал как это сделать в оракле и страшно его защищал потом мне сказали. скл сервер -- требование, оракла не будет. Позволю себе немного поправить: MSSQL/Oracle - это не инструменты , это скорее часть "платформы" или подсистема (СУБД). Такие подсистемы как MSSQL обычно кажется называют коробочными (boxed или commercial-off-the-shelf (COTS)) или готовыми к пользованию (ready-to-use) . ((Не понятно зачем все эти названия одинаковые по смыслу объяснил бы кто.)) Средствами производства (разработки) инструментами являются те же Word (для создания проектной документации), Rose или PowerDesigner (для проектирования приложения и БД), VS или Delphi (для написания и отладки кода) и т.д. Хотя СУБД тоже можно назвать "инструментом достижения цели". Что же касается инструментов, то они тоже могут быть оговорены и в ТЗ. Хотя, например, в том же ГОСТ 34.602 нет такого раздела явно, но по своему опыту могу сказать, что в 50% случаев заказчик хочет или прямо настаивает на опрделенных инструментах особенно если он получает исходные тексты и планирует сам поддерживать систему. Были и случаи, что только VB и все тут ----- З.Ы. Господа, не спорьте! Как люди опытные присоединяйтесь к обсуждению того, что влияет на выбор архитектуры. Все ж для общей пользы :о) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2003, 09:13 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1546885]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
229ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 553ms |

| 0 / 0 |
