powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Создание сервера приложений
25 сообщений из 440, страница 10 из 18
Создание сервера приложений
    #33318252
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь. Не тот пример.

declare @ProcName varchar(128)

select top 1 @ProcName = o.name
from sysobjects o
join
ObjectTypeTree t
on ‘sp’ + t.ParentType + ‘_CalcPrice’ = o.name
and o.xtype = ‘P’
and t.Type = @Type
order by t.Level desc

exec @Err = @ProcName @ThingId

Этот код написан в виртуальной процедуре.
Он найдет процедуру конкретную. Если у наследника не будет своей процедуры, то вызовется процедура родителя

--------------------
Не учи отца и баста!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318256
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нравится эмуляция, возьмите Каше
--------------------
Не учи отца и баста!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318267
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо Вы в SQL эмулируете объекты, либо в ООП эмулируете SQL

Что лучше? Лучше Каше. Но пока я не нашел заказчиков, а если будут, то обязательно буду создавать объекты в Каше и писать у них методы на SQL
--------------------
Не учи отца и баста!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318273
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЛибо Вы в SQL эмулируете объекты, либо в ООП эмулируете SQL
Ну большинство высказавшихся тут считает что ООП нужно только чтобы формочки рисовать, так что хоть один свежий взгляд на проблему. Хотя я не эмулирую SQL при помощи ООП, ООП - это просто еще один уровень абстракции над базой данных.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318354
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladiCh tygraТак и был вопрос - чего кэшируете?
Мне честно говоря надоело повторять, можете прочитать выше парой страниц, пишу в последний раз: кэшируются например метаданные для типов объектов + некоторые наиболее часто используемые выборки системных объектов. Полагаться для этого на кэш СУБД нет никакого резона.

Про метаданные на клиенте, вам виднее, надо оно или нет, при логике в СУБД имхо такой вопрос просто не стоит.

Про выборки часто используемых системных объектов я не очень понял, что вы называете системными объектами- АцессКонтролЛисты и права пользователей? редко-меняемые справочники?

Имхо с точки зрения производительности, скорей всего вы не сэкономили на таком кэшировании ничего, может быть чуть-чуть сетевого трафика. Джойнами с маленькими справочниками производительность СУБД сильно не подсадишь.

Другой вопрос, что вам пришлось их закэшировать, т.к. ваша объектная архитектура вылилась в мощный поток мелких обращений к СУБД за данными из этих самых "маленьких справочников", что и привело к тормозам.

Права доступа закэшированные в апп-сервере, опять-таки имхо, не слишком удобны. При любом их изменении придется либо пинать все апп-сервера либо ждать пока они авто-обрефрешатся.

Ну чтож сами придумываем проблемы- сами решаем - весело :)
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318376
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы как, сами решили что я делаю, сами покритиковали, сами сделали вывод?
Разумеется, права доступа не кешировались. Если вам кажется, что вопрос о кэшировании метаданных при логике в СУБД не стоит, то вы ошибаетесь. СтоИт, да еще как.
Моя объектная архитектура построена так, чтобы как раз минимизировать количество обращения к СУБД, с чем успешно и справляется в том числе и за счет кэширования.
Проблемы к счастью мне придумывать не надо, их и без придумывания достаточно.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318423
ООП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tygra:
Я уже писал, повторю еще раз. А товсе требуют примера ООП в БЛ. Вот пожалуйста. Случай простейший. Опишите как это будет работать на простых ХП и после этого мы можем сравнить результаты.


Давайте представим, что существует вот такая СУБД (объектно-реляционная):
1. Возможность создавать классы, соответствующие данным
2. Методы классов можно писать на языке а-ля С# + SQL
3. Наследование автоматически включает хранимые [Stored] поля базовых классов, а таблица задается "верхним" классом (для примера ниже все документы, имеющие в базовом списке DocumentBase будут иметь поля Number и Status, а кто унаследован от DocumentSign - Number, Status и SignedBy).


Тогда для вымышленной системы документооборота можно иметь следующую иерархию:
class DocumentBase //базовые свойства документов
{
[Stored]
string Number;
[Stored]
int Status;
......
}

class DocumentSign : DocumentBase //базовый класс для документов, треб.
{ // подпись

[Stored]
SignedBy: CPerson;

method Sign( person : CPerson)
{
SignedBy = person;
Save();
}
}
......

Тогда в коде приложения на РМ, где происходит операция подписи документа, независимо от типа документа ( накладная, заявление по собств. желанию ....)
выполняется код:

(DocumentSign)currentDocument.Sign( currentUser);


Хотелось бы увидеть, как может выглядеть структура данных + ХП для аналогичный случая на обычной системе КС + РСУБД.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318427
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladiChА вы как, сами решили что я делаю, сами покритиковали, сами сделали вывод?
Разумеется, права доступа не кешировались. Если вам кажется, что вопрос о кэшировании метаданных при логике в СУБД не стоит, то вы ошибаетесь. СтоИт, да еще как.
Моя объектная архитектура построена так, чтобы как раз минимизировать количество обращения к СУБД, с чем успешно и справляется в том числе и за счет кэширования.
Проблемы к счастью мне придумывать не надо, их и без придумывания достаточно.
Ладно извиняюсь я сужу по системам которые я видел, говорить за вашу - это я погорячился.

А вы могли бы конкретизировать, зачем кэшировать метаданные при логике в СУБД. Или вы про АДО,ДАО,ЛинкедСервера? Это да - любят они метаданные закачать :) Ну так их с умом надо использовать просто.

Вы не могли бы, кстати, ответить на вопросы, которые я задавал на странице 6 топика?
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318432
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеевVoDA,
насчет того, что SQL сервер построит выборку быстрее нет сомнений, это его хлеб. Но что дальше будете делать с выборкой - пересылать клиентам? И сервер будет заниматься её обработкой?
Здесь я с Вами принципиально расхожусь. Я за сервера приложений и распределенные вычисления.
Достаточно долго разрабатывал системы управления тех. процессами. Там эти споры заглохли давно - контроллеры имеют право на существование. Но разницу между этими областями понимаю.
Суважением, Владимир.А что до этого системы управления тех.процессами писали на СУБД? ;) Если вы думаете, что вас здесь убеждают весь софт в мире и особенно АСУТП переписать на TransactSQL - то это не так.
Обсужение вертится вокруг учетных систем предприятий разного размера и сложности.

ВМоисеевDrKonito.
Спасибо за перенос акцентов. Меня интересуют не споры, что лучше двухзвенка-многозвенка, а варинты построения реальных многозвенных систем.
Но на Ваши прямые вопросы по существу я не могу дать столь же прямые и исчерпывающие вопросы. И вот почему - я разрабатываю один из возможных вариантов построения прототипов (типовых моделей) многозвенных защищенных информационных систем для обслуживания многих(тысяч) клиентов. Разрабатываю один и достаточно много лет.

Предпоследний вариант был для DCOM, но три года назад узнал о возможностях .Net и все свои знания и опыт попытался воплотить в при построении реальной системы в данной среде. Отчет, о то что и как получилось опубликовано здесь (повторяюсь): http://www.gotdotnet.ru/LearnDotNet/NETFramework/125377.aspx
(первая и третья редакции).

Прочитал я вашу статью про прототип приложения. Имхо такой подход укладывается в то, что tygra назвал "толстый драйвер".
Насколько я понял в вашей системе бизнес-логическая процедура (в моем понимании) только одна и она собственно находится на сервере СУБД. Так что преимущества выноса бизнес-логики в отдельный слой этот прототип не иллюстирует.
Имхо вопросы аутентификации, авторизации, шифрования в учетных системах ну никак не отнесешь к бизнес-логике.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318436
ООП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторdeclare @ProcName varchar(128)

select top 1 @ProcName = o.name
from sysobjects o
join
ObjectTypeTree t
on ‘sp’ + t.ParentType + ‘_CalcPrice’ = o.name
and o.xtype = ‘P’
and t.Type = @Type
order by t.Level desc

exec @Err = @ProcName @ThingId

А вам не кажется, что данная логика значительно лучше реализуется на ОО языках вместо того, чтобы городить это на сервере. Ведь именно про такую обвязку и говорил Д. Сорокин в первых постах.
Как у вас вызвается метод базового класса? Тоже через такой поиск? Зачем???
Если это пример того, как "снижаются" расходы на разработку - то я молчу. Релиазовывать С++ на T-SQL, да еще и так, что это становится делом ВСЕХ разработчиков системы - это что-то. В вашей реализации любой девелопер, разрабытвающий БЛ должен знать, что при добавлении метода ему нужно сделать "виртуальный", в нем пробежаться по таблице типов, выбрать нужный по имени и его вызвать. А если потом ошибиться на одну букву в названии метода для типа - то еще и ошибку получить. Великолепно.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318456
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то это старая версия.

