powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Создание сервера приложений
25 сообщений из 440, страница 3 из 18
Создание сервера приложений
    #33301902
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь tygraЯ таки скажу: нельзя ли огласить задачу, которая требует n серверов приложений или n sql серверов? Не теоретическую, а именно ту, которая сейчас использует эти n. Мне просто интересно - что это может быть. Вот смотрю на загрузку нашего сервера и думаю, чего нужно, чтобы не хватило этого и надо было поставить 10 серверов??? Не могу придумать. :)

-- Tygra's --
2 процессора - 4 гига оперативки - вся база под 10 гиг - и тормозит - если больше 10 клиентов -

и что теперь - новый сервер покупать?
Теперь нужно нанять специалиста, знающего досконально Вашу СУБД, обязательно с прямыми ручками, и заняться оптимизацией БД и запросов.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302006
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТеперь нужно нанять специалиста, знающего досконально Вашу СУБД, обязательно с прямыми ручками
Вот именно. Иногда даже помогает банальный просмотр логов выполнения SQL-операторов. Иногда просто взягляд со стороны.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302305
Пользователь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calm авторТеперь нужно нанять специалиста, знающего досконально Вашу СУБД, обязательно с прямыми ручками
Вот именно. Иногда даже помогает банальный просмотр логов выполнения SQL-операторов. Иногда просто взягляд со стороны.
Это подход самоделкинов, для тиражных продуктов - никто не будет ковырятся - проще и надежней - если имеется масштабируемость на уровне железа -

Другое дело - что масштабировать SQL сервера - и в теории почти невозможно.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302459
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из серии:
Я купил новую машину, мне сказали, что она мощная. Однако я умею переключать только на первую скорость и машина едет медленно. Вывод - куплю-ка я машину помощнее, тогда на первой скорости она обгонит мою нынешнюю машину
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302738
Пользователь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSИз серии:
Я купил новую машину, мне сказали, что она мощная. Однако я умею переключать только на первую скорость и машина едет медленно. Вывод - куплю-ка я машину помощнее, тогда на первой скорости она обгонит мою нынешнюю машину
в такой терминологии - на машинах ездят люди - 99% которых не знает и не хочет знать устройство автомобиля

и если хочет ездить быстрее - естественно покупает другой автомобиль.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302751
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори если хочет ездить быстрее - естественно покупает другой автомобиль.
Сами-то верите в то что пишите?

Продолжая аналогию:
Мой приятель недавно научился регулировать инжектор. Теперь он расходует меньше топлива. Видимо, это спасло его от приобретения нового автомобиля с более экономичными характеристиками?

Думаю, скоро он научится настраивать еще лучше и сэкономит стоимость еще одного автомобиля.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302892
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь
Это подход самоделкинов,

Не, ну как же так? А если всё тормозит какой-нибудь несчастный один отчёт, из-за того что там плохой запрос? Или просто надо настроить SQL-сервер?
Пользовательдля тиражных продуктов - никто не будет ковырятся - проще и надежней - если имеется масштабируемость на уровне железа -

Это не очень хорошо говорит об этих самых тиражных продуктах :) Что лучше, поковыряться немного в своём тиражном продукте, или чтобы тысячи клиентов разорились на новый сервер?
Пользователь
Другое дело - что масштабировать SQL сервера - и в теории почти невозможно.
Ну, есть репликации там всякие... И потом, ну, 4 гига оперативки. Ну, 2 процессора. Это не исчерпывающая характеристика сервера. А данные на чём сидят? Кстати, не может ли быть такого, что Вы упёрлись в потолок возможностей MS SQL (здесь я не особо представляю, о чём говорю, но, может, надобно оракл или дб2)?
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33302897
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто не очень хорошо говорит об этих самых тиражных продуктах :)

Молодец, тактично сказал!
Я вот мужественно сдериваюсь, чтобы не высказаться о таких продуктах.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33303219
Пользователь 2 процессора - 4 гига оперативки - вся база под 10 гиг - и тормозит - если больше 10 клиентов -
и что теперь - новый сервер покупать?

Обратный пример - самописная учетная система - типичная 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 одновременных коннектов.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33303573
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется руки у вас росли нормально. DCOM - медленная штука.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33303748
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрию Сорокину

На ТЗ взглянуть нельзя ?

С уважением, Владимир.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33303759
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CalmМне кажется руки у вас росли нормально. DCOM - медленная штука.
Э... а причем здесь ДКОМ?
ДКОМ это всего лишь инфраструктура для удаленных вызовов. В данном решении оно всего лишь что-то вроде транспорта между клиентами и серверами приложений.

К вопросам масштабирования имеет отношение связка сервера приложений-МТС-MS SQL.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33303831
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий Сорокин[quot Пользователь ]
При этом года 3-4 назад vs активно игрались с MTS и DCOM. Переписали основную бизнес-логику по проведению проводок на С++, оформили как DCOM объект под MTS, запустили на тестирование. Может, конечно, у нас руки росли не оттуда, но там, где справлялся 1 MSSQL-сервер нужно было ставить десяток MTS-серверов, чтобы добиться той же производительности при 300 одновременных коннектов.

А вы действительно видели факт масштабирования?
Или просто нужно было еще 10 аппсерверов чтобы получить производительность близкую к двухзвенке? Соответственно, потянула бы такая система 600 клиентов при соответственно 20-30 апп серверах?
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33303896
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДКОМ это всего лишь инфраструктура для удаленных вызовов. В данном решении оно всего лишь что-то вроде транспорта между клиентами и серверами приложений.
Разве я сказал что-то, что противоречило бы этому?
Подзреваю, что при 300 одновременных пользователей ДКОМ будет недостаточно быстрым транспортом.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33304210
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Calm авторДКОМ это всего лишь инфраструктура для удаленных вызовов. В данном решении оно всего лишь что-то вроде транспорта между клиентами и серверами приложений.
Разве я сказал что-то, что противоречило бы этому?
Подзреваю, что при 300 одновременных пользователей ДКОМ будет недостаточно быстрым транспортом.
ОК, признаю тормоз мог быть и на стыке клиент-аппСервер.
Но 30 клиентов на АппСервер все таки не выглядит той цифрой на которой это могло произойти.
Скорее всего тормоз все таки на стыке АппСервера-МТС-БД.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33304562
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, тут ужо без меня ответили.

В общем, если руки прямые - проблем нет никаких.
Если обратное - хоть трехзвенка, хоть хрен знает что, толку не будет

Пользователь2 процессора - 4 гига оперативки - вся база под 10 гиг - и тормозит - если больше 10 клиентов -

и что теперь - новый сервер покупать?
Нет, лучше 10 (десять) нод под трехзвенку

Серьезно - путем все сделать, запросы подправить, блокировки - и все будет хорошо.

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33304905
ВМоисеевДмитрию Сорокину

На ТЗ взглянуть нельзя ?

С уважением, Владимир.

ТЗ? Их тысячи! Эта информационная система начинала создаваться в 1995г! на MSSQL 4.2.

Насчет MTS - вот, что тестировалось: Был написан СОМ-класс на С++ (насколько я помню - использовалась ATL, где есть готовый template для таких штук, но я могу ошибаться), в котором было 2 метода - подтверждение и отмена проводок. Логика была практически один к одному перенесена из аналогичных хранимых процедур. Конечно, совсем один к одному не получилось из-за отсутстыия в С++ таких вещей, например, как временные таблицы:), но вся логика и весь flow были сохранены. Класс регистрировался на MTC - серверах (характеристики машин сейчас не помню, вроде 2-х процессорные XEON 700 c 2 GB памяти) и проводились масштабные испытания - на тестовой базе тестовая программа открывет поток за потоком, каждый поток создавал инстанцию класса и проводил тестовые проводки.
На самом деле у нас стандартизирован набор разнообразных тестов - разные типы проводок, проводки сегодняшней датой, проводки задним числом и т.д. Потом меряется среднее кол-во проводок в секунду для возрастающего количества соединений. Вообщем, деталей уже не помню, но как мы ни вылизывали сишный код - результат был на порядок хуже прямой работы с MSSQL.

Потом мы пробовали просто создавать DCOM-обертки над хранимыми процедурами. Т.е. создается некий функциональный класс, в котором в виде методов описывались хранимые процедуры, а в коде методов эти процедуры вызывались. Результат был конечно лучше, чем вначале, но все равно хуже, чем при прямом использовании хранимых процедур - особенно на таких "быстрых" процедурах, как проведение проводок - там быстродействие доходит до сотен проводок в сек.
Но все бы ничего, и было бы интересно навесить "классовую" обертку на хранимые процедуры, но эта невозможность в MTS использовать т.н. stateful объекты! Т.е. значения свойств между вызовами объекта не сохраняются (чтобы их сохранить, надо было извернуться через одно место - либо использовать сессии, либо - таблицы БД либо сам придумай что), в результате чего подобные классы выраждаются в простые библиотеки функций, ничем не лучше хранимых процедур, т.е. ни о каком нормальном ООП в случае таких классов-оберток речи нет.
Может, конечно, в DCOM что и изменилось с тех пор - не знаю.

