Каково назначение и основные характеристики узлов персонального компьютера

Обновлено: 21.11.2024

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

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

клиент-серверная архитектура, архитектура компьютерной сети, в которой множество клиентов (удаленных процессоров) запрашивают и получают услуги от централизованного сервера (хост-компьютера). Клиентские компьютеры предоставляют интерфейс, позволяющий пользователю компьютера запрашивать услуги сервера и отображать результаты, возвращаемые сервером. Серверы ждут поступления запросов от клиентов и затем отвечают на них. В идеале сервер предоставляет клиентам стандартизированный прозрачный интерфейс, чтобы клиенты не знали о специфике системы (т. е. аппаратного и программного обеспечения), предоставляющей услугу. Клиенты часто располагаются на рабочих станциях или на персональных компьютерах, а серверы — в других местах сети, обычно на более мощных машинах. Эта вычислительная модель особенно эффективна, когда у клиентов и сервера есть отдельные задачи, которые они регулярно выполняют. Например, при обработке больничных данных на клиентском компьютере может быть запущена прикладная программа для ввода информации о пациенте, в то время как на серверном компьютере запущена другая программа, управляющая базой данных, в которой постоянно хранится информация. Многие клиенты могут одновременно получать доступ к информации сервера, и в то же время клиентский компьютер может выполнять другие задачи, такие как отправка электронной почты. Поскольку и клиентский, и серверный компьютеры считаются независимыми устройствами, модель клиент-сервер полностью отличается от старой модели мэйнфрейма, в которой централизованный мэйнфрейм-компьютер выполнял все задачи для связанных с ним «тупых» терминалов, которые просто обменивались данными с центральным мейнфреймом. .

Редакторы Британской энциклопедии Эта статья была недавно отредактирована и обновлена ​​Эриком Грегерсеном.

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

  • Установка и обновление
  • Беспроводное соединение
  • Маршрутизаторы и брандмауэры
  • Сетевые концентраторы
  • Интернет-провайдер
  • Широкополосный доступ
  • Ethernet
  • Wi-Fi и беспроводная связь

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

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

Узлы в компьютерной сети должны иметь некоторую форму идентификации, например IP-адрес или MAC-адрес, чтобы другие сетевые устройства могли их распознать. Узел без этой информации или отключенный от сети узел больше не работает как узел.

Что делает сетевой узел?

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

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

Другие типы узлов

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

Другим примером узла является устройство, предоставляющее интеллектуальные сетевые услуги в сотовой сети, например контроллер базовой станции (BSC) или узел поддержки шлюза GPRS (GGSN). Другими словами, мобильный узел — это то, что обеспечивает программное управление оборудованием, например структуру с антеннами, передающую сигналы на все устройства в сети.

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

В чем проблема с конечным узлом?

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

Некоторые примеры включают в себя конечного пользователя, который берет свой рабочий ноутбук домой, а затем проверяет свою электронную почту в незащищенной сети, например в кафе, или пользователя, который подключает свой персональный компьютер или телефон к сети Wi-Fi компании.

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

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

Решить эту проблему могут VPN и двухфакторная аутентификация. То же самое можно сказать и о специальном загружаемом клиентском программном обеспечении, которое может использовать только определенные программы удаленного доступа.

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

Другие значения узлов

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

Слово "узел" также используется в node.js – среде выполнения JavaScript, которая выполняет серверный код JavaScript. «js» здесь не относится к расширению файла JS, используемому с файлами JavaScript; это просто название инструмента.

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

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

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

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

Что такое компьютерная сеть?

Компьютерная сеть состоит из двух или более компьютеров, соединенных между собой кабелями (проводными) или WiFi (беспроводными) с целью передачи, обмена или совместного использования данных и ресурсов. Вы строите компьютерную сеть, используя оборудование (например, маршрутизаторы, коммутаторы, точки доступа и кабели) и программное обеспечение (например, операционные системы или бизнес-приложения).

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

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

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

Типы компьютерных сетей

По мере развития сетевых потребностей менялись и типы компьютерных сетей, отвечающие этим потребностям. Вот наиболее распространенные и широко используемые типы компьютерных сетей:

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

WLAN (беспроводная локальная сеть). WLAN похожа на локальную сеть, но соединения между устройствами в сети осуществляются по беспроводной сети.

WAN (глобальная сеть). Как видно из названия, глобальная сеть соединяет компьютеры на большой территории, например, из региона в регион или даже из одного континента в другой. Интернет — это крупнейшая глобальная сеть, соединяющая миллиарды компьютеров по всему миру. Обычно для управления глобальной сетью используются модели коллективного или распределенного владения.

MAN (городская сеть): MAN обычно больше, чем LAN, но меньше, чем WAN. Города и государственные учреждения обычно владеют и управляют MAN.

PAN (персональная сеть): PAN обслуживает одного человека. Например, если у вас есть iPhone и Mac, вполне вероятно, что вы настроили сеть PAN, которая позволяет обмениваться и синхронизировать контент — текстовые сообщения, электронные письма, фотографии и многое другое — на обоих устройствах.

SAN (сеть хранения данных). SAN – это специализированная сеть, предоставляющая доступ к хранилищу на уровне блоков — общей сети или облачному хранилищу, которое для пользователя выглядит и работает как накопитель, физически подключенный к компьютеру. (Дополнительную информацию о том, как SAN работает с блочным хранилищем, см. в разделе «Блочное хранилище: полное руководство».)

CAN (сеть кампуса). CAN также известен как корпоративная сеть. CAN больше, чем LAN, но меньше, чем WAN. CAN обслуживают такие объекты, как колледжи, университеты и бизнес-кампусы.

VPN (виртуальная частная сеть). VPN – это безопасное двухточечное соединение между двумя конечными точками сети (см. раздел "Узлы" ниже). VPN устанавливает зашифрованный канал, который сохраняет личность пользователя и учетные данные для доступа, а также любые передаваемые данные, недоступные для хакеров.

Важные термины и понятия

Ниже приведены некоторые общие термины, которые следует знать при обсуждении компьютерных сетей:

IP-адрес: IP-адрес — это уникальный номер, присваиваемый каждому устройству, подключенному к сети, которая использует для связи Интернет-протокол. Каждый IP-адрес идентифицирует хост-сеть устройства и местоположение устройства в хост-сети. Когда одно устройство отправляет данные другому, данные включают «заголовок», который включает IP-адрес отправляющего устройства и IP-адрес устройства-получателя.

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

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

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

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

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

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

Порты: порт определяет конкретное соединение между сетевыми устройствами. Каждый порт идентифицируется номером. Если вы считаете IP-адрес сопоставимым с адресом отеля, то порты — это номера люксов или комнат в этом отеле. Компьютеры используют номера портов, чтобы определить, какое приложение, служба или процесс должны получать определенные сообщения.

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

Примеры компьютерных сетей

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

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

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

The Weather Company работала над созданием одноранговой ячеистой сети, которая позволяет мобильным устройствам напрямую взаимодействовать с другими мобильными устройствами, не требуя подключения к Wi-Fi или сотовой связи. Проект Mesh Network Alerts позволяет доставлять жизненно важную информацию о погоде миллиардам людей даже без подключения к Интернету.

Компьютерные сети и Интернет

Провайдеры интернет-услуг (ISP) и поставщики сетевых услуг (NSP) предоставляют инфраструктуру, позволяющую передавать пакеты данных или информации через Интернет. Каждый бит информации, отправленной через Интернет, не поступает на каждое устройство, подключенное к Интернету. Это комбинация протоколов и инфраструктуры, которая точно указывает, куда направить информацию.

Как они работают?

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

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

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

Архитектура

Архитектура компьютерной сети определяет физическую и логическую структуру компьютерной сети. В нем описывается, как компьютеры организованы в сети и какие задачи возлагаются на эти компьютеры. Компоненты сетевой архитектуры включают аппаратное и программное обеспечение, средства передачи (проводные или беспроводные), топологию сети и протоколы связи.

Основные типы сетевой архитектуры

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

Топология сети

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

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

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

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

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

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

Безопасность

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

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

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

Использование общедоступного облака также требует обновления процедур безопасности для обеспечения постоянной безопасности и доступа. Для безопасного облака требуется безопасная базовая сеть.

Ознакомьтесь с пятью основными соображениями (PDF, 298 КБ) по обеспечению безопасности общедоступного облака.

Ячеистые сети

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

Тип ячеистых сетей

Существует два типа ячеистых сетей — полная и частичная:

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

Балансировщики нагрузки и сети

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

Полный обзор балансировщиков нагрузки см. в разделе Балансировка нагрузки: полное руководство.

Сети доставки контента

Сеть доставки контента (CDN) – это сеть с распределенными серверами, которая доставляет пользователям временно сохраненные или кэшированные копии контента веб-сайта в зависимости от их географического положения. CDN хранит этот контент в распределенных местах и ​​предоставляет его пользователям, чтобы сократить расстояние между посетителями вашего сайта и сервером вашего сайта. Кэширование контента ближе к вашим конечным пользователям позволяет вам быстрее обслуживать контент и помогает веб-сайтам лучше охватить глобальную аудиторию. CDN защищают от всплесков трафика, сокращают задержки, снижают потребление полосы пропускания, ускоряют время загрузки и уменьшают влияние взломов и атак, создавая слой между конечным пользователем и инфраструктурой вашего веб-сайта.

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

Компьютерные сетевые решения и IBM

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

Сети доставки контента (CDN), балансировщики нагрузки и сетевая безопасность — все это упомянуто выше — это примеры технологий, которые могут помочь компаниям создавать оптимальные компьютерные сетевые решения. IBM предлагает дополнительные сетевые решения, в том числе:

    — это устройства, которые дают вам улучшенный контроль над сетевым трафиком, позволяют повысить производительность вашей сети и повысить ее безопасность. Управляйте своими физическими и виртуальными сетями для маршрутизации нескольких VLAN, для брандмауэров, VPN, формирования трафика и многого другого. обеспечивает безопасность и ускоряет передачу данных между частной инфраструктурой, мультиоблачными средами и IBM Cloud. — это возможности безопасности и производительности, предназначенные для защиты общедоступного веб-контента и приложений до того, как они попадут в облако.Получите защиту от DDoS, глобальную балансировку нагрузки и набор функций безопасности, надежности и производительности, предназначенных для защиты общедоступного веб-контента и приложений до того, как они попадут в облако.

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

Развить сетевые навыки и получить профессиональную сертификацию IBM, пройдя курсы в рамках программы Cloud Site Reliability Engineers (SRE) Professional.

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

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

Что такое кластер?

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

Чтобы построить компьютерный кластер, отдельные узлы должны быть соединены в сеть, чтобы обеспечить межузловое взаимодействие. Затем программное обеспечение компьютерного кластера можно использовать для объединения узлов и формирования кластера. У него может быть общее запоминающее устройство и/или локальное хранилище на каждом узле. Как правило, по крайней мере один узел назначается ведущим узлом и действует как точка входа в кластер. Узел-лидер может нести ответственность за передачу входящей работы другим узлам и, при необходимости, за агрегирование результатов и возврат ответа пользователю.

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

Типы кластерных вычислений

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

  1. Высокая доступность или отказоустойчивость
  2. Балансировка нагрузки
  3. Высокопроизводительные вычисления

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

Четыре ключевых преимущества кластерных вычислений

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

1. Высокая доступность

При обсуждении надежности системы следует помнить несколько важных терминов:

  • Доступность — доступность системы или службы в течение определенного периода времени, обычно выражаемая в процентах от времени безотказной работы в течение определенного года (например, доступность 99,999 % или пять девяток).
  • Отказоустойчивость – насколько хорошо система восстанавливается после сбоя.
  • Отказоустойчивость – способность системы продолжать предоставление услуги в случае сбоя.
  • Надежность — вероятность того, что система будет функционировать должным образом.
  • Избыточность – дублирование критически важных ресурсов для повышения надежности системы.

Приложение, работающее на одном компьютере, имеет единую точку отказа, что снижает надежность системы. Если машина, на которой размещено приложение, выйдет из строя, почти всегда будет время простоя, пока инфраструктура восстанавливается. Поддержание уровня избыточности, помогающего повысить надежность, может сократить время недоступности приложения. Это может быть достигнуто за счет упреждающего запуска приложения на второй системе (которая может получать или не получать трафик) или иметь холодную систему (например, не работающую в данный момент), предварительно настроенную с приложением. Эти конфигурации соответственно известны как конфигурации активный-активный и активный-пассивный.При обнаружении сбоя система активный-активный может немедленно переключиться на второй компьютер, в то время как система активный-пассивный переключится после того, как второй компьютер заработает.< /p>

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

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

2. Балансировка нагрузки

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

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

3. Масштабирование

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

При обслуживании кластера важно отслеживать использование ресурсов и масштабировать их, чтобы убедиться, что ресурсы кластера используются надлежащим образом. К счастью, сама природа кластера упрощает горизонтальное масштабирование — администратору просто нужно добавлять или удалять узлы по мере необходимости, не забывая о минимальном уровне избыточности, чтобы гарантировать высокую доступность кластера.


4. Производительность

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

Кластеры высокопроизводительных вычислений (HPC) используют возможности параллелизма компьютерных кластеров для достижения максимально возможного уровня производительности. Суперкомпьютер — типичный пример кластера высокопроизводительных вычислений.

Проблемы кластеризации

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

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

Кластеры в облаке

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

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

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

Контейнеры и их связь с кластерами

Контейнеры устранили многие трудности, связанные с развертыванием приложений. Различия между локальной и удаленной средами в значительной степени можно игнорировать (за некоторыми исключениями, такими как архитектура ЦП), зависимости приложений поставляются внутри контейнера, а безопасность повышается за счет изоляции приложения от хоста. Использование контейнеров также упростило для команд работу с микросервисной архитектурой, в которой приложение разбито на небольшие, слабо связанные сервисы. Но какое отношение контейнеры имеют к компьютерным кластерам?

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

К счастью, кластер решает обе эти проблемы.

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

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

Чтобы узнать больше о контейнерах и их сравнении с виртуальными машинами, ознакомьтесь со статьей Контейнеры и виртуальные машины: в чем разница и когда их использовать.

Что такое кластер Kubernetes?

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

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

Являясь дипломированным проектом Cloud Native Computing Foundation, Kubernetes продемонстрировал невероятный рост с момента его выпуска Google в 2014 году. Поскольку это система с открытым исходным кодом, отдельные лица и организации могут использовать ее по своему усмотрению. разработка собственных инструментов с открытым исходным кодом, которые работают с Kubernetes или вместе с ним. Существует несколько ограничений на то, где можно развернуть кластер Kubernetes (локально или в облаке), а с выпуском Container Runtime Interface Kubernetes поддерживает различные среды выполнения контейнеров.

К сожалению, Kubernetes сложно внедрить и еще сложнее поддерживать в масштабе. Это особенно актуально для предприятий, которые сталкиваются с уникальными проблемами эффективности и сложности. Если вы хотите узнать больше о Kubernetes, контейнерах и кластерах в масштабе, прочтите статью Kubernetes в масштабе предприятия: что вам нужно знать.

Контейнеры и кластеры в масштабе предприятия

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

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

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

ЗАЯВЛЕНИЕ О РАСКРЫТИИ ИНФОРМАЦИИ: © 2020 Capital One. Мнения принадлежат конкретному автору. Если в этом посте не указано иное, Capital One не связана и не поддерживается ни одной из упомянутых компаний. Все используемые или демонстрируемые товарные знаки и другая интеллектуальная собственность являются собственностью соответствующих владельцев.

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

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

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

Самые влиятельные ученые-компьютерщики – Алан Тьюринг, взломщик кодов времен Второй мировой войны, которого обычно называют "отцом современных вычислений"; Тим Бернерс-Ли, изобретатель Всемирной паутины; Джон Маккарти, изобретатель языка программирования LISP и пионер искусственного интеллекта; и Грейс Хоппер, офицер ВМС США и ключевая фигура в разработке первых компьютеров, таких как UNIVAC I, а также в разработке компилятора языка программирования.

Информатика применяется в широком спектре дисциплин, включая моделирование последствий изменения климата и вируса Эбола, создание произведений искусства и визуализацию с помощью графического рендеринга, а также моделирование человеческого интерфейса с помощью искусственного интеллекта и машинного обучения.< /p>

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

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

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

Информатика считается частью семейства из пяти отдельных, но взаимосвязанных дисциплин: компьютерная инженерия, информатика, информационные системы, информационные технологии и разработка программного обеспечения.Это семейство стало известно под общим названием компьютерной дисциплины. Эти пять дисциплин взаимосвязаны в том смысле, что вычислительная техника является их объектом изучения, но они разделены, поскольку каждая из них имеет свою собственную исследовательскую перспективу и учебную направленность. (С 1991 года Ассоциация вычислительной техники [ACM], Компьютерное общество IEEE [IEEE-CS] и Ассоциация информационных систем [AIS] сотрудничают в разработке и обновлении таксономии этих пяти взаимосвязанных дисциплин и руководств, которые образовательные учреждения использовать во всем мире для своих программ бакалавриата, магистратуры и исследовательских программ.)

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

Развитие информатики

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

Математика является источником двух ключевых концепций разработки компьютеров — идеи о том, что вся информация может быть представлена ​​в виде последовательности нулей и единиц, и абстрактного понятия «хранимой программы». В двоичной системе счисления числа представляются последовательностью двоичных цифр 0 и 1 точно так же, как числа в знакомой нам десятичной системе представляются цифрами от 0 до 9. Относительная легкость, с которой два состояния (например, высокое и низкое напряжение) могут быть реализованы в электрических и электронных устройствах, что естественным образом привело к тому, что двоичная цифра или бит стала основной единицей хранения и передачи данных в компьютерной системе.

Электротехника дает основы проектирования цепей, а именно идею о том, что электрические импульсы, поступающие в цепь, можно комбинировать с помощью булевой алгебры для получения произвольных выходных сигналов. (Булева алгебра, разработанная в 19 веке, предоставила формализм для проектирования схемы с двоичными входными значениями нулей и единиц [ложь или истина, соответственно, в терминологии логики], чтобы получить любую желаемую комбинацию нулей и единиц на выходе.) Изобретение транзистора и миниатюризация схем, а также изобретение электронных, магнитных и оптических носителей для хранения и передачи информации стали результатом достижений электротехники и физики.

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

Теоретическая работа над вычислительностью, начавшаяся в 1930-х годах, обеспечила необходимое распространение этих достижений на проектирование целых машин; важной вехой стала спецификация машины Тьюринга (теоретическая вычислительная модель, которая выполняет инструкции, представленные в виде последовательности нулей и единиц) в 1936 году британским математиком Аланом Тьюрингом и его доказательство вычислительной мощности модели. Еще одним прорывом стала концепция компьютера с хранимой в памяти программой, которую обычно приписывают американскому математику венгерского происхождения Джону фон Нейману. Это истоки области информатики, которая позже стала известна как архитектура и организация.

В 1950-х годах большинство пользователей компьютеров работали либо в научно-исследовательских лабораториях, либо в крупных корпорациях. Первая группа использовала компьютеры для выполнения сложных математических расчетов (например, траектории ракет), в то время как вторая группа использовала компьютеры для управления большими объемами корпоративных данных (например, платежных ведомостей и запасов). Обе группы быстро поняли, что писать программы на машинном языке нулей и единиц непрактично и ненадежно.Это открытие привело к разработке языка ассемблера в начале 1950-х годов, который позволяет программистам использовать символы для инструкций (например, ADD для сложения) и переменных (например, X). Другая программа, известная как ассемблер, переводила эти символические программы в эквивалентную двоичную программу, шаги которой компьютер мог выполнять или «выполнять».

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

Позже, в 1950-х годах, язык ассемблера оказался настолько громоздким, что разработка языков высокого уровня (более близких к естественным языкам) стала поддерживать более простое и быстрое программирование. FORTRAN стал основным языком высокого уровня для научного программирования, а COBOL стал основным языком для бизнес-программирования. Эти языки несли с собой потребность в другом программном обеспечении, называемом компилятором, которое переводит программы на языке высокого уровня в машинный код. По мере того, как языки программирования становились все более мощными и абстрактными, создание компиляторов, создающих высококачественный машинный код и эффективных с точки зрения скорости выполнения и использования памяти, стало сложной задачей в области информатики. Разработка и реализация языков высокого уровня лежит в основе области компьютерных наук, называемой языками программирования.

Расширение использования компьютеров в начале 1960-х послужило толчком к разработке первых операционных систем, которые состояли из системно-резидентного программного обеспечения, которое автоматически обрабатывало ввод и вывод, а также выполняло программы, называемые «заданиями». Потребность в более совершенных вычислительных методах привела к возрождению интереса к численным методам и их анализу, и эта деятельность распространилась настолько широко, что стала известна как вычислительная наука.

В 1970-х и 80-х годах появились мощные компьютерные графические устройства, как для научного моделирования, так и для других видов визуальной деятельности. (Компьютерные графические устройства были представлены в начале 1950-х годов с отображением грубых изображений на бумажных графиках и экранах электронно-лучевых трубок [ЭЛТ].) Дорогое оборудование и ограниченная доступность программного обеспечения не позволяли этой области расти до начала 1980-х годов, когда компьютерная память, необходимая для растровой графики (в которой изображение состоит из маленьких прямоугольных пикселей), стала более доступной. Технология растровых изображений вместе с экранами с высоким разрешением и разработкой графических стандартов, которые делают программное обеспечение менее зависимым от машин, привели к взрывному росту этой области. Поддержка всех этих видов деятельности превратилась в область информатики, известную как графика и визуальные вычисления.

