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

Обновлено: 03.07.2024

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

Что такое хранилище файлов?

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

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

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

Файловое хранилище, блочное хранилище и объектное хранилище

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

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

Блокировать хранилище

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

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

В следующем видео Эми Блеа рассказывает о различиях между блочным и файловым хранилищем:

Блочное хранилище и файловое хранилище (04:03)

Хранилище объектов

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

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

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

IBM Cloud Object Storage: создано для бизнеса (04:10)

Преимущества

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

  • Простота. Хранение файлов — это самый простой, привычный и понятный подход к организации файлов и папок на жестком диске компьютера или устройстве NAS. Вы просто называете файлы, помечаете их метаданными и сохраняете их в папках в иерархии каталогов и подкаталогов. Нет необходимости писать приложения или код для доступа к вашим данным.
  • Общий доступ к файлам. Хранилище файлов идеально подходит для централизованного хранения и обмена файлами в локальной сети (LAN). Файлы, хранящиеся на устройстве NAS, легко доступны любому компьютеру в сети, имеющему соответствующие права доступа.
  • Общие протоколы. В файловом хранилище используются общие протоколы файлового уровня, такие как блок сообщений сервера (SMB), общая файловая система Интернета (CIFS) или сетевая файловая система (NFS). Если вы используете операционную систему Windows или Linux (или обе), стандартные протоколы, такие как SMB/CIFS и NFS, позволят вам читать и записывать файлы на сервер под управлением Windows или Linux через вашу локальную сеть (LAN).< /li>
  • Защита данных. Хранение файлов на отдельном устройстве хранения данных, подключенном к локальной сети, обеспечивает определенный уровень защиты данных в случае сбоя сетевого компьютера. Облачные службы хранения файлов обеспечивают дополнительную защиту данных и аварийное восстановление за счет репликации файлов данных в нескольких географически разнесенных центрах обработки данных.
  • Экономичность. Хранение файлов с помощью устройства NAS позволяет перемещать файлы с дорогостоящего компьютерного оборудования на более доступное устройство хранения данных, подключенное к локальной сети. Кроме того, если вы решите подписаться на облачное хранилище файлов, вы избавитесь от расходов на обновление оборудования на месте и связанных с этим текущих затрат на техническое обслуживание и эксплуатацию.

Случаи использования

Хранилище файлов — это хорошее решение для самых разных потребностей в данных, включая следующие:

  • Локальный общий доступ к файлам. Если ваши потребности в хранении данных в целом непротиворечивы и просты, например, для хранения файлов и обмена ими с членами рабочей группы в офисе, подумайте о простоте хранения на уровне файлов.
  • Централизованная совместная работа с файлами. Если вы загружаете, храните и делитесь файлами в централизованной библиотеке, расположенной на сайте, за его пределами или в облаке, вы можете легко совместно работать над файлами с внутренними и внешними пользователями или с приглашенными гостями. вне вашей сети.
  • Архивирование/хранение. Вы можете экономично архивировать файлы на устройствах NAS в среде небольшого центра обработки данных или подписаться на облачное хранилище файлов для хранения и архивирования своих данных.
  • Резервное копирование/аварийное восстановление. Вы можете безопасно хранить резервные копии на отдельных устройствах хранения, подключенных к локальной сети. Или вы можете подписаться на облачное хранилище файлов, чтобы реплицировать файлы данных в нескольких географически разнесенных центрах обработки данных и получить дополнительную защиту данных за счет удаленности и избыточности.

Облачное хранилище файлов (или хостинг для хранения файлов)

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

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

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

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

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

Файловое хранилище и IBM Cloud

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

IBM Cloud предлагает четыре предварительно определенных уровня Endurance с ценами за гигабайт (ГБ), которые фиксируют ваши расходы, обеспечивая предсказуемую почасовую или ежемесячную оплату для ваших краткосрочных или долгосрочных потребностей в хранении данных. Уровни File Storage Endurance поддерживают производительность до 10 000 (10 000) операций ввода-вывода в секунду на ГБ и могут удовлетворить потребности большинства рабочих нагрузок, независимо от того, требуется ли вам производительность с низкой, универсальной или высокой интенсивностью.

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

Подпишитесь на бесплатную двухмесячную пробную версию и бесплатно начните разработку в IBM Cloud.

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