В новой используются метаданные не сервера, а системы и писать такую конструкцию не нужно, для этого есть макрос. Кроме того ошибиться в буковке класса невозможно, так методы создаются из системы и имя класса там не фигурирует
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318521
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonito,
>А что до этого системы управления тех.процессами писали на СУБД?

Да я не об этом.
В мире систем управления стало почти аксиомой распределять вычисления по контроллерам (уровням, слоям) сети. Многомашинность.

>Прочитал я вашу статью про прототип приложения. Имхо такой подход укладывается в то, что tygra назвал "толстый драйвер".

Если Вам так более понятно, пусть будет "толстый драйвер", хотя я предпочитаю термины функциональные слои (звенья) и сервера приложений.
Для меня важно построить типовую модель распределенной вычислительной сети, основанную на .Net Remoting сервисах. Сервисы могут располагаться и на отдельных компьютерах (и несколько сервисов на одном компе), а могут и на ваших суперкомьютерах серверов данных.

Для меня сервер данных поставляет выборку, выполняя хранимую процедуру, реализующую запрос сервера приложений, который в свою очередь получает его от клиента. Выборка для прототипа конкретно - страница. Эту страницу надо вернуть клиенту, предварительно осуществив сжатие и шифрование. И запрос от клиента (последовательность байтов (сериализация)) надо декомпрессировать, дешифровать, проанализировать, построить SQL предложение запроса и вызвать сервер данных. Возможна передача в запросе от клиента переменного числа параметров и их также надо обработать.

MS SQL имеет относительный максимум призводительности по числу одновременно выполняемых запросов (не знаю как Oracle). Число серверов приложений в прототипе находится где-то рядом с этим максимумом. Причем сервер приложений открывает одно соединение с сервером данных и в дальнейшем не отпускает его.
Мне надо, что-бы все серверы приложений работали под одним аккаутом (строка соединения постоянна и не зависит от клиента). Поэтому выполняю аутентификацию клиента и построение клиентской сессии по полной схеме.

Я могу (стараюсь по крайней мере) проанализировать время выполнения запроса (группирую их) и дать возможность выполняться быстрым запросам, притормаживая долгоиграющие.

>Имхо вопросы аутентификации, авторизации, шифрования в учетных системах ну никак не отнесешь к бизнес-логике.

Навыерное Вы правы - скудность словарного запаса.
Это функциональность сервера приложений. Хотя, что называть бизнес логикой. Но это не суть важно.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33318738
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChУу... Как у вас все запущено...

Например если в документе есть поля, которые надо выделять отдельно, но на бизнес-логику они никак не завязаны, зато по ним например может производиться поиск, то мне не придется изменять ничего, просто в конфигураторе описать новые поля.
...
Разграничение прав доступа проверяется тоже в этих универсальных процедурах.

Ой, дежавю... Вы 2С разработали?! Зачем, уже же есть 1С со всем известными ее проблемами?!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319089
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как так? Говоришь одно, спрашиваешь одно - отвечают другое.......

ООП А вам не кажется, что данная логика значительно лучше реализуется на ОО языках вместо того, чтобы городить это на сервере. Ведь именно про такую обвязку и говорил Д. Сорокин в первых постах.
Как у вас вызвается метод базового класса? Тоже через такой поиск? Зачем???
Нам не кажется.
А вы привели бы пример этого всего на ООП - а мы посмотрим, как прекрасно, когда БЛ зависит от клиента. Особенно если вдруг версии клиента разные. :))
Ну еще вам наверное интересно писать в клиенте кучу структур, вместо одной маленькой и простой ХП? А потом править там же, на клиенте - так? Или не так? А как? Хотелось бы пример.

ООП Если это пример того, как "снижаются" расходы на разработку - то я молчу. Релиазовывать С++ на T-SQL, да еще и так, что это становится делом ВСЕХ разработчиков системы - это что-то.
У вас очки не те одеты - вы о каком С++? Или ..а, понятно, вот почему ООП - вы же только на С++ умеет с данными работать, а на SQL кроме select * from table ничего боле не можете. Ну так ваши проблемы, что sql не родной.

ООП В вашей реализации любой девелопер, разрабытвающий БЛ должен знать, что при добавлении метода ему нужно сделать "виртуальный", в нем пробежаться по таблице типов, выбрать нужный по имени и его вызвать. А если потом ошибиться на одну букву в названии метода для типа - то еще и ошибку получить. Великолепно.
Я даже и не понял, о чем это вы?
Но все-равно, получается, что в вашей реализации ничего вообще делать не надо - методы сами откуда-то берутся, материализуются силой мысли. :))

