Site icon Персональный блог

Исследование методов и средств мониторинга серверов (часть 3)

Интерфейс сокетов появился впервые в BSD Unix. Программный же интерфейс сокетов описан стандартом Posix.1 и в различной степени поддерживается различными современными операционными системами (ОС).

Классы из пакета runner содержат функционал для начала работы серверов: главных или второстепенных. В методах класса входят определение параметров, загрузка данных, старт сервисов. Каждый класс унаследованный от стандартного класса Thread из пакета java.lang, поэтому выполняется в отдельном потоке. Многопоточность – свойство платформы (к примеру, ОС JVM) или приложения, в том случае, когда порожденный в ОС процесс может выполняться в нескольких потоков «параллельно», т.е. без определенного порядка времени. При выполнении ряда задач такое разделение может способствовать более эффективному использованию ресурсов ЭВМ.

Следует отметить, что сутью многопоточности является многозадачность на уровне 1-го исполняемого процесса, т.е. все потоки выполняются в одном адресном пространстве процесса. Помимо этого, все потоки процесса имеют не только общее адресное пространство, но и еще общие дескрипторы файлов. Выполняемый процесс, имеет минимально один (главный) поток. Многопоточность в программировании не стоит путать с многозадачностью или многопроцессорностью, несмотря на тот факт, что ОС, способные работать многозадачно, часто реализуют и многопоточность.

Пакет sql содержит в себе в основном интерфейсы для работы с объектами системы: пользователь, сервер, кредиты, зоны, тарифы и так далее. Данные интерфейсы входят под доктрину шаблона DAO. Кроме интерфейсов в пакете находится класс DaoFactory, который находит реализацию для каждого класса, инициализирует и возвращает ее. Для каждого класса можно написать множество реализаций, под различные СУБД, зарегистрировать их, и программа будет работать уже с другой базой данных, без перекомпиляции.

Пакет sql.mysql включает в себя реализацию интерфейсов из пакета sql, для СУБД MySql. Каждому объекту соответствует класс, в интерфейсе определяется необходимый функционал, который реализуется в каждом из классов данного пакета.

Классы из пакета system, выполняют внутренние системные функции: назначение типов аккаунтов, назначение записей о контактах, загрузка данных, назначение выбранных тарифов, а также другие. Следует отметить класс VenatorGarbageCollector, который выполняет роль контролера за освобождением памяти. Данный класс через определенный промежуток времени, который указан в настройках сервиса, пытается вызвать сборщик мусора. Когда же в действительности запустится сборщик мусора, сказать невозможно, так как это задача выполняемого среды.

Поскольку сервис условно разделен на две части (ядро и интерфейс) непосредственно не связанных между собой, возникла проблема для поддержания актуальности данных в ядре системы. Поэтому был создан функционал, который находится в пакете system.updater. Данный функционал должен обеспечивать проверку данных в базе данных с актуальными загруженными в ядре, и при необходимости изменить их.

Классы из пакета task, содержащие функционал, который непосредственно выполняет задачи системы. Проверку работоспособности различных сервисов. Пакет содержит интерфейсы для реализации задач, «фабрику» исполнителей задач, а также другие классы. В случае ошибки при выполнении задания, она регистрируется и пользователю отправляется сообщение на выбранный контакт.

Классы из пакета task.ping, содержащие вспомогательные функции для задачи “ping”. Поскольку java – кроссплатформенный язык, данный сервер может быть выполнен на различных операционных системах. Но утилита ping каждой ОС может отличаться, поэтому в данном пакете содержится функционал, который обеспечивает определение ОС, а также разбор результата от выполнения утилиты.

Для разработки программной системы используются шаблоны.

Dao-шаблон используется для организации работы системы и СУБД. DAO (data access object) – это объект, который предоставляет из себя абстрактный интерфейс доступа к базе данных или механизму их хранения. Определенные возможности существуют независимо от того, к какому механизму хранения предоставляется доступ и без необходимости каким либо образом соответствовать этому механизму хранения. Данный шаблон проектирования применим к множеству языков программирования, используется в большом количестве программного обеспечения, которое требует хранения информации в базах данных, но, как правило, шаблон связывают с приложениями на Java Enterprise Edition, взаимодействующих с реляционными базами данных посредством интерфейса JDBC, т.к. он появился в рекомендациях Sun Microsystems.

Архитектурно DAO реализуется также с помощью шаблона «фабрика». Шаблон «фабрика»-служит для создания объектов, в случае если заранее не известно какой объект может понадобиться в данный момент.

В системе используется в трех случаях TaskFactory – «фабрика» исполнителей задач, DaoFactory – «фабрика» классов реализаций, для работы с СУБД, PingParserFactory – «фабрика» объектов для определения ОС, а также разбора данных ответа от утилиты ping.

Таким образом *factory – шаблон проектирования, порождающий, предоставляет подклассам интерфейс для создания экземпляров определенного класса. В момент создания наследники могут определить, какой класс инстанциировать. Иными словами, “фабрика” делегирует создание объектов наследникам родительского класса. Это дает возможность использовать в программном коде не специфические классы, а манипулировать абстрактными объектами на более высоком уровне. Также известен как виртуальный конструктор.

Шаблон Singleton предназначен для создания гарантий того, что в классе есть один экземпляр, и предоставляет к нему глобальную точку доступа. Важно то, что можно пользоваться именно экземпляром класса, поскольку при этом во большинстве случаев становится доступной более широкая функциональность. К описанным компонентам класса так же можно обращаться через интерфейс, если такая возможность представляется языком программирования.

* * *

Проблемы с бизнесом? Нет финансов для оплаты кредиторам? Может понадобиться ликвидация через банкротство, которая может быть дешевле, чем любые другие процедуры при условии, что спасти фирму уже нет возможности.

Exit mobile version