Главная страница

4 фреймворки. 4 фреймворки 1 Понятие фреймворка. Типы фреймворка


Скачать 30.11 Kb.
Название4 фреймворки 1 Понятие фреймворка. Типы фреймворка
Дата27.03.2023
Размер30.11 Kb.
Формат файлаdocx
Имя файла4 фреймворки.docx
ТипДокументы
#1018051

4 фреймворки

 

4.1 Понятие фреймворка. Типы фреймворка.

 

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

 

Приведем одно из них

 

Фреймворк - совокупность решений по архитектуре, структуре и способов объединения компонентов системы, которые могут быть применены для некоторого множества однотипных задач. Применительно к программным системам фреймворк представляет собой набор классов или структур, а также способов их взаимодействия, которые описывают решения некоторого класса задач. Для решения конкретной задачи разработчик выполняет настройку соответствующих компонентов, собирает отдельные компоненты в систему и генерирует исполняемый код.

 

Различие между паттернами и фреймворками

 

Фреймворки и паттерны имеют много общего и в первую очередь это то, что оба - это подходы к повторному исполнению кода. Различие между ними состоит в следующем: фреймворк можно рассматривать как реализацию системы паттернов проектирования(поведенческих паттернов). При этом фреймворк - это исполняемая программа, а паттерн - это знания и опыт как решать конкретную задачу. Ещё одно отличие паттерна от фреймворка в том, что фреймворк представляет собой скелетное решение достаточно крупной задачи. И обычно включает в себя достаточно большое количество как паттернов, так и компонентов. Кроме того фреймворки могут использовать подклассы и другие механизмы

 

Классификация фреймворков

 

Можно классифицировать по следующим признакам:

 

  1. По месту применения в ИС

  2. По способу использованию

  3. По масштабу применения

 

 

По месту применения

 

В свою очередь по месту применения фреймворки можно разделить на четыре типа

А) Инфраструктурные фреймворки - использование инфраструктурных фреймворков упрощает разработку инфраструктурных элементов, таких как ОС. Обычно такие фреймворки используются внутри организаций и не поступают на рынок

B) Фреймворки уровня промежуточного ПО - используются для интеграции распределенных приложений и компонентов

C) Фреймворки ориентированные на разработку приложений - это могут быть либо фреймворки либо фреймворки общего назначения, либо относящиеся к конкретной предметной области - используются в первую очередь для поддержки процесса разработки систем ориентированного на конечного пользователя и относящегося к некоторой предметной области

D) Фреймворки архитектурного уровня - международный стандарт ИСОИЭК 42.0.10 определяет архитектурный фреймворк как совокупность соглашений, принципов и практик используемых для описания архитектур и принятых применительно к некоторому предметному домену и(или) в сообществе специалистов(заинтересованных лиц)

Типовой архитектурный фреймворк включает следующие основные элементы:

  1. Заинтересованные лица типовые для домена

  2. Проблемы типовые для домена

  3. Архитектурные точки зрения

  4. Правила интеграции различных точек зрения

Кроме того такие фреймворки могут включать методы и инструменты. Фреймворки архитектурного уровня можно классифицировать по следующим признакам:

  1. Назначение

С точки зрения назначения фреймворки можно разделить на: фреймворки общего назначения и фреймворки ориентированные на конкретные предметные области такие как правительственные организации или оборонные ведомства

  1. Принцип построения

 

Возможны различные концептуальные подходы к построению фреймворка в частности: ключевым элементом фреймворка может быть онтология(это попытка всеобъемлющей формализации некоторой области знаний с помощью определенной концептуальной схемы, содержит определение понятий и отношения между ними)

По принципу построения разделяют

  • Ключевой элемент - онтология

  • В основу фреймворка положен тот или иной процесс разработки

  • Ориентированный на данные(данноцентрический подход)

  • Ориентированный на эффективную поддержку сетевых взаимодействий

  1. Гибкость при использовании

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

 

  1. Условия реализации

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

 

 

По способу использования

 

Можно выделить два типовых подхода к использованию фреймворка: использование фреймворка по принципу белого ящика и использование фреймворка по принципу черного ящика. Кроме того, возможно использование гибридных подходов, которые называют серыми ящиками. Фреймворки использующиеся по принципу белого ящика называют также архитектурными фреймворками. Эти фреймворки используют наследование и динамическое связывания для формирования программной заготовки. Фреймворк, работающий по принципу белого ящика, определяется через интерфейсы объектов, которые разработчик может добавлять в систему. Основным недостатком данного подхода является то, что для работы с фреймворками необходимо иметь подробную информацию о классах, которые будут расширяться. Фреймворки используемы по принципу черно ящика называют также фреймворками управляемые данными. При использовании фреймворков данного типа в качестве основных механизмов формирования приложения выступают композиция компонентов и параметризация, при этом требуемая функциональность дочтигается добавлением в фреймворк дополнительных компонентов

 

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

 

 

По масштабу применения

 

Можно разделить на три группы:

 

  1. Фреймворки уровня приложения

Ф уровня приложения обеспечивают полный набор фикций, которые реализуются типовыми приложениями. Обычно сюда входят графические интерфейсы пользователя, базы данных и документация. Примером таких фреймворков может служить MFC, которые используются для создания приложений для работы в среди MS Windows и JFC

  1. Фреймворки уровня домена

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

  1. Вспомогательные фреймворки

 

Ориентированы на решение частных задач таких как управление память или файловой системой

 

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

 

4.2 Фреймворки уровня приложения

 

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

 

Наиболее широко известными фреймворками данного типа являются точка-NET и JЕЕ

 

JEE - Java интерпрайз индишн

ЗА 20 лет своего существования из языка программирования встроенных систем Java превратился в развитый язык программирования общего назначения. Наиболее продвинутой его частью является Java плэтформ и Java интерпрайз эдишн.

 

Java Enterprise Edition- набор спецификаций и соответствующей документации и является платфомой для создания корпоративных приложений на языке веб-приложений и веб-сервисов. Он представляет собой законченный фреймворк, позволяющий выполнять работы связанные с проектирование, отладкой, сборкой, кодированием многоуровневых распределенных приложений написанных на Java. JEE состоит из набора API среды выполнения.

 


Рассмотрим некоторые из API:

Java Sovlit - представляют собой специальные модули, которые обрабатывают запросы от пользователя и отправляют результаты обработки. Реализация расширяет функциональные возможности сервера.

 

Java Сорвлет- модули на стороне сервера, которые обрабатывают запросы. Они удобны для генерации большого контента html. По сути они представляют собой страницы с кодом html/JS/CSS с вкраплениями кода на Java.

 

Enterprise JavaBeans - представляют классы, которые хранят бизнес логику(позволяют создавать и поддерживать серверные компоненты, содержащие бизнес логику).

 

Contexts and Dependency Injection - предоставляет механизм для внедрения зависимостей в другие объекты и управление ими.

 

Прим. Внедрение зависимостей - это стиль настройки объектов при котором поля объектов задаются внешней сущностью. Другими словами, объекты настраиваются внешними объектами. В контексте Java приложения зависимостью называют класс В без которого не может функционировать А.

 

JSON - позволяет работать со строками JSON в Java

JSON - это текстовый формат обмена данными основанный на JS , но при этом формат не зависим от JS

 

Jason Baiding - представляет функционал для сериализации и десериализации Джейсон в объекты Java.

 

Веб-сокет - позволяет интегрировать веб-сокеты в приложения на Java.
Веб сокеты продвинутая технология позволяющая открыть постоянное двунаправленное соединение между браузером пользователя и сервером. С помощью его АПИ вы можете отправить сообщение на сервер и получить и ответ без http запроса, при этом этот процесс будет событийно управляемым.

 

Java Message Service - служба сообщений Java - АПИ для пересылки сообщений между двумя и более клиентами

 

API Security - это АПИ для стандартизации и упрощения задач обеспечения безопасности в приложениях на Java.

 

API Java for Restful Web Services - это АПИ для применения для применения архитектуры REST в приложениях

REST - передача репрезентативного состояния, передача само описываемого состояния - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. В широком смысле компоненты в РЕСТ взаимодействуют на подобие клиентов и серверов в сети

 

JavaServer Faces - представляет возможности для создания пользовательского интерфейса на стороне сервера

 

DCF - это Java спецификация для построения компонентоориентированных пользовательских интерфейсов для веб приложений написанных на Java

 

Эти и ряд других API собственно и образует то, что называется Java интерпрайз эдишн. В качестве основных достоинств этой платформы обычно указывают относительную простоту, хорошую маштабируемость приложения, легкость портирования, возможность повторного использования кода на уровне ЭйДжейБи копмоNETов, возможность интеграции с не Java приложениями. Полная информация по данному фреймворку можно найти на сайте Oracle Technology. Следует отметить, что в среде веб разработки на Java популярна еще одна технология, которая называется Spring. Ф Spring не является частью JEE и может использоваться как альтернативный подход к созданию веб-приложений на языке Java
Microsoft .NET Framework - программная платформа выпущенная в 2002. Её основа - общая языковая среда исполнения, которая подходит для различных языков программирования. Общая языковая среда - исполняющая среда для байт кода СIL. Функциональные возможности среды доступны в любых языках программирования использующих эту среду.

 

Байт-код - стандартная промежуточное представление, в которое может быть переведена компьютерная программа автоматическими средствами. Байт код - это компактное выполнение программы уже прошедшей синтаксический и семантический анализ. Это машинно-независимый код.

 

CIL - промежуточный язык .NET фреймворк.

 

Основная идея NET фреймворка, чтобы программа написанное на любом поддерживаемым языком высокого уровня переводится компилятором в промежуточный байт код, который фактически является высокоуровневым ассемблером виртуальной машины .NET. Затем этот байт код либо исполняется, либо транслируется в код для конкретного целевого процессора. Исполнение виртуальной машины избавляет разработчиков от необходимости заботится о совместимости. В случаи использования виртуальной машины встроен в неё JIT-компиляция налету преобразует байт код в машинные коды нужного процессора. Это подход во многом копирует подход оскользавшийся разработчиками Java в части использования виртуальной машины. Отличие состоит в том, что в точка-NET использование виртуальной машины рассматривается не только как средство сокрытия от пользователя специфику используемой аппаратной платформы, но и скрыть специфику использованного языка программирования

 

В качестве основных официальных языков в NET поддерживаются: C#, VBNET, manage C++, JS. NET поддерживает большое количество других языков высокого уровня


написать администратору сайта