Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
Здравствуйте, symantis, Вы писали:
S>Добрый день!
S>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
А сколько пользователей одновременно читают-пишут в БД?
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам
Здравствуйте, symantis, Вы писали:
S>Добрый день!
S>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
Я бы логику БД выносил бы в серверный компонент. А уж клиенты имели бы дело с ним, а он уж разруливал можно\нельзя и.т.п. Имхо, гибче будет архитектура, клиент будет абстрагирован от самого MSSQL.
Здравствуйте, symantis, Вы писали:
S>Добрый день!
S>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
Во-первых веб, во вторых незачем писать, есть SharePoint
Здравствуйте, symantis, Вы писали:
S>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
Зависит от будущих планов.
Мы обошлись без промежуточного слоя, но только за счёт отсоединённого режима работы клиента. Разруливание доступа и проверка на допустимость операций делается силами СУБД. Клиенту доступен только API в виде набора SP/View. Логика, отвечающая за поведение клиента живёт на самом клиенте.
Сейчас ~ 200 пользователей, "сервер" — дохлый P4 2.8 c 2 гигами памяти (в серверной есть нормальное железо, лень переезжать, да и незачем). Проблем с производительностью/надёжностью не наблюдается.
Здравствуйте, symantis, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>Во-первых веб, во вторых незачем писать, есть SharePoint
S>Мне не нравятся веб-клиенты, и Шарепойнт тоже.
Вам или клиентам? Или клиенты не знают о вебе?
Здравствуйте, symantis, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>Во-первых веб, во вторых незачем писать, есть SharePoint
S>Мне не нравятся веб-клиенты, и Шарепойнт тоже.
Ваше личное мнение никого не интересует. Есть миллион объективных причин не использовать десктопные клиенты для таких задач.
Здравствуйте, symantis, Вы писали:
S>Здравствуйте, Sshur, Вы писали:
S>>А сколько пользователей одновременно читают-пишут в БД?
S>Думается, 100-200 одновременно будут читать из БД, проверка изменений состояний документов и т.д.
Если все только читают, то это не проблема. Вопрос сколько из них будет вносить изменения? 100 одновременно пишущих в одну таблицу прямой путь к тормозам из-за блокировок. Ну или как минимум, огромная головная боль для разработчика, чтобы их развести таким образом, чтобы они друг другу не мешали.
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам
Здравствуйте, Sshur, Вы писали:
S>Здравствуйте, symantis, Вы писали:
S>>Здравствуйте, Sshur, Вы писали:
S>>>А сколько пользователей одновременно читают-пишут в БД?
S>>Думается, 100-200 одновременно будут читать из БД, проверка изменений состояний документов и т.д.
S>Если все только читают, то это не проблема. Вопрос сколько из них будет вносить изменения? 100 одновременно пишущих в одну таблицу прямой путь к тормозам из-за блокировок. Ну или как минимум, огромная головная боль для разработчика, чтобы их развести таким образом, чтобы они друг другу не мешали.
Вы систему документооборота представляете? Она соответствует довольно типичному профиилю использования 98 запросов на чтение и 2 на запись. То есть при 500 пользователях реально одновременных записей будет 10. Причем все они пойдут по ключу. В таких условиях схватить эскалацию блокировки очень сложно, даже если пользователей станет в разы больше. Для оптимизации можно SNAPSHOT\NOLOCK применить для большинства выборок.
Здравствуйте, gandjustas, Вы писали:
G>Вы систему документооборота представляете? Она соответствует довольно типичному профиилю использования 98 запросов на чтение и 2 на запись. То есть при 500 пользователях реально одновременных записей будет 10. Причем все они пойдут по ключу. В таких условиях схватить эскалацию блокировки очень сложно, даже если пользователей станет в разы больше. Для оптимизации можно SNAPSHOT\NOLOCK применить для большинства выборок.
Систему документооборота не представляю, потому и спросил. Если все так, то при грамотном подходе у ТС проблем с параллельной работой 500 пользователей не будет.
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам
Здравствуйте, symantis, Вы писали:
S>Добрый день!
S>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
Причины появления трёхзвенной архитектуры следующие
Высокая масштабируемость
Лучшие возможности обеспечения безопасности
Более высокая надежность
Возможность балансировки нагрузки
Увеличение скорости работы
Упрощается обновление
Кардинально снижаются требования к пропускной способности сети между клиентом и средним звеном
Снижаются требования к производительности клиентских машин, следовательно — снижение стоимости эксплуатации
Может ещё чего забыл
На сегодняшний день значимость этих факторов снизилась, но вряд-ли можно сказать, что преимуществ совсем не осталось. Кроме того, если доступ через web Вам сегодня не нужен, то завтра вполне может потребоваться.
Исходя из этого и оцените, нужна-ли Вам трёхзвенка.
Здравствуйте, Jolly Roger, Вы писали:
JR>Может ещё чего забыл
Имхо, забыл сочетание недостаточной надёжности сети с разбросанностью пользователей и высокой важностью программы. Тогда, может, есть смысл в многозвенной архитектуре -- чтобы при разрыве связи таки как-то можно было работать...
Здравствуйте, symantis, Вы писали:
S>Добрый день!
S>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
Ну ещё как промежуточный вариант смарт клиент с собственным локальным кэшем и заливкой обновлений порциями.
Здравствуйте, Jolly Roger, Вы писали:
JR>Здравствуйте, symantis, Вы писали:
S>>Добрый день!
S>>Посоветуйте. Имеется планы написать специализированную систему электронного документооборота на C#+MSSQL, порядка 500 пользователей. Насколько необходим промежуточный компонент в виде сервера приложений или можно обойтись клиент-серверным вариантом (клиент — десктоп-клиент на C#, БД на MSSQL, клиенты напрямую пишут-читают из БД)?
JR>Причины появления трёхзвенной архитектуры следующие JR>
JR>Высокая масштабируемость JR>Лучшие возможности обеспечения безопасности JR>Более высокая надежность JR>Возможность балансировки нагрузки JR>Увеличение скорости работы JR>Упрощается обновление JR>Кардинально снижаются требования к пропускной способности сети между клиентом и средним звеном JR>Снижаются требования к производительности клиентских машин, следовательно — снижение стоимости эксплуатации JR>Может ещё чего забыл JR>
JR>На сегодняшний день значимость этих факторов снизилась, но вряд-ли можно сказать, что преимуществ совсем не осталось. Кроме того, если доступ через web Вам сегодня не нужен, то завтра вполне может потребоваться.
JR>Исходя из этого и оцените, нужна-ли Вам трёхзвенка.
Лично для меня сервер вэб является не 2 а 3 звеном, как и десктопные приложения.
Здравствуйте, gandjustas, Вы писали:
G>Ваше личное мнение никого не интересует. Есть миллион объективных причин не использовать десктопные клиенты для таких задач.
Например, из веба удобнее печатать странички без адреса сверху и ещё удобнее сканировать подписанные документы.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, gandjustas, Вы писали:
G>>Ваше личное мнение никого не интересует. Есть миллион объективных причин не использовать десктопные клиенты для таких задач.
A>Например, из веба удобнее печатать странички без адреса сверху и ещё удобнее сканировать подписанные документы.
Формы для печати отлично делаются и в вебе, а сканеры умеют отправлять сканы на email или складывать в папки. Причем в случае поточного сканера другого варианта и нету.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, gandjustas, Вы писали:
G>>Формы для печати отлично делаются и в вебе
A>ActiveX'ами.
Не говори глупости. в css указываются стили для печати.
G>>а сканеры умеют отправлять сканы на email или складывать в папки. A>О да, это весьма информационно-безопасно.
Не понимаю о чем ты.
G>>Причем в случае поточного сканера другого варианта и нету. A>Ты не прав.
Ага, конечно. Гораздо лучше привязать поточный сканер к конкретному рабочему месту, хотя он может сотни документов в минуту сканировать.
Собственно поточные сканеры и были придуманы для того чтобы не ставить сканеры конкретным пользователям, а использовать один на организацию\этаж\отдел.
Здравствуйте, gandjustas, Вы писали:
G>>>Формы для печати отлично делаются и в вебе A>>ActiveX'ами. G>Не говори глупости. в css указываются стили для печати.
Сам не говори глупости. Везде печатать делается через ActiveX, потому что обеспечить точное отображение печатной формы за счёт HTML невозможно (а иногда ведь надо не печатать, а впечатывать). Ты не можешь из веба задать ориентацию листа, отступы, напечатать на не дефолтный принтер.
G>>>а сканеры умеют отправлять сканы на email или складывать в папки. A>>О да, это весьма информационно-безопасно. G>Не понимаю о чем ты.
Ну так подумай о том что все документы попадут на один и тот же e-mail, в том числе секретные.
G>>>Причем в случае поточного сканера другого варианта и нету. A>>Ты не прав. G>Ага, конечно. Гораздо лучше привязать поточный сканер к конкретному рабочему месту, хотя он может сотни документов в минуту сканировать. G>Собственно поточные сканеры и были придуманы для того чтобы не ставить сканеры конкретным пользователям, а использовать один на организацию\этаж\отдел.
Теперь предлагаю вернуться из 1991-го в 2011-й и узнать что сканеры бывают сетевыми, как и принтеры.
Здравствуйте, gandjustas, Вы писали:
G>Ага, конечно. Гораздо лучше привязать поточный сканер к конкретному рабочему месту, хотя он может сотни документов в минуту сканировать.
Если мы говорим о девайсах до 2х килобаксов (чисто о сканерах, не МФУ), у них средняя скорость сканирования 20-40 страниц в секунду. За 250 килорублей можно найти и 100 ppm, но они, заразы, безумно капризны, сдыхают от пары степлерных скрепок и обожают жрать бумагу 200 ppm — это уже несколько миллионов. Дороговато для рабочего места, не?
В любом случае, куда больше времени занимает доставание листов и складывание их обратно. Особенно если кто-то умудрился заверить сшитый документ у нотариуса.
G>Собственно поточные сканеры и были придуманы для того чтобы не ставить сканеры конкретным пользователям, а использовать один на организацию\этаж\отдел.
В соседнем отделе обитает мфу xerox 5225 (вроде бы), временами приходится помогать разбираться в его настройках. Несмотря на заявленную скорость сканирования в 55 страниц/мин в реальности на документ уходит от половины минуты до двух (с момента взял в руки до момента получения пдф). Ещё столько же — на переименование и размещение документов по назначению. Это после кратких курсов "как пользоваться" и то, если человек не боится техники.
В пользовании этот чудо-девайс весьма прихотлив, отправляет отсканированные документы либо на почту (сетевому пришлось немножко повозиться с настройками на приём почты), либо на шару по SMB, но далеко не на все машины (явной закономерности не выявили). Twain|WIA драйвера есть, но не работают. Драйвера для печати ужасны — временами самопроизвольно меняют лотки и ориентацию бумаги, забывают настройки, или, наоборот, не хотят их сбрасывать. Часть настроек делается только с самого аппарата, часть — через кошмарный веб-интерфейс. Официальный саппорт печально мнётся и предлагает ограничиться пдф на шаре (и то, только после того, как я им прислал требуемые настройки винды, с которыми оно иногда работало).
Это один из лучших девайсов для небольшого офиса (до 150 000 р.), если что. Как чисто сетевой/для копицентра он крут. Как довесок к рабочему месту — увы.
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, gandjustas, Вы писали:
G>>>>Формы для печати отлично делаются и в вебе A>>>ActiveX'ами. G>>Не говори глупости. в css указываются стили для печати.
A>Сам не говори глупости. Везде печатать делается через ActiveX, потому что обеспечить точное отображение печатной формы за счёт HTML невозможно (а иногда ведь надо не печатать, а впечатывать). Ты не можешь из веба задать ориентацию листа, отступы, напечатать на не дефолтный принтер.
Не знаю как в твоем мире, а в моем ActiveX работает только в IE и использовать его для печати — идиотизм. Если нужно печатать страницы, то делают это с помощью CSS (посмотри как работают сайты авиаперевозчиков), или генерируют документы на сервере, которые печатаются клиентскими программами: pdf, xls, doc итп.
G>>>>а сканеры умеют отправлять сканы на email или складывать в папки. A>>>О да, это весьма информационно-безопасно. G>>Не понимаю о чем ты.
A>Ну так подумай о том что все документы попадут на один и тот же e-mail, в том числе секретные.
А разве все документы, в том числе и секретные будут пихать в один сканер?
Разные сканеры вполне на разные email могут отправлять.
G>>>>Причем в случае поточного сканера другого варианта и нету. A>>>Ты не прав. G>>Ага, конечно. Гораздо лучше привязать поточный сканер к конкретному рабочему месту, хотя он может сотни документов в минуту сканировать. G>>Собственно поточные сканеры и были придуманы для того чтобы не ставить сканеры конкретным пользователям, а использовать один на организацию\этаж\отдел. A>Теперь предлагаю вернуться из 1991-го в 2011-й и узнать что сканеры бывают сетевыми, как и принтеры.
А я тебе про какие говорю?
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
G>>Ага, конечно. Гораздо лучше привязать поточный сканер к конкретному рабочему месту, хотя он может сотни документов в минуту сканировать.
S>Если мы говорим о девайсах до 2х килобаксов (чисто о сканерах, не МФУ), у них средняя скорость сканирования 20-40 страниц в секунду. За 250 килорублей можно найти и 100 ppm, но они, заразы, безумно капризны, сдыхают от пары степлерных скрепок и обожают жрать бумагу 200 ppm — это уже несколько миллионов. Дороговато для рабочего места, не?
Здравствуйте, gandjustas, Вы писали:
A>>Сам не говори глупости. Везде печатать делается через ActiveX, потому что обеспечить точное отображение печатной формы за счёт HTML невозможно (а иногда ведь надо не печатать, а впечатывать). Ты не можешь из веба задать ориентацию листа, отступы, напечатать на не дефолтный принтер. G>Не знаю как в твоем мире, а в моем ActiveX работает только в IE и использовать его для печати — идиотизм. Если нужно печатать страницы, то делают это с помощью CSS (посмотри как работают сайты авиаперевозчиков), или генерируют документы на сервере, которые печатаются клиентскими программами: pdf, xls, doc итп.
после того как ты советовал использовать SharePoint ограничиться ActiveX/IE не представляются таким уж странным. Что касается идиотизма, этот идиотизм — объективная реальность.
G>А разве все документы, в том числе и секретные будут пихать в один сканер? G>Разные сканеры вполне на разные email могут отправлять.
Решение с двумя сканерами дорого и нежизнеспособно.
G>>>Ага, конечно. Гораздо лучше привязать поточный сканер к конкретному рабочему месту, хотя он может сотни документов в минуту сканировать. G>>>Собственно поточные сканеры и были придуманы для того чтобы не ставить сканеры конкретным пользователям, а использовать один на организацию\этаж\отдел. A>>Теперь предлагаю вернуться из 1991-го в 2011-й и узнать что сканеры бывают сетевыми, как и принтеры. G>А я тебе про какие говорю?
Не знаю, потому что сетевые сканеры (с драйверами которые позволяют сканировать по сети) не привязываются к одному рабочему месту.