Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.20;
Скачать: CL | DM;

Вниз

подскажите простую реализацию   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.012 c
15-1255799077
interrupt
2009-10-17 21:04
2009.12.20
неполадки монитора


2-1257247329
Qwerg_ntgl
2009-11-03 14:22
2009.12.20
Работа с EkRTF


15-1255897809
Юрий
2009-10-19 00:30
2009.12.20
С днем рождения ! 19 октября 2009 понедельник


4-1225282594
Н_А
2008-10-29 15:16
2009.12.20
winAPI


2-1257157125
Rendal
2009-11-02 13:18
2009.12.20
Удаление ключа из реестра