терфейсу серверної бібліотеки - ініціалізує список доступних вузлів, а також повертає інтерфейс з доступними методами рівня вузла.
package server.library; interface ServerLibrary {void initNodes (); NodeEnvironment getNodeEnvironment (String nodeName); boolean decodeSmartPacket (byte [] content);
}
Інтерфейс з методами, виконуваними зазначеним вузлом, афктіческі все методу реалізують функції програмного комплексу.
package server.library; interface NodeEnvironment {boolean searchInLogs (Date from, Date to, Collection lt; LogType gt; logTypes, String pattern, boolean isRegExp); boolean startCustomLog (String logName, LogLevel level, Collection lt; String gt; loggers, Collection lt; LogFilter gt; filters); boolean stopCustomLog (String logName); boolean startTcpDumping (String nic, String filters); boolean stopTcpDumping (); boolean queryFiles (Collection lt; DataType gt; dataTypes, boolean allSessions); boolean downloadFiles (Collection lt; String gt; paths);
}
Клас модуля серверної бібліотеки, служить тільки для ініціалізації серверної бібліотеки і зберігання ініціалізованих екземпляра.
package server.modules; class ServerLibraryModule implements Module {
Overridevoid start () throws ModuleException
Overridevoid stop () throws ModuleExceptionServerLibrary getLibrary ()
}
Модуль ФС представлений наступними класом:
Клас модуля управління файлової система - переважно методи з читання задачі або її запису.
package server.modules; class FilesystemModule implements Module {
Overridevoid start () throws ModuleException
Overridevoid stop () throws ModuleExceptionCollection lt; String gt; getRequestsList () InputStream getRequestStream (String request) void removeRequest (String request) void persistTask (Task task) throws IOExceptionvoid removeExpiredTasks (Collection lt; String gt; expiredTasks) throws IOException
}
Модуль черги запитів представлений наступними класами:
Клас процесора запитів, реалізує інтерфейс Runnable, щоб виконувати завдання відстеження запитів, що надходять в паралельному потоці.
package server.modules; class RequestProcessingModule implements Module, Runnable {FilesystemModule filesystemModule; JobProcessingModule jobProcessingModule; Thread queueProcessingThread; Map lt; String, TaskFactory gt; factories=new HashMap lt; String, TaskFactory gt; (); RequestProcessingModule (FilesystemModule filesystemModule, JobProcessingModule jobProcessingModule)
Overridevoid start () throws ModuleException
Overridevoid stop () throws ModuleExceptionvoid registerTaskFactory (String type, TaskFactory factory) void unregisterTaskFactory (String type, TaskFactory factory)
Overridevoid run ()
}
Модуль черзі завдань представлений наступними класами:
Клас процесора завдань, реалізує інтерфейс Runnable, щоб здійснювати виконання поставлених у чергу завдань в паралельному потоці.
package server.modules; class JobProcessingModule implements Module, Runnable {FilesystemModule filesystemModule; Thread jobsProcessor; Queue lt; Task gt; jobs=new ConcurrentLinkedQueue lt; Task gt; (); JobProcessingModule (FilesystemModule filesystemModule) {
Overridevoid start () throws ModuleException {
Overridevoid stop () throws ModuleException {void createJob (Task request) {
Overridevoid run () {
}
Модуль фабрик завдань представлений наступними класами:
Клас модуля фабрик завдань, ініціалізує фабрики завдань та реєструє їх у класі процесора запитів.
package server.modules; class FactoriesModule implements Module {ServerController serverController; ServerLibraryModule serverLibraryModule; FilesystemModule filesystemModule; RequestProcessingModule requestProcessingModule; Map lt; String, TaskFactory gt; factories; FactoriesModule (ServerController serverController, ServerLibraryModule serverLibraryModule, FilesystemModule filesystemModule, RequestProcessingModule requestProcessingModule)
Overridevoid start () throws ModuleExceptionvoid initializeFactories ()
Overridevoid stop () throws ModuleException
}
4. РОЗРОБКА клієнтських КОМПОНЕНТУ ПРОГРАМНОГО КОМПЛЕКСУ З графічного інтерфейсу користувача
.1 Розробка структури клієнтського компонента
Структура клієнтського компонента розділена на три шари, згідно з призначенням сутностей, їх состявляющіх.
Шар «Модель» складається з сутностей, якими оперує програмний комплекс (фактично це дані, з якими він працює); шар «Контролер» складається з сутностей, що оперують сутностями шару «Модель», і надає набір інтерфейсів для всіх можливих операцій над ними; шар «Вид» складається з сутностей, що реалізують уявлення сутностей шару «Модель», а також функціональних можливостей, щ...