Исследование методов и средств мониторинга серверов (часть 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 предназначен для создания гарантий того, что в классе есть один экземпляр, и предоставляет к нему глобальную точку доступа. Важно то, что можно пользоваться именно экземпляром класса, поскольку при этом во большинстве случаев становится доступной более широкая функциональность. К описанным компонентам класса так же можно обращаться через интерфейс, если такая возможность представляется языком программирования.

* * *

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

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.