Форум: "Прочее";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Вниз
подскажите простую реализацию Найти похожие ветки
← →
ford © (2009-10-19 10:50) [0]Здравствуйте!
Подскажите как проще всего сделать уведомление приложений, работающих на разных компах в сети, о том что на сервере появились новые файлы.
т.е. есть сервер (файловый), есть программа на другом компе, которая синхронизирует папки с разных компов в сети с папкой на сервере, и есть еще клиентская часть которая функциклирует на некоторых компах в сети. Вот клиентской части надо как-то сказать что на сервере новые файлики появились, вот такой вот такой и вот такой. Причем клиентскую часть могут запускать разные пользователи и надо уведомлять каждого из них, и если он сейчас не активен, то уведомлять его тогда когда он открыл клиентскую часть. Но, дело в том что файлы которые были записаны на сервер могут быть уже перемещены другими пользователями, и тогда уведомлять его о новых файлах, тех которые были перемещены, уже не надо.
Я хотел использовать для этого БД, т.е. программа которая синхронизирует файлы, записывает новые в табличку, а в другой табличке клиент делает записи о том какие из уведомлений он уже посмотрел.
но мне кажется что такой метод не рационален, т.к. необходимо отслеживать еще и перемещение файлов с сервера, которые другой пользователь, например удалил или перместил и соответственно удалять из таблицы записи о таких файлах.
Можно еще сделать таким образом: программа которая синхронизирует папки, держит табличку в памяти и висит на каком то порту. Клиентская часть соединяется с этой машинкой, и получает список который держит та программа, но опять таки ей придется по мимо того что синхронизировать еще и следить за файлами которые перемещены и удалять их из своего списка, но скаой переодичностью тогда опрашивать каталоги... неизвестно.
← →
Сергей М. © (2009-10-19 10:54) [1]Каша из файл-серверной и клиент-серверной архитектур ни к чему хорошему не приведет.
← →
ford © (2009-10-19 11:07) [2]
> Каша из файл-серверной и клиент-серверной архитектур ни
> к чему хорошему не приведет.
согласен, но факт остается фактом
реализовать надо
только как :) ?
чтобы не нагородить еще большую кашу :)
← →
Медвежонок Пятачок © (2009-10-19 11:12) [3]судя по полету мысли, там работает целый зоопарк программ, чего-то там синхронизирующих.
и зачем в таком разе какие-то уведомления, если все и так синхронизируется?
← →
ford © (2009-10-19 11:19) [4]
> судя по полету мысли, там работает целый зоопарк программ,
> чего-то там синхронизирующих
не зоопарк а одна единственная :)
и программа через которую пользователь управляет файлами на сервере
т.е. синхронизирующая синхронизировала папки (неважно какие) с папками на сервере.
Пользователь открывает программу у себя и может производить действия над файлами на сервере (перемещать или удалять их).
Надо информировать пользователя через программу которую он открывает, что на сервере есть новые файлы там то и там то такой и такой. Но если другой пользователь уже удалил или переместил какие-то из файлов на сервере то о них уведомлять не надо.
← →
ford © (2009-10-19 11:22) [5]можно, сканировать папки при открытии программы пользователем и по содержимому выводить собственно список новых файлов, но ..
дело в том что какие папки синхронизируются знает только программа которая занимается синхронизацией.
:)
← →
Медвежонок Пятачок © (2009-10-19 11:26) [6]Надо информировать пользователя через программу которую он открывает, что на сервере есть новые файлы там то и там то такой и такой. Но если другой пользователь уже удалил или переместил какие-то из файлов на сервере то о них уведомлять не надо.
ага. особенно интересно будет, если сначала будет уведомление, а затем удаление.
← →
Сергей М. © (2009-10-19 11:28) [7]
> чтобы не нагородить еще большую кашу
Боюсь что тут поможет только хирургическое вмешательство: чьим-то волевым решением закрыть раз и навсегда весь этот файлозоопарк и на его месте развернуть полноценную кл.-серв. систему.
← →
Сергей М. © (2009-10-19 11:31) [8]
> программа через которую пользователь управляет файлами
> на сервере
Непонятно, нашиша для этого нужна какая-то своя программа, если с этим вполне успешно справляется любой мало-мальски приличный файл-менеджер, начиная со всем известного виндового Проводника ?
← →
ford © (2009-10-19 11:33) [9]
> Боюсь что тут поможет только хирургическое вмешательство:
> чьим-то волевым решением закрыть раз и навсегда весь этот
> файлозоопарк и на его месте развернуть полноценную кл.-серв.
> систему.
можно даже попросить Билли переписать винду, чтобы она была удобна и имела теже функции что и Linux системы :)
и чтобы не скачивать каждый день новую заплатку, а изначально в системе не было дыр :)
← →
Медвежонок Пятачок © (2009-10-19 11:34) [10]клиника
← →
Сергей М. © (2009-10-19 11:35) [11]
> ford © (19.10.09 11:33) [9]
Не надо месить кислое с фиолетовым.
← →
ford © (2009-10-19 11:35) [12]
> Непонятно, нашиша для этого нужна какая-то своя программа,
> если с этим вполне успешно справляется любой мало-мальски
> приличный файл-менеджер, начиная со всем известного виндового
> Проводника ?
ну я надеюсь, вы могли бы догадаться, что программа у пользователя не просто перемещает файлы :)))
а выполняет еще целый ряд функций которые файловый менеджер не в состоянии выполнить, потму-что это просто не входит в его обязанности и компетенцию.
← →
ford © (2009-10-19 11:39) [13]
> Медвежонок Пятачок © (19.10.09 11:34) [10]
>
> клиника
>
ОС семейства Windows это клиника, я с вами не спорю :)
например в Linux при помощи iptables можно реализовать
маршрутизатор+файрвол+портмапинг
а теперь прикинте скока программ надо поставить чтобы полноценно реализовать такое в винде :)
....
о вопрос то не о ОС :)
а о том как просче реализовать задачу :)
← →
Медвежонок Пятачок © (2009-10-19 11:40) [14]похоже очередной тру-админ испытывает муки творчества
а о том как просче реализовать задачу :)
какую задачу-то?
← →
Сергей М. © (2009-10-19 11:41) [15]
> ford © (19.10.09 11:35) [12]
Тогда поясни, что это за "синхронизация" такая, которую любой юзер в любой секунд имеет право "рассинхронизировать" по своему усмотрению, благо ничто не мешает ему шариться по ресурсам файл-сервера и изменять их как и когда заблагорассудиться..
← →
Anatoly Podgoretsky © (2009-10-19 11:46) [16]Казачок то засланый.
И сам себе задачу придумыает, видимо работать не хочет.
← →
ford © (2009-10-19 11:50) [17]
> Тогда поясни, что это за "синхронизация" такая, которую
> любой юзер в любой секунд имеет право "рассинхронизировать"
программа которая синхронизирует файлы, синхронизирует определенный список папок с папкой на сервере
ну например есть пара пользователей которые в ворде набирают файлики и складывают их в свои папочки :) причем папочки могут быть как на машинах в локальной сети так и FTP папки
вот, программа синхронизирует все эти разрозненные файлики с папкой на сервере.
Далее другие пользователи через свое приложение могут производить определенные действия над этими файлами и после того как все что надо с ними сделали, программа перемещает их куда следует (в архив например)
Получается что пользователь открывая свое приложение не знает откуда файлы возникают на сервере и ему это знать не надо
главное что они там есть (т.е. появились)
но вот сообщить ему что там есть новые файлы надо
← →
Skyle © (2009-10-19 11:52) [18]Ну у тебя прямо почти MS SourceSafe получается....
← →
ford © (2009-10-19 11:53) [19]
> Казачок то засланый.
> И сам себе задачу придумыает, видимо работать не хочет.
конечно не хочу :)
компьютеры для того и придуманы чтобы заменить тупой однообразный труд
автоматизировав обнообразные процессы
:)
я чегото не понимаю, Анатолий, а вы видимо никогда не пользуетесь планировщиком задач :) ?
← →
Медвежонок Пятачок © (2009-10-19 11:54) [20]не зоопарк а одна единственная :)
программа перемещает их куда следует (в архив например)
не знает откуда файлы возникают на сервере
и ему это знать не надо
что-то в этой консерватории не сходится.
← →
Сергей М. © (2009-10-19 12:04) [21]
> после того как все что надо с ними сделали, программа перемещает
> их куда следует
Какая программа-то ?
Которая на файл-сервере крутится ?
И как же она у тебя определяет, что "все что надо с ними сделали" ?
← →
Сергей М. © (2009-10-19 12:11) [22]
> программа перемещает их куда следует
Тогда за каким лешим юзеру позволено лезть в "туда куда следует" и перемещать оттуда файлы туда куда ему вздумается ?
← →
Дуб © (2009-10-19 12:17) [23]Тут или диаграмму надо с подробностями, или проставиться каждому по пузырю белой и подождать просветления. Туман какой-то.
← →
ford © (2009-10-19 12:22) [24]
> Тогда за каким лешим юзеру позволено лезть в "туда куда
> следует" и перемещать оттуда файлы туда куда ему вздумается
> ?
да не позволенно ему
он это делает через программу которую запускает у себя на машине
он собственно и не знает куда оно и что пермещается
ему открываются только новые файлы для просмотра и корректировки ну там что он с ними еще делает
и кк только он с ними все салет программа уже сама перемещает или удалет файлик
я написал что "пользователь делает" естественно подразумевая что он это не самолично делает а лишь принимает решение что делать с этим файлом
дальше ессесно программа его еще сама обрабатывает и уже кладет куда надо в том виде котором надо :)
← →
Сергей М. © (2009-10-19 12:33) [25]
> хотел использовать для этого БД
А что мешало использовать БД для централизованного и контролируемого СУБД-сервером хранения содержимого документов общего пользования ?
← →
Kolan © (2009-10-19 12:33) [26]Может воспользоваться SVN-ом.
Правда тогда вас можно будет уволить, так как программист не понадобится.
← →
ford © (2009-10-19 12:36) [27]диаграмма:
(1.файл сервер: имеет папки куда должны складываться первичные файлы)
^| ^
| | |
| | (2.синхронизатор содержимого каталогов из разных источников с сервер.)
| |
V
(3.программа на рабочем месте пользователя)
(2) переодически опрашивает разные источники FTP HTTP каталоги на других компах, и как тока там новый файл, кладет его в папку на (1) сохраняя структуру каталогов источника (если такова я есть).
(3) пользователь видит список файлов, обрабатывает (чего он делает с ним по барабану, удалить или скопировать он его сам не может), далее программа его еще раз обрабатывает и кладет в другую папку на (1) которая уже обычному пользователю не доступна.
получается что (3) не знает в каких папках могут появиться файлы которые он может обработать, какие надо обработать знает (2). Настройки (2) могут меняться переодически (имеется в виду что сегодня мы кладем все новые файлики в папку \111, а завтра например в \222)
т.е. (3) надо както уведомить о том что (2) положил файлики в такието папочки и звать их так то :)
например (2) записал файлик Вася.dat из папки c:\Local Settings\Users\Иванов\документы\на сегодня с компьютера из локальной сети
в папку \111\документы\на сегодня на сервере(1)
пользователь Петя на другой машинке открывает программу и она должна ему сказать что появился новый файлик \документы\на сегодня\Вася.dat
Петя чегото с ним делает и полсе программа (3) переносит файлик вася.dat в каталог \Store на машинке (1)
← →
ford © (2009-10-19 12:39) [28]
> А что мешало использовать БД для централизованного и контролируемого
> СУБД-сервером хранения содержимого документов общего пользования
> ?
файлов много и они большие шибко
и ну например БД, как я могу определить что в таблице такойто появились новые записи?
только опять таки как я писал выше хранить в отдельной таблице, например, какие номера записей такойто пользователь уже просматривал
← →
ford © (2009-10-19 12:42) [29]
> А что мешало использовать БД для централизованного и контролируемого
> СУБД-сервером хранения содержимого документов общего пользования
> ?
>
мало того файлы которые обрабатываются они так сказать временные
ибо после обработки оного образуется абсолютно другой файл
и если я буду первичные файлы загонять в БД а потом удалять т.к. они уже будут не нужны то придется каждый день делать что то типа упаковки БД
чтобы удалить те пару тройку гиг которые образовались в виде пустых страниц хранилища
мне так кажется что это не есть гуд, каждый день делать экспорт-импорт всей БД
← →
Сергей М. © (2009-10-19 12:54) [30]
> файлов много и они большие шибко
Вордовые файловые контейнеры довольно хорошо сжимаются.
А для хранения отработанного материала придуманы архивные БД.
> как я могу определить что в таблице такойто появились новые
> записи?
На то существуют 3-хзвенные архитектуры, в которых за централизацию логики, в т.ч. событийной, призвано отвечать 2-е звено - сервер приложений.
> каждый день делать что то типа упаковки БД
Даже если это так (в чем есть большие сомнения), это админисртативная задача. Т.е. не твоя, если ты программист.
← →
ford © (2009-10-19 13:07) [31]
> Сергей М. © (19.10.09 12:54) [30]
про ворд я к примеру сказал :)
ну это лана, трехзвенка в данном случае было бы то что надо
но это большой проект который надо начинать с нуля, что не страшно, просто времени много уйдет , а его нет, поэтому надо делать что-то над тем что есть
:)
вот и возникают такие вот дурацкие задачки :)
← →
Anatoly Podgoretsky © (2009-10-19 13:10) [32]> ford (19.10.2009 12:42:29) [29]
Что за хреновая у тебя БД
← →
Сергей М. © (2009-10-19 13:25) [33]
> времени много уйдет , а его нет
А его никогда и не будет.
Блее того - чем больше ты занят латанием текщих дыр, тем больше ты погрязаешь в цейтноте, потому что на каждую заштопанную тобой на скорую руку дырку обязательно появляются минимум две новые дырищи)
← →
ford © (2009-10-19 13:44) [34]
> Anatoly Podgoretsky © (19.10.09 13:10) [32]
>
> > ford (19.10.2009 12:42:29) [29]
>
> Что за хреновая у тебя БД
подскажи хорошую :)
> Сергей М. © (19.10.09 13:25) [33]
>
>
дело в том что сделав то у меня как раз и появится время (относительно) которое я и могу потратить на разработку клиент серверного приложения для решения комплексной задачи :)
почему и попросил помощи, подсказать простое решение :) данной проблеммы
без изобретения велосипеда или того хуже колеса :)
чтобы не заморачиваясь сделать эту вещичку и освобдившееся время потратить на что то более полезное :)
например, както работал в банке :) РКЦ кинуло програмулину для связи
жо-а полная :) (называлась Armuni, както так еси правильно помню) по 15 минут уходило на то чтобы в режиме ручной обезяны отправить им документы. написал маааленькую приблуду которая вместо меня нажимала на кнопки в приложении и опа :) 15 мин по 4 раза в день свободны
что собственно целый час времени ;)
но если учесть что вы мне написали то я должен был послать ЦБ и написать программу за них? (что оочень хотелось сделать) а это сами понимаете не возможно по этическим причинам безопасности ЦБ :)
поэтому не всегда все так просто
может БД и хреновая но лучшей нету, может это идиотизм что система работает так, но это не комне :)
надо сделать задачу и это главное, но можно делать через Ж, а можно красиво ;)
← →
Сергей М. © (2009-10-19 14:01) [35]
> следить за файлами которые перемещены и удалять их из своего
> списка
Не надо за ними следить, пусть твоя клиентская приблуда сама сообщит серверной приблуде, что переместила такой-то файл туда-то.
← →
Anatoly Podgoretsky © (2009-10-19 14:42) [36]> ford (19.10.2009 13:44:34) [34]
>> Что за хреновая у тебя БД
> подскажи хорошую :)
Почти любая промышленная СУБД не требует упаковки. Умеет повторно использовать свободное место.
← →
ANB (2009-10-20 12:43) [37]
> подскажи хорошую :)
Оракл :D
1) Есть готовые системы документооборота
2) По сабжу - пока не станет понятны все процессы, ничего толкового не подсказать.
Конкретно уведомление, которое должно доставляться и в офф-лайн, можно сделать :
2.1) Через почту
2.2) Через БД
2.3) Через еще один файлик :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.005 c