Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 06 2016 22:51:27
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Практическое руководство по созданию открытой (Plug-in) программной архитектуры


Я думаю, что Microsoft назвал технологию .Net для того, чтобы она не показывалась в списках директорий Unix.

Oktal

Кастомизация программных продуктов

Что такое расширяемая архитектура программных продуктов

Эта статья посвящена уже не столько теории, сколько практике программирования. Одним из наиболее важных и заманчивых качеств прикладной программы является возможность ее кастомизации. Суть этого процесса заключается в том, чтобы настроить поведение программы под требования конечного пользователя, не прибегая к созданию специальной версии основного программного продукта - программный код оставить неизменным. Такое качество говорит об эффективности принятых на этапе проектирования решений, гибкости приложения и, возможно, свидетельствует о том, что продукт удовлетворяет принципу открытой программной архитектуры. Что это такое, надеюсь, станет понятно из дальнейшего повествования.

Возможность кастомизации, в первую, очередь актуальна для крупных программных комплексов класса ERP (Enterprise Resource Planning, планирование ресурсов предприятия). Такие системы призваны автоматизировать бизнес-процессы средних и крупных предприятий. Чем предприятие более крупное, тем сложнее его организационная структура и внутренние регламенты. Если рассматривать специфику управления предприятием в целом, то у многих она более или менее схожа, но при детальном рассмотрении проявляются существенные различия, и обнаруживается большое количество “скелетов в шкафах”. Если для небольших предприятий разработать типовое решение с минимальным набором настроек несложно и не очень затратно, то для крупного или среднего производства сделать это практически невозможно. Разрабатывать для каждого крупного клиента уникальный программный продукт также сложно. По крайней мере, это весьма дорого для самого клиента, если он заказывает разработку автоматизированной системы с нуля у другой компании. Организации-разработчику, в свою очередь, сложно поддерживать и управлять большим количеством своих уникальных программных решений, если у нее более одного клиента. Все это объясняет, почему крупные компании предпочитали (а многие не могут от этого отказаться до сих пор) создавать собственные IT подразделения, которые становились ответственными за разработку и внедрение своей автоматизированной системы управления производственными активами и производственными процессами. Создание внутри себя IT подразделения – это создание внутри компании непрофильного производства, что не сказывается положительным образом ни на качестве создаваемого программного продукта в частности, ни на рентабельности всего предприятия в целом. Ситуация начала меняться с появлением на рынке программных продуктов от компании 1С, которые являли собой каркас универсального решения - фреймворк для комплексной автоматизации производства. В основе этой универсальности было соблюдение принципа открытой программной архитектуры, что давало возможность расширять базовую функциональность программного продукта посредством написания процедур на встроенном, предметно-ориентированном языке программирования высокого уровня. Позже, на нашем рынке появился еще один серьезный игрок – компания SAP AG, которая предлагала аналогичные, но более мощные и современные решения. Обе эти компании основные усилия тратили и продолжают тратить на разработку и совершенствование своих базовых программных решений и конкуренцию между собой, а вокруг них, как грибы, стали появляться консалтинговые IT компании, специализирующиеся на внедрении этих решений с последующей их настройкой под требования каждого конечного потребителя. Понятно, что такая настройка выполняется с использованием встроенных средств кастомизации. Естественно, что не только компании 1С и SAP AG реализуют подобный подход. Таких компаний довольно много, просто эти две наиболее известны у нас.

Варианты реализации открытой архитектуры информационной системы

Итак, чтобы программный продукт обладал возможностями кастомизации, он должен либо обладать широким спектром всевозможных настроек, либо иметь открытую программную архитектуру, что даст возможность “безболезненно” (без "хирургического вмешательства" в основной программный код) расширять его базовую функциональность. Вот некоторые варианты создания расширяемой программной архитектуры программного продукта.

  1. Использование метаданных для работы с информационным хранилищем информационной системы.

  2. Создание инфраструктуры подключения внешних программных компонентов, разработка которых должна вестись по заданным базовым продуктом программным спецификациям.

  3. Встраивание в программу динамически компилируемых фрагментов программного кода, написанных на предметно-ориентированном языке программирования высокого уровня.

Программирование на C#

Чтобы узнать, что такое метаданные в контексте работы с информационным хранилищем, перейдите по указанной выше ссылке, а в следующих разделах настоящего руководства будут рассмотрены варианты реализации последних двух подходов. И подключение внешних программных компонентов (объектов-команд) и исполнение бизнес-сценариев, написанных на предметно-ориентированном языке программирования являются разновидностями реализации Plug-in архитектуры информационной системы. Plug-in - это внешний по отношению к основной системе программный компонент, представленный либо в виде исполняемого модуля, либо в виде программного кода и предназначенный для работы (исполнения) в контексте основного приложения - каркаса системы. Исполнение в контексте основного приложения означает, что Plug-in должен также иметь возможность взаимодействовать с приложением-каркасом (фреймворком) посредством его открытого программного интерфейса - API, поскольку изолированная функциональность вряд ли кому-то может быть полезна. Таким образом, возможность расширять базовую функциональность за счет подключения внешних программных модулей и наличие открытого программного интерфейса - это и есть два слагаемых открытой программной архитектуры приложения.

Для реализации примеров будет использован язык программирования C# - наиболее популярный CLR исполняемый объектно-ориентированный язык программирования платформы Microsoft .Net Framework. Почему CLR и .Net Framework? Потому что эта программная платформа насквозь пронизана "духом метаданных", и именно это обстоятельство позволяет вытворять с кодом то, что будет продемонстрировано в примерах далее. Особого внимания архитектуре платформы .Net Framework и ее элементам уделено не будет, но, чтобы как-то компенсировать этот недостаток, перечислю ряд основных терминов, более подробно про которые при желании можно узнать в различных компетентных источниках: CLR, CIL, BCL, CLS, JIT – компилятор, управляемый код.

Читать далее: внешние команды



Задать вопрос


Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.