--------
VladiCh Мне для заведения нового атрибута в самом простом случае не потребуется ни того, ни другого, ни третьего. В системе есть т.н. расширенные атрбуты, которые хранятся вертикально в отдельной таблице. Например если в документе есть поля, которые надо выделять отдельно, но на бизнес-логику они никак не завязаны, зато по ним например может производиться поиск, то мне не придется изменять ничего, просто в конфигураторе описать новые поля.
Ну давайте сначала определимся - есть атрибуты, которые хранятся где-то отдельно от основной таблицы, и есть поля таблицы.
Так вот при изменении полей таблицы вам все-равно придется менять везде.
И нам тоже :)
При изменении атрибутов вам не надо менять - автоматика, понимаешь.
Ну и нам тоже :)
Вот отсюда и вопрос, опять и опять: зачем тогда вам объект, если у нас его нет, а делаем мы с вами одно и тоже. :))

VladiCh Пользователь дергает эти методы... Эти методы реализуются по-разному у разных типов объектов, но пользователь их дергает одинаково.
Ну конечно одинаково - одну ХП :) Только для того, чтобы ее дернуть, не надо городить городушки на клиенте - просто exec ChangeState @ID, @SID. И как бы логика не поменялась - всегда только этот вызов, с любого клиента, даже если у вас кроме ID и названия объекта ничего больше нет (естественно и никаких ООП).
авторДля выполнения этих методов объекту нужны атрибуты, загружаемые з базы.
Вот! А нам не нужно ничего загружать из базы - все там в ней самой и делается. Что проще?
VladiCh Может быть я конечно непонятно пишу, не знаю... Но мне почему-то кажется, что дело не во мне, просто кое-кто упорно не желает понимать простейших вещей.
Ну, мы просто не можем никак понять, зачем вам объекты со всеми их атрибутами и методами, которые как-то генерит какой-то специальный механизм. Почему непонятно - потому что непонятно, зачем делать сложнее, если можно проще, причем намного. Было бы у вас проще - мы бы другое говорили.

VladiCh Разумеется можно дернуть одну ХП, которая внутри определит тип товара и дернет другую ХП. При добавлении нового типа товара вам нужно будет переписывать эту ХП.
Ну если вы хотите - переписывайте.
Обычно не переписывают - одна базовая ХП имеет только механизм для разборки, что, кто, зачем и где дернуть, вся же обработка естественно для каждого типа товара написана отдельно. Но тут уж простор реализаций - кто алгоритмы хранит и потом обрабатывает, а кто и отдельные процедуры пишет.
Но сводится все к одному: дернули базовую ХП, она поняла тип, по типу определила, что исполнить, исполнила, отдала ответ. Все. Зачем тут ООП, да еще на клиенте? Зачем вообще для этого что-то на клиенте?

Я еще раз обозначу проблему: зачем вам объекты? Ну приведите пример объекта, примерное описание кода, который делает объект на клиенте и т.д.
Потому что пока все-равно не понятно - у нас сделано все намного проще, а работает так же. Смысл делать сложнее?

Может рассказать и про мой "механизм", так, для информации? Может...

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319170
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSНу давайте уважаемые адепты 3-х звенок спустимся наконец на землю и на конкретных примерах от вас услышим, что же это за бизнес-логика такая у вас сложная, что она выльется в тысячи хранимых процедур с большим кол-вом кода, да еще который из за изменения ТЗ весь почему то лопатить придется ?
Спор для себя считаю бессмысленным, хотя аргументы интерсны. Приведу только пример 3-х (много) звенки. Система регистрации пользователей. Веб-интерфейс - запрос пользователя о своих данных.
1. Обработка - проверка корректности данных по базе данных и далее
2. Созадть учетную запись в Active Directory в нужном домене (на основании данных из базы данных), занести в нужные группы (на основании должностей, категорий, ролей и т.п.)
3. Создать личную папку на файловом сервере и дать на нее права. Создать при необходимости папку отдела на сервере и дать на нее права вновь созданной учетной записи
4. Создать папку на другом сервере и дать на нее права
5. Создать запись в базе данных
Ну ладно, по здешним парвилам веб-приложение не считается отдельным слоем. Ладно - сравнение на корректность 1 и п.5. можно делать или там же или в ХП. Теоертически какжется где-то мелькала информация, что можно даже создать учетную здапись из СУБД (но кажется речь шла исключительно о MS SQL - тут не буду спорить).
НО п.3 и п.4. Можно сделать только с помощью приложения, работающего на тех же серверах, где файловые серверы и приложения, конечно, не SLQ. У нас на С++, возможно и на функциональных написать, только не понятно, чем они здесь лучше обычного С++, или просто С.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319211
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrameНО п.3 и п.4. Можно сделать только с помощью приложения , работающего на тех же серверах, где файловые серверы и приложения, конечно, не SLQ. У нас на С++, возможно и на функциональных написать, только не понятно, чем они здесь лучше обычного С++, или просто С.Спорно. У меня, как пример, закачкой данных на сервер занимается сам сервер.

