COM (Component Object Model) – технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих компонентов объекта, каждый из которых может использоваться во многих программах одновременно. Стандарт воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. Он мог бы быть универсальным и платформо-независимым, но закрепился на операционных системах семейства Microsoft Windows. В современных версиях Windows COM используется очень широко. На основе СОМ были реализованы технологии: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX и XPCOM.
Основным понятием, которым оперирует стандарт COM, является COM-компонент. Программы, построенные на стандарте COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный идентификатор (GUID) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами через COM-интерфейсы – наборы абстрактных функций и свойств. Каждый COM-компонент должен, как минимум, поддерживать стандартный интерфейс IUnknown, который предоставляет базовые средства для работы с компонентом. Интерфейс IUnknown включает в себя три метода: QueryInterface, AddRef, Release.
Функции AddRef и Release отвечают за обычную задачу сопровождения жизненного цикла объекта. При каждом обращении к AddRef содержимое счетчика ссылок данного объекта увеличивается на единицу, а при каждом обращении к Release – уменьшается. Когда значение счетчика достигает нуля, то объект уничтожается.
Windows API предоставляет базовые функции, позволяющие использовать COM-компоненты. Библиотеки MFC и, особенно, ATL/WTL предоставляют более гибкие и удобные средства для работы с COM. Библиотека ATL от Microsoft до сих пор остаётся самым популярным средством создания COM-компонентов. Но зачастую COM-разработка остаётся ещё довольно сложным делом: программистам приходится вручную выполнять многие рутинные задачи, связанные с COM (особенно это заметно в случае разработки на C++). Впоследствии (в технологиях COM+ и особенно .NET) Microsoft попыталась упростить задачу разработки COM-компонентов. Для разработки интерфейса MQTT-клиента использовалась встроенная в язык программирования Java библиотека Swing. Swing - это набор для создания богатого графического интерфейса пользователя (GUI) для Java программ и апплетов. Он может быть подключен к JDK 1.1, как отдельная часть, и вошел в состав инструментария для Java2, начиная с JDK версии 1.2 и далее. В сравнении с ранее использовавшейся библиотекой AWT, библиотека Swing имеет ряд преимуществ. Следует выделить основные:
- богатый набор интерфейсных примитивов;
- настраивающийся внешний вид на различных платформах (look and feel);
- раздельная архитектура модель-вид (model-view);
- встроенная поддержка HTML.
Были использованы компоненты :JTextArea, JButton , JTextField, JLabel.
*Рисунок 5.1 – Графический интерфейс клиента.*
В нижней части интерфейса располагается область интерфейса с заголовком: «Подключение к серверу». Данная область включает в себя поля для ввода имени пользователя, адреса брокера и порта и кнопки «Подключение» и «Отключение». На случай неправильного ввода или неудачного подключения предусмотрено предупреждение об ошибке, в виде всплывающего окна. По умолчанию, в поле адреса брокера и порта добавляется значение «127.0.0.1:1883», а в поле имени пользователя: «Client1» Как только пользователь подключается к брокеру кнопка «Подключение» становится неактивной, а кнопка «Отключение» наоборот – неактивной.
В средней части интерфейса располагается область интерфейса с заголовком: «Подписка на сообщения данной тематики». Данная область включает в себя поля для ввода темы подписки на сообщения, публикации самих сообщений и кнопки «Подписаться» и «Отписаться» (На сообщения определённой тематики).
В верхней части интерфейса располагаются поля для ввода темы публикуемого сообщения, ввода самого сообщения и кнопка «Опубликовать» (опубликовать сообщение).
В последних двух областях кнопки «Опубликовать», «Подписаться» и «Отписаться» являются неактивными до подключения к серверу, что является одним из средств защиты от непредвиденных ситуаций (публикация, подписка и отписка от сообщений, до подключения к серверу).
Дата | Выполнено, % |
---|---|
2020-05-21 20:03:25 | 10 |
2020-05-14 13:24:06 | 70 |
2020-05-14 14:21:43 | 100 |