Анализ информационной системы "Бурятия.INFO". Построение функциональной модели "Как надо", диаграммы прецедентов, диаграммы последовательности действий, диаграммы классов. Разработка программного приложения в интегрированной среде Intellij IDEA.
Данная выпускная квалификационная работа посвящена вопросам разработки сервера приложений для ИП «Баяртуев Д.Б.». В проекте были использованы известные в настоящее время технологии проектирования и средства разработки приложений, а именно: интегрированная среда разработки Intellij IDEA, средства проектирования IBM Rational Rose и BPWIN. В рамках проекта выполнены анализ предметной области, построена функциональная модель «Как надо», диаграмма прецедентов, диаграмма последовательности действий, диаграмма классов, разработано программное приложение. Со временем могут появиться потребности в функционале, который не был предусмотрен первоначальной реализацией информационной системы. Внедрение сервера приложения позволяет существенно повысить функциональность и производительность готовой информационной системы, позволяя избежать изменений последней.Информационная система «Бурятия.INFO» представляет собой сайт справочник компаний города Улан-Удэ. Проект «Бурятия.INFO» рассчитан на широкую аудиторию, и предназначен в первую очередь для клиентов компаний, отзывы о которых размещаются на сайте. «Бурятия.INFO» это саморегулирующееся сообщество, где каждый пользователь может определенным образом повлиять на рейтинг компаний, других пользователей, вступить в обсуждение либо дискуссию с пользователями сайта. Сервер приложений должен обрабатывать запросы сгенерированные браузером-клиентом, исполнять приложение, и отсылать результат обратно. После внедрения сервера приложений в информационную систему «Бурятия.INFO» заказчик получить гибкое, эффективное средство, которое позволит без изменений в архитектуре и исходном коде приложения расширять функционал информационной системы путем построения дополнительных модулей.В рамках дипломного проектирования разработаны диаграмма классов, диаграмма прецедентов и диаграмма последовательности действий. На диаграмме представлено три актера: Администратор - отвечает за настройку сервера, отдает команды на запуск и остановку последнего. Связанные процессы: “Настроить сервер”, “Запустить сервер приложений” и “Остановить сервер”. После обращения администратора к процессам “Запустить сервер приложений” и “Остановить сервер” контроль над работой сервера передается виртуальной машине. На выше описанной диаграмме представлены все основные актеры и процессы, участвующие в работе разрабатываемой информационной системе «Сервер приложений».Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры. В версии Ultimate Edition реализована поддержка Java EE, UML-диаграмм, подсчет покрытия кода, а также поддержка других систем управления версиями, языков и фреймворков. Для управления работы приложения на транспортном уровне был выбран фреймворк Netty. Приложение - программная единица, исполняемая в контексте сервера приложений и реализующая бизнес-логику. В случае если приложение не было найдено в кэше, производится поиск по пространству имен приложения.Программа представляет собой консольное Java-приложение. Для работы с данной программой пользователь должен иметь навыки работы с операционными системами Windows XP. Также необходимо учесть, что для выполнения некоторых приложений может понадобиться дополнительное программное обеспечение, например, система управления базами данных. Ниже представлены реализованные параметры запуска. configpath: - указывает системный путь к конфигурационному файлу. autostart - указывает приложению о необходимости запуска сервера приложений непосредственно после запуска. Ниже представлены возможные конфигурационные значения, и их описание. server-poolsize - определяет размер пула потоков исполнения, отвечающих за управление соединениями.
Список литературы
1. Андон Ф., Резниченко В. Язык запросов SQL. Учебный курс. - СПБ.: Питер, 2006. - 416 с.
2. Горбунов-Посадов М.М. Расширяемые программы. - М.: Полиптих, 1999. - 336 с
3. Герберт Шилдт. Java. Полное руководство. Java SE 7 = Java 7: The Complete Reference. - 8-е изд. - М.: Вильямс, 2012. - 1104 с.
4. Давыдов, С., Ефимов, А. INTELLIJ IDEA. Профессиональное программирование на Java (В Подлиннике). - 1-е изд. - СПБ.: BHV. - 800 с.
*/ public class Service { public static Session service(Session session) throws Exception {
String request = new String(session.GETDATA().array()); //get AJAX request
Object result = Invoker.invoke(Parser.PARSEREQUEST(request)); //parse it, and call application return new Session(BYTEBUFFER.wrap(result.TOSTRING().GETBYTES()), session.GETCHANNEL()); //return new Session
*/ public class Invoker { private static ILLEGALARGUMENTEXCEPTION CACHEDEXCEPTION = new ILLEGALARGUMENTEXCEPTION(new NULLPOINTEREXCEPTION("Method can not be null!"));
//security check if (!method.ISANNOTATIONPRESENT(SERVICEMETHOD.class)) { throw new SECURITYEXCEPTION("Method is not annotated with SERVICEMETHOD!");
}
//use another invoke type if method is static if (Modifier.ISSTATIC(method.GETMODIFIERS())) { return method.invoke(clazz.GETCLASS(), param.params.TOARRAY());
} else { return method.invoke(clazz.NEWINSTANCE(), param.params.TOARRAY()); //todo create method to get class instance?
}
} private static Method GETMETHOD(String METHODNAME, Class owner, Class [] params) throws NOSUCHMETHODEXCEPTION, CLASSNOTFOUNDEXCEPTION {
INVOKECACHE cache = INVOKECACHE.GETINSTANCE();
Method result;
if ((result = cache.FINDMETHOD(METHODNAME)) != null) { //try to find method in cache return result;
} else { result = owner.GETMETHOD(METHODNAME, params);
return result;
}
} private static Class GETCLASS(String CLASSNAME) throws CLASSNOTFOUNDEXCEPTION {
INVOKECACHE cache = INVOKECACHE.GETINSTANCE();
Class result;
if ((result = cache.FINDCLASS(CLASSNAME)) != null) { return result;