Что такое модель OSI и почему ее заменил стек TCP/IP, как организуется интеграция информационных систем, чем плох прямой доступ к БД, в чем разница между драйверами JDBS и ODBC и зачем все аналитику.
Как организуется интеграция информационных систем: 4 основных способа
Если компоненты разных слоев архитектуры информационных систем располагаются на различных устройствах, они должны взаимодействовать между собой по сети. Это же сетевое взаимодействие между разными системами лежит в основе интеграции ИС, независимо от способа реализации этого обмена данными:
- файловый обмен, т.е. импорт в систему А данных из системы B, упакованных в файле нужного формата (XML, JSON, XPDL, CSV и пр.);
- непосредственное обращение приложения системы А к базе данных системы В;
- через API – интерфейс прикладного программирования, который позволяет вызвать приложению системы А вызвать некоторые методы системы Б. Сегодня это реализуется с помощью протокола SOAP (Simple Object Access Protocol), который работает с данными в виде XML-файлов с четко определенной структурой, т.е. схемой (XSD, XML Schema Definition), системы удаленного вызова процедур от Google под названием gRPC (google Remote Procedure Calls), интеграционного API в стиле REST, чаще всего работающий с данными в человекочитаемом формате JSON, или GraphQL — средой выполнения и языком запросов для взаимодействия клиента и сервера. Чем отличаются эти архитектурные стили API интеграции, разбирается в этой статье. А пока отметим, интеграцию информационных систем по API можно рассматривать как взаимодействие типа «запрос-ответ» к одной или нескольким конечным точкам (endpoint), которые реализуют возможности доступа к данным и манипулирование ими по заранее определенному шаблону запроса и ответа.
- через посредника (брокера), который выполняет роль временного хранилища данных в виде сообщений от продюсера – системы, которая отправляет данные, потребителю – системе, которая их получает или считывает самостоятельно, в зависимости от средства реализации такой интеграции. Например, распределенная платформа потоковой передачи событий Apache Kafka и основанные на ней Redpanda, Confluent Platform и пр. реализуют принцип pull-модели, т.е. приложение-потребитель самостоятельно считывает сообщения из временного хранилища в виде упорядоченного лога событий под названием топик (topic). А JMS-брокеры (Java Message Service), к которым относятся Open MQ, Apache ActiveMQ, OpenJMS, JBoss Messaging, Glassfish, TIBCO EMS, Sonic MQ, IBM MQ и другие открытые и проприетарные решения, сами передают сообщения приложениям-потребителям по принципу проталкивания (push). Такой способ интеграции ИС чаще всего используется для обмена данными между множеством сервисов, например, в рамках организации единой корпоративной шины данных для взаимодействия в режиме реального времени, платформах интернета вещей и прочих подобных случаев с большим количеством передаваемых событий, источников и потребителей данных. Подробно об этом я рассказываю в новой статье.
При том, что все отмеченные способы интеграции ИС реализуются с помощью разных технологий, каждая из которых имеет свои достоинства и недостатки, что обусловливает ее области применения, все они базируются на передаче данных по сети Интернет. Какими протоколами она реализуется, как устроено непосредственное обращение приложения системы А к базе данных системы В и почему это не лучший способ интеграционного взаимодействия, мы рассмотрим далее.
Основы архитектуры и интеграции информационных систем
Код курса
OAIS
Ближайшая дата курса
20 января, 2025
Продолжительность
16 ак.часов
Стоимость обучения
36 000 руб.
Модель сетевых протоколов и обращение к БД
Послойную идею сетевых протоколов, которые регламентируют передачу данных по сети, отлично иллюстрирует модель OSI (Open Systems Interconnection), разработанная в конце 70-хх гг. XX в. Цель создания этой базовой эталонной модели взаимосвязи открытых систем была в стандартизации методов взаимодействия сетевых устройств, чтобы обеспечить совместимость оборудования от разных производителей. В начале 1990-хх гг. 7-уровневая модель OSI была вытеснена моделью стека сетевых протоколов TCP/IP из-за его популярности в растущей сети Интернет. Тем не менее, модель OSI сегодня до сих пор используется для обучения ИТ-специалистов и документирования. Тем более, можно рассматривать модель стека интернет-протоколов TCP/IP как своего рода упрощение модели OSI, где некоторые очень близкие по степени абстракции и функциям уровни объединены.
Рассмотрим, как с точки зрения модели сетевых протоколов реализуется непосредственный доступ к базе данных. На практике этот самый примитивный способ интеграции информационных систем применяется достаточно редко, т.к. прямое обращение внешнего приложения к данным противоречит современным принципам информационной безопасности. Однако, в рамках единой информационной системы, компоненты которой распределены по разным узлам, взаимодействие происходит именно таким образом:
- устройство (хост), где развернут какой-либо компонент ИС (база данных, клиентское или серверное приложение) имеет уникальный адрес в сети – IP-адрес. IP-адрес присваивается хосту межсетевым уровнем, но обмен данными происходит не аппаратными устройствами, а между программными приложениями (вычислительными процессами), развернутыми на них.
- чтобы получить доступ к приложению, нужен IP-адрес и порт для идентификации приложений. Порт (port) — это точка доступа, целое неотрицательное число в заголовках TCP-протокола. Порт записывается после IP и отделяется от него двоеточием, например, 192.168.1.5:80. Комбинация IP-адреса и порта называется сокетом (socket). Порт источника (процесса-отправителя) может быть постоянным (статическим) или назначаться динамически для каждого нового сеанса связи.
- Для установки соединения нужны номер протокола, IP-адреса хоста-отправителя и хоста-получателя, и номера портов процесса-отправителя и получателя. Обмен данными происходит между сокетами.
- Получить соединение с БД по URL, т.е. обеспечить подключение приложения к СУБД, позволяют нативные протоколы этой БД или универсальные драйверы. Например, JDBC (Java DataBase Connectivity), платформенно независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД в виде пакета java.sql в составе платформы Java Standart Edition. Или ODBC (Open Database Connectivity) – стандартная прикладная программная среда для связи и доступа к СУБД от Microsoft, которая поддерживает любые языки программирования, но работает только на Windows как слой между СУБД и приложением. Можно сказать, что JDBC это API Java, который определяет возможности доступа клиента к СУБД. И, в отличие от ODBC, JDBC подходит только для этого языка программирования, но работает на любой операционной системе: Linux, Windows и пр. В любом случае, в строке подключения к БД в коде приложения пишется адрес хоста, где она расположена, порт и имя самой БД, а также указываются учетные данные (логин и пароль), а также сертификат шифрования, например, SSL.
При интеграции с внешней системой такие сведения как порт, логин/пароль и прочие данные, нужные для подключения к ее БД, обычно не предоставляются. Поэтому подобный способ интеграции ИС в виде непосредственного обращения одного приложения к базе данных другого сегодня используется не часто. А как работают другие способы межсистемной интеграции, мы рассмотрим в следующий раз. В частности, здесь я рассказываю про интеграцию через веб-сокеты.
Подробнее познакомиться с основами архитектуры и интеграции информационных систем вам помогут курсы Школы прикладного бизнес-анализа в нашем лицензированном учебном центре обучения и повышения квалификации системных и бизнес-аналитиков в Москве:
- Основы архитектуры и интеграции информационных систем
- Разработка ТЗ на информационную систему по ГОСТ и SRS
- UML для бизнес-аналитика: основы ООП и разработка моделей