Реализованно очень просто - сервер запускает шелл-команду и все...

PS это не панацея, а просто пример того, что приложением может выступать и сам SQL-сервер.

----

SAnalis.ru - Just for fun. Еще расту, а так я ДЖИП!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319222
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrameПриведу только пример 3-х (много) звенки. Система регистрации пользователей. Веб-интерфейс - запрос пользователя о своих данных.

Эээ... Интересный, пример, однако... Особенно в плане темы топика "Сервер приложений". И где тут бизнес-логика?! Голимое администрирование...

авторНО п.3 и п.4. Можно сделать только с помощью приложения, работающего на тех же серверах, где файловые серверы и приложения, конечно, не SLQ.

И какие проблемы вызвать это приложение на удаленном сервере?! про расширенные хп вы слышали? Которые можно на том же С++ написать и дергать их в СУБД.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319248
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame ASCRUSНу давайте уважаемые адепты 3-х звенок спустимся наконец на землю и на конкретных примерах от вас услышим, что же это за бизнес-логика такая у вас сложная, что она выльется в тысячи хранимых процедур с большим кол-вом кода, да еще который из за изменения ТЗ весь почему то лопатить придется ?
Спор для себя считаю бессмысленным, хотя аргументы интерсны. Приведу только пример 3-х (много) звенки. Система регистрации пользователей. Веб-интерфейс - запрос пользователя о своих данных.

Позволю себе слегка изменить порядок действий
0. Первичная проверка правильности ввода клиентом (JavaScript)
MainFrame1. Обработка - проверка корректности данных по базе данных и далее
5. Создать запись в базе данных Выполняются в хранимой процедуре

