Общие сведения
В 1975 году был спроектирован и собран первый персональный компьютер, который стал революционным событием для общественной и промышленной сферы жизни человечества. Прежде электронная вычислительная машина (ЭВМ) была доступна только большим предприятиям или крупным научно – исследовательским центрам. Маленьким организациям было не по карману приобретать стационарные ЭВМ.
Персональные электронные вычислительные машины (ПЭВМ) принадлежат к категории компьютеров личного (индивидуального) использования. То есть, они превратились в общедоступный инструментарий, который позволяет в разы повысить эффективность умственного (и не только) труда. Решая похожие задачи, разные ЭВМ, при этом, жёстко конкурировали между собой, как и производящие их компании. Разные фирмы искали различные технологические и конструкторские решения для улучшения своей продукции. И само собой, найденные решения имели гриф секретности, и мало кто был осведомлён как функционирует тот или иной компьютер, который, к тому же, представлял собой монолитный блок, не подлежащий усовершенствованию и изменению комплектации. Архитектурные особенности реализации компьютера были недоступны простым пользователям.
II. Определение понятия «архитектура»
А что можно думать об архитектуре?
Она, как солнце: большая, блестящая и она рядом.
Роджер Желязны. (Мастер сновидений)
Архитектура системы — принципиальная организация системы, воплощенная в её элементах, их взаимоотношениях друг с другом и со средой, а также принципы, направляющие её проектирование и эволюцию.
Архитектура программного обеспечения (англ. software architecture) — совокупность важнейших решений об организации программной системы. Архитектура включает:
- выбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов;
- соединение выбранных элементов структуры и поведения, во всё более крупные системы;
- архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение (1)
Архитектурный подход (англ. architectural framework) — соглашения, принципы и практики для описания архитектуры, установленные для конкретной области применения и/или конкретным сообществом заинтересованных лиц (2).
1. Разделы ИТ Архитекторы
- базы данных и хранилища данных;
- информационные потоки (как внутри организации, так и связи с внешним миром).
- область разработки прикладных систем;
- портфель прикладных систем.
- информацию об инфраструктуре предприятия;
- системное программное обеспечение (СУБД, системы интеграции);
- стандарты на программно-аппаратные средства;
- средства обеспечения безопасности (программно-аппаратные);
- системы управления инфраструктурой.
Архитектурная группа описаний (англ. architectural view) — представление системы в целом с точки зрения связанного набора интересов. Каждая группа описаний относится к одному или более стейкхолдеру. Термин «группа описаний» употребляется для выражения архитектуры системы при некотором методе описания (2).
2. Представления ИТ Архитекторы
Архитектурное описание (англ. architectural description) — рабочий продукт, использующийся для выражения архитектуры (2).
Архитектурный метод описания (англ. architectural viewpoint) — спецификация соглашений для конструирования и применения группы описаний. Шаблон или образец, по которому разрабатываются отдельные группы описаний посредством установления назначений и аудитории для группы описаний, а также приемы их создания и анализа. Метод описания устанавливает соглашения, по которым группа описаний создается, отображается и анализируется. Тем самым метод описания определяет языки (включая нотации, описания или типы продуктов), применяемые для определения группы описаний, а также все связанные методы моделирования или приемы анализа, применяемые к данным представлениям группы описаний. Данные языки и приемы применяются для получения результатов, имеющих отношение к адресуемым интересам (2).
Рисунок 1. Модель выработки целей и показателей Рисунок 2. Представление модели ЗакманаРисунок 3. Основные понятия ArchiMate 3.0Рисунок 4. Слои фреймворка ArchiMate 3.0
3. Резюме раздела
- Архитектура предприятия связывает бизнес-потребности предприятия, информационные технологии, процессы стратегического бизнес-планирования, прикладные информационные системы и процессы их сопровождения.
- В процессе разработки и поддержания архитектуры предприятия участвуют разные группы заинтересованных лиц, имеющие различные требования к ее представлениям (архитектурный подход);
- Для удобства, архитектуру принято делить на разделы, соответствующие разным архитектурным зонам и подходам;
- Для разных архитектурных групп и подходов существуют различные группы описания (визуализации) архитектуры.
- Для удобства организации работы с разнородными артефактами используют архитектурные методы описания, представляющие собой специальные фреймворки и спецификации, и позволяющие работать со всеми артефактами в едином визуальном пространстве. Использование подобных конструкций помогает с одной стороны, логически разбить все представления архитектуры на отдельные разделы для упрощения их формирования и восприятия, а с другой – обеспечить возможность рассмотрения целостной архитектуры с изолированных точек зрения или соответствующих уровней абстракции.
- В зависимости от потребностей и возможностей предприятия, можно выбрать один из нескольких архитектурных подходов, различающихся по объему и составу выполняемых работ, что в свою очередь определяет уровень затрат и качество проектирования.
Список литературы
Практическая работа №3 «Создаем текстовые объекты» (задания 7 — 9)
Задание 7. Вставка рисунков
1. Откройте текстовый процессор Microsoft Word.
2. Наберите следующий текст:
3. Приведите документ к следующему виду:
Для этого:
1) вставьте в созданный вами документ рисунок Ал-Хорезми.bmр из папки Заготовки ();
2) с помощью контекстного меню рисунка вызовите диалоговое окно Формат рисунка;
3) на вкладке Положение для параметра Обтекание установите значение вокруг рамки, для параметра Горизонтальное выравнивание — значение по правому краю;
4) при необходимости перетащите рисунок в нужное место.
4. Сохраните созданный вами документ в собственной папке под именем Ученый.
5. Вспомните, как связано имя Ал-Хорезми с важнейшим понятием информатики. (В случае затруднения, нужную информацию можно найти в файле Происхождение Tepминa.doc из папки Заготовки. Добавьте 2-3 предложения по этому вопросу в созданный вами документ.
Задание 8. Стили форматирования
Стиль форматирования — это совокупность всех параметров, определяющих формат абзаца и формат шрифта.
1. Откройте файл Знаки.doc из папки Заготовки:
2. Для каждого абзаца получите справку о стиле форматирования.
Для этого:
1) выберите меню Справка;
2) щелкните на кнопке Что это такое? — указатель мыши примет вид стрелки со знаком вопроса (как на кнопке);
3) поочередно щелкайте левой кнопкой мыши на каждом абзаце и получайте нужную информацию о параметрах форматирования абзаца и параметрах используемого шрифта.
3. Придайте третьему и четвертому абзацам тот же стиль форматирования, что и у второго абзаца. Для этого:
1) выделите второй абзац;
2) активизируйте кнопку Формат по образцу г-У на панели инструментов Стандартная;
3) щелкните на любом слове третьего абзаца;
4) повторите пункты 2)-3) для четвертого абзаца.
4. Сохраните файл в собственной папке под именем Знаки1 и завершите работу с программой.
Задание 9. Шуточный рассказ в картинках
1. Откройте файл Шутка.doc из папки Заготовки:
2. Замените пропуски подходящими по смыслу рисунками. При необходимости измените параметры рисунков в диалоговом окне Формат объекта.
3. Сохраните файл в собственной папке и завершите работу с программой.
Теперь мы умеем
- ускорять свою работу за счет операций копирования, вставки, поиска и замены фрагментов; - вводить тексты на английском языке; - вводить символы, отсутствующие на клавиатуре; - работать с несколькими документами одновременно; - вставлять в документ рисунки и изменять их свойства.
26.2. Устройство системы взаимодействия
Работа системы взаимодействия построена на клиент-серверном обмене данными между системой «1С:Предприятие» и сервером системы взаимодействия. Для того чтобы начать использовать систему взаимодействия, необходимо зарегистрировать информационную базу в сервисе системы. Если в информационной базе включено разделение данных, то под термином «информационная база» понимается конкретная область данных. Каждую область данных необходимо отдельно регистрировать в сервисе системы взаимодействия.
Во время регистрации информационной базе в сервисе создается (и сохраняется) следующая информация:
● Уникальный идентификатор информационной базы в сервисе. Этот идентификатор сохраняется как в самой информационной базе, так на сервере системы взаимодействия. Этот идентификатор нельзя получить и установить самостоятельно.
● Криптографические ключи, которые используются для обеспечения безопасной передачи сообщений между клиентской и серверной частями системы взаимодействия. Эти ключи хранятся как в информационной базе, так и на сервере системы взаимодействия.
● В сервисе также сохраняется имя регистрируемой информационной базы и адрес электронной почты, который используется при регистрации информационной базы. Адрес электронной почты, который используется при регистрации информационной базы в сервисе, будет олицетворять абонента сервиса. Один абонент сервиса может зарегистрировать несколько информационных баз.
Для того чтобы прекратить работу системы взаимодействия, необходимо выполнить отмену регистрации информационной базы в сервисе. В этом случае в информационной базе удаляются криптографические ключи, используемые для обеспечения обмена и, как следствие, обмен сообщениями становится невозможным. Однако при повторной регистрации той же информационной базы будет создана новая пара ключей. В результате обмен сообщениями будет восстановлен и станет доступна вся история сообщений
Для корректного восстановления обмена сообщениями важно, чтобы у информационной базы остался неизменным уникальный идентификатор этой базы в сервисе. Если это правило нарушено – восстановить доступ к истории сообщений будет невозможно
Для переноса данных регистрации между информационными базами предназначены методы ПолучитьДанныеРегистрацииИнформационнойБазы()/УстановитьДанныеРегистрацииИнформационнойБазы(). Эти методы оперируют специальным объектом (ДанныеРегистрацииИнфорационнойБазыСИстемыВзаимодействия), который может быть передан между различными информаицонными базами, например, с помощью Web-сервиса.
В обмене участвуют только те пользователи, которые зарегистрированы в качестве пользователей информационной базы. Для каждого пользователя информационной базы создается парный пользователь в системе взаимодействия. Создание такого пользователя выполняется при первой авторизации пользователя информационной базы после регистрации этой базы в сервере системы взаимодействия. Идентификация пользователя выполняется по уникальному идентификатору пользователя информационной базы системы «1С:Предприятие». Синхронизация списка пользователей (кроме создания парного пользователя) не поддерживается как автоматически, так и с помощью программного доступа.
Таким образом, обмен сообщениями возможен только между теми пользователями, которые зарегистрированы в сервере системы взаимодействия. Более того, для отправки сообщения можно выбрать только того пользователя, который зарегистрирован в сервисе системы взаимодействия.
Что такое информационная архитектура
- Сочетание схем организации, предметизации и навигации, реализованных в информационной системе.
- Структурное проектирование информационного пространства, способствующее выполнению задач и интуитивному доступу к содержимому.
- Искусство и наука структурирования и классификации веб сайтов с целью облегчения пользователям поиска информации и управления ею.
Вещи, которые не относятся к информационной архитектуре:
- Графическое оформление.
- Разработка программного обеспечения
- Проектирование юзабилити
Вот представление о поиске в виде простого алгоритма:
- Пользователь задает вопрос.
- Выполняются некие действия (например, поиск или просмотр).
- Пользователь получает ответ.
- Fin.
Модульная компоновка компьютера
Собранный персональный компьютер состоит из набора функциональных блоков (модулей). Есть некоторый основной комплект модулей, требуемый для нормального функционирования персонального компьютера, а открытая архитектура даёт возможность пользователям самим менять состав этого комплекта. Но это не должно влиять на общий завершённый функционал компьютера.
Для организации взаимного обмена информацией между модулями и модулей с центральным процессором существует канал приёма и передачи данных, называемый системной шиной.
Для присоединения модулей к шине на материнской плате расположен ряд специальных разъёмов. Стандартные нормативы шины были документами свободного доступа, и это давало возможность компаниям, производящим периферийное оборудование, проектировать микроконтроллеры, которые выполняли подключение своих модулей к шинам с разными стандартами.
Общей системной шиной управляет центральный процессор, который выделяет время остальным модулям для выполнения обменных операций с данными.
Модуль памяти сохраняет выполняемые программы и информационные данные. Внешние модули, амплитуды сигналов которых не совпадают с уровнями сигналов общей шины, должны подключаться к шине посредством специального блока, микроконтроллера. Он выполняет функцию согласования сигналов внешнего модуля со стандартами шины и управляет модулем согласно получаемым от центрального процессора командам.
Открытая архитектура компьютера подразумевает следующие правила модульности:
- Центральный процессор наиболее часто применяется от компании Intel или аналогичные ему, кроме того могут использоваться совместимые с ними программно процессоры других производителей.
- В память материнской платы зашит BIOS (базовая система ввода-вывода).
- Начальный системный запуск изначально регламентирован.
- Организация памяти представлена в виде набора модулей, которые имеют разные параметры.
- Работает процедура выполнения операции определения конфигурации.
- Персональный компьютер снабжён системным реестром и специальным разделом памяти для сохранения параметров конфигурации.
- Организована работа механизма прерывания программы и прямого доступа к памяти.
- Каждый модуль компьютера имеет свой индивидуальный адрес.
- Для операции ввода данных и отображения её на экране дисплея применяется специальное кодирование.
Необходимо отметить, что также были выработаны нормы, которые описывают структуру компьютера, режимы работы, стандарты трансляции информационных данных. Без создания таких нормативов столь ошеломляющий успех электронных вычислительных машин компании IBM просто не мог состояться.
Открытая архитектура персонального компьютера подразумевает своими базовыми составляющими две части:
- Аппаратное обеспечение.
- Программное обеспечение.
26.5. Виды сообщений
26.5.1. Текстовые сообщения
Основным механизмом в системе взаимодействия считается обмен текстовыми сообщениями. Текстовые сообщения – это простой текст, в котором недоступно никакое оформление. Размер текстового сообщения ограничен значением 4 000 символов.
26.5.2. Видеозвонки
Для использования видеозвонков должны быть выполнены следующие требования:
1. Сервер взаимодействия должен разрешать видеозвонки для абонента, который выполнял регистрацию информационной базы.
2. Клиентское приложение, которое применяется для доступа к информационной базе, позволяет использовать видеозвонки.
3. Компьютеры пользователей – участников видеозвонка должны быть оснащены микрофонами. При наличии видеокамеры у участника видеозвонка обеспечивается показ изображения видеокамеры другому участнику видеозвонка.
В система взаимодействия поддерживаются видеозвонки только с двумя участниками.
26.1. Общая информация
Система взаимодействия – это механизм, позволяющий, в рамках одной информационной базы, взаимодействовать между собой клиентским приложениям, серверу и пользователям этой информационной базы. Система взаимодействия призвана упростить автоматизацию бизнес-процессов предприятия и предоставляет пользователям информационной базы простой способ коммуникации в рамках выполнения должностных обязанностей. Пользоваться системой взаимодействия могут только пользователи информационной базы. При этом не требуется отдельно регистрироваться в системе взаимодействия. Авторизация пользователя в системе взаимодействия осуществляется системой «1С:Предприятие».
При интерактивном взаимодействии пользователи информационной базы системы «1С:Предприятие» могут общаться друг с другом в режиме реального времени с помощью текстовых сообщений и видеозвонков. Под термином «видеозвонок» понимается любой возможный вариант общения двух пользователей, который включает в себя как только голосовой канал общения, так и полноценный видеозвонок (и голосовая информация и изображение). Видеозвонки поддерживаются:
● В тонком клиенте: при работе под управлением ОС Windows 7 и старше;
● В веб-клиенте:
● При работе в веб-браузерах Google Chrome, Mozilla Firefox версии 47 и старше.
● При работе в веб-браузере Google Chrome видеозвонки поддерживаются только в том случае, если доступ к информационной базе выполняется по протоколу HTTPS.
Общение пользователей возможно с помощью обсуждений (наборы сообщений, связанных одной темой обсуждения), которые могут быть двух видов:
1. Неконтекстные обсуждения – обсуждения, которые не привязаны к объекту информационной базы. В таких обсуждениях могут принимать участие любые пользователи информационной базы. Неконтекстных обсуждений может быть произвольное количество.
2. Контекстные обсуждения – обсуждения, которые привязаны к каким-либо объектам информационной базы. В таких обсуждениях могут принимать участие только те пользователи информационной базы, которые имеют доступ к обсуждаемому объекту. Каждый объект может иметь только одно обсуждение.
Доступ к сообщениям возможен с помощью Центра оповещений, элемента Обсуждения панели открытых, а также специальной панели сообщений в формах объектов системы (для контекстных сообщений).
Система взаимодействия реализована в клиент-серверной архитектуре и состоит из следующих частей:
● Клиентская часть системы взаимодействия является составной частью системы «1С:Предприятие».
● Серверная часть представляет собой специализированный сервер, представленный сервисом 1cDialog.com.
Обмен сообщениями между клиентской частью и сервером взаимодействия осуществляется по протоколу WebSocket. Этот протокол обеспечивает защищенную передачу данных, что позволяет безопасно передавать сообщения, с помощью которых общаются пользователи, как в локальной сети, так и через Интернет. Вся переписка пользователей хранится на сервере системы взаимодействия.
Система «1С:Предприятие» обеспечивает пользовательский интерфейс для обмена сообщениями (любых поддерживаемых видов), а также предоставляет специализированный программный интерфейс, позволяющий выполнить некоторые операции, в число которых входят следующие:
● зарегистрировать или отменить регистрацию информационной базы в серверной части системы взаимодействия;
● создавать обсуждения и сообщения;
● получать сообщения, адресованные текущему пользователю.
Не поддерживается работа с несколькими копиями одной информационной базы. В том случае, если информационная база будет скопирована, то такая база сможет подключиться к сервису, однако при работе будут наблюдаться различные особенности, например:
● Обсуждения и оповещения будут доступны во всех копиях информационных базах.
● Будут наблюдаться проблемы при работе с контекстными обсуждениями для тех объектов, которые созданы после клонирования оригинальной информационной базы.
● Будут наблюдаться проблемы при работе с получателями сообщений в том случае, если пользователи в информационных базах создавались после клонирования.
Существуют следующие виды архитектур ИС:
- Локальная;
- Файл-серверная;
- Клиент-серверная;
- Трехслойная.
Локальные информационные системы
Локальные информационные системы широко использовались до появления компьютерных сетей. В этом случае все компоненты ИС располагаются на одном компьютере. Очевидным недостатком этой архитектуры является возможность работать в ИС только одному пользователю. Другие пользователи не имеют возможности получить доступ к данным даже для чтения.
Файл-серверная архитектура
С появлением компьютерных сетей возникла возможность хранить данные в файлах на выделенном специально для этой цели компьютере. Такой компьютер называется файловым сервером или просто сервером.
Компьютеры пользователей соединены с сервером сетью, поэтому доступ к данным, могут получить несколько пользователей одновременно. Однако, кроме функции хранения данных и обеспечения доступа к ним, сервер никаких функций не выполняет.
Приложения, обрабатывающие данные, находятся на пользовательских компьютерах.
Пример 1
Предположим, что в базе данных на сервере хранится список сотрудников крупного предприятия. На предприятии 1500 сотрудников и 10 подразделений. Пользователю нужно получить число сотрудников, работающих в каждом подразделении.
Таким образом, чтобы получить 10 строк придется передать по сети 1500 строк.
Обработка данных на пользовательском компьютере всегда сопровождается передачей по сети большого количества «лишней» информации. Основными недостатками файл-серверной архитектуры являются:
- высокая загруженность сети и, как следствие, низкая скорость работы;
- сложность поддержания непротиворечивости данных, из-за их несогласованной обработки разными пользователями.
Клиент-серверная архитектура
До определенного момента на СУБД возлагались лишь задачи хранения данных и организации доступа к ним. С развитием технологий в состав СУБД разработчики стали включать новый компонент – процедурный язык программирования.
С его помощью в СУБД стало возможным создавать процедуры для обработки данных, которые можно вызывать повторно. Такие процедуры называются хранимыми процедурами.
Наличие хранимых процедур дало возможность осуществлять некоторую часть обработки данных на сервере.
Пример 2
Рассмотрим задачу из примера 1 в условиях клиент-серверной архитектуры. Пользователь отправит на сервер запрос, который запустит процедуру. Процедура выполнится непосредственно на сервере.
Она подсчитает количество сотрудников в каждом подразделении и отправит полученные 10 строк по сети на клиентский компьютер.
Таким образом, произойдет существенная экономия трафика: вместо 1500 строк будет передано по сети всего 10.
Клиент-серверная архитектура позволяет разгрузить сеть и поддерживать непротиворечивость данных за счет их централизованной обработки.
Однако, языки хранимых процедур не приспособлены для полноценной реализации бизнес-логики. Поэтому бизнес-логика в клиент-серверных ИС по-прежнему реализуется на клиентских компьютерах. Такой подход имеет следующие недостатки:
- любые изменения в бизнес-логике требуют обновления на клиентском компьютере;
- клиентские компьютеры должны быть достаточно производительными;
- слабая защита данных от взломов.
Трехуровневая архитектура
Все недостатки клиент-серверной архитектуры связаны с тем, что на клиентском компьютере лежит слишком большая нагрузка, которую можно было бы перенести на сервер.
Поэтому дальнейшее развитие технологий двигалось в направлении переноса нагрузки с клиентских компьютеров на сервер. В дополнение к хранимым процедурам разработчики стали использовать серверные языки программирования.
Это дало возможность создавать в ИС промежуточный уровень — сервер приложений.
Определение 2
Сервер приложений – это комплекс программ, выполняемых на сервере и реализующих бизнес-логику ИС .
Использование сервера приложений позволяет максимально разгрузить клиентские компьютеры и сделать обработку данных еще более централизованной, что повышает скорость и надежность ИС.
Попытка решения № 3 (успех)
После очень долгих споров и раздумий было предложено следующее решение: разработать RESTful API позволяющий выполнять практически любую операцию в рамках системы. Фактически большая часть функциональности уже давно была реализована, требовалось только создать «обертку». Это было сделано в одном из релизов без существенных трудозатрат.
Небольшой пример, для понимания, о чем речь:
Get запрос http://api.nashserver.local/support/officials.json?login=eivanov&token=… если указан правильный токен, вернет данные в формате JSON (также поддерживается XML) по сотруднику с данным логином. С помощью PUT-запросов мы можем изменять данные.
Итого мы пришли к следующей схеме работы:
-
У технической поддержки возникает необходимость массово выполнить значительный объем работы (или объем небольшой, но повторяющийся регулярно).
-
Сотрудник этого же отдела пишет простенький скрипт на python (обычно это десятки строк, сотни уже редкость), который используя API делает то что требуется
-
Profit! (рост производительности труда по многим операциям в десятки-сотни раз)
По сути данных поход представляет собой Agile с суперкороткими спринтами. От возникновения идеи до ее реализации и начала использования требуется время от нескольких часов до дней.
Почему был выбран python:
-
У нас не настоящие
сварщикиразработчики, а команда эксплуатации, поэтому важен низкий порог входа. -
Богатая библиотека, позволяющая легко обрабатывать запросы и ответы в форматах JSON и XML, работать с Excel и т. д. и т. п.
-
Легковесные скрипты
В целом все устраивает, но так как лучшее — враг хорошего, несколько слов о потенциальных недостатках:
-
Нет проверки на корректность выполняемых через API действий. Так как все максимально упрощено и процедуры тестирования кода нет, можно массово повредить данные, нарушить консистентность. Данные хранятся в документоориентированной СУБД MongoDB, поэтому даже связей первичный-внешний ключ там нет. Ресурсов на разработку проверок на уровне API у нас не было. Кроме того, проверки создадут дополнительную нагрузку на систему и замедлят выполнения. Но если будете реализовывать нечто подобное, советую проверки консистентности сделать. Можно при этом добавить в API-запросы параметр «&check=true» (по умолчанию), «&check=false» (отключать проверки после отладки скрипта для ускорения обработки или если требуется исправить уже поломанные данные и мы точно знаем, что и для чего делаем). По факту несколько лет ничего серьезно не ломали, но риск сохраняется.
-
Скрипты пишут сотрудники, не являющиеся программистами. От большой части кода у меня «кровь из глаз». Но он работает и делает то что требуется. А работающий код все равно намного лучше, чем ненаписанный вовсе. Иногда делаю ревью и рефакторю сам, чаще стараюсь очень вежливо и тактично объяснить, как писать правильней. Это довольно сложно донести так, чтобы недемотивировать автора, хотя по факту хочется выкинуть всё и переписать заново. При этом четко осознаю, что как только коллега научится писать код на приличном уровне, он уйдет в разработку, а новичка придется учить заново. Уже смирился с тем что код скриптов никогда не достигнет качества, принятого во «взрослой» разработке. Также не всегда и с трудом удается привить нормальные практики использования Jira и git.
-
Наша система функционирует в закрытой корпоративной сети с достаточно серьезными политиками сетевой безопасности. Но вообще решение передавать токен в виде параметра http-запроса, как в приведенном выше примере, совершенно неустойчиво к MITM-атаке. Если будете реализовать подобное решение, советую хорошо проработать вопросы безопасности.