Теперь мы делаем что-то похожее на .NET - логика остается на хранимых процедурах, но создаются классы-обертки, генерирущиеся автоматом на основе метаданных о структуре и взаимосвязях таблиц, вьюх, хранимых процедур и т.п. Аналогично есть визуальные классы (для создания интерфейса, пока - win32), генерящиеся тоже на основе метаданных. на самом деле, это, конечно, не просто обертки - там и свой механизм локов и своя система авторизации и механизм раннего оповещения об изменении данных и свое кеширование и ..... Но бизнес-логика остается в хранимых процедурах.

Речь не идет о переносе бизнес-логики куда-то на средний слой. Речь идет лишь о том, что вместо набора таблиц, вьюх и процедур программист (а в дальнейшем и продвинутый пользователь) работает с классами, свойствами и методами, т.е. использует объектную библиотеку, являющуюся интерфейсом к БД. В принципе ничто не запрещает использовать эти интерфейсные объекты, например, при написании скриптов на каком нибудь vbscript или С# с последующим запуском локально или на некоем дот-нетовском scripting host. Типа - вот вам и сервер приложений...
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33305418
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрию Сорокину.

Спасибо за информацию.
Вы правы относительно проводок. Операции диск-память значительно быстрее диск-память-сеть-память.
Я больше занимаюсь задачами построением выборок от многих клиентов и их предварительными обработками (некоторая математика, сжатие и шифрование). В этих задачах нет каскадного обращения к другим таблицам базы. Здесь сиьнее загружен процессор, а не тракты ввода/вывода.
Хотя многоуровневая модель не отказывается от хранимых процедур.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33305669
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрию Сорокину

Молодцы! Вот это я понимаю, люди грамотные работают. Я еще ни разу не слышал, чтобы кто-то подобное разрабатывал, да что разрабатывал, хотя бы придумал такое. Я такую систему спроектировал для .NET (доберусь ли до реализации не знаю), только я не собираюсь создавать по классу .NET для каждого класса в базе. Один единственный класс .NET, который предоставляет доступ к коллекции атрибутов и к коллекции методов. Набор атрибутов и методов класс получает из метаданных сервера.

--------------------
Не учи отца и баста!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33305693
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На данный момент у меня есть реализация этого механизма на Дельфи. Из интерфейса самой программы создаете метаданные, т.е. регистрируете класс, добавляете атрибуты, создаете методы с кодом на T-SQL, затем компилируете и получаете таблицы и процедуры и данный класс уже готов к использованию в системе. Интерфейс даже проектировать не нужно. Сам подхватывает все описания и предоставляет формы.
--------------------
Не учи отца и баста!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33306114
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрию Сорокину.
>В принципе ничто не запрещает использовать эти интерфейсные объекты, ...

Именно это и сделал на C#.
Плюс прозрачная схема доступа клиента к .Net Remote сервисам промежуточных слоев локальной сети из инета через IIS.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33307136
Old NickНа данный момент у меня есть реализация этого механизма на Дельфи. Из интерфейса самой программы создаете метаданные, т.е. регистрируете класс, добавляете атрибуты, создаете методы с кодом на T-SQL, затем компилируете и получаете таблицы и процедуры и данный класс уже готов к использованию в системе. Интерфейс даже проектировать не нужно. Сам подхватывает все описания и предоставляет формы.
--------------------
Не учи отца и баста!

У нас несколько по другому. Уже существующие таблицы, вьюхи, хранимые процедуры и т.п. описываются в метаданных - поля - это свойства объекта, ссылки - это тоже свойства, но типа "объект", методы объекта - хранимые процедуры или откомпилированный .NET код (давай, вычисляй свои частные производные!). Можно создавать вычисляемые поля, составные свойства (типа структур - например валютная сумма и обозначение валюты), JOIN можно делать по нескольким полям, есть альтернативные ключи, и т.д. Плюс наследование и полиморфизм, плюс сам объект выступает не только как "одна запись" в БД, но и несет в себе методы навигации и интерфейсы, позволяющие ему работать как источник данных. Плюс свой транзакционный механизм - все изменения накапливаются, а потом одним махом сохраняются в БД. Плюс свои локи. Плюс своя security.
Для создания интерфейсов есть понятие визуализаций, которые тоже являются обладают всеми характеристиками объектов, и которые тоже описываются в метаданных (но можно и самим поизвращаться, сделав уникальную визуализацию). Пока разработана WIN32 визуализация, начали работать над WEB.

Кое что еще не доделано - надо доделать workflow, когда вводится понятие состояний объекта, в разных состояниях видны лишь определенные свойства и методы, и при этом различные методы в зависимости от их результата переводят объект в другие состояния (вообщем - почти конечный автомат). Не доделан механизм "раннего" оповещения об изменениях в БД (читай-серверные события) и механизм "кеширования" данных, когда лишь часть данных с сервера грузится на клиента, что очень важно для, например, WEB-интерфейса.

Вообще мы пытались построить полностью объектно-ориентированный интерфейс к БД со всеми аттрибутами ООП. ИМХО, такой подход позволяет достаточно быстро и, главное, с умом, создавать новые приложения и "рефакторить" старые наработки, когда существующая бизнес-логика и структуры просто описываются в метаданных.

Но все это не имеет ничего общего с общепринятой сейчас трехзвенной архитектурой и принудительного выноса бизнес-логики на средний слой. Да, при подобном подходе создается некая объектная оболочка над базой данных, но тут нет ничего общего с N-tier архитектурой SAPа или J2EEшных приложений.
Однако мне такой подход кажется более "приближеным к жизни", что-ли. Для меня главным преимуществом многозвенки является возможность "красиво организовать" свое приложение, работать не с таблицами и процедурами, а с объектами. Все таки (ИМХО) ООП по сравнению с классическим "функциональным" программированием имеет кучу преимуществ. Пусть за объектом стоят таблицы и хранимые процедуры - не важно. Важно, что наружу все это выглядит гораздо красивее. Плюс, что не маловажно - инкапсуляция (лучше иметь дело с объектом, чем с кучей хранимых процедур), наследование (есть объект - "клиент", создадим на его основе объект "поставщик"), повторное использование (уже есть объект "клиент", используйте его как справочник в своих приложениях, если надо - наследуйте от его базовой визуализации свою собственную). Плюс быстрота разработки...

Такой подход как бы "размывает" границу между клиент-серверными и многозвенными архитектурами, дает клиент-серверному варианту преимущества объектного подхода при сохранении производительности клиент-серверной архитектуры. создает некий промежуточный вариант и позволяет переходить на многозвенку действительно там и тогда, где и когда это необходимо.

Хотя все это ИМХО, и, возможно, мы изобретаем велосипед:)
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33307500
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрию Сорокину.

Кто и где выполняет откомпилированный .Net код и что это такое?

Дмитрий, давайте проведем мысленный эксперимент - у нас есть двухзвенная архитектура - ваш навороченный сервер, очень шустрая локальная сеть и такие же шустрые 600 клиентских компьютеров.

Включим комп 1 клиента и в цикле смоделируем вызовы тяжелых проводок. Получим мах. производительность для этого случая. Далее подключим еще один копм, затем еще и т.д. Где-то будет (N компов) некоторый оптимум производительности.

Зафиксируем это число и предположим что мы имеем эти N app серверов которые оптимально загружают сервер данных. Эти app сервера получают информацию по проводкам из некоторого буфера и сбрасывают результаты туда-же.

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33307771
Простой рабочий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий СорокинТеперь мы делаем что-то похожее на .NET - логика остается на хранимых процедурах, но создаются классы-обертки, генерирущиеся автоматом на основе метаданных о структуре и взаимосвязях таблиц, вьюх, хранимых процедур и т.п.
Хотелось бы по-подробнее - что из себя представляют классы-обертки.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33307935
Простой рабочий Дмитрий СорокинТеперь мы делаем что-то похожее на .NET - логика остается на хранимых процедурах, но создаются классы-обертки, генерирущиеся автоматом на основе метаданных о структуре и взаимосвязях таблиц, вьюх, хранимых процедур и т.п.
Хотелось бы по-подробнее - что из себя представляют классы-обертки.

Поподробнее - это надолго:) В приаттаченом файле (это глава "введение" из хелпа для программистов) - находится краткое описание функционала библиотеки BaseObjects, которая как раз и создает объектное представление БД. Кроме этой библиотеки есть еще библиотека VisObjects для создания визуализаций.
...
Рейтинг: 0 / 0
25 сообщений из 440, страница 3 из 18
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Создание сервера приложений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]