![]() |
|
![]() ![]() ![]() |
|
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
Допустим есть некий CMS, пользователь может делать что угодно, хоть локальный аппокалипсис организовать, но система должна каким то образом записывать все его действия и уметь восстанавливаться по первому требованию. Механизм существует в MediaWiki, движок wikipedia.org, но хотелось бы пойти дальше. Как:
На все вопросы сейчас рождаються мысли, обнозгую и чуть позже выложу. Интересует оценка тех кто с этим уже возился и вообще идеи как это всё порешать. Задача ИМХО очень сложная, в mediawiki зароюсь позже, когда появиться хоть какое то преставление проблемы. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
как я погимаю суть этакой программы:
1 при старте ставятся хуки на все что можно (нужно) 2 действия пользователя перехватываются этими хуками и вносятся в сою базу изменений, при этом на самом деле ничего не происходит (деструктивного) 3 при запросах информации выдается инфа с учетом изменений хранящихся в проге. Подобные программы не юзал (только слышал). отзывы были радужные но от ламеров. Для себя вижу такие проблемы: При подмене удаления файлов место реально не освобождается. Следовательно может наступить ситуация когда места на винте физически не будет, а логически полно (много поудаляли). Как быть? При многопользовательской работе. + удаленные клиенты. Для каждого своя база свои подмены Срок действия такой подмены не более 1 сессии пользователя, иначе ... результат непредсказуем (могут возникать всякие нехорошие ситыации как с местом на диске). Ну и политический момент: зачем разрешать делать то что делать пользователю нельзя? Тоесть если человек привыкнет к тому что его действия (деструктивные) не имеют никаких последствий то и отношение к безопасности и стабильности у него будет посредственное (если вобще будет), что может привести к пагубным результатам на машинах без подобной проги + прога может не от всего защищает. Сумбурно, но мысли. Добавлено @ 16:42 для реализации реализации альфы думаю не менее 1000 чч (человеко часов) надо. Это я со своего уровня говорю может для профи и меньше. Но сомневаюсь. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
Sardar |
|
||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
В принципе это транзакции, как в БД, отсюда их проблема: короткое время работы. Нельзя держат транзакцию неделю, а идея в том что бы терпеть хотя бы 3-5 дней зверского издевательства над системой сотнями юзеров, сделав откат одного не терялись бы данные другого (этим бекап не подходит). Под PHP в принципе хуки не поставить, если только своё расширение писать, но можно заставить весь софт пользовать "фильтрованное" API. Новый софт должен конечно портироваться в такую среду, но это уже не так больно ![]() ИМХО не проблема, отказ по месту фатален по определеению. Сейчас пока идея держать корзину инкрементальных патчей, с каждого изменения снимаеться diff и кладёться в корзину под временем, откат в обратном порядке. При удалении весь файл в корзину. В принципе работать должно быстро, остановлюсь на этом если кто какую инновационную идею не подскажет ![]()
Вот это проблема, пользователи юзают единую базу, запись может частями редактироваться (параллельно) двумя юзерами, при этом откат одного не должен разруштй изменения другого, но! должен как то выделить запись как возможно битую из-за отката. Юзер наделённый правами должен просмотреть запись, реверснуть откат или наоборот откатить всё из записи и вернуть её во множество не битых записей. Естественно передвижений не будет, просто дополнительные флаги и прочая мета инфа, потери мизерные по идее. Пока не до конца врубаюсь как это всё представить....
И тут трабла - срок несколько дней, конечно "мелкие откаты" можно фильтровать, но глобальные изменения (заменили документ, добавили 3 записи в БД и т.д.) должны храниться хотя бы пару дней. Нет, человек будет получать в купол каждый раз как накосячит ![]()
Ну если под задачу, то можно уложиться и в меньшее ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |