close

Вход

Забыли?

вход по аккаунту

Порядок и право;pdf

код для вставкиСкачать
ГЛАВА 1
ИНФОРМАЦИОННЫЕ СИСТЕМЫ
Под информационной системой (ИС) понимается прикладная
программная подсистема, ориентированная на сбор, хранение, поиск и
обработку текстовой и/или фактографической информации. Подавляющее
большинство информационных систем работает в режиме диалога с
пользователем.
Тенденции развития современных информационных технологий приводят
к постоянному возрастанию сложности информационных систем. Современные
крупные проекты ИС характеризуются, как правило, следующими
особенностями:
‒ сложность описания (достаточно большое количество функций,
процессов, элементов данных и сложные взаимосвязи между ними),
требующая тщательного моделирования и анализа данных и процессов;
‒ наличие совокупности тесно взаимодействующих компонентов
(подсистем), имеющих свои локальные задачи и цели функционирования
(например, традиционных приложений, связанных с обработкой
транзакций и решением регламентных задач, и приложений
аналитической обработки (поддержки принятия решений), использующих
нерегламентированные запросы к данным большого объема);
‒ ограниченная возможность использования каких-либо типовых
проектных решений и прикладных систем;
‒ необходимость интеграции существующих и вновь разрабатываемых
приложений;
‒ функционирование в неоднородной среде на нескольких аппаратных
платформах;
‒ разобщенность и разнородность отдельных групп разработчиков по
уровню квалификации и сложившимся традициям использования тех или
иных инструментальных средств;
‒ существенная временная протяженность проекта, обусловленная, с одной
стороны, ограниченными возможностями коллектива разработчиков, и, с
другой стороны, масштабами организации-заказчика и различной
степенью готовности отдельных ее подразделений к внедрению ИС.
1.1 Программные компоненты информационных систем
В наиболее общем случае типовые программные компоненты, входящие в
состав информационной системы, включают:
‒ диалоговый ввод-вывод;
‒ логику диалога;
‒ прикладную логику обработки данных;
‒ логику управления данными;
‒ операции манипулирования файлами и (или) базами данных.
7
Диалоговый ввод-вывод и логика диалога (обработка нажатия
пользователем клавиш или кнопок «мыши», отрисовка изображений,
представление результатов поиска и т.п.) формируют пользовательский
интерфейс информационной системы, который включает в себя следующие
уровни:
‒ уровень средств представления обеспечивается устройствами,
принимающими ввод от пользователя и отображающими то, что
сообщает ему компонент логики представления, с использованием
соответствующей программной поддержки;
‒ уровень логики представления управляет взаимодействием между
пользователем и ЭВМ, обрабатывает действия пользователя при выборе
команды в меню, нажатии кнопки или выборе элемента из списка.
Уровень прикладной логики (бизнес-логики) обеспечивает набор правил
для принятия решений, а также набор вычислений и операций, которые должно
выполнить приложение.
Уровень логики управления данными содержит операции с базой данных,
которые нужно выполнить для реализации уровня прикладной логики.
Операции манипулирования файлами и (или) базами данных составляют
еще два уровня функциональных компонентов ИС:
‒ уровень средств управления базами данных включает в себя действия
системы управления базами данных (СУБД), вызываемые для
выполнения логики управления данными;
‒ средства управления файлами определяют дисковые операции чтения и
записи данных для СУБД (файловые операции) и других компонентов
ИС.
1.2 Классификация информационных систем
Информационные системы можно классифицировать по разным
признакам. Рассмотрим наиболее часто используемые способы классификации.
По масштабу информационные системы подразделяются на следующие
группы:
Рисунок 1. Классификация информационных систем по масштабу
8
Одиночные информационные системы реализуются, как правило, на
автономном персональном компьютере (сеть не используется). Такая система
может содержать несколько простых приложений, связанных общим
информационным фондом, и рассчитана на работу одного пользователя или
группы пользователей, разделяющих по времени одно рабочее место.
Подобные приложения создаются с помощью так называемых настольных или
локальных систем управления базами данных. Среди локальных СУБД
наиболее известными являются Clarion, Clipper, FoxPro, Paradox, dBase и
Microsoft Access.
Групповые информационные системы ориентированы на коллективное
использование информации членами рабочей группы и чаще всего строятся на
базе локальной вычислительной сети. При разработке таких приложений
используются серверы баз данных (называемые также SQL-серверами) для
рабочих групп. Существует довольно большое количество различных SQLсерверов, как коммерческих, так и свободно распространяемых. Среди них
наиболее известны такие серверы баз данных, как Oracle, DB2, Microsoft SQL
Server, InterBase, Sybase, Informix.
Корпоративные информационные системы являются развитием систем
для рабочих групп, они ориентированы на крупные компании и могут
поддерживать территориально разнесенные узлы или сети. В основном они
имеют иерархическую структуру из нескольких уровней. Для таких систем
характерна архитектура клиент-сервер со специализацией серверов или же
многоуровневая архитектура. При разработке таких систем могут
использоваться те же серверы баз данных, что и при разработке групповых
информационных систем. Однако в крупных информационных системах
наибольшее распространение получили серверы Oracle, DB2 и Microsoft SQL
Server.
В последнее время все больше руководителей начинают отчетливо
осознавать
важность
построения
на
предприятии
корпоративной
информационной системы как необходимого инструментария для успешного
управления бизнесом в современных условиях.
Можно выделить три наиболее важных фактора, существенно влияющих
на развитие корпоративных информационных систем:
‒ развитие методик управления предприятием;
‒ развитие общих возможностей и производительности компьютерных
систем;
‒ развитие подходов к технической и программной реализации элементов
информационной системы.
В составе корпоративных информационных систем можно выделить две
относительно независимых составляющих:
‒ компьютерную инфраструктуру организации, представляющую собой
совокупность
сетевой,
телекоммуникационной,
программной,
информационной
и
организационной
инфраструктур.
Данная
составляющая обычно называется корпоративной сетью.
9
‒ взаимосвязанные функциональные подсистемы, обеспечивающие
решение задач организации и достижение ее целей.
Первая составляющая отражает системно-техническую, структурную
сторону любой информационной системы. По сути, это основа для интеграции
функциональных
подсистем,
полностью
определяющая
свойства
информационной системы, определяющие ее успешную эксплуатацию.
Требования к компьютерной инфраструктуре едины и стандартизованы, а
методы ее построения хорошо известны и многократно проверены на практике.
Вторая составляющая корпоративной информационной системы
полностью относится к прикладной области и сильно зависит от специфики
задач и целей предприятия. Данная составляющая полностью базируется на
компьютерной инфраструктуре предприятия и определяет прикладную
функциональность информационной системы.
Требования к функциональным подсистемам сложны и зачастую
противоречивы, так как выдвигаются специалистами из различных прикладных
областей. Однако в конечном счете именно эта составляющая более важна для
функционирования организации, так как для нее, собственно, и строится
компьютерная инфраструктура.
По сфере применения информационные системы обычно подразделяются
на четыре группы (рис. 2).
Системы обработки транзакций, в свою очередь, по оперативности
обработки данных, разделяются на пакетные информационные системы и
оперативные информационные системы. В информационных системах
организационного управления преобладает режим оперативной обработки
транзакций – OLTP (OnLine Transaction Processing), для отражения актуального
состояния предметной области в любой момент времени, а пакетная обработка
занимает весьма ограниченную часть. Для систем OLTP характерен регулярный
(возможно, интенсивный) поток довольно простых транзакций, играющих роль
заказов, платежей, запросов и т. п. Важными требованиями для них являются:
‒ высокая производительность обработки транзакций;
‒ гарантированная доставка информации при удаленном доступе к базе
данных по телекоммуникациям.
Системы поддержки принятия решений (Decision Support System, DSS)
представляют собой другой тип информационных систем, в которых с
помощью довольно сложных запросов производится отбор и анализ данных в
различных разрезах: временных, географических и по другим показателям.
Обширный класс информационно-справочных систем основан на
гипертекстовых документах и мультимедиа. Наибольшее развитие такие
информационные системы получили в сети Интернет.
Класс офисных информационных систем нацелен на перевод бумажных
документов в электронный вид, автоматизацию делопроизводства и управление
документооборотом.
10
Рисунок 2. Классификация информационных систем по сфере применения
По способу организации групповые и корпоративные информационные
системы подразделяются на следующие классы (подробно эти классы
рассмотрены в следующем разделе учебного пособия):
Рисунок 3. Классификация информационных систем по способу организации
1.3 Архитектуры информационных систем
Исторически первыми появились информационные системы с
использованием файлового сервера или файл-сервера (рис. 4). Файловый сервер
предназначен для того, чтобы хранить файлы и предоставлять к ним доступ
пользователям (клиентам) сети. Поэтому и информационное хранилище (база
данных) также располагается на файловом сервере. Файл-сервер только
извлекает данные из файла (файлов) базы данных и передает их клиенту для
дальнейшей обработки. В процессе работы из базы данных клиенту передаются
большие объемы информации. Значительный сетевой трафик иногда особенно
сильно сказывается при одновременной работе даже небольшого числа
(несколько десятков) клиентов.
11
Для ИС с файл-серверной архитектурой характерно следующее
распределение программных компонентов между сервером и клиентами
(рис. 5):
‒ функциями сервера являются хранение и управление файлами с
программами и данными;
‒ на стороне клиентов осуществляются все операции, относящиеся к
уровню средств управления базами данных, уровням прикладной логики
и логики управления данными, а также уровням пользовательского
интерфейса.
Рисунок 4. Архитектура информационной системы с использованием файл-сервера
Применение файл-серверной архитектуры привлекает своей простотой,
удобством использования и доступностью. Она представляет интерес для
малых рабочих групп, а нередко до сих пор используется и в информационных
системах масштаба небольшого предприятия.
Для построения информационных систем с большим количеством
пользователей
применяется
другая
архитектура.
Клиент-серверная
архитектура предназначена для разрешения проблем файл-серверных ИС
путем разделения программных компонентов между клиентами и сервером и
размещения их там, где они будут функционировать наиболее эффективно.
Первоначально такие системы базировались на классической двухуровневой
клиент-серверной архитектуре (рис. 6), особенностью которой является
использование выделенных серверов баз данных, понимающих запросы на
языке структурированных запросов SQL (от англ. Structured Query Language –
12
язык структурированных запросов) и выполняющих поиск, сортировку и
агрегирование информации.
Рисунок 5. Распределение программных компонентов ИС при файл-серверной архитектуре
Рисунок 6. Клиент-серверная архитектура информационных систем
13
На стороне клиента выполняется код приложения, в который обязательно
входят компоненты, поддерживающие
пользовательский интерфейс,
производящие отчеты, выполняющие другие специфичные для приложения
функции. Клиентская часть приложения взаимодействует с клиентской частью
программного обеспечения (ПО) управления базами данных, которая,
фактически, является индивидуальным представителем СУБД для приложения
(рис. 7). Интерфейс между клиентской частью приложения и клиентской
частью сервера баз данных, как правило, основан на использовании языка SQL.
Рисунок 7. Распределение программных компонентов ИС при клиент-серверной архитектуре
Клиентская часть сервера баз данных, используя средства сетевого
доступа, обращается к серверу баз данных, передавая ему текст инструкций
языка SQL. Сервер производит компиляцию полученных инструкций и, если
компиляция завершилась успешно, выполняет инструкции.
Обращение клиентов к серверу с каждым очередным запросом
увеличивает сетевые накладные расходы. Для эффективной работы отдельной
клиентской составляющей информационной системы в действительности
требуется только небольшая часть общей базы данных. Эта проблема может
быть решена поддержкой локального кэша общей базы данных на стороне
каждого клиента. Концепция локального кэширования базы данных является
частным случаем концепции реплицированных баз данных. Как и в общем
случае, для поддержки локального кэша базы данных программное обеспечение
клиентов должно содержать компонент управления базами данных –
упрощенный вариант сервера баз данных, который, например, может не
обеспечивать многопользовательский режим доступа. Отдельной проблемой
является обеспечение согласованности (когерентности) кэшей и общей базы
14
данных. Здесь возможны различные решения – от автоматической поддержки
согласованности за счет средств базового ПО управления базами данных до
полного перекладывания этой задачи на прикладной уровень.
Основным недостатком классической или двухуровневой клиентсерверной архитектуры является использование клиентской стороны в качестве
исполнителя бизнес-логики. Поэтому очевидным шагом дальнейшей эволюции
архитектур ИС явилась идея «тонкого» клиента, то есть разбиения алгоритмов
обработки данных на части, связанные с выполнением бизнес-функций и
связанные с отображением информации в удобном для пользователя
представлении. При этом на клиентской машине оставляют лишь вторую часть,
связанную с первичной проверкой и отображением информации, перенося всю
реальную функциональность системы на сервер приложений (рис. 8).
Рисунок 8. Распределение программных компонентов ИС при трехуровневой клиентсерверной архитектуре
Такая архитектура ИС получила название трехуровневой (рис. 9) и
является частным случаем многоуровневой архитектуры, в которой функция
обработки данных вынесена на один или несколько отдельных серверов. В
простейшей конфигурации физически сервер приложений может быть
совмещен с сервером базы данных на одном компьютере, к которому по сети
подключаются один или несколько «тонких» клиентов. В правильной с точки
зрения безопасности, надежности и масштабирования конфигурации сервер
базы данных находится на выделенном компьютере (или кластере), к которому
по сети подключены один или несколько серверов приложений, к которым, в
свою очередь, по сети подключаются клиенты.
В качестве сервера приложений может выступать веб-сервер (рис. 10), а в
роли клиентского приложения – любой веб-браузер. Когда клиент выполняет
действия на веб-странице (ввод запроса на поиск, ввод данных в форме
15
страницы и т.п.), браузер отправляет запрос серверу. На стороне сервера
выполняется его обработка и генерация ответа. В ходе генерации ответа
серверному приложению может потребоваться обращение к БД, в этом случае
происходит обращение к серверу БД. Сервер базы данных осуществляет
обработку запроса, выполняя соответствующие операции с БД. Результат этих
операций возвращается веб-серверу, который с учетом полученных данных
осуществляет изменение графического интерфейса веб-страницы и отправляет
содержимое сгенерированной страницы клиентскому браузеру.
Рисунок 9. Трехуровневая клиент-серверная архитектура информационных систем
Первые веб-ориентированные ИС использовали файловые серверы,
которые возвращали статические HTML1-страницы запросившим их клиентам.
Следующим этапом развития веб-ориентированных информационных систем
стало появление понятия веб-приложений, которые базировались на таких
интерфейсах, как CGI (или FastCGI), а в дальнейшем – ISAPI.
CGI (англ. Common Gateway Interface – общий шлюзовой интерфейс) –
это стандартный интерфейс работы с серверами, позволяющий выполнять
серверные веб-приложения. Входной информацией для таких приложений
служит содержимое HTTP2-заголовка (и тело запроса при использовании
1
HTML (англ. HyperText Markup Language – язык гипертекстовой разметки) – стандартный язык
разметки документов в Интернет.
2
HTTP (англ. HyperText Transfer Protocol – протокол передачи гипертекста) – протокол прикладного
уровня передачи данных (изначально – в виде гипертекстовых документов в формате HTML).
16
протокола POST). CGI-приложения генерируют HTML-код, который
возвращается браузеру. Основной проблемой CGI-приложений является то, что
при каждом клиентском запросе сервер выполняет CGI-программу в реальном
времени, загружая ее в отдельное адресное пространство.
Рисунок 10. Трехуровневая клиент-серверная архитектура веб-ориентированных
информационных систем
Появление ISAPI (англ. Internet Server Application Programming Interface –
интерфейс прикладного программирования для Интернет-сервера) позволило
не только решить проблемы производительности, которые возникали с CGIприложениями, но и предоставить в распоряжение разработчиков более
разнообразный программный интерфейс. Интерфейс ISAPI предназначен для
веб-сервера Microsoft Internet Information Server. ISAPI-приложения
представляют собой динамические загружаемые библиотеки (DLL), которые
выполняются в адресном пространстве веб-сервера. У других веб-серверов
также появилась возможность выполнять приложения, реализованные в виде
библиотек. В случае веб-серверов Netscape этот программный интерфейс
назывался NSAPI (англ. Netscape Server API). У довольно популярного вебсервера Apache также имеется возможность выполнять веб-приложения,
реализованные в виде библиотек. Такие библиотеки называются Apache DSO
(Dynamic Shared Objects – динамические разделяемые объекты).
Следующим этапом развития веб-приложений стало появление
технологии ASP (англ. Active Server Pages – активные серверные страницы),
17
предложенной компанией Microsoft в 1996 году. Эта технология основана на
внедрении в обыкновенные веб-страницы специальных элементов управления,
допускающих программное управление. Для реализации элементов управления
в ASP используются языки сценариев3 (VBScript или JScript).
Вскоре после появления ASP были созданы и другие технологии,
реализующие идею размещения внутри веб-страницы кода, выполняемого вебсервером. Наиболее известная из них на сегодняшний день – технология JSP
(англ. Java Server Pages – серверные страницы на языке программирования
Java), основной идеей которой является однократная компиляция Java-кода
(сервлета) при первом обращении к нему, выполнение методов этого сервлета и
помещение результатов выполнения этих методов в набор данных,
отправляемых в браузер.
Новейшая версия технологии Active Server Pages – ASP .NET,
являющаяся ключевой в архитектуре Microsoft .NET Framework. С помощью
ASP .NET можно создавать веб-приложения и веб-сервисы, которые не только
позволяют реализовать динамическую генерацию HTML-страниц, но и
интегрируются с серверными компонентами и могут использоваться для
решения широкого круга бизнес-задач, возникающих перед разработчиками
современных веб-приложений.
Решение многих описанных выше задач, возникающих при создании
современных веб-приложений, теперь начинает возлагаться на веб-сервисы
(веб-службы) – не зависящие от платформы, объектной модели и клиента
программные компоненты, которые можно вызывать из клиентских вебприложений (а также из самих веб-сервисов) через основанный на протоколе
HTTP и языке XML4 протокол SOAP5. Для описания веб-сервисов используется
XML-подобный язык WSDL6, а для организации реестров веб-сервисов, в
которых разработчики и компании могут искать необходимые им сервисы, а
также публиковать данные о своих сервисах – интерфейс UDDI7.
Архитектура информационных систем, основанная на использовании
сервисов или служб, получила название сервисно-ориентированной
архитектуры (СОА). В рамках СОА сервисы можно рассматривать как
строительные блоки, которые используются для построения сервисов более
высокого уровня, формируя так называемые бизнес-процессы, которые в свою
очередь тоже могут использоваться как сервисы.
При применении СОА организации могут создавать гибкие
3
Сценарий – это программа, имеющая дело с готовыми программными компонентами (Богатырев Р.
Природа и эволюция сценарных языков // Мир ПК. – 2001. – № 11).
4
XML (англ. eXtensible Markup Language – расширяемый язык разметки) рекомендованный
консорциумом W3C язык разметки для создания и обработки документов программами и человеком с
подчеркиванием нацеленности на использование в Интернете.
5
SOAP (англ. Simple Object Access Protocol – простой протокол доступа к объектам) – протокол обмена
структурированными сообщениями в распределенной вычислительной среде.
6
WSDL (англ. Web Services Definition Language) – язык описания веб-сервисов и доступа к ним,
основанный на языке XML.
7
UDDI (англ. Universal Description, Discovery & Integration – универсальное описание, поиск и
интеграция) – инструмент для расположения описаний веб-сервисов для последующего их поиска другими
организациями и интеграции в свои системы
18
корпоративные информационные системы, позволяющие оперативно
разрабатывать новые бизнес-процессы и многократно использовать одни и те
же программные компоненты как в рамках одной ИС, так и в независимых
информационных системах. Эти программные компоненты могут быть
распределены по разным узлам как локальной, так и глобальной сети, и
представляют собой независимые, слабо связанные, заменяемые сервисыприложения.
Использование веб-сервисов является только одним из методов
реализации СОА. В качестве сервиса может выступать любая дискретная
функция, удовлетворяющая следующим условиям:
‒ многократное использование;
‒ определение с помощью формальных, не зависящих от реализации
интерфейсов;
‒ наличие протоколов связи, обеспечивающих независимость от языка
программирования и аппаратурной платформы.
Сервисно-ориентированная архитектура подразумевает предоставление
программных компонентов в качестве сервисов. Но в качестве сервиса может
быть предоставлено не только ПО, но и инфраструктура или аппаратурная
платформа. Используемый сегодня термин «облачные вычисления» (англ. сloud
сomputing) применим для любых сервисов, которые предоставляются через сеть
Интернет. Эти Интернет-услуги, также известные как облачные сервисы,
делятся на три основные категории:
‒ инфраструктура как сервис (Infrastructure as a Service, IaaS) –
пользователю предоставляется компьютерная инфраструктура, обычно
виртуальные платформы (компьютеры), связанные в сеть, которые он
самостоятельно настраивает под собственные цели;
‒ платформа как сервис (Platform as a Service, PaaS) – пользователю
предоставляется
компьютерная
платформа
с
установленной
операционной системой и некоторым программным обеспечением;
‒ программное обеспечение как сервис (Software as a Service, SaaS) –
программное обеспечение по требованию, которое развернуто на
удаленных серверах, и каждый пользователь может получать к нему
доступ посредством Интернета, причем все вопросы обновления и
лицензий на данное обеспечение регулируются поставщиком данной
услуги.
На этих трех категориях строится понимание принципов работы облаков,
по сути замещающих для пользователей их собственную информационную
инфраструктуру, или конкретную программно-аппаратурную платформу. Сам
термин «сloud сomputing» был впервые использован еще в 1993 г. Эриком
Шмидтом (на тот моментом главным технологом и членом правления Sun
Microsystems) для обозначения сервисов, дистанционно поддерживающих
различные данные и приложения, размещенные на удаленных серверах.
Графический прообраз термина обязан своим появлением диаграммам и другим
иллюстрациям в виде облачков, с помощью которых принято изображать сеть
Интернет.
19
Облачные сервисы включают три основные характеристики, которые
отличают их от обычных сервисов:
‒ работа в режиме «ресурсы по запросу»;
‒ гибкость;
‒ независимость от элементов управления инфраструктурой.
Существуют следующие типы облачных инфраструктур:
1) частное облако (англ. private cloud) – инфраструктура, предназначенная для
использования одной организацией, включающей несколько потребителей
(например, подразделений одной организации), возможно также клиентами
и подрядчиками данной организации. Частное облако может находиться в
собственности, управлении и эксплуатации как самой организации, так и
третьей стороны (или какой-либо их комбинации), и оно может физически
существовать как внутри, так и вне юрисдикции владельца;
2) публичное облако (англ. public cloud) – инфраструктура, предназначенная для
свободного использования широкой публикой. Публичное облако может
находиться в собственности, управлении и эксплуатации коммерческих,
научных и правительственных организаций (или какой-либо их
комбинации). Публичное облако физически существует в юрисдикции
владельца – поставщика услуг;
3) общественное облако (англ. community cloud) – вид инфраструктуры,
предназначенный
для
использования
конкретным
сообществом
потребителей из организаций, имеющих общие задачи (например, миссии,
требований безопасности, политики, и соответствия различным
требованиям). Общественное облако может находиться в кооперативной
(совместной) собственности, управлении и эксплуатации одной или более из
организаций сообщества или третьей стороны (или какой-либо их
комбинации), и оно может физически существовать как внутри, так и вне
юрисдикции владельца;
4) гибридное облако (англ. hybrid cloud) – это комбинация из двух или более
различных облачных инфраструктур (частных, публичных или
общественных), остающихся уникальными объектами, но связанных между
собой стандартизованными или частными технологиями передачи данных и
приложений (например, кратковременное использование ресурсов
публичных облаков для балансировки нагрузки между облаками).
Преимуществами использования облачных вычислений при создании
информационных систем являются:
‒ маcштабируемость, отказоустойчивость и безопасность за счет
автоматического выделения и освобождения необходимых ресурсов в
зависимости от потребностей приложений; технического обслуживания и
обновления ПО провайдером услуг;
‒ удаленный доступ к программному обеспечению и данным в облаке из
любой точки на планете, где есть доступ в сеть Интернет;
‒ экономия денежных средств на приобретении, поддержке, модернизации
ПО и оборудования.
20
Контрольные вопросы
1. Дайте определение понятию «информационная система».
2. Перечислите типовые программные компоненты, входящие в состав
информационных систем.
3. На какие группы подразделяются ИС при классификации по масштабу?
4. На какие группы подразделяются ИС при классификации по сфере
применения?
5. На какие группы подразделяются ИС при классификации по способу
организации?
6. Назовите особенности файл-серверной архитектуры ИС.
7. Перечислите достоинства и недостатки клиент-серверной архитектуры
ИС.
8. В чем отличие трехуровневой архитектуры от классической
двухуровневой?
9. Какие технологии используются при построении веб-ориентированных
ИС?
10.Дайте определение понятию «сервисно-ориентированная архитектура».
11.Перечислите категории облачных сервисов.
21
1/--страниц
Пожаловаться на содержимое документа