понедельник, 8 января 2018 г.

Архитектурные принципы: инфраструктура

Внешний технологический мониторинг и управление

Формулировка
Функциональность технологического мониторинга и управления должна быть внешней и не встроенной в инфраструктурный компонент
Основная причина
Встроенная в инфраструктурный компонент функциональность технологического мониторинга и управления ухудшает гибкость, а также имеет ограниченные возможности (т.е. ограничена отдельным инфраструктурным компонентом)
Следствия/выводы
·         В сервисах не должны быть жестко закодированы правила и политики управления
·         Поддержка промышленных стандартов (например, SNMP)

воскресенье, 7 января 2018 г.

Архитектурные принципы

  Архитектурные принципы представляют собой фундаментальные «аксиомы» (или правила), которые используются в качестве «отправных точек» для принятия архитектурных решений. В свою очередь, архитектурные принципы являются подмножеством более общего понятия ИТ-принципов, которые определяют основные аспекты всей деятельности, связанной с применением информационных технологий.

В состав набора принципов могут входить обоснования для формирования системы требований или критериев оценки тех или иных решений. Например, такой принцип, как «минимизация числа поставщиков программного обеспечения», может быть в дальнейшем конкретизирован в зависимости от особенностей компании, как требование «единой СУБД для всех критичных для бизнеса приложений» или же как «использование той же СУБД, что и уже применяемая».

Принципы являются взаимозависимыми и должны применяться целостно. Обычно число принципов для реализации решения не превышает 7-8 (а лучше 4-5), это необходимо, чтобы не ограничивать гибкость архитектуры или чтобы избежать чисто формального определения принципов, которые не приносят пользы на практике.

Использование принципов при работе над архитектурой доказало свою эффективность. В следующих постах будут приведены примеры архитектурных принципов, а в этой статье начнём с принципов безопасности:

Принцип наименьших полномочий

Формулировка
Пользователи и потребители ресурсов должны иметь минимальные полномочия необходимые для выполнения действий (работы).
Основная причина
Когда пользователю и потребителю ресурса предоставлены большие полномочия, чем требуется, то риски в части безопасности возрастают.
Следствия/выводы
  • Пользователям должен быть предоставлен доступ к функциям и данным на основе их ролей в системе;
  • Должен предоставляться только минимально необходимый для выполнения функций доступ.

Также смотрите:

четверг, 26 января 2017 г.

Резервное копирование Skype-переписки для Windows

Давно задумывался об сохранении всей истории переписок в Skype при переустановке ОС или при переходе на новый ноутбук.
На этот счёт есть полезная статья на сайте поддержки Skype - Can I back up my chat history and transfer it from one computer to another?. Но выполнять данные действия вручную для меня не удобно, поэтому сделал скрипт позволяющий автоматизировать данный процесс и сохранять переписку в файловое хранилище (в моём случае Dropbox).
Нужно запустить cmd от Администратора:
REM Script creation echo REM Article https://support.skype.com/en/faq/FA392/how-do-i-manage-my-conversation-history-in-skype-for-windows-desktop > BackupSkype.cmd echo title SkypeBackup >> BackupSkype.cmd echo SET SKYPE_ACCOUNT_NAME=stanislav.devyatov>>BackupSkype.cmd echo SET SKYPE_BACKUP_FOLDER=C:\Users\Stanislav\Dropbox\Backup>>BackupSkype.cmd echo SET ARCH_7ZIP_HOME="C:\Program Files (x86)\7-Zip">>BackupSkype.cmd echo taskkill /f /IM skype.exe >> BackupSkype.cmd echo sleep 10 >> BackupSkype.cmd REM Create new file REM echo %7Zip_HOME%\7z.exe a %SKYPE_BACKUP_FOLDER%\skypeBackup_%date%.zip %appdata%\Skype\%SKYPE_ACCOUNT_NAME% -mx9>>BackupSkype.cmd echo %ARCH_7ZIP_HOME%\7z.exe a %SKYPE_BACKUP_FOLDER%\skypeData.zip %appdata%\Skype\%SKYPE_ACCOUNT_NAME% -aoa>>BackupSkype.cmd echo start skype >> BackupSkype.cmd REM Copy script move /Y BackupSkype.cmd %appdata%\Skype\ REM Create task SchTasks /Create /F /SC DAILY /TN MySkypeBackup /TR %appdata%\Skype\BackupSkype.cmd /RL HIGHEST /ST 12:00
Требуется установить 7-Zip и изменить значение полей выделенных желтым.

среда, 16 марта 2016 г.

Ошибка при создании домена по умолчанию в JDeveloper 12.2.1 на платформе Windows 10

Ошибка:
 wlst >   
 wlst > Initializing WebLogic Scripting Tool (WLST) ...  
 wlst >   
 wlst > Welcome to WebLogic Server Administration Scripting Shell  
 wlst >   
 wlst > Type help() for help on available commands  
 wlst >   
 wlst > Failed to get environment, environ will be empty: (0, u'Failed to execute command ([\'sh\', \'-c\', \'env\']): java.io.IOException: Cannot run program "sh": CreateProcess error=2, \u041D\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044F \u043D\u0430\u0439\u0442\u0438 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0444\u0430\u0439\u043B')  
 wlst > Error: ADRS_DOMAIN_PASSWORD environment variable not set.  
 wlst >   
 wlst >   
 wlst > Exiting WebLogic Scripting Tool.  
 wlst >   

Варианты решения:
1. Изменить архиве
%JDEVELOPER_HOME%/wlserver/common/wlst/modules/jython-modules.jar следующий файл \Lib\javashell.py (добавленное выделено красным):
   ...
   os = str(os or sys.registry.getProperty( "python.os" ) or \  
         System.getProperty( "os.name" ))  
   _osTypeMap = (  
     ( "nt", ( 'nt', 'Windows NT', 'Windows NT 4.0', 'WindowsNT',  
          'Windows 2000', 'Windows 2003', 'Windows XP', 'Windows CE',  
          'Windows Vista', 'Windows Server 2008', 'Windows 7', 'Windows 8',   
          'Windows 10', 'Windows Server 2012' )),  
     ( "dos", ( 'dos', 'Windows 95', 'Windows 98', 'Windows ME' )),  
     ( "mac", ( 'mac', 'MacOS', 'Darwin' )),  
     ( "None", ( 'None', )),  
     )
   ...  

2. Открыть сервисный запрос (SR) в поддержку и получить официальный патч.

среда, 30 декабря 2015 г.

Пользовательские задачи Oracle BPM 12c: роли и подразделения пользователей

Участником задачи могут быть:
  • пользователь (user);
  • группа пользователей (group);
  • роль пользователей (app.role), в контексте Oracle BPM.
Взаимосвязь между участниками указана ниже:

Орг.единицы (Organization Unit) определяют структуру организации, например:

Важно отметить, что орг.единицы логически связанны только с ролями пользователей (т.е. не для группы пользователей и тем более не для пользователя).

Рассмотрим на примере как работает механизм орг.единиц:

В соответствии со схемой выше, в организации есть 3 бухгалтера по одному в каждом отделении и аналогично 3 инженера в каждом отделении.
Создадим две роли "Бухгалтер" и "Инженер" и три орг.подразделения и добавим в них соответствующих сотрудников. Таким образом получается:
Роль
Пользователь
Организационное подразделение
Бухгалтер
Иванова
Западносибирское отд.
Сидирова
Уральское отделение
Кузнецова
Дальневосточное отд.
Инженер
Петрова
Западносибирское отд.
Алексеева
Уральское отделение
Борисова
Дальневосточное отд.

Создадим простейший BPMN-процесс с одной задачей:

Но данная задача должна назначаться на роль "Бухгалтер" уральского подразделения, для этого добавляем перед назначением задачи добавим script-активность, в которой укажем необходимое орг.подразделение (Process / Predefined Variables / Organization Unit):
Если бы мы не указали орг.подразделение, то задача назначилась на всех участников роли "Бухгалтер", т.е. доступ был бы у 3-х сотредников. 
Так как мы указали орг.подразделение, то задача назначится на того сотрудника роли "Бухгалтер", который входит в указанное подразделение, т.е. Сидорову.

Данная функциональность позволяет сильно сократить количество ролей (без неё потребовалось бы 6 ролей вместо 2).