Что относится к сетевым приложениям браузер
Сетевое программное обеспечение – это программное обеспечение, позволяющее организовать работу пользователя в сети. Оно представлено общим, сетевым и специальным программным обеспечением.
Общее сетевое программноеобеспечение включает в себя:
- HTML-редакторы – редакторы, предназначенные для создания Web-страниц.
- Графические средства Web– средства, предназначенные для оптимизации графических элементов Web-страниц.
- Машинные переводчики– программные средства, предназначенные для просмотра web-страниц на различных языках.
- Антивирусные сетевые программы– программы предназначенные для предотвращения попадания программных вирусов на компьютер пользователя или распространения его по локальной сети фирмы.
Системное программное обеспечение включает в себя:
- операционную систему (Network Operation System – NOS)– комплекс программ, обеспечивающих в условиях компьютерных сетей управление сетевыми ресурсами (программами, данными, устройствами, протоколами и т.д.). Операционная система сети управляет работой сети во всех ее режимах, обеспечивает реализацию запросов пользователей, координирует функционирование звеньев сети. Она имеет иерархическую структуру, соответствующую стандартной семиуровневой модели взаимодействия открытых систем.
- сервисные программы – программы, которые расширяют возможности операционной системы, предоставляя пользователю и его программам набор дополнительных услуг;
- систему технического обслуживания – система, которая облегчает диагностику, тестирование оборудования и поиск неисправностей в ПК.
Специальное программное обеспечение представлено прикладными программными средствами: функциональными и интегрированными пакетами прикладных программ и прикладными программами сети, библиотеками стандартных программ, а также прикладными программами, отражающими специфику предметной области пользователей при реализации своих задач.
Для управления сетью существуют специальные сетевые операционные системы, которые по своей организации можно разделить на одноранговые (Peer-To-Peer Network) и с выделенным файловым сервером (Dedicated File Server Network).
К одноранговым относятся следующие сетевые операционные системы:
· NetWare Lite, Personal NetWare (Novell),
· Windows For Workgroups (Microsoft),
В сетях с выделенным сервером сетевая ОС инсталлируется и загружается на отдельной станции, которую называют файловым сервером (File Server). Рабочие станции имеют доступ к общим данным и другим ресурсам, хранящимся на файловом сервере.
Преимущества и недостатки одноранговых ОС
Преимущества | Недостатки |
Простота инсталляции. Обеспечивают доступ к ресурсам других рабочих станций. | Низкая производительность сети. Это объясняется небольшой мощностью рабочих станций. Имеют ограниченные возможности по обеспечению связи удаленных сегментов сети. Отсутствуют развитые средства управления сетью. Не обеспечивают режим работы СУБД "клиент-сервер". |
К операционным системам, которые устанавливаются на файловом сервере, относятся следующие ОС:
· Vines 5.53 (Banyan),
· OS/2 LAN Server 4.0 Advanced (IBM),
· Windows NT Server (Microsoft),
· NetWare 5.0 (Novell).
Преимущества и недостатки ОС с выделенным сервером
Преимущества | Недостатки |
Высокая производительность сети за счет использования файлового сервера большой мощности. Наличие развитых аппаратных и программных средств связи удаленных сегментов сети и рабочих станций. Наличие развитых средств управления и администрирования в сети. Обеспечивают режим работы СУБД "клиент-сервер". | Некоторая сложность в освоении. Ограниченные возможности доступа к ресурсам рабочих станций. |
Для устранения недостатков, присущих сетям рассмотренных типов, часто на одном сегменте сети устанавливают две операционные системы: одноранговую и с выделенным сервером.
В одноранговых сетях на каждой рабочей станции сети могут быть загружены две группы модулей: модуль сервера и модуль клиента На серверах функционируют сетевые операционные системы, позволяющие совместно использовать ресурсы сервера, на клиентах – программное обеспечение доступа к сети, обеспечивающее работу с разделяемыми ресурсами.
Загрузка в оперативную память рабочей станции модулей сервера обеспечивает доступ других пользователей к ресурсам этого компьютера. А наличие модулей клиента позволяет пользователю иметь доступ к ресурсам других рабочих станций сети.
Функции модуля клиента операционных систем:
- исполнение пользовательских приложений;
- реализация интерфейса пользователя с сетью;
- обеспечение соединения с сетью.
Функции модуля сервера операционных систем
- управление учетными записями;
- многозадачность и многопроцессорная обработка.
Структура сетевой операционной системы
В сетевой операционной системе выделяется несколько частей:
· Средства управления локальными ресурсами рабочей станции: функции распределения оперативной памяти между процессами, планирования и диспетчеризации процессов, управления процессорами в мультипроцессорных машинах, управления периферийными устройствами и другие функции управления ресурсами локальных операционных систем.
· Средства предоставления собственных ресурсов и услуг в общее пользование – серверная часть операционной системы (сервер). Эти средства обеспечивают, например, блокировку файлов и записей, что необходимо для их совместного использования; ведение справочников имен сетевых ресурсов; обработку запросов удаленного доступа к собственной файловой системе и базе данных; управление очередями запросов удаленных пользователей к своим периферийным устройствам.
Сетевые операционные системы
Существует множество сетевых операционных систем, различающихся своими возможностями и условиями эксплуатации. Основными параметрами, которые учитываются при сравнении систем, являются:
- зависимость производительности от количества рабочих станций;
- надежность работы в сети;
- уровень сервиса (объем и качество предоставляемых услуг, возможности разработки прикладных программ в сети, управление функционированием, удобство проведения инсталляции, настройки, профилактики и других операций;
- защита информации от несанкционированного доступа;
- потребление ресурсов сетевыми средствами (объем оперативной и дисковой памяти, требуемая доля производительности вычислительной системы);
- возможности использования в сети нескольких серверов;
- типы поддерживаемых топологий в сети, а также возможность изменения состава сети;
- перечень поддерживаемых сетевых устройств (сетевых плат, принтеров, сканеров, модемов и т.д.);
- наличием интерфейсов с другими сетями и Internet.
В случае сети, территориально разбросанной, неоднородной по составу аппаратных и программных средств, а также со сложными прикладными программами может оказаться необходимой среда на базе нескольких сетевых операционных систем.
Давайте начнем серию статей по безопасности веб-приложений с объяснением того, что делают браузеры и как именно они это делают. Поскольку большинство ваших клиентов будут взаимодействовать с вашим веб-приложением через браузеры, необходимо понимать основы функционирования этих замечательных программ.
Chrome и lynx
Браузер — это движок рендеринга. Его работа заключается в том, чтобы загрузить веб-страницу и представить её в понятном для человека виде.
Хоть это и почти преступное упрощение, но пока это все, что нам нужно знать на данный момент.
- Пользователь вводит адрес в строке ввода браузера.
- Браузер загружает «документ» по этому URL и отображает его.
Например, lynx — это легкий текстовый браузер, работающий из командной строки. В основе lynx лежат те же самые принципы, которые вы найдете в любых других «мейнстримных» браузерах. Пользователь вводит веб-адрес (URL), браузер скачивает документ и отображает его — единственное отличие состоит в том, что lynx использует не движок графического рендеринга, а текстовый интерфейс, благодаря которому такие сайты, как Google, выглядят так:
Мы в целом имеем представление, что делает браузер, но давайте подробнее рассмотрим действия, которые эти гениальные приложения выполняют для нас.
Что делает браузер?
Короче говоря, работа браузера в основном состоит из
Разрешение DNS
Давайте разберем запрос построчно:
Воу, на этот раз довольно много информации, которую нужно переварить. Сервер сообщает нам, что запрос был выполнен успешно (200 OK) и добавляет к ответу несколько заголовков, из которых например, можно узнать, какой именно сервер обработал наш запрос (Server: gws), какова политика X-XSS-Protection этого ответа и так далее и тому подобное.
Рендеринг
Последним по счёту, но не последним по значению идет процесс рендеринга. Насколько хорош браузер, если единственное, что он покажет пользователю, это список забавных символов?
В теле ответа сервер включает представление запрашиваемого документа в соответствии с заголовком Content-Type. В нашем случае тип содержимого был установлен на text/html, поэтому мы ожидаем HTML-разметку в ответе — и именно ее мы и находим в теле документа.
Это как раз тот момент, где браузер действительно проявляет свои способности. Он считывает и анализирует HTML-код, загружает дополнительные ресурсы, включенные в разметку (например, там могут быть указаны для подгрузки JavaScript-файлы или CSS-документы) и представляет их пользователю как можно скорее.
Еще раз, конечным результатом должно стать то, что доступно для восприятия среднестатистического Васи.
Если вам нужно более детально объяснение того, что действительно происходит, когда мы нажимаем клавишу ввода в адресной строке браузера, я бы предложил прочитать статью «Что происходит, когда…», очень дотошную попытку объяснить механизмы, лежащие в основе этого процесса.
Вендоры
4 самых популярных браузера принадлежат разным вендорам:
- Chrome от Google
- Firefox от Mozilla
- Сафари от Apple
- Edge от Microsoft
W3C является краеугольным камнем разработки стандартов, но браузеры нередко разрабатывают свои собственные функции, которые в конечном итоге превращаются в веб-стандарты, и безопасность тут не является исключением.
Например, в Chrome 51 были введены файлы cookie SameSite — функция, которая позволила веб-приложениям избавиться от определенного типа уязвимости, известной как CSRF (подробнее об этом позже). Другие производители решили, что это хорошая идея, и последовали ее примеру, что привело к тому, что подход SameSite стал веб-стандартом: на данный момент Safari является единственным крупным браузером без поддержки файлов cookie SameSite.
Это говорит нам о двух вещах:
- Похоже, что Safari недостаточно заботится о безопасности своих пользователей (шучу: файлы cookie SameSite будут доступны в Safari 12, который, возможно, уже был выпущен к моменту прочтения этой статьи)
- исправление уязвимости в одном браузере не означает, что все ваши пользователи в безопасности
Ваша стратегия обеспечения безопасности в сети должна варьироваться в зависимости от того, какие возможности нам предоставляет вендор-поставщик браузера. В настоящее время большинство браузеров поддерживают один и тот же набор функций и редко отклоняются от своего общей дорожной карты, но случаи, подобные приведенному выше, все еще случаются, и это то, что мы должны учитывать при определении нашей стратегии безопасности.
В нашем случае, если мы решим, что будем нейтрализовывать атаки CSRF только с помощью файлов cookie SameSite, мы должны знать, что мы подвергаем риску наших пользователей Safari. И наши пользователи тоже должны это знать.
И последнее, но не менее важное: вы должны помнить, что вы можете решить, поддерживать ли версию браузера или нет: поддержка каждой версии браузера будет непрактичной (вспомните хпро Internet Explorer 6). Несмотря на это, уверенная поддержка нескольких последних версий основных браузеров — как правило, хорошее решение. Однако, если вы не планируете предоставлять защиту на какой-то определенной платформе, очень желательно, чтобы ваши пользователи об этом знали.
Совет для профи: вы никогда не должны поощрять своих пользователей использовать устаревшие браузеры или активно поддерживать их. Даже если вы приняли все необходимые меры предосторожности, другие веб-разработчики этого не сделали. Поощряйте пользователей использовать последнюю поддерживаемую версию одного из основных браузеров.
Вендор или стандартный баг?
Тот факт, что обычный пользователь обращается к нашему приложению благодаря помощи стороннего клиентского программного обеспечения (браузера), добавляет еще один уровень, усложняющий путь к удобному и безопасному просмотру веб-страниц: сам браузер может быть источником уязвимости безопасности.
Вендоры, как правило, предоставляют вознаграждения (также известные как баг-баунти) исследователям безопасности, которые могут искать уязвимость в самом браузере. Эти ошибки связаны не с вашим веб-приложением, а с тем, как браузер самостоятельно управляет безопасностью.
Например, программа поощрений Chrome позволяет исследователям безопасности обращаться к команде безопасности Chrome, чтобы сообщить об обнаруженных ими уязвимостях. Если факт наличия уязвимости подтвердится, будет выпущено исправление и, как правило, опубликовано уведомление о безопасности, а исследователь получит (обычно финансовое) вознаграждение от программы.
Такие компании, как Google, инвестируют достаточно солидный капитал в свои программы Bug Bounty, поскольку это позволяет компаниям привлекать множество исследователей, обещая им финансовую выгоду в случае обнаружения ими каких-либо проблем с тестируемым программным обеспечением.
В программе Bug Bounty выигрывают все: поставщику удается повысить безопасность своего программного обеспечения, а исследователям платят за их находки. Мы обсудим эти программы позже, так как я считаю, что инициативы Bug Bounty заслуживают отдельного раздела в ландшафте аспектов безопасности.
Джейк Арчибальд (Jake Archibald) — разработчик-"адвокат" в Google, который обнаружил уязвимость, затрагивающую несколько браузеров. Он задокументировал свои усилия по ее обнаружению, процесс обращения к различным вендорам, затронутым уязвимостью, и реакцию представителей вендоров в интересном блог-посте, который я рекомендую вам прочитать.
Браузер для разработчиков
В приведенном выше примере мы запросили документ по адресу localhost:8080/, и локальный сервер успешно на него ответил.
Примерно та же информация доступна в популярных браузерах посредством их DevTools.
В переводе двенадцатой части серии материалов о JavaScript и его экосистеме, который мы сегодня публикуем, речь пойдёт о сетевой подсистеме браузеров и об оптимизации производительности и безопасности сетевых операций. Автор материала говорит, что разница между хорошим и отличным JS-разработчиком заключается не только в уровне освоения языка, но и в том, насколько хорошо он разбирается в механизмах, не входящих в язык, но используемых им. Собственно говоря, работа с сетью — это один из таких механизмов.
Немного истории
49 лет назад была создана компьютерная сеть ARPAnet, объединяющая несколько научных учреждений. Это была одна из первых сетей с коммутацией пакетов, и первая сеть, в который была реализована модель TCP/IP. Двадцатью годами позже Тим Бернес-Ли предложил проект известный как Всемирная паутина. За годы, которые прошли с запуска ARPAnet, интернет прошёл долгий путь — от пары компьютеров, обменивающихся пакетами данных, до более чем 75 миллионов серверов, примерно 1.3 миллиарда веб-сайтов и 3.8 миллиарда пользователей.
Количество пользователей интернета в мире
В этом материале мы поговорим о том, какие механизмы используют браузеры для того, чтобы повысить производительность работы с сетью (эти механизмы скрыты в их недрах, вероятно, вы о них, работая с сетью в JS, даже и не думаете). Кроме того, мы обратим особое внимание на сетевой уровень браузеров и приведём здесь несколько рекомендаций, касающихся того, как разработчик может помочь браузеру повысить производительность сетевой подсистемы, которую задействуют веб-приложения.
Обзор
При разработке современных веб-браузеров особое внимание уделяется быстрой, эффективной и безопасной загрузке в них страниц веб-сайтов и веб-приложений. Работу браузеров обеспечивают сотни компонентов, выполняющихся на различных уровнях и решающих широкий спектр задач, среди которых — управление процессами, безопасное выполнение кода, декодирование и воспроизведение аудио и видео, взаимодействие с видеоподсистемой компьютера и многое другое. Всё это делает браузеры больше похожими на операционные системы, а не на обычные приложения.
Общая производительность браузера зависит от целого ряда компонентов, среди которых, если рассмотреть их укрупнённо, можно отметить подсистемы, решающие задачи разбора загружаемого кода, формирования макетов страниц, применения стилей, выполнения JavaScript и WebAssembly-кода. Конечно же, сюда входят и система визуализации информации, и реализованный в браузере сетевой стек.
Программисты часто думают, что узким местом браузера является именно его сетевая подсистема. Часто так и бывает, так как все ресурсы, прежде чем с ними можно будет что-то сделать, сначала должны быть загружены из сети. Для того чтобы сетевой уровень браузера был эффективным, ему нужны возможности, позволяющие играть роль чего-то большего, нежели роль простого средства для работы с сокетами. Сетевой уровень даёт нам очень простой механизм загрузки данных, но, на самом деле, за этой внешней простотой скрывается целая платформа с собственными критериями оптимизации, API и службами.
Сетевая подсистема браузера
Занимаясь веб-разработкой, мы можем не беспокоиться об отдельных TCP или UDP-пакетах, о форматировании запросов, о кэшировании, и обо всём остальном, что происходит в ходе взаимодействия браузера с сервером. Решением всех этих сложных задач занимается браузер, что даёт нам возможность сосредоточиться на разработке приложений. Однако, знание того, что происходит в недрах браузера, может помочь нам в деле создания более быстрых и безопасных программ.
Поговорим о том, как выглядит обычный сеанс взаимодействия пользователя с браузером. В целом, он состоит из следующих операций:
Жизненный цикл запроса
Весь процесс обмена данными по сети очень сложен, он представлен множеством уровней, каждый из которых может стать узким местом. Именно поэтому браузеры стремятся к тому, чтобы улучшить производительность на своей стороне, используя различные подходы. Это помогает снизить, до минимально возможных значений, воздействие особенностей сетей на производительность сайтов.
Управление сокетами
Прежде чем говорить об управлении сокетами, рассмотрим некоторые важные понятия:
На самом деле, современные браузеры не жалеют сил на раздельное управление запросами и сокетами. Сокеты организованы в пулы, которые сгруппированы по источнику. В каждом пуле применяются собственные лимиты соединений и ограничения, касающиеся безопасности. Запросы, выполняемые к источнику, ставятся в очередь, приоритизируются, а затем привязываются к конкретным сокетам в пуле. Если только сервер не закроет соединение намеренно, один и тот же сокет может быть автоматически переиспользован для выполнения многих запросов.
Очереди запросов и система управления сокетами
Так как открытие нового TCP-соединения требует определённых затрат системных ресурсов и некоторого времени, переиспользование соединений, само по себе, является отличным средством повышения производительности. По умолчанию браузер использует так называемый механизм «keepalive», который позволяет экономить время на открытии соединения к серверу при выполнении нового запроса. Вот средние показатели времени, необходимого для открытия нового TCP-соединения:
- Локальные запросы: 23 мс.
- Трансконтинентальные запросы: 120 мс.
- Интерконтинентальные запросы: 225 мс.
Как уже было сказано, всё это управляется браузером и не требует усилий со стороны программиста. Однако это не означает, что программист не может сделать ничего для того, чтобы помочь браузеру. Так, например, выбор подходящих шаблонов сетевого взаимодействия, частоты передачи данных, выбор протокола, настройка и оптимизация серверного стека, могут сыграть значительную роль в повышении общей производительности приложения.
Некоторые браузеры в деле оптимизации сетевых соединений идут ещё дальше. Например, Chrome может «самообучаться» по мере его использования, что ускоряет работу с веб-ресурсами. Он анализирует посещённые сайты и типичные шаблоны работы в интернете, что даёт ему возможность прогнозировать поведение пользователя и предпринимать какие-то меры ещё до того, как пользователь что-либо сделает. Самый простой пример — это предварительный рендеринг страницы в тот момент, когда пользователь наводит указатель мыши на ссылку. Если вам интересны внутренние механизмы оптимизации, применяемые в Chrome, вот — полезный материал на эту тему.
Сетевая безопасность и ограничения
У того, что браузеру позволено управлять отдельными сокетами, есть, помимо оптимизации производительности, ещё одна важная цель: благодаря такому подходу браузер может применять единообразный набор ограничений и правил, касающихся безопасности, при работе с недоверенными ресурсами приложений. Например, браузер не даёт прямого доступа к сокетам, так как это позволило бы любому потенциально опасному приложению выполнять произвольные соединения с любыми сетевыми системами. Браузер, кроме того, применяет ограничение на число соединений, что защищает сервер и клиент от чрезмерного использования сетевых ресурсов.
Браузер форматирует все исходящие запросы для защиты сервера от запросов, которые могут быть сформированы неправильно. Точно так же браузер относится и к ответам серверов, автоматически декодируя их и принимая меры для защиты пользователя от возможных угроз, исходящих со стороны сервера.
Процедура TLS-согласования
TLS (Transport Layer Security, протокол защиты транспортного уровня), это криптографический протокол, который обеспечивает безопасность передачи данных по компьютерным сетям. Он нашёл широкое использование во множестве областей, одна из которых — работа с веб-сайтами. Веб-сайты могут использовать TLS для защиты всех сеансов взаимодействия между серверами и веб-браузерами.
Вот как, в общих чертах, выглядит процедура TLS-рукопожатия:
Принцип одного источника
В соответствии с принципом одного источника (Same-origin policy), две страницы имеют один и тот же источник, если их протокол, порт (если задан) и хост совпадают.
Вот несколько примеров ресурсов, которые могут быть встроены в страницу с несоблюдением принципа одного источника:
Стоит отметить, что не существует единственной концепции «принципа единого источника». Вместо этого имеется набор связанных механизмов, которые применяют ограничения по доступу к DOM, по управлению куки-файлами и состоянием сессии, по работе с сетевыми ресурсами и с другими компонентами браузера.
Кэширование
Самый лучший, самый быстрый запрос — это запрос, который не ушёл в сеть, а был обработан локально. Прежде чем ставить запрос в очередь на выполнение, браузер автоматически проверяет свой кэш ресурсов, выполняет проверку найденных там ресурсов на предмет актуальности и возвращает локальные копии ресурсов в том случае, если они соответствуют определённому набору требований. Если же ресурсов в кэше нет, выполняется сетевой запрос, а полученные в ответ на него материалы, если их можно кэшировать, помещаются в кэш для последующего использования. В процессе работы с кэшем браузер выполняет следующие действия:
- Он автоматически оценивает директивы кэширования на ресурсах, с которыми ведётся работа.
- Он автоматически, при наличии такой возможности, перепроверяет ресурсы, срок кэширования которых истёк.
- Он самостоятельно управляет размером кэша и удаляет из него ненужные ресурсы.
Пример
Вот простой, но наглядный пример удобства отложенного управления состоянием сессии в браузере. Аутентифицированная сессия может совместно использоваться в нескольких вкладках или окнах браузера, и наоборот; завершение сессии в одной из вкладок приводит к тому, что сессия окажется недействительной и во всех остальных.
API и протоколы
Советы по оптимизации производительности и безопасности сетевых подсистем веб-приложений
Вот несколько советов, которые помогут вам повысить производительность и безопасность сетевых подсистем ваших веб-приложений.
- Всегда используйте в запросах заголовок «Connection: Keep-Alive». Браузеры, кстати, используют его по умолчанию. Проверьте, чтобы и сервер использовал тот же самый механизм.
- Используйте подходящие заголовки Cache-Control, Etag и Last-Modified при работе с ресурсами. Это позволит ускорить загрузку страниц при повторных обращениях к ним из того же браузера и сэкономить трафик.
- Потратьте время на настройку и оптимизацию сервера. В этой области, кстати, можно увидеть настоящие чудеса. Помните о том, что процесс подобной настройки очень сильно зависит от особенностей конкретного приложения и от типа передаваемых данных.
- Всегда используйте TLS. В особенности — если в вашем веб-приложении используются какие-либо механизмы аутентификации пользователя.
- Выясните, какие политики безопасности предоставляют браузеры, и используйте их в своих приложениях.
Итоги
Браузеры берут на себя большую часть сложных задач по управлению всем тем, что связано с сетевым взаимодействием. Однако это не значит, что разработчик может совершенно не обращать на всё это внимание. Тот, кто хотя бы в общих чертах знает о том, что происходит в недрах браузера, может вникнуть в необходимые детали и своими действиями помочь браузеру, а значит — сделать так, чтобы его веб-приложения работали быстрее.
Предыдущие части цикла статей:
Существует два типа сетевых приложений: чисто сетевые (pure) и обособленные (standalone). Чисто сетевые приложения разработаны для применения в сетях. Использование их на отдельных компьютерах не имеет смысла. Наоборот, обособленные приложения призваны работать на отдельном компьютере. Для расширения возможностей они перестроены для работы в сетях. Примерами обособленных приложений могут служить текстовый процессор и редактор электронных таблиц.
Чисто сетевые приложения
Эти приложения были созданы для использования возможностей сетей. Каждое из них имеет свой отдельный пользовательский интерфейс и требует выполнения некоторой последовательности "сетевых" команд, индивидуальных для каждого приложения.
Ниже приведены некоторые примеры чисто сетевых приложений:
- эмуляция терминала;
- передача файла;
- электронная почта;
- групповые приложения.
Эмуляция терминала была одним из первых чисто сетевых приложений. До появления сетей терминалы использовались для доступа к прикладным программам на больших ЭВМ и миникомпьютерах. Когда на смену терминалам пришли ПК, потребовался метод доступа к прикладным программам на существующих больших ЭВМ и миникомпьютерах. Программа эмуляции терминала позволяет представить ПК для большой ЭВМ как подключенный к ней терминал. Функции центрального процессора (ЦП) ПК становятся прозрачными для пользователя, и ему кажется, что он работает с ЦП большой ЭВМ, к которой данный ПК подсоединен. Эмуляция терминала предоставляет пользователю преимущества двух сред компьютерного мира. Приложения больших ЭВМ и миникомпьютеров могут выполняться на ПК наряду с обычными обособленными приложениями типа текстовых процессоров и электронных таблиц.
Передача файла является основным приложением практически во всех сетях. В некоторых случаях файлы, передаваемые от ПК одного типа к ПК другого типа, требуют перевода из одного формата данных в другой.
Обособленные приложения
Все приложения, описанные выше, являются чисто сетевыми приложениями, разработанными для функционирования в сетевой среде. В последнее время многие известные обособленные приложения были адаптированы для функционирования в среде клиент-сервер.
Примерами могут служить текстовые процессоры, редакторы электронных таблиц, базы данных, презентационная графика и управление проектами.
Когда обособленные приложения адаптируются для работы в сетевой среде, они разбиваются на две части.
Первая часть приложения включает пользовательский интерфейс и связующую обработку и работает на станции-клиенте. Вторая часть приложения, работающая на сервере, включает операции, требующие значительных процессорных затрат.
Поводом к переводу традиционных обособленных приложений в сетевую среду послужили следующие соображения:
- простота использования;
- разделение файлов;
- ограничение ресурсов;
- экономия от масштабирования.
В сетевых версиях приложений используется тот же пользовательский интерфейс, включая команды оператора, что и в предыдущих обособленных версиях. В отличие от чисто сетевых приложений пользователям нет необходимости изучать новые команды для обеспечения нормальной работы.
Пользователи могут получать доступ к важным файлам, таким, как большие базы данных, сохраняемым в общем разделяемом пространстве. Поскольку только одна копия файла существует на сервере, то исчезает опасность дублирования файлов с различными датами модификации.
Некоторые ПК с ограниченными ресурсами (медленный ЦП, малая память) не могут обрабатывать целиком современные большие приложения. Однако если приложение разбивается на две части, то ПК может обрабатывать одну из этих частей, что известно как архитектура "клиент-сервер". Персональный компьютер ("клиент") в общем случае обрабатывает часть пользовательского интерфейса от всего приложения, а более мощный компьютер ("сервер") обрабатывает интенсивную процессорную часть и ввод/вывод (В/В) информации.
Новое серверное приложение не требуется для каждого пользователя. Если приложение уже существует на сервере, то новая часть пользовательского интерфейса для клиента – это все, что необходимо. Это обычно более дешево, чем использование всей программы для каждого пользователя.
Функции и характеристики сетевых операционных систем. Принято выделять в ПО АС общесистемное ПО, системные среды и прикладное ПО.
К общесистемному ПО относят ОС используемых ЭВМ и вычислительных систем, а также сетевое ПО типовых телекоммуникационных услуг. Основой системной среды является система управления проектными данными, или система PDM совместно с СУБД. Кроме того, в состав системной среды могут входить инструментальные средства разработки и сопровождения ПО, интеллектуальные средства поддержки принятия проектных и управленческих решений. Прикладное ПО представлено программно-методическими комплексами и пакетами программ для выполнения проектных и бизнес-процедур.
Различают ОС со встроенными сетевыми функциями и оболочки над локальными ОС. В соответствии с другим признаком классификации сетевые ОС подразделяют на одноранговые и функционально несимметричные (ОС для систем клиент – сервер). В несимметричных ОС выделяют клиентскую и серверную части. В случае использования несимметричной ОС в одноранговых сетях на компьютерах должны устанавливаться обе части ОС. Основные функции сетевой ОС:
• управление каталогами и файлами;
• защита от несанкционированного доступа;
• обеспечение отказоустойчивости; управление сетью.
Управление каталогами и файлами является одной из первоочередных функций сетевой ОС, обслуживаемых специальной сетевой файловой подсистемой. Пользователь получает от этой подсистемы возможность обращаться к файлам, физически расположенным в сервере или в другой станции данных, применяя привычные для локальной работы языковые средства.
Управление ресурсами включает в себя функции запроса и предоставления ресурсов. Управление удаленными ресурсами выполняется программами, называемыми сетевыми службами.
Системы распределенных вычислений.
При выполнении проектных процедур с использованием более чем одного узла сети различают режимы удаленного узла и дистанционного управления (рисунок 5).
В режиме удаленного узла основные процедуры приложения исполняются на терминальном узле. Связь с удаленным узлом используется для пересылки файлов. В большинстве случаев режим удаленного узла приводит к более заметной инерционности связи, чем режим дистанционного управления.
Дистанционное управление обеспечивает передачу клавишных команд в прямом направлении и экранных изображений (обычно лишь изменений в них) в сжатом виде в обратном направлении, поэтому задержки меньше.
Системы распределенных вычислений основаны на режиме дистанционного управления, при котором терминальный узел используется преимущественно для интерфейса с пользователем и передачи команд управления, а основные процедуры приложения исполняются на удаленном узле (сервере). Поэтому в сетях распределенных вычислений должны быть выделены серверы приложений.
Программное обеспечение организации распределенных вычислений называют ПО промежуточного слоя (Middleware).
Рисунок 5–Режимы удаленного узла и дистанционного управления
Основные функции и проектные процедуры, реализуемые в ПО САПР. В состав развитых машиностроительных САПР входят в качестве составляющих системы CAD, САМ и CAE.
Литература 1 осн. 211, 2 доп. 80
1. От каких факторов зависит структура САПР?
2. Какие подсистемы ПО относятся к обслуживающим?
3. На решение каких задач проектирования ориентированы объектно-независимые подсистемы ПО?
4. Что организует диалоговая подсистема ПО?
5. Каким элементом САПР осуществляется управление ходом вычислительного процесса и координация взаимодействия подсистем?
6. Каким элементом САПР осуществляется взаимодействие управляющей подсистемы ПО и мониторов проектирующих пакетов?
Читайте также: