-
Notifications
You must be signed in to change notification settings - Fork 2
exam12
- Понятие интернет-провайдера. Виды доступа в интернет. Государственное регулирование в интернете.
- Современные технологии интернет-программирования.
Выполнили: Сырмакешев Дмитрий ИДМ-22-07, Чешков Леонид ИДМ-22-05, Люманов Осман ИДМ 22-04, Ступивцев Алексей ИДМ-22-06
Интернет-провайдер (англ. Internet Service Provider, ISP – поставщик интернет-услуг) – организация, которая занимается предоставлением услуг доступа к сети Интернет и связанные с Интернетом услуги[1].
Изначально организации обеспечивали доступ клиентов к сети посредством коммутируемых соединений по телефонным линиям. В дальнейшем, в начале 21 века, была разработана и внедрена технология DSL, которая позволила провайдерам предоставлять широкополосный доступ в интернет[2].
Всех провайдеров можно разделить по уровням охватываемых областей: так, на первом уровне находятся 16[3] интернет-компаний, владеющих главными магистралями передачи данных (магистральные провайдеры). Среди них 5 находятся в США (AT&T, CenturyLink, GTT, Verison и the Zayo Group), остальные находятся в странах Европы и Азии. Между собой эти компании обмениваются траффиком бесплатно. На уровнях ниже находятся компании, которые покупают траффик у провайдеров выше и продают находящимся на низших уровнях. На самом низком уровне находятся провайдеры «последней мили», которые продают траффик непосредственно конечным потребителям.
К основным услугам интернет-провайдеров относят:
-
широкополосный доступ в Интернет;
-
коммутируемый доступ в Интернет;
-
беспроводной доступ в Интернет;
-
выделение дискового пространства для хранения и обеспечения работы сайтов (хостинг);
-
поддержка электронных почтовых ящиков или виртуального почтового сервера;
-
размещение оборудования клиента на площадке провайдера (колокация);
-
аренда выделенных и виртуальных серверов (VPS, VDS);
-
резервирование данных.
Выработкой и реализацией государственной политики и нормативно-правовым регулированием интернета в России занимается федеральный орган исполнительной власти - Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации.[4]
В России юридически интернет-провайдером признают оператора связи, который имеет лицензию на оказание услуг связи. Лицензию выдает Роскомнадзор сроком до 5 лет.[5]
Надзор государства над интернетом в России осуществляет Федеральная служба по надзору в сфере связи, информационных технологий и массовых коммуникаций. Для этого в сетях российских интернет провайдеров установлено оборудование Системы оперативно-розыскных мероприятий. Государство получает от провайдеров информацию о пользователях и контенте в сети, чтобы контролировать и пресекать нарушения.
На текущий момент существуют следующие основные виды доступа в интернет:
-
Коммутируемый
Коммутируемый (dial-up) доступ обеспечивался обычной телефонной сетью и коммутируемым модемом, который к ней подключался. Максимальная скорость такого соединения - 56 Кбит/c [7].
-
DSL
DSL подключение обеспечивается цифровым DSL модемом и сетевой картой на устройстве пользователя. Максимальная скорость - 24 Мбит/с.
-
GPRS, GSM, LTE
Эту группу "мобильных" подключений объединяет то, что они используются преимущественно на мобильных устройствах: смартфонах, планшетах и т.д. Устройство, будь то телефон или мобильный GSM модем, подключенный к компьютеру через USB или Bluetooth, должен обрабатывать информацию по сотовой связи.
-
Выделенная линия
Самый распространенный способ подключения на данный момент.[7][8] Поставщик услуг размещает в зоне пользования (например, в месте общего пользования многоквартирного дома) коммутатор, к которому каждый пользователь подключается по отдельному кабелю (витая пара или FTTB) непосредственно или через личный роутер.
-
Радиоинтернет
Подключение с использованием радиосвязи объединяет в себе несколько способов: это и антенна, и спутниковая связь и технология Wi-Fi. В первом и во втором случае требуется антенна, модем и конвертор. Для второго необходима поддержка технологии с обеих сторон.
Интернет-программирование (веб-программирование) - раздел программирование, ориентированные на разработку программ, обеспечивающих функционирование динамических сайтов Всемирной паутины.
Языки веб-программирования условно делятся на две группы: клиентские и серверные.
Программы на клиентских языках обрабатываются на стороне пользователя (обычно их выполняет браузер).
Программы на серверных языках обрабатываются на сервере, то есть выполняются все программы, связанные со страницей, и возвращаются пользователю по сети в виде файла.[5]
В основе лежат следующие технологии:
HTML - язык гипертекстовой разметки. Используется для определения структуры и описания содержания веб-страницы в структурированной форме.
CSS - каскадные таблицы стилей используются для описания внешнего вида веб-контента.
HyperText Transfer Protocol (HTTP) — это протокол, по которому доставляются HTML и прочие медиа-документы.
JavaScript — язык программирования, широко используемый для реализации взаимодействия пользователя с веб-сайтами и приложениями.
API - в общем плане это описание способов взаимодействия программных компонентов между собой. Web API - определенный набор HTTP запросов и определение HTTP ответов, описанных обычно при помощи XML или JSON.
Веб Компоненты - это набор различных технологий, позволяющих создавать собственные переиспользуемые элементы - со своей функциональностью, инкапсулированной от остального кода - и использовать их в ваших веб-приложениях.
CANVAS - элемент предоставляет API для рисования 2D-графики, с использованием JavaScript.
SVG (Scalable Vector Graphics - масштабируемая векторная графика) - позволяет вам описать изображение в виде линий, кривых и других геометрических фигур. Благодаря этому можно масштабировать рисунок без потери качества.
Новые технологии:
WebSockets[10] - протокол, обеспечивающий полнодуплексную связь между веб-браузером и веб-сервером по одному долговременному соединению. Благодаря этому достигается двусторонняя связь в режиме реального времени между клиентом и сервером, которая может использоваться для различных приложений, таких как онлайн-игры, чат-приложения и потоки данных в режиме реального времени. WebSockets поддерживается всеми основными веб-браузерами и может быть реализован с использованием JavaScript.
WebAssembly[11] - это двоичный формат, который позволяет веб-браузерам выполнять скомпилированный код на скорости, близкой к родной. Он разработан как низкоуровневая виртуальная машина, которая является быстрой, переносимой и безопасной. WebAssembly предназначен для дополнения JavaScript, а не замены его, и может использоваться для запуска критически важного для производительности кода, такого как игровые движки, обработка видео и аудио, а также научное моделирование. WebAssembly поддерживается всеми основными веб-браузерами и может быть написана на таких языках, как C, C++ и Rust.
Snowpack[12] - это быстрый и легкий инструмент сборки и сервер разработки для современных веб-приложений. Впервые он был выпущен в 2020 году командой Pika, менеджером пакетов для современного JavaScript. Snowpack призван упростить процесс разработки, предоставляя более быстрый и эффективный способ создания современных веб-приложений. Он использует встроенные в современные браузеры модули ES, чтобы ускорить время сборки и запуска сервера разработки по сравнению с традиционными инструментами сборки, такими как Webpack.
Svelte[13] - это современный фреймворк веб-приложений для создания реактивных пользовательских интерфейсов. Он был создан Ричем Харрисом и впервые выпущен в 2016 году. Svelte отличается от других популярных интерфейсных фреймворков тем, что переносит большую часть работы, которая традиционно выполнялась бы во время выполнения, на время компиляции, что приводит к более быстрым приложениям и меньшему размеру пакета. Svelte предоставляет модель реактивного программирования и поддержку "хранилищ", которые представляют собой объекты, хранящие часть состояния приложения и автоматически запускающие обновления при изменении состояния. Svelte завоевал популярность в последние годы благодаря своей простоте и производительности.
Когда вы познакомитесь с Web Components, вам может понадобиться библиотека Polymer. Этот проект с открытым исходным кодом запустил Google. Он предназначен для создания стандартизированных веб-компонентов.
Проект Accelerated Mobile Pages (AMP) позволяет адаптировать любую веб-страницу для мобильных устройств по стандартному шаблону.
Gulp позволяет автоматизировать рутинные задачи. Он умеет компилировать Sass в CSS, добавлять в код шаблоны или заплатки для браузеров, автоматически обновлять страницы после внесения в код каких-либо изменений.
С помощью контейнерной платформы Docker можно поддерживать полную виртуальную среду и легко переносить сайты на разные серверы. Виртуальные контейнеры содержат интерфейсы для простой передачи файлов с одного сервера на другой.
В последнее время большую популярность снискал язык программирования(ЯП) Python. С помощью этого ЯП можно создавать как мобильные и desktop приложения, так и web-приложения. На данный момент наиболее популярны два фреймворка для web-программирования: Django и FastAPI.
FastAPI - это современный, легкий фреймворк, предназначенный для быстрого и эффективного создания API. Он построен на базе фреймворка Starlette и использует библиотеку Pydantic для валидации и сериализации данных. FastAPI известен своей высокой производительностью и простотой использования, и особенно хорошо подходит для создания микросервисов и масштабируемых бэкендов API.
Django, с другой стороны, является более комплексным веб-фреймворком, который предоставляет широкий спектр инструментов и возможностей для создания сложных веб-приложений. Он включает ORM для доступа к базам данных, шаблонизатор для рендеринга HTML и мощный интерфейс администратора для управления данными приложения. Django известен своей надежностью, гибкостью и пригодностью для создания крупномасштабных веб-приложений.
Для работы с базами данных(БД) в Python используется SQLAlchemy. SQLAlchemy - это мощная библиотека Python, которая предоставляет высокоуровневый интерфейс для работы с реляционными базами данных. Она спроектирована таким образом, чтобы быть простой в использовании и в то же время предоставлять расширенные возможности для более сложных случаев использования.
SQLAlchemy предоставляет систему объектно-реляционного отображения (ORM), которая позволяет разработчикам взаимодействовать с базами данных с помощью классов и объектов Python. Это означает, что вы можете создавать таблицы базы данных, вставлять и обновлять записи, запрашивать данные, используя код Python, а не писать необработанные SQL-запросы. SQLAlchemy также предоставляет мощный API запросов, который позволяет создавать сложные запросы к базе данных с помощью кода Python.
Одним из основных преимуществ SQLAlchemy является поддержка широкого спектра баз данных, включая PostgreSQL, MySQL, SQLite, Oracle и Microsoft SQL Server. Это делает его универсальным инструментом, который можно использовать в широком спектре проектов.
В целом, SQLAlchemy - это мощная и гибкая библиотека для работы с базами данных на Python. Независимо от того, создаете вы небольшое веб-приложение или крупную корпоративную систему, SQLAlchemy предоставляет инструменты, необходимые для взаимодействия с базами данных простым способом.
Hotwire — набор инструментов для создания быстрых веб-приложений с минимальным использованием кода на JavaScript от одного из корр-разработчиков Ruby on Rails, компании Basecamp.
Подход увеличивает скорость загрузки веб-страниц и сокращает количество кода на JavaScript за счет отправки HTML вместо JSON (Hotwire — HTML-over-the-Wire).
В Hotwire рендеринг шаблонов происходит на стороне сервера без ущерба для скорости работы и ответа приложения. Кроме того, он помогает веб-приложению лучше индексироваться в поисковых системах.
PWA — впервые предложенный в 2018 году подход к разработке быстрых, надежных и удобных для пользователя веб-приложений. Поисковая система Google отделяет веб-приложения от нативных именно по этим критериям, поэтому в 2022 году подход будет набирать популярность.
Чтобы приложение можно было назвать прогрессивным, в нем должен использоваться определенный набор технологий:
Service Worker — прокси-слой между фронтендом и бэкэндом, через который проходят все запросы браузера; HTTPS — подход предполагает, что все ресурсы сайта передаются через защищенный протокол. Кроме того, на сайте не должно быть ссылок на незащищенные ресурсы; App shell — основа графического интерфейса, которая хранится на стороне клиента и загружается при запуске веб-приложения; Web App manifest — определяет, как будет выглядеть название приложения, его иконка и само PWA в браузере; Push-уведомления — те самые всплывающие окошки с предложением получать новости от сайта. Единственная широко используемая технология PWA, которой многие владельцы сайтов злоупотребляют.
Как ни странно, пока во всем мире происходит бум онлайн-обучения программированию, Low-Code и No-Code платформы становятся все популярнее — и в 2022 году эта тенденция сохранится.
Low-Code и No-Code позволяют разрабатывать приложения, сайты и программы, а также автоматизировать рабочие процессы без знания кода (или с базовыми навыками программирования).
Самые популярные решения в этой области — конструкторы сайтов, но существуют и более сложные платформы. Например, одни позволяют обрабатывать большие массивы данных, другие по запросу генерируют код, который пользователь может самостоятельно добавить в свое приложение.
Альтернатива инструменту для контейнеризации приложений Docker, который в августе прошлого года объявил о введении платной подписки. Сервис перестал быть бесплатным — теперь доступ к нему стоит $5 в месяц для каждого разработчика в средних и крупных компаниях (от 249 сотрудников и от $10 млн годового оборота).
С одной стороны, такая политика делает использование инструмента дорогим для многих компаний, в которых он уже внедрен, а с другой — затрудняет внедрения из-за сравнительно высокой стоимости.
Podman — бесплатный сервис для контейнеризации, который вместе с Rancher Desktop в 2022 году будет набирать популярность среди разработчиков.
- 📑Понятие интернет-провайдера
- 📃Статья на портале РБК
- 📃Понятие о магистральных интернет-провайдерах
- 📑Сайт Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации
- 📑Постановление Правительства РФ от 18.02.2005 №87 «Об утверждении перечня наименований услуг связи, вносимых в лицензии, и перечней лицензионных условий»
- 📑Веб-программирование
- 📃Типы и виды соединения
- 📃Способы подключения к интернету
- 📃Стартапы для веб-программирования 2022
- 📑Introduction to WebSockets on HTML5 Rocks
- 📑WebAssembly: что и как
- 📑Snowpack: высокопроизводительный инструмент для сборки внешнего интерфейса
- 📑Почему стоит использовать Svelte для своих веб-проектов