хема типовой архитектуры приложения назначение компонентов схем.

Архитектура ПО часто описывается как организация или структура системы, где система представляет набор компонентов, выполняющих определенную функцию или набор функций. Основное назначение архитектуры – организация компонентов с целью обеспечения определенной функциональности. Такую организацию функциональности часто называют группировкой компонентов по «функциональным областям». На рис. 1 представлена типовая архитектура приложения, компоненты которого сгруппированы по функциональным областям.

 

 

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

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

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

 

6.Сквозная функциональность

 

 

8. Дайте определение понятия "архитектурный стиль", объясните его назначение. Дайте сравнительное описание клиент/серверной и многоуровневой архитектур.

Что такое архитектурный стиль?

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

Понимание архитектурных стилей обеспечивает несколько преимуществ. Самое главное из них – общий язык. Также они дают возможность вести диалог, не касаясь технологий, т.е. обсуждать схемы и принципы, не вдаваясь в детали. Например, архитектурные стили позволяют сравнивать схему клиент/сервер с n-уровневой схемой приложения. Архитектурные стили можно организовать по их фокусу. В следующей таблице перечислены основные фокусные области и соответствующие архитектурные стили.

Категория Архитектурные стили
Связь Сервисно-ориентированная архитектура (SOA), шина сообщений
Развертывание Клиент/сервер, N-уровневая, 3-уровневая
Предметная область Дизайн на основе предметной области (DomainDrivenDesign)
Структура Компонентная, объектно-ориентированная, многоуровневая архитектура

Обзор основных архитектурных стилей

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

Архитектурный стиль/парадигма Описание
Клиент/сервер Система разделяется на два приложения, где клиент выполняет запросы к серверу. Во многих случаях в роли сервера выступает база данных, а логика приложения представлена процедурами хранения.
Компонентная архитектура Дизайн приложения располагается на функционирование или логические компоненты с возможностью повторного использования, предоставляющие тщательно проработанные интерфейсы связи.
Дизайн на основе предметной области Объектно-ориентированный архитектурный стиль, ориентированный на моделирование сферы деловой активности и определяющий бизнес-объекты на основании сущностей этой сферы.
Многослойная архитектура Функциональные области приложения разделяются на многослойные группы (уровни).
Шина сообщений Архитектурный стиль, предписывающий использование программной системы, которая может принимать и отправлять сообщения по одному или более каналам связи, так что приложения получают возможность взаимодействовать, не располагая конкретными сведениями друг о друге.
N-уровневая, 3-уровневая Функциональность выделяется в отдельные сегменты, во многом аналогично многослойному стилю, но в данном случае сегменты физически располагаются на разных компьютерах.
Объектно-ориентированная Парадигма проектирования, основанная на распределении ответственности приложения или системы между отдельными многократно используемыми и самостоятельными объектами, содержащими данные и поведения.
Сервисно-ориентированная архитектура (SOA) Описывает приложения, предоставляющие и потребляющие функциональность в виде сервисов с помощью контактов и сообщений.

 

9.Дайте определение понятия "архитектурный стиль", объясните его назначение. Дайте сравнительное описание компонентной и многослойной архитектур.

Сочетание архитектурных стилей

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

Сочетание архитектурных стилей также полезно при построении Интернет Веб-приложений, где можно достичь эффективного архитектурного стиля. Таким образом, можно отделить логику представления от бизнес-логики и логики доступа к данным. Требования безопасности организации могут обусловливать либо 3-уровневое развертывание приложения, либо развертывание с более чем тремя уровнями. Уровень представления может развертываться в пограничной сети, располагающейся между внутренней сетью организации и внешней сетью. В качестве модели взаимодействия на уровне представления может применяться шаблон представления с отделением (разновидность многослойного стиля), такая как Model-View-Controller (MVC). Также можно выбрать архитектурный стиль SOA и реализовать связь между Веб-сервером и сервером приложений посредством обмена сообщениями.

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

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

 

 

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

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

В следующей таблице приводится список типовых архитектурных стилей.

Архитектурный стиль/парадигма Описание
Клиент/сервер Система разделяется на два приложения, где клиент выполняет запросы к серверу. Во многих случаях в роли сервера выступает база данных, а логика приложения представлена процедурами хранения.
Компонентная архитектура Дизайн приложения разлагается на функциональные или логические компоненты с возможностью повторного использования, предоставляющие тщательно проработанные интерфейсы связи.
Дизайн на основе предметной области4 Объектно-ориентированный архитектурный стиль, ориентированный на моделирование сферы деловой активности и определяющий бизнес-объекты на основании сущностей этой сферы.
Многослойная архитектура Функциональные области приложения разделяются на многослойные группы (уровни).
Шина сообщений Архитектурный стиль, предписывающий использование программной системы, которая может принимать и отправлять сообщения по одному или более каналам связи, так что приложения получают возможность взаимодействовать, не располагая конкретными сведениями друг о друге.
N-уровневая / 3-уровневая Функциональность выделяется в отдельные сегменты, во многом аналогично многослойному стилю, но в данном случае сегменты физически располагаются на разных компьютерах.
Объектно-ориентированная Парадигма проектирования, основанная на распределении ответственности приложения или системы между отдельными многократно используемыми и самостоятельными объектами, содержащими данные и поведение.
Сервисно-оринетрированная архитектура (SOA) Описывает приложения, предоставляющие и потребляющие функциональность в виде сервисов с помощью контрактов и сообщений.
       

Архитектура ПО часто описывается как организация или структура системы, где система представляет набор компонентов, выполняющих определенную функцию или набор функций. Иначе говоря, основное назначение архитектуры – организация компонентов с целью обеспечения определенной функциональности. Такую организацию функциональности часто называют группировкой компонентов по «функциональным областям». На рис. 1 представлена типовая архитектура приложения, компоненты которого сгруппированы по функциональным областям.

 

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

· Компоненты пользовательского интерфейса. Это визуальные элементы приложения, используемые для отображения данных пользователю и приема пользовательского ввода.

· Компоненты логики представления. Логика представления – это код приложения, определяющий поведение и структуру приложения и не зависящий от конкретной реализации пользовательского интерфейса.

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

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

· Компоненты бизнес-логики. Бизнес-логика, как и любая логика приложения, занимается вопросами извлечения, обработки, преобразования и управления данными приложения

Компоненты бизнес-логики можно подразделить на две категории:

· Компоненты бизнес-процесса.Компоненты бизнес-процесса определяют и координируют долгосрочные многоэтапные бизнес-процессы и могут быть реализованы с помощью инструментов управления бизнес-процессами.

· Компоненты бизнес-сущностей. Или бизнес-объекты, инкапсулируют бизнес-логику и данные, необходимые для представления в приложении объектов реального мира, таких как заказчики (Customers) или заказы (Orders). Они хранят значения данных и предоставляют их через свойства; содержат бизнес-данные приложения и управляют ими; и предоставляют программный доступ с сохранением состояния к бизнес-данным и связанной функциональности.

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

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

· Агенты сервисов Они реализуют компоненты доступа к данным, которые изолируют меняющиеся требования вызова сервисов от приложения и могут обеспечивать дополнительные сервисы, такие как кэширование, поддержку работы в автономном режиме и базовое преобразование между форматом данных, предоставляемых сервисом, и форматом, поддерживаемым вашим приложением

Слой сервисов

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

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

 

 

11Опишите особенности платформы .NET Framework. Объясните процесс компиляции программ на платформе .NET Framework.

1ASP.NET — это платформа для создания Web-приложений и Web-сервисов, работающих под управлением IIS. Сегодня существуют другие технологии, позволяющие создавать Web-приложения. К ним относятся прежде всего, очень популярные сегодня языки PHP и PERL, более старая и менее популярная технология CGI и т. д. Однако ASP.NET отличается от них высокой степенью интеграции с серверными продуктами, а также с инструментами Microsoft для разработки доступа к данным и обеспечения безопасности. Кроме того, ASP.NETпозволяет разрабатывать Web- и Windows-приложения, используя очень похожие технологические цепочки, одинаковые языки программирования, технологии доступа к данным и т. д.

Заметим лишь, что ASP.NET функционирует исключительно на серверах Windows, так как требует наличия IIS.

Архитектура .NET Framework

Платформа состоит из четырех групп программных продуктов:

· набор языков, куда входят С# и VisualBasic .NET; набор инструментальных средств разработки, в том числе VisualStudio .NET; обширная библиотека классов для построения Web-служб и приложений, работающих в Windows и в Интернете; а также среда выполнения программ CLR ( CommonLanguageRuntime — общеязыковая среда выполнения), в которой выполняются объекты, построенные на этой платформе;

· набор серверов .NET EnterpriseServers, ранее известных под именами SQL Server 2000, Exchange 2000, BizTalk 2000 и др., которые предоставляют специализированные функциональные возможности для обращения к реляционным базам данных, использования электронной почты, оказания коммерческих услуг "бизнес-бизнес" (В2В) и т. д.;

· богатый выбор коммерческихWeb-служб, называемых .NetMyServices. За умеренную плату разработчики могут пользоваться этими службами при построении приложений, требующих идентификации личности пользователя и других данных;

· новые некомпьютерные устройства, поддерживающие средства .NET, — от сотовых телефонов до игровых приставок.

Платформа .NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая версия Windows1. На сегодняшний день платформа .NET Framework включает в себя:

· четыре официальных языка: С#, VB.NET, Managed C++ (управляемый C++) и JScript .NET;

· объектно-ориентированную среду CLR ( CommonLanguageRuntime ), совместно используемую этими языками для создания приложений под Windows и для Internet;

· ряд связанных между собой библиотек классов под общим именем FCL (FrameworkClassLibrary).

Рис. 1.2. Архитектура .NET Framework

Самым важным компонентом платформы .NET Framework является CLR ( CommonLanguageRuntime ), предоставляющая среду, в которой выполняются программы. Главная ее роль заключается в том, чтобы обнаруживать и загружать типы .NET среда активизирует объекты, производит проверку безопасности, размещает объекты в памяти, выполняет их, а также освобождение памяти

Common Type System (сокр. CTS, рус. Общая система типов) — часть .NET Framework, формальная спецификация, определяющая, как какой-либо тип (класс, интерфейс, структура, встроенный тип данных) должен быть определён для его правильного выполнения средой .NET.

CLS (CommonLanguageSpecification — общая спецификация для языков программирования) как раз и представляет собой набор правил, которые во всех подробностях описывают минимальный и полный комплект функциональных возможностей, которые должен обязательно поддерживать каждый отдельно взятый .NET-компилятор для того, чтобы генерировать такой программный код

Набор базовых классов платформы — нижний уровень FCL — не только прячет обычные низкоуровневые операции, такие как файловый ввод/вывод, обработка графики и взаимодействие с оборудованием компьютера, но и обеспечивает поддержку большого количества служб, используемых в современных приложениях (управление безопасностью, поддержка сетевой связи, управление вычислительными потоками, работа с отражениями и коллекциями и т. д.).

Над этим уровнем находится уровень классов, которые расширяют базовые классы с целью обеспечения управления данными и XML. Классы данных позволяют реализовать управление информацией, хранящейся в серверных базах данных. В число этих классов входят классы SQL (StructuredQueryLanguage, язык структурированных запросов), дающие программисту возможность обращаться к долговременным хранилищам данных через стандартный интерфейс SQL. Кроме того, набор классов, называемый ADO.NET, позволяет оперировать постоянными данными. Платформа .

2..NETFrameworkкомпилируеткодвсех .NETязыков( таких, какVisualBasic .NET, VisualC++.NETandVisualC#.NET ) вкодMicrosoftIntermediateLanguage ( промежуточныйязыкMicrosoft, MSIL ), используяMSIL-компилятор. Высокоуровневыеязыкииспользуют компилятор, чтобыпреобразоватькодвмашинныйкодоперационнойсистемы, итолькоэтаоперационнаясистемапойметтакойкод. Но когда мы компилируем .NET-код в MSIL-код, мы получаем не характерный для какой-либо операционной системы код. Итак, нам нужно совершить еще один шаг - преобразовать MSIL-код в код, специфичный для каждой операционной системы. Это выполняет Just-In-Time компилятор (дословно: только-во-время). .NET Framework использует JIT-компилятор, чтобы преобразовать код промежуточного языка ( MSIL ) в машинный язык, специфичный для данной операционной системы, и только теперь .NET-приложение может выполнятся на этой системе. Итак, вот эти два шага компиляции C#-кода: сначала мы преобразуем C#-код в MSIL-код ( неспецифичный для какой-либо операционной системы код, это код для .NET Framework и только она может понять его), а затем JIT-компилятор преобразует MSIL-код в машинный.
Почему 2 шага, а не один?

Существует несколько причин компиляции .NET-приложений в 2 шага. Cейчас мы узнаем некоторые из них.
Код всех .NET-языков компилируется сначала в MSIL, (это называется межъязыковое взаимодействие) понятный .NET. Я имею ввиду, что .NET.-Framework понимает и обрабатывает MSIL-код, а не операционная система.

12. Назовите типы серверных элементов управления и объясните назначение каждого из них.

Серверные элементы управления ASP.NET являются неотъемлемой частью архитектуры ASP.NET. По сути, серверные элементы управления представляют собой классы в среде .NET Framework, представляющие визуальные элементы веб-формы.

ASP.NET предлагает множество серверных элементов управления, которые делятся на несколько категорий:

Серверные элементы управления HTML

Это классы, в которых содержатся стандартные HTML-элементы. За исключением атрибута runat="server" объявление серверных элементов управления HTML ничем не отличается от объявления других элементов управления. Двумя наиболее яркими представителями серверных элементов управления являются HtmlAnchor (представляющийописание<а>) и HtmlSelect (представляющий описание<select>).

· Веб-элементы управления

Эти классы дублируют функции базовых HTML-элементов, но обладают более согласованным и значащим набором свойств и методов, которые упрощают их объявление и доступ к ним. В качестве примеров можно назвать элементы управления HyperLink, ListBox и Button. В VisualStudio вы найдете базовые элементы управления на вкладке Standard (Стандартные) в окне Toolbox (Панель инструментов).

· Многофункциональные элементы управления

Эти усовершенствованные элементы управления могут генерировать большой объем HTML-разметки и даже клиентский JavaScript-код для создания интерфейса. В качестве примеров можно назвать элементы управления Calendar, AdRotator и TreeView. В VisualStudio многие многофункциональные элементы управления доступны на вкладке Standard (Стандартные) в окне Toolbox.

· Элементы управления проверкой достоверности

Этот набор элементов управления позволяет быстро проверять достоверность связанного элемента управления ввода на предмет соблюдения нескольких стандартных или пользовательских правил..

· Элементы управления данными

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

· Элементы управления навигацией

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

· Элементы управления входом в систему

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