В программировании существует множество методов реализации информационных процессов, таких как получение, хранение, обработка и передача информации. Рассмотрим некоторые из них.
Получение и хранение информации
Получение и хранение информации целесообразно рассматривать вместе, поскольку многие носители и системы поддерживают операции как чтения, так и записи. Компьютерная программа может получать информацию следующим образом:
- от пользователя через устройства ввода (клавиатура, микрофон, сканер и т.п.);
- от других программ как аргументы при вызове приложений, скриптов и функций;
- из файловых систем (жесткие диски, портативные носители);
- из баз данных;
- из компьютерных сетей.
Считывание входящих данных может производиться как в последовательном режиме, когда сигналы идут друг за другом, так и в параллельном, когда устройство ввода считывает одновременно последовательность символов определенной длины.
Сохранение информации компьютерными программами производится:
- на внешние устройства (например, вывод на бумагу через принтер);
- в оперативную память (как правило, для использования другими программами);
- в файловые системы;
- в базы данных;
- в сетевые хранилища.
Рассмотрим считывание и сохранение информации на примере реляционных баз данных. Для работы с ними применяется специальный язык запросов - SQL (Structured Query Language). В нем используются слова из обычного бытового английского языка. SQL-запросы похожи на предложения в повелительном наклонении, начинающиеся с глагола:
INSERT INTO "Писатели" ("Имя", "Отчество", "Фамилия", "Дата рождения", "Дата окончания деятельности") VALUES ("Александр", "Сергеевич", "Пушкин", "1799-06-06", "1837-02-10").
Этот запрос означает, что в таблицу "Писатели" нужно добавить (INSERT) новую запись. Записи также называются строками. В рассматриваемой таблице есть колонки "Имя", "Отчество", "Фамилия", "Дата рождения", заполняемые для данной записи соответствующими значениями. После передачи запроса специальной программе, умеющей обрабатывать SQL-синтаксис, в базу данных будут внесены необходимые изменения.
Чтобы запросить информацию из базы данных используются запросы, начинающиеся с ключевого слова SELECT (выбрать), например:
SELECT "Имя", "Отчество", "Фамилия" FROM "Писатели" WHERE "Дата рождения" BETWEEN "1800-01-01" AND "1899-12-31".
Этот запрос выведет на экран все имена из таблицы "Писатели", для которых даты рождения находятся в интервале между указанными в нем датами, в данном случае приходятся на XIX век.
Обработка информации в компьютерных программах
Компьютеры предоставляют широкие возможности для обработки информации: вычисления значений математических функций, перевода текстов с языка на язык, распознавания, преобразования и синтеза звука и изображений, шифрования и дешифрования и т.д. Для решения этих и других задач разработаны специализированные средства: языки программирования и библиотеки, специальные аппаратные устройства, усиливающие возможности компьютерного процессора (например, современные видеокарты берут на себя часть нагрузки по обработке трехмерных изображений).
Продолжая пример с реляционной базой данных, рассмотрим пример порождения новой информации из имеющейся. Для этого используются агрегирующие запросы. Они подсчитывают суммы, произведения, средние значения и т.п. по записям таблиц. В отличие от простых запросов, агрегирующие формируют не таблицу подходящих строк, а единственное значение, представляющее собой результат вычислений. Найдем с помощью агрегирующего SQL-запроса среднее время жизни писателей из таблицы, описанной выше:
SELECT AVG ("Дата окончания деятельности" - "Дата рождения") FROM "Писатели".
Здесь AVG (Average, среднее значение) - стандартная SQL-функция для вычисления среднего значения. Ей в круглых скобках передается аргумент - выражение, которое нужно выбрать из каждой строки. В данном случае это разность между датами начала и окончания жизни. Следует обратить внимание на то, что срок жизни в этом примере не хранится в базе данных, а формируется "на лету", порождая дополнительную информацию, которую при необходимости можно использовать.
Передача информации в компьютерных программах
Для передачи информации между компьютерными программами используются преимущественно сетевые технологии (хотя есть и другие, например, программные шины). Сетевое программное обеспечение можно разбить на следующие категории:
- программное обеспечение для организации физических линий связи (драйвера для модемов, сетевых карт, wifi- и bluetooth-адаптеров и т.п.);
- программное обеспечение для маршрутизации пакетов (библиотеки, реализующие протоколы TCP/IP и т.п.);
- программное обеспечение для защиты сетевых каналов (шифрование, например с помощью технологии SSL - Secure Sockets Layer);
- серверы, решающие специфические прикладные задачи (веб- и почтовые серверы, серверы баз данных, игровые серверы);
- приложения для удовлетворения потребностей пользователей (браузеры, почтовые клиенты, мессенджеры и т. п).
Сетевой обмен информацией между компьютерными программами производится по строго формализованным правилам - протоколам. В качестве примера можно привести обмен сообщениями между почтовым клиентом и почтовым сервером при отправке электронного письма по протоколу SMTP (Simple Mail Transfer Protocol). Такая законченная серия сообщений называется сессией.
Рисунок 1. Обмен сообщениями между клиентом и сервером при отправке электронного письма. Автор24 — интернет-биржа студенческих работ