Распределённые системы
-
Клиент-серверная архитектура распределенных приложений
Клиент-серверная архитектура: распределенные приложения, взаимодействие между клиентами и серверами, разделение задач и ресурсов в вычислительных системах.
-
Удалённый вызов процедур: механизмы и реализация
Удаленный вызов процедур (RPC) в распределенных системах: как программа выполняет код на другом компьютере, как локально. Клиент-серверное взаимодействие, RMI.
-
Сериализация и десериализация данных в вычислительной технике.
Сериализация данных: преобразование структуры данных в формат для хранения и передачи. Восстановление объекта из сериализованного формата. Маршаллинг.
-
Дискретные единицы коммуникации: понятие сообщения и его виды.
Сообщение: определение, виды и способы передачи информации. Что такое сообщение в коммуникации? Примеры: пресс-релизы, телеграммы, электронные сообщения.
-
Jakarta Messaging API: Интерфейс обмена сообщениями на Java
Jakarta Messaging API (ранее JMS): Java API для обмена сообщениями между системами. Обеспечивает надежную, асинхронную связь в Jakarta EE.
-
CORBA: Стандарт для взаимодействия распределенных систем
CORBA: стандарт для взаимодействия систем на разных платформах. Обеспечивает связь между приложениями, написанными на разных языках и ОС. Распределённые объекты.
-
Событийно-ориентированное программирование
Event-driven программирование: парадигма, где поток программы определяется событиями (UI, сенсоры, сеть). Основа GUI и сетевых серверов.
-
Распределённая компонентная объектная модель DCOM: Технология и реализация.
DCOM: технология Microsoft для обмена данными между компонентами в сети. Расширение COM, использующее RPC. Решает задачи сериализации и управления памятью.
-
Технология OLE от Microsoft: Объединение и встраивание объектов
OLE от Microsoft: технология внедрения и связывания объектов в документы. Разработка OCX для UI, интерфейс IOleObject. Обмен данными между приложениями.
-
Паттерн проектирования "Прокси" в программировании
Паттерн "Прокси" в программировании: что это, как работает и для чего нужен. Оптимизация доступа к ресурсам, управление доступом и повышение производительности.
-
Шаблон проектирования "Команда" в объектно-ориентированном программировании.
Паттерн "Команда" в ООП: инкапсулирует данные для выполнения действий/событий. Receiver, Invoker, Client – ключевые элементы. Удобно для отложенного исполнения.
-
Шаблон проектирования "Посредник" в разработке ПО
Паттерн "Посредник" в разработке ПО: упрощает взаимодействие между классами, снижает сложность и улучшает поддержку больших проектов.
-
Шаблон проектирования "Наблюдатель": уведомление об изменениях состояния объекта
Паттерн "Наблюдатель" в разработке ПО: объект уведомляет зависимые объекты об изменениях состояния. Реализация event-driven систем, обработка событий.
-
Newi: Ранняя архитектура программных компонентов
Newi: архитектура ПО для компонентного программирования, разработанная Oliver Sims. Основа бизнес-объектов и контейнер компонентов. Подробности в статье!
-
Архитектура уведомлений GENA: история и применение.
Архитектура HTTP-уведомлений GENA Base: передача уведомлений между HTTP-ресурсами по TCP/IP и UDP. Стандарт для списков рассылки, задач и др.
-
Протокол обмена данными OBEX: принципы и применение
OBEX: протокол обмена данными между устройствами через Bluetooth, ИК-порт, USB и др. Подробно о применении и истории развития OBEX.
-
Корутины: компоненты и особенности реализации
Корутины: компоненты ПО для приостановки и возобновления выполнения. Реализуют многозадачность, итераторы и обработку исключений. Основы и применение.
-
Богатый клиент в сетевых вычислениях
Богатый клиент в сетях: мощный компьютер с широким функционалом, работающий независимо от сервера. Отличие от тонких клиентов и преимущества.
-
NetKernel: Платформа для Высокопроизводительных Вычислений и Интеграции Приложений
NetKernel: платформа для высокопроизводительных вычислений, интеграции приложений и энергоэффективных задач. Разделение кода и архитектуры, ROC-модель.
-
Посредники запросов к объектам в распределенных вычислениях
Объектный брокер запросов (ORB) в распределенных вычислениях: что это, как работает, стандарты OMG CORBA, сериализация данных и обеспечение взаимодействия.
-
JCSP: Реализация CSP для Java и ее применение в параллельных вычислениях и робототехнике.
JCSP: реализация CSP для Java. Простое создание надежного многопоточного ПО без сложной математики. Распределённые вычисления через TCP/Net расширение.
-
Фронтенд и бэкенд в программной архитектуре
Фронтенд и бэкенд в разработке ПО: разделение слоев представления и доступа к данным. Клиент-серверная архитектура, бизнес-логика, инфраструктура.
-
Межпроцессное взаимодействие: очереди сообщений и методы реализации
Обмен сообщениями в программировании: очереди сообщений, почтовые ящики и IPC. Сравнение с паттерном "издатель-подписчик" и JMS. Эффективная коммуникация процессов.
-
Промежуточное ПО обмена сообщениями: архитектура и особенности
Промежуточное ПО обмена сообщениями (MOM): интеграция распределенных систем, упрощение разработки кроссплатформенных приложений и снижение сложности сети.
-
Протокол межпроцессного взаимодействия DCOP в средах KDE и Trinity
DCOP: протокол межпроцессного взаимодействия KDE 3 для обмена данными и задачами между приложениями. Используется в Trinity Desktop Environment. ИИ, IPC.
-
Протокол GIOP в CORBA: Стандарты и реализации
GIOP: протокол обмена между ORB в CORBA. IIOP, SSLIOP, HTIOP – стандарты OMG для распределенных вычислений. Версия 2.0.2. Безопасность, прозрачность.
-
Функции обратного вызова в программировании
Callback-функции в программировании: что это, синхронные и асинхронные вызовы, способы реализации (указатели, лямбда-выражения). Объяснение с примером.
-
Мобильные агенты: автономное перемещение программного обеспечения в компьютерных сетях.
Мобильные агенты: автономные программы, перемещающиеся между компьютерами для выполнения задач. Делегирование вычислений, мобильность, взаимодействие с другими агентами.
-
Код по требованию в распределенных вычислениях
Код по запросу: технология отправки исполняемого кода с сервера на клиент. Java, ActionScript, JavaScript – примеры. Выполнение на стороне пользователя.
-
nesC: Язык программирования для встроенных беспроводных сенсорных сетей
nesC: язык программирования для TinyOS, платформы для беспроводных сенсорных сетей. Расширение C, основанное на компонентах и событиях. Разработка встраиваемых систем.
-
Конвейерная обработка данных в программном обеспечении
Программные конвейеры: цепочки обработки данных в инженерии ПО. Элементы (функции, потоки) последовательно обрабатывают информацию, как в физическом конвейере.
-
Передача сообщений в компьютерных науках
Обмен сообщениями в программировании: техника запуска программ без прямого вызова. Ключевой концепт для конкурентности и объектно-ориентированного подхода.
-
Модель обмена сообщениями "издатель-подписчик"
Публикация-подписка: паттерн обмена сообщениями в архитектуре ПО. Издатели категоризируют сообщения, подписчики выбирают интересующие темы.
-
Распределенные объекты везде: история DOE и NEO
DOE (Distributed Objects Everywhere): история провального проекта Sun Microsystems по распределенным вычислениям на базе CORBA и OpenStep. Предшественник Enterprise JavaBeans.
-
Язык E: Безопасные распределённые вычисления на основе объектов.
E – объектно-ориентированный язык программирования для безопасных распределенных вычислений. Основан на Joule и Java, исключает блокировки. Безопасность!
-
Безынерционные схемы: принципы работы и ограничения
Асинхронные схемы без задержек: принцип работы, передача данных через "рукопожатия", отсутствие тактового сигнала. Эффективные вычисления в процессорах.
-
Поток диспетчеризации событий в Java: принципы и особенности
Поток диспетчеризации событий (EDT) в Java: обработка событий AWT, обновление UI, однопоточная отрисовка. Основы event-driven программирования.
-
Инверсия управления в программировании
-
Протокол доставки медиафайлов (MDP): Стандарт безопасной автоматизированной передачи
MDP: протокол безопасной автоматической доставки аудио- и видеофайлов без использования лент. Стандарт для ТВ, кинопроизводства и веба.
-
Слабосвязанные системы
Слабая связанность в системах: что это такое? Узнайте о принципах проектирования слабосвязанных компонентов, замене и независимости в IT-системах.
-
Twisted: Асинхронная сетевая разработка на Python
Twisted – это Python фреймворк для асинхронного сетевого программирования (TCP, UDP, SSL). Поддержка множества протоколов и транспорта. MIT лицензия.
-
Динамический обмен данными (DDE) в Windows: история и современное использование.
DDE (Dynamic Data Exchange) – технология межпроцессного взаимодействия в Windows и OS/2. Устаревшая, поддерживается для совместимости. OLE замена.
-
Интерфейс IDispatch и автоматизация COM: обзор и особенности
Интерфейс IDispatch в COM: протокол автоматизации OLE, поддержка RTTI, динамическое определение свойств и методов объектов. Ключевой интерфейс для COM-объектов.
-
Принцип устойчивости в разработке программного обеспечения
Принцип устойчивости в разработке ПО: будьте строги в отправке данных и снисходительны в приеме. Постеловская право, совместимость, TCP, конвариантность.
-
Распределённые объекты в вычислениях
Распределённые объекты в вычислениях: что это, как работают и почему потеряли популярность. Удалённый вызов методов, прозрачность местоположения.
-
Пространства кортежей и объектов: парадигмы распределённых вычислений.
Пространство кортежей: параллельные вычисления, ассоциативная память, обмен данными. Производители и потребители данных через кортежи. Метафора "доски".
-
CO OPN: Язык спецификаций для разработки конкурентных систем
CO OPN: формальный язык для спецификации параллельных систем. Объектно-ориентированный подход, алгебраические сети Петри, синхронизация и структурирование.
-
D-Bus: Межпроцессное взаимодействие в Linux
D-Bus: межпроцессное взаимодействие в Linux. Стандартизация сервисов GNOME, KDE и других окружений рабочего стола. Библиотека libdbus – реализация спецификации.
-
JSON-RPC
-
POE: Perl Object Environment и архитектура Mach
POE: Perl Object Environment – мощная библиотека для многозадачности и сетевого программирования на Perl. Фреймворк для создания стабильных серверов и приложений.
-
Унификация языков взаимодействия Inter Language Unification (ILU)
Унификация языков Inter Language Unification (ILU) для обмена данными между системами. Независимость от языков, ОС и архитектур. Библиотеки и распределенные системы.
-
DCE/RPC: Протокол удаленного вызова процедур для распределенных систем
DCE/RPC: протокол удаленного вызова процедур для распределенных вычислений. Основан на DCE, NCS и архитектуре Network Computing. Сетевое взаимодействие.
-
DCEThreads: Реализация потоков POSIX Draft 4 и её влияние на DCOM
DCEThreads: реализация POSIX потоков для параллельного выполнения в процессах. Основана на pthreads, предшествовала стандарту POSIX threads.
-
Протоколы передачи данных в компьютерных сетях
Протоколы передачи данных: что такое wire protocol? Определение, уровни, отличия от TCP/UDP, форматы данных и обмен информацией в сетях.
-
Шаблоны обмена сообщениями в программной архитектуре
Шаблоны обмена сообщениями в архитектуре ПО: связь приложений и систем, форматы данных, протоколы связи. Обзор для разработчиков и архитекторов.
-
Домены приложений в CLI: Изоляция и особенности реализации
Домены приложений CLI: изоляция ПО в .NET. Виртуальное адресное пространство, безопасность, отличие от процессов ОС. .NET Core/5+ – нет поддержки.
-
Сигналы и слоты: механизмы взаимодействия объектов в Qt и за его пределами.
Сигналы и слоты в Qt: механизм связи объектов, упрощающий реализацию паттерна Observer и избегающий избыточного кода. Типобезопасность, GUI и асинхронный ввод/вывод.
-
RMI IIOP: Интеграция Java RMI и CORBA
RMI IIOP: интеграция Java и CORBA для распределенных вычислений. Поддержка разных языков и платформ, удаленный вызов процедур. Упрощение разработки!
-
Цикл событий в программировании
Цикл событий в программировании: паттерн обработки событий и сообщений. Реализация серверов, реакторы, блокирующие вызовы. Основы асинхронности.
-
Активные структуры данных: концепция и формализация
Активные структуры данных: определение, принципы работы (RPC, параллельное выполнение). Базы данных и файловые системы как примеры. 💻
-
Автоматизация OLE: Механизмы межпроцессного взаимодействия в Windows
Автоматизация Windows: OLE Automation (COM) – механизм межпроцессного взаимодействия для управления приложениями. Замена DDE, поддержка Visual Basic и др. языков.
-
Event-driven architecture
-
.NET Remoting
-
Delegate (CLI)
-
Flow-based programming