MainFrame2. Созадть учетную запись в Active Directory в нужном домене (на основании данных из базы данных), занести в нужные группы (на основании должностей, категорий, ролей и т.п.)
3. Создать личную папку на файловом сервере и дать на нее права. Создать при необходимости папку отдела на сервере и дать на нее права вновь созданной учетной записи
4. Создать папку на другом сервере и дать на нее праваВыполняются скриптом/набором скриптов на WSH/bat/cmd/*nix shell, которые генерятся и запускаются на исполнение той же самой хранимой процедурой.

Кстати, как поведет себя приложение, действующее по описанному вами сценарию, в случае если п.5 по каким-либо причинам не выполнился и необходимо произвести откат транзакции?
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319293
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA MainFrameНО п.3 и п.4. Можно сделать только с помощью приложения , работающего на тех же серверах, где файловые серверы и приложения, конечно, не SLQ. У нас на С++, возможно и на функциональных написать, только не понятно, чем они здесь лучше обычного С++, или просто С.Спорно. У меня, как пример, закачкой данных на сервер занимается сам сервер.

Реализованно очень просто - сервер запускает шелл-команду и все...

PS это не панацея, а просто пример того, что приложением может выступать и сам SQL-сервер.

----

SAnalis.ru - Just for fun. Еще расту, а так я ДЖИП!

Попробуйте создать папки на файловых серверах в Windows , находясь где-нибудь в другом месте кроме самого сервера и назначить квоты учетным записям на этом сервере.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319305
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin MainFrameПриведу только пример 3-х (много) звенки. Система регистрации пользователей. Веб-интерфейс - запрос пользователя о своих данных.

Эээ... Интересный, пример, однако... Особенно в плане темы топика "Сервер приложений". И где тут бизнес-логика?! Голимое администрирование...

авторНО п.3 и п.4. Можно сделать только с помощью приложения, работающего на тех же серверах, где файловые серверы и приложения, конечно, не SLQ.

И какие проблемы вызвать это приложение на удаленном сервере?! про расширенные хп вы слышали? Которые можно на том же С++ написать и дергать их в СУБД.

1.Речь от сревера приложений плавно перетекла к многоуровневым приложением, поэтому и пример приведен приложения, где многокомпонентность необходимая вещь.
2. А при чем тут расширение. Приложение должно работать на файловом сервере (сервер базы данных - это свосем другой сервер), иначе оно не может задать квоты учетной записи.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319313
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99 MainFrame ASCRUSНу давайте уважаемые адепты 3-х звенок спустимся наконец на землю и на конкретных примерах от вас услышим, что же это за бизнес-логика такая у вас сложная, что она выльется в тысячи хранимых процедур с большим кол-вом кода, да еще который из за изменения ТЗ весь почему то лопатить придется ?
Спор для себя считаю бессмысленным, хотя аргументы интерсны. Приведу только пример 3-х (много) звенки. Система регистрации пользователей. Веб-интерфейс - запрос пользователя о своих данных.

Позволю себе слегка изменить порядок действий
0. Первичная проверка правильности ввода клиентом (JavaScript)
MainFrame1. Обработка - проверка корректности данных по базе данных и далее
5. Создать запись в базе данных Выполняются в хранимой процедуре

MainFrame2. Созадть учетную запись в Active Directory в нужном домене (на основании данных из базы данных), занести в нужные группы (на основании должностей, категорий, ролей и т.п.)
3. Создать личную папку на файловом сервере и дать на нее права. Создать при необходимости папку отдела на сервере и дать на нее права вновь созданной учетной записи
4. Создать папку на другом сервере и дать на нее праваВыполняются скриптом/набором скриптов на WSH/bat/cmd/*nix shell, которые генерятся и запускаются на исполнение той же самой хранимой процедурой.

Кстати, как поведет себя приложение, действующее по описанному вами сценарию, в случае если п.5 по каким-либо причинам не выполнился и необходимо произвести откат транзакции?
Ответ уже дан. Система Windiows, приложение работает только на файловом сервере ввиду необходимости задавать квоты.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319318
vialexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MainFrameПопробуйте создать папки на файловых серверах в Windows , находясь где-нибудь в другом месте кроме самого сервера и назначить квоты учетным записям на этом сервере.

Тут вот написано как сделать:
http://www.microsoft.com/technet/scriptcenter/topics/win2003/quotas.mspx

Учитывая поддержку Automation в T-SQL... Легко!
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319336
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame1.Речь от сревера приложений плавно перетекла к многоуровневым приложением, поэтому и пример приведен приложения, где многокомпонентность необходимая вещь.
2. А при чем тут расширение. Приложение должно работать на файловом сервере (сервер базы данных - это свосем другой сервер), иначе оно не может задать квоты учетной записи.

1. Ок. Согласен.
2. Ну так и пусть себеработает. А запускать его будет расширенная хп.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319381
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vialexis MainFrameПопробуйте создать папки на файловых серверах в Windows , находясь где-нибудь в другом месте кроме самого сервера и назначить квоты учетным записям на этом сервере.

Тут вот написано как сделать:
http://www.microsoft.com/technet/scriptcenter/topics/win2003/quotas.mspx

Учитывая поддержку Automation в T-SQL... Легко!
Скорее всего да, только сам WMIService будет работать все равно на файловом сервере и сделает установку вместо Вас. Но он-то тоже будет частью вашей системы. Вы просто используете для установки не свое приложение, а существующий com объект на файловом сервере
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33319451
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для разнообразия приведу еще один пример. Система тестирования. Тест, который предпоалагается пройти, является адаптационным. Т.е. в тесте есть определенные вопросы , которые являются подмножеством общего числа вопросов. И эти вопросы нужно показываться в некотором порядке, который заивист от ответов пользователя.
Приложение вебовское - J2EE.
Вариантов решения много.

1. Можно каждый раз, обработать ответ и выбирать из базы только тот вопрос, который нужно по результатам ответ показать. Сто вопросов - сто обращений к базе. ДВести пользователей одновременно тестируются - много обращений.
2. Можно выбрать один раз подмнождество. Потом из него выбирать тот, который соответсвует ответу на предыдущий. Обращений к базе меньше в сто раз. Нагрузка ложиться на сервер приложений.

можно и другое придумать.

Однозначаного лучшего решения тут нет, как мне кажется. По собственному опыту могу скзаать, что при большом числе пользователей выгоднее второй вариант, но наступает момент, когда отсутсвие нормальной сборки мусора (и кое какие другие причины) приводит к необходимости распределять нагрузку сервера приложений. НО и первый вариант не выход. На нем производительность недопустимая.
...
Рейтинг: 0 / 0
25 сообщений из 440, страница 10 из 18
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Создание сервера приложений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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