С этой областью тесно связано проектирование и анализ систем, которые напрямую взаимодействуют с пользователями, выполняющими различные вычислительные задачи. Эти системы получили широкое распространение в 1980-х и 90-х годах, когда линейное взаимодействие с пользователями было заменено графическими пользовательскими интерфейсами (GUI). Дизайн графического пользовательского интерфейса, который впервые был разработан Xerox, а затем был подхвачен Apple (Macintosh) и, наконец, Microsoft (Windows), важен, поскольку он представляет собой то, что люди видят и делают, взаимодействуя с вычислительным устройством. Разработка подходящих пользовательских интерфейсов для всех типов пользователей превратилась в область информатики, известную как взаимодействие человека с компьютером (HCI).

Xerox Alto был первым компьютером, в котором для управления системой использовались графические значки и мышь — первый графический интерфейс пользователя (GUI).

Область компьютерной архитектуры и организации также претерпела значительные изменения с тех пор, как в 1950-х годах были разработаны первые компьютеры с хранимой в памяти программой. В 1960-х годах появились так называемые системы с разделением времени, позволяющие нескольким пользователям одновременно запускать программы с разных терминалов, жестко подключенных к компьютеру. В 1970-е годы были разработаны первые глобальные компьютерные сети (WAN) и протоколы для передачи информации на высоких скоростях между компьютерами, разделенными большими расстояниями. По мере развития этих видов деятельности они объединились в область компьютерных наук, называемую сетями и коммуникациями. Крупным достижением в этой области стало развитие Интернета.

Идея о том, что инструкции и данные могут храниться в памяти компьютера, имела решающее значение для фундаментальных открытий, касающихся теоретического поведения алгоритмов. То есть такие вопросы, как «Что можно/нельзя вычислить?» были официально рассмотрены с использованием этих абстрактных идей. Эти открытия положили начало области информатики, известной как алгоритмы и сложность.Ключевой частью этой области является изучение и применение структур данных, подходящих для различных приложений. Структуры данных, наряду с разработкой оптимальных алгоритмов для вставки, удаления и поиска данных в таких структурах, являются серьезной проблемой для ученых-компьютерщиков, поскольку они так интенсивно используются в компьютерном программном обеспечении, особенно в компиляторах, операционных системах, файловых системах и т. д. и поисковые системы.

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

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

Три достижения в области вычислительной техники в начале 21 века — мобильные вычисления, клиент-серверные вычисления и взлом компьютеров – способствовали появлению трех новых областей компьютерных наук: разработка на основе платформ, параллельные и распределенные вычисления, и обеспечение безопасности и информации. Платформенная разработка — это изучение особых потребностей мобильных устройств, их операционных систем и их приложений. Параллельные и распределенные вычисления касаются разработки архитектур и языков программирования, которые поддерживают разработку алгоритмов, компоненты которых могут работать одновременно и асинхронно (а не последовательно), чтобы лучше использовать время и пространство. Безопасность и обеспечение информации связаны с проектированием вычислительных систем и программного обеспечения, которые защищают целостность и безопасность данных, а также конфиденциальность лиц, для которых эти данные характерны.

Наконец, на протяжении всей истории компьютерных наук особое беспокойство вызывает уникальное общественное влияние, которое сопровождает исследования в области компьютерных наук и технологические достижения. Например, с появлением Интернета в 1980-х разработчикам программного обеспечения необходимо было решить важные вопросы, связанные с информационной безопасностью, личной конфиденциальностью и надежностью системы. Кроме того, вопрос о том, является ли программное обеспечение интеллектуальной собственностью, и связанный с ним вопрос «Кому оно принадлежит?» породила совершенно новую правовую область лицензирования и стандартов лицензирования, которые применялись к программному обеспечению и связанным с ним артефактам. Эти и другие проблемы составляют основу социальных и профессиональных проблем компьютерных наук, и они появляются почти во всех других областях, указанных выше.

Подводя итог, можно сказать, что дисциплина компьютерных наук превратилась в следующие 15 отдельных областей:

Читайте также: