|
Уровень доступа + функционал. Алгоритмы |
|
|
|
Apr 21 2011, 17:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Есть электронный прибор с микропроцессорным управлением. К прибору могут прикладываться самые разные люди, с разной квалификацией и полномочиями. Для этого я ввожу в систему такое понятие как уровень доступа (Level_0, Level_1, Level_2,..Level_Х) Но помимо этого у прибора есть определённый функционал, функции которого обрабатывают например клавиатуру, датчики, ЖПС модуль, элементы индикации, исполнительные ус-ва, реле и т.д. С разных уровней доступа, человек который работает с прибором, может рассчитывать на разный функционал. Другими словами сами логика и правила управления прибором должны учитывать уровень доступа пользователя в системе. Скажите, как правильнее реализовать (запрограммировать) обработку и функционала и уровня доступа? Я говорю о решении ,которое будет удобно тестировать и отлаживать.
У меня есть идея поместить управление всеми элементами индикации, всеми реле и другими исполнительными устройствами в одну фукнцию, а перед всеми входными воздействиями поставить как своего рода фильтр другую функцию. И тогда уже внутри этих функций, в соответствии с уровнем доступа, принимать решения о функционале в соответствующем уровне. Что это даст: а) я пишу функционал так как будто нет никаких уровней доступа (но в тех местах где я что-то получаю либо чем-то управляю из алгоритма, делаю это не напрямую, а через эти функции "пробки") б) я экономлю на объеме кода (оч. актуально в моем случае) в) сопровождать/править/отлаживать легче
Не факт что так правильно, но если че поправьте. Спасибо!
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
 |
Ответов
|
Apr 22 2011, 07:45
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Нет, это не правильный подход как мне кажется. А что если права доступа кучерявые, а что если пунктов меню тысячи? Я с трудом вкуриваю такие алгоритмы.
Значит вот что я решил: все входные, по отношению к системе, воздействия я "завожу" в функцию "А", которая просто фильтрует эти воздействия в соответствии с правами доступа. Другими словами не пропускает далее по алгоритму ничего кроме того, что соответствует уровню доступа. Таким образом мы убираем лишние процессорные проверки и издержки в алгоритмах. Далее отфильтрованные воздействия попадают на функцию "Б" ,которая в зависимости от прав доступа и входного воздействия формирует команду. Функционал построен по смыслу, как обработчик команд и что важно построен для максимально возможных прав. Никаких проверок на права доступа в функциях и алгоритмах, все вынесено на вход системы. По поводу выходных интерфейсов ,пока не ясно , нужно применительно к задаче будет решать. В текущей работе можно обойтись и приведенной моделью. Функцию А и Б можно было бы совместить, но явно просматривается необходимость просто фильтровать воздействие и строить команды на основе конкретного входного воздействия в совокупности с информацией о уровне доступа.
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Apr 22 2011, 08:29
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Буратино @ Apr 22 2011, 10:45)  А что если права доступа кучерявые, а что если пунктов меню тысячи? Тогда жаль  Если права доступа растут монотонно, то нет проблем - мы их нумеруем по порядку возрастания прав, а каждому пункту меню присваеваем минимальный разрешенный "идентификатор права", с которым выполняется этот пункт. Если существующий идентификатор меньше - пункт не выполняется, если равен или больше - выполняется. У меня и механизмы все заложены, нет только потребности.
--------------------
Уходя, оставьте свет...
|
|
|
|
Сообщений в этой теме
Буратино Уровень доступа + функционал. Алгоритмы Apr 21 2011, 17:04 ukpyr ЦитатаСкажите, как правильнее реализовать (запрогр... Apr 21 2011, 17:14 Буратино Цитата(ukpyr @ Apr 21 2011, 20:14) ну так... Apr 21 2011, 17:26 ukpyr ЦитатаМы ведь можем просто не пропустить далее по ... Apr 21 2011, 17:36 garlands хм. вся фильтрация осуществляется еще на уровне юз... Apr 21 2011, 17:52 Буратино Цитата(garlands @ Apr 21 2011, 20:52) хм.... Apr 21 2011, 20:19 нечитатель входное воздействие - интерфейс [суть способ преоб... Apr 22 2011, 03:57 iosifk Цитата(Буратино @ Apr 21 2011, 21:04) ...... Apr 22 2011, 04:46 Буратино Цитата(iosifk @ Apr 22 2011, 08:46) Все х... Apr 22 2011, 05:20  Dog Pawlowa Цитата(Буратино @ Apr 22 2011, 08:20) инт... Apr 22 2011, 07:07 нечитатель Для настройки кучерявых прав нужен кучерявый челов... Apr 22 2011, 08:57 Буратино Цитата(нечитатель @ Apr 22 2011, 11:57) Д... Apr 22 2011, 11:19  Dog Pawlowa Цитата(Буратино @ Apr 22 2011, 14:19) Одн... Apr 22 2011, 11:47  XVR Цитата(Буратино @ Apr 22 2011, 15:19) И п... Apr 25 2011, 08:07 Буратино Все равно не понимаю какое это отношение имеет к в... Apr 25 2011, 11:30
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|