Видео: что такое программирование?

Компьютерное оборудование

  1. Центральный процессор (ЦП)
  2. Основная память (оперативная память или ОЗУ)
  3. Дополнительные устройства хранения
  4. Устройства ввода
  5. Устройства вывода

ЦП

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

Цикл выборки/декодирования/выполнения

  • fetch — получение следующей инструкции из основной памяти.
  • декодировать — определить, какую инструкцию выполнять.
  • выполнить — выполнить инструкцию.

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

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

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

Вы узнаете подробности о том, как ЦП обрабатывают инструкции в CS 271, Компьютерная архитектура и язык ассемблера.

Основная память

Основная память или ОЗУ используется для хранения программы во время ее выполнения и для хранения данных, с которыми работает программа.

Сведения об оперативной памяти

  • ЦП может быстро получить доступ к любому месту в ОЗУ.
  • ОЗУ называется энергозависимой памятью. В отличие от постоянного хранилища, когда компьютер выключается или когда программа завершает выполнение, значения, хранящиеся в ОЗУ, стираются.
  • ОЗУ делится на единицы хранения, называемые байтами. Байт — это последовательность из восьми битов.
  • Бит — это наименьший элемент ОЗУ, в нем хранится двоичная цифра, 0 или 1. Каждая программа и каждое значение данных на вашем компьютере хранится в виде последовательностей нулей и ls.

Дополнительное хранилище

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

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

Устройства ввода

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

Устройства вывода

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

Видео: аппаратное и программное обеспечение

Программы и языки программирования

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

Алгоритмы

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

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

Превращение алгоритмов в программы

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

Машинный код, язык ассемблера и компиляторы

ЦП компьютера выполняет инструкции вашей программы. Однако пока вы пишете программу на таком языке, как C++, процессор компьютера может следовать только инструкциям, закодированным как последовательность Os и s. Программный компилятор — это специальная программа, которая преобразует операторы, написанные на языке программирования, в двоичную форму (Os и s>, называемую машинным кодом. Поскольку нам трудно распознать последовательности 0 и 1, существует низкоуровневая (близкая к аппаратной ) язык программирования, называемый языком ассемблера, который использует короткие сокращения и шаблоны для описания того, что должен делать ЦП. Например, оператор ассемблера «MOV AL, 61h;» означает копирование следующего значения (61h, шестнадцатеричное представление 97) в ячейку памяти « АЛ".

Вы узнаете гораздо больше о машинном коде и языке ассемблера в CS 271, Архитектура компьютера и язык ассемблера.

Языки высокого уровня

В этом классе вы изучите C++, язык высокого уровня. Языки высокого уровня — это компьютерные языки, которые скрывают многие низкоуровневые детали компьютерной системы и, как правило, используют более естественные слова и символы по сравнению со словами, такими как «MOV», на языке ассемблера, который является языком низкого уровня.

C++ — один из многих языков высокого уровня. Чтобы увидеть текущую популярность всех компьютерных языков, перейдите в индекс TIOBE.

Исходный код, объектный код и исполняемый код

Исходный код

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

Преобразование исходного кода в исполняемый код

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

Во время преобразования исходного кода в исполняемый файл компилятор C++ создаст объектный код.

Исходный код преобразуется компилятором в так называемый объектный код. Объектный код программы на C++ сохраняется в файлах с суффиксом .o или .obj. На последнем этапе, называемом связыванием, объектные файлы объединяются с любыми библиотечными подпрограммами (подпрограммами, предоставленными языком для использования вами) для создания окончательного исполняемого файла с расширением .exe.

В зависимости от того, как вы компилируете свою программу, вы можете увидеть или не увидеть различные этапы преобразования исходных файлов в исполняемый файл. Например, во многих IDE (интегрированных средах разработки, таких как Visual Studio, Code:: Blocks или XCode) промежуточные шаги выполняются автоматически, поэтому вы можете нажать кнопку «сборка», и исполняемый файл будет создан.

Из чего состоит программа?

Языковые элементы

Большинство языков программирования включают следующие элементы.

Ключевые слова

Ключевые слова – это слова, имеющие особое значение в языке. Их можно использовать только по прямому назначению. Также известны как зарезервированные слова.

Определяемые программистом идентификаторы

Идентификаторы, определяемые программистом, — это слова, которые вы выбираете как программист для определения переменных или процедур программирования.

Операторы

Операторы выполняют операции над одним или несколькими операндами. Операнд — это часть данных. Различные арифметические символы, такие как +, * и /, являются примерами операторов.

Пунктуация

Знаки препинания отмечают начало или конец оператора или отдельных элементов в списке.

Синтаксис

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

Специфика C++. Вы начнете изучать элементы языка, характерные для C++, в главе 2.

Строки и операторы

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

программа, отображающая номера строк и код в примере программы под названием hello world

На снимке экрана показана программа с ошибкой. Когда программа была скомпилирована, выходные данные (серые окна выше) включали «source.cpp(B)», что указывало на то, что проблема была в строке 8 файла с именем source. цена за тысячу показов

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

Переменные

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

Ввод и вывод

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

Во многих, если не во всех заданиях CS 161, вы будете направлять вывод программы на консоль. Вы не часто видите вывод консоли, если запускаете приложения в Windows или OS X, потому что эти типы прикладных программ используют графические пользовательские интерфейсы (GUI). Однако программирование с графическим интерфейсом добавляет гораздо больше работы по созданию программы, и наша работа в CS 161 состоит в том, чтобы научить вас основам программирования, поэтому мы будем придерживаться консольного вывода.

Пример вывода в консоль

консольный вывод программа, выводящая текст hello world

Активность

Выберите хотя бы одно занятие, которое учащиеся могут активно вовлечь в изучение материала. Чем больше, тем лучше!

Просмотреть

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

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

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

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

  • Вы включаете компьютер.
  • Компьютер загружает данные из постоянной памяти (ПЗУ) и выполняет самотестирование при включении питания (POST), чтобы убедиться, что все основные компоненты работают правильно. В рамках этого теста контроллер памяти проверяет все адреса памяти с помощью операции быстрого чтения/записи, чтобы убедиться в отсутствии ошибок в микросхемах памяти. Чтение/запись означает, что данные записываются в бит, а затем считываются из этого бита.
  • Компьютер загружает базовую систему ввода-вывода (BIOS) из ПЗУ. BIOS предоставляет самую основную информацию об устройствах хранения, последовательности загрузки, безопасности, функции Plug and Play (автоматическое распознавание устройств) и некоторых других элементах.
  • Компьютер загружает операционную систему (ОС) с жесткого диска в оперативную память системы. Как правило, критически важные части операционной системы хранятся в оперативной памяти, пока компьютер включен. Это позволяет ЦП иметь немедленный доступ к операционной системе, что повышает производительность и функциональность всей системы.
  • Когда вы открываете приложение, оно загружается в ОЗУ.Для экономии использования оперативной памяти многие приложения сначала загружают только основные части программы, а затем загружают другие части по мере необходимости.
  • После загрузки приложения все файлы, открытые для использования в этом приложении, загружаются в ОЗУ.
  • Когда вы сохраняете файл и закрываете приложение, файл записывается на указанное устройство хранения, а затем он и приложение удаляются из ОЗУ.

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

Один распространенный вопрос о настольных компьютерах, который возникает все время, звучит так: "Зачем компьютеру нужно так много систем памяти?"

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

Что такое интерфейс прикладного программирования (API)?

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

Как работает API

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

Вот как работает API:

  1. Клиентское приложение инициирует вызов API для получения информации, также известный как запрос. Этот запрос обрабатывается из приложения на веб-сервер с помощью универсального идентификатора ресурса (URI) API и включает глагол запроса, заголовки и иногда тело запроса.
  2. После получения допустимого запроса API выполняет вызов внешней программы или веб-сервера.
  3. Сервер отправляет ответв API с запрошенной информацией.
  4. API передает данные в исходное запрашивающее приложение.

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

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

Зачем нам нужны API

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

  • Улучшение совместной работы. Среднее предприятие использует почти 1200 облачных приложений (ссылка находится за пределами IBM), многие из которых отключены. API-интерфейсы обеспечивают интеграцию, так что эти платформы и приложения могут беспрепятственно взаимодействовать друг с другом. Благодаря этой интеграции компании могут автоматизировать рабочие процессы и улучшить совместную работу на рабочем месте. Без API многие предприятия не смогут подключиться и будут страдать от разрозненности информации, что снижает производительность и производительность.
  • Легче внедрять инновации: API обеспечивают гибкость, позволяя компаниям устанавливать связи с новыми деловыми партнерами, предлагать новые услуги на существующем рынке и, в конечном счете, получать доступ к новым рынкам, которые могут приносить огромную прибыль и стимулировать цифровую трансформацию. Например, компания Stripe начиналась как API всего с семи строк кода. С тех пор компания сотрудничает со многими крупнейшими предприятиями мира, диверсифицировалась, предлагая кредиты и корпоративные карты, и недавно была оценена в 36 миллиардов долларов США (ссылка находится за пределами IBM).
  • Монетизация данных. Многие компании предпочитают предлагать API бесплатно, по крайней мере на начальном этапе, чтобы создать аудиторию разработчиков вокруг своего бренда и наладить отношения с потенциальными деловыми партнерами. Однако, если API предоставляет доступ к ценным цифровым активам, вы можете монетизировать его, продавая доступ (это называется экономикой API). Когда AccuWeather (ссылка находится за пределами IBM) запустила свой портал самообслуживания для разработчиков для продажи широкого спектра пакетов API, потребовалось всего 10 месяцев, чтобы привлечь 24 000 разработчиков, продав 11 000 ключей API и создав в процессе процветающее сообщество.
  • Дополнительная безопасность. Как отмечалось выше, API создают дополнительный уровень защиты между вашими данными и сервером. Разработчики могут дополнительно усилить безопасность API, используя токены, подписи и шифрование Transport Layer Security (TLS); путем внедрения шлюзов API для управления и аутентификации трафика; и практикуя эффективное управление API.

Общие примеры API

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

  • Универсальный вход. Популярным примером API является функция, которая позволяет людям входить на веб-сайты, используя свои данные для входа в Facebook, Twitter или Google. Эта удобная функция позволяет любому веб-сайту использовать API одной из наиболее популярных служб для быстрой аутентификации пользователя, экономя время и избавляя от необходимости создавать новый профиль для каждой службы веб-сайта или нового членства.
  • Обработка платежей третьей стороной. Например, теперь повсеместно распространенная функция «Оплатить через PayPal», которую вы видите на веб-сайтах электронной торговли, работает через API. Это позволяет людям оплачивать товары в Интернете, не раскрывая конфиденциальные данные и не предоставляя доступ посторонним лицам.
  • Сравнение бронирования путешествий. Сайты бронирования путешествий объединяют тысячи рейсов, демонстрируя самые дешевые варианты для каждой даты и направления. Эта услуга стала возможной благодаря API-интерфейсам, которые предоставляют пользователям приложений доступ к последней информации о наличии мест в отелях и авиакомпаниях. Благодаря автономному обмену данными и запросами API значительно сокращают время и усилия, затрачиваемые на проверку доступных рейсов или жилья.
  • Карты Google. Одним из наиболее распространенных примеров хорошего API является служба Карт Google. В дополнение к основным API-интерфейсам, которые отображают статические или интерактивные карты, приложение использует другие API-интерфейсы и функции для предоставления пользователям направлений или достопримечательностей. Благодаря геолокации и нескольким уровням данных вы можете обмениваться данными с API Карт при построении маршрутов путешествий или отслеживании объектов в пути, например транспортных средств доставки.
  • Twitter: каждый твит содержит описательные основные атрибуты, включая автора, уникальный идентификатор, сообщение, отметку времени публикации и метаданные геолокации. Твиттер делает твиты и ответы общедоступными для разработчиков и позволяет разработчикам публиковать твиты через API компании.

Типы API

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

Типы протоколов API

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

API, веб-сервисы и микросервисы

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

При использовании API существует два распространенных архитектурных подхода: сервисно-ориентированная архитектура (SOA) и архитектура микросервисов.

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

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

Подробнее о взаимосвязи этих архитектурных подходов см. в статье «SOA и микросервисы: в чем разница?»

API и облачная архитектура

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

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

API и IBM Cloud®

API по-прежнему будут лишь частью модернизации приложений и преобразования вашей организации, поскольку потребность в улучшении обслуживания клиентов и увеличении количества приложений влияет на бизнес и ИТ-операции.

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

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

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