На уровне библиотеки классов Enterprise Library подсистема ObjectBuilder используется для организации вставки данных о конфигурации блоков в соответствующие классы этих функциональных блоков, а также для организации связи управляющих классов с функциональными блоками, а ведь функциональные блоки взаимодействуют между собой. При этом, для того чтобы использовать возможности Enterprise Library, не требуются глубокое погружение в особенности работы ObjectBuilder, знание принципов работы этой подсистемы.
Другие функциональные блоки могут использовать существующие в ядре счетчики производительности, протоколы событий и средства Instrumentation. На рис. 15.1 были представлены три составляющие, которые включают ObjectBuilder, средства, связанные с настройкой конфигураций и проектированием компонентов, и средства, которые называются Instrumentation или Windows Management Instrumentation, средства управления механизмами Windows из корпоративных приложений. При этом можно использовать различные механизмы, которые описывают конфигурации и стиль управления информационной системой, возможностями информационной системы.
После обсуждения ядра будем последовательно двигаться по блокам, описывая специфическую функциональность, связанную с этими блоками. Конечно, если говорить о разработке корпоративных приложений, то это распределенные приложения достаточно сложной структуры, большого объема. Встречается много серьезных проблем как у разработчиков, так и у системных архитекторов. На решение этих проблем во многом и направлен блок, который связан с кэшированием. Кэширование дает возможность обеспечить оптимизацию производительности, масштабируемости и доступности. Если говорить о производительности, то кэширование позволяет увеличить производительность приложений посредством сохранения наиболее часто используемых, востребованных данных, как можно ближе к потребителю этих данных. Это дает возможность устранить последовательные, часто повторяющиеся создания/обработку/передачу данных. Что касается масштабируемости, то хранение информации в кэш-памяти обеспечивает экономию ресурсов и увеличивает масштабируемость по мере роста частоты и запросов пользователей приложений. Если говорить о доступности, то хранение данных в локальной кэш-памяти позволяет приложениям оказаться жизнеспособными в таких случаях, как временное пропадание или неустойчивая работа сети, сложности с работой веб-сервисов и сбои аппаратного обеспечения. Это наиболее сложная проблема, которая может приводить к потере данных. Блок кэширования, который служит для реализации локального кэша, может поддерживать кэш как в памяти, так и в удаленном хранилище данных, которое может поддерживаться посредством блока доступа к данным, Data Access Application Block, или изолированного хранилища, Isolated Storage. При этом обеспечивается извлечение/добавление/удаление данных из кэша. Время хранения может меняться в зависимости от тех настроек конфигурационных файлов, которые описывают метаданные для этого блока. Локальный кэш поддерживается для единственного домена приложения, поэтому Cashing Application Block не обеспечивает реализацию разделяемого между доменами кэша.
Следующий блок, который будет рассмотрен в рамках Enterprise Library, – это блок, который связан с криптографией. Криптография – достаточно большая и серьезная практическая область. Существует такая наука, как криптология. Это действительно особая, очень важная область, имеющая свою сложную математику и массу научных проблем, связанных со стойкостью шифров и надежностью. Но в данном случае речь идет о прикладных аспектах, о криптографических алгоритмах, алгоритмах шифрования информации, которые имеют принципиальное значение для корпоративных приложений.
Понятно, что в корпорациях тайны стоят очень дорого, однако не всегда эти тайны имеют такую направленность, которая изначально подозревается. Например, в Oracle, насколько известно автору, самой большой и важной тайной является не клиентская база, не технологии, а зарплата сотрудников. Вместе с тем технологии тоже являются важной составляющей коммерческой и корпоративной тайны в той же самой корпорации Oracle, и, естественно, их тоже нужно сохранять, защищать и открывать ровно тем людям и ровно в той мере, в которой они должны иметь к ним доступ. Именно поэтому информацию имеет смысл надежно хранить и защищать в самых разных корпоративных системах, может быть, даже не только в тех, которые на первый взгляд считаются достойными этого. В связи с этим блок, предназначенный для криптографической поддержки, шифрования информации, очень важен для корпоративных приложений. Эти задачи выделены в отдельный блок, что говорит об их важности, т. е. он не интегрирован в общий блок безопасности, а вынесен отдельно. Очень значимым принципом является абстрагирование кода приложения от криптопровайдеров, т. е. от разработчиков алгоритмов шифрования данных. Естественно, можно использовать стандартные протоколы, средства шифрования от Microsoft, а также внутрикорпоративные подходы, которые существуют в любой крупной корпорации и являются ноу-хау, собственными разработками этой корпорации. Другим важным аспектом является создание хэш-ключей на основе данных, т. е., по сути, свертки, которая дает возможность проверять целостность данных, а в ряде случаев – их подлинность.
Читать дальше
Конец ознакомительного отрывка
Купить книгу