Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1257151733
kyn66
2009-11-02 11:48
2009.12.20
Периодический опрос во время работы программы.


2-1257331068
6ruse
2009-11-04 13:37
2009.12.20
Редактирование записи


2-1257108059
GreyWolf
2009-11-01 23:40
2009.12.20
Аналог ShowModal для свернутого в трей приложения


2-1257182783
STD
2009-11-02 20:26
2009.12.20
Выполнить в фоне


15-1256332173
POOP
2009-10-24 01:09
2009.12.20
Как в bat файле выделить текущий каталог?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский