Разработка JavaEE web-приложения

Изучение основ сетевого взаимодействия и сервис-ориентированной архитектуры. Причины роста популярности веб-сервисов. Цели и задачи разрабатываемого программного продукта (веб-приложения). Обоснование проектных решений по техническому обеспечению.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.11.2018
Размер файла 810,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

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

Компоненты программной системы могут быть распределены по разным узлам сети и предлагаться как независимые, слабо связанные и, возможно, заменяемые сервисы-приложения. Программные комплексы, разработанные в соответствии с SOA, часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов.

Данная курсовая работа посвящена веб-сервисам. Популярность, повсеместное распространение и увеличение значимости удовлетворенности конечного потребителя в некоторых потребностях обуславливают актуальность данной работы. веб приложение сетевой программный

Целью курсовой работы является разработка web-приложения на языке программирования Java.

Из постановки цели следует, что для её достижения необходимо выполнить следующие задачи:

? Исследование предметной области;

? Изучение основ сетевого взаимодействия;

? Проектирование web-приложения;

? Разработка web-приложения.

1. ПОСТАНОВКА ЗАДАЧИ

1.1 Цели и задачи разрабатываемого программного продукта

На сегодняшний день для принятия решения по созданию, модернизации, внедрению какой-либо информационной системы, руководству компании необходимо обладать достоверными сведениями о текущем состоянии информационной среды на предприятии. Решением подобных задач занимается различное программное обеспечение, обеспечивающее сбор информации обо всей информационной системе предприятия. Сама структура такого программного продукта существенно зависит от тех проблем, которые ей предстоит решать.

У любого сколько-нибудь крупного предприятия по мере её развития растет потребность в контроле и отслеживании сетевой активности собственных сетевых устройств. Сегодня разработано уже большое количество путей решения этой и подобных проблем, и большая их часть направлена на оптимизацию процессов крупного предприятия. Однако стоит отметить, что ничуть не реже встречаются случаи, в которых сотрудник, который столкнулся с определенными трудностями из этой области, нуждается в современных и, одновременно с этим, достаточно узконаправленных информационных средствах, позволявших бы ему избавиться от такого рода проблем.

Подобную тенденцию можно наблюдать практически во всех областях деятельности: от машиностроения до составления простейших списков задач. Освещение одного из принципиальных подходов к решению такого рода проблем - разработки нового программного обеспечения, является актуальной и востребованной практически темой для курсового проекта.

Сервис-ориентированная архитектура -- модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам.

Комплексы программ, которые разработаны, разработанные в соответствии с требованиями сервис-ориентированной архитектуры, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).

Интерфейсы компонентов в сервис-ориентированной архитектуре инкапсулируют детали реализации (операционную систему, платформу, язык программирования) от остальных компонентов, таким образом обеспечивая комбинирование и многократное использование компонентов для построения сложных распределённых программных комплексов, обеспечивая независимость от используемых платформ и инструментов разработки, способствуя масштабируемости и управляемости создаваемых систем.

Архитектура не привязана к какой-то определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как REST, RPC, DCOM, CORBA или веб-сервисы. SOA может быть реализована, используя один из этих протоколов и, например, может использовать дополнительно механизм файловой системы для обмена данными.

Главное, что отличает SOA -- это использование независимых сервисов с чётко определёнными интерфейсами, которые для выполнения своих задач могут быть вызваны неким стандартным способом, при условии, что сервисы заранее ничего не знают о приложении, которое их вызовет, а приложение не знает, каким образом сервисы выполняют свою задачу.

SOA также может рассматриваться как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабосвязанных и взаимодействующих сервисов. Эти сервисы взаимодействуют на основе какого-либо строго определённого платформенно-независимого и языково-независимого интерфейса (например, WSDL). Определение интерфейса скрывает языково-зависимую реализацию сервиса.

Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как Java, .NET и т. д.). К примеру, сервисы, написанные на C#, работающие на платформах .Net и сервисы на Java, работающие на платформах Java EE, могут быть с одинаковым успехом вызваны общим составным приложением. Приложения, работающие на одних платформах, могут вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.

SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологий или фреймворков для документирования сервисов.

Языки высокого уровня, такие как BPEL, или спецификации, такие как WS-CDL и WS-Coordination, расширяют концепцию сервиса, предоставляя метод оркестрации, для объединения мелких сервисов в более обширные бизнес-сервисы, которые, в свою очередь, могут быть включены в состав технологических процессов и бизнес-процессов, реализованных в виде составных приложений или порталов.

В ходе проведения анализа были выявлены следующие проблемы, требующие оперативного решения:

- увеличенное время выявления причин неисправности аппаратно-программного обеспечения и систем;

- избыточные заявки о неисправностях аппаратно-программного обеспечения посредством корпоративной телефонной сети;

- отсутствие прогнозирования возможных неисправностей.

Для оптимального решения выявленных проблем были сформулированы следующие задачи модернизации информационной системы:

- провести анализ существующего на рынке программного обеспечения, решающего подобные задачи;

- создать и реализовать базы данных для хранения таблицы аппаратного обеспечения и таблицы с системными ошибками;

- реализовать системное программное обеспечение для поиска по базе кодов ошибок;

- обеспечить ведение отчетности о проделанном процессе;

- обеспечить системное программное обеспечение механизмами, реализующими управление и изменение баз данных.

Возможность использования запланированного программного продукта позволит более оперативно и конструктивно диагностировать, и реагировать на возникновение неисправностей аппаратно-программного обеспечения. Создаваемая затем статистика позволит прогнозировать заблаговременно их возникновение или избегать их повторного появления.

С учетом описанных потребностей, разрабатываемая информационная система должна:

- реализована в рамках архитектуры клиент-сервер;

- реализовывать для сервера безопасный и бесперебойный доступ к информации из таблиц БД и её отправку по стандартизированному формату по запросу клиента;

- реализовывать функционал по поиску и выведению системных ошибок по их коду в клиентской части;

- обеспечивать разделение клиента на две части: пользовательскую и администратора;

- обеспечивать предусмотренные функции редактирования базы данных клиентом-администратором;

- предоставлять веб-интерфейс для пользовательского клиента и администраторского клиента.

В рамках документирования данной информационной системы необходимо составить и раскрыть следующие разделы:

- руководство администратора и пользователя;

- установка серверной и клиентской частей информационной системы;

- требуемые ресурсы и системные требования;

- порядок работы с информационной системой;

- средства управления информационной системой;

- сообщения и реакция пользователя

1.2 Средства разработки программного продукта

Одним из наиболее значимых прорывов в области программирования стали появления языка разметки гипертекста - HTML, и, позднее, языка программированияJava. Эти события ознаменовали начало новой эпохи развития всемирной сети интернет и появления серверных технологий.

Как на момент создания, так и по сей день, технологии языка программирования Java имеют преимущества, качественно отличающие их от большинства существующих средств программирования.

Прежде всего язык Java нашел широкое применение и обрел популярность на заре развития мировой сети интернет благодаря технологии апплетов, которые представляли собой простые в реализации кроссплатформенные приложения, которые можно легко встраивать в HTML страницы

Разработчикам программного обеспечения язык Java полюбился за простоту и лаконичность своего синтаксиса, а также за предоставление возможности писать кроссплатформенные многопоточные приложения с минимальными усилиями, затрачиваемыми на написание кода.

Гибкая система классов и интерфейсов, а также богатый набор предоставляемых в JDK библиотек позволяет разработчикам сосредоточиться на написании кода, не отвлекаясь на подгонку задуманной структуры проекта под рамки синтаксиса и возможностей используемого языка программирования. Использование стандартных решений позволяет также сэкономить огромное количество времени, импортируя классы и пакеты вместо разработки и написания эквивалентных им.

Создание языка Java было частью проекта, направленного на подготовку мирового рынка к автоматизации различных технических средств, в том числе и мелкой бытовой техники. Первоначально проект предусматривал использование в реализации языка программирования C++, однако это было сопряжено с рядом проблем, избавиться от которых было решено радикальным путем - разработкой нового языка программирования, возможности которого позволяли бы достичь поставленных целей в существующих ограничениях. Ограничениями в данном случае являлись различия между характеристиками и интерфейсами платформ, на которых предполагалось запускать проектируемые программы. Предполагалось, что проектируемый с нуля язык программирования позволит запускать одну и ту же программу на разных платформах без необходимости компилировать её каждый раз отдельно.

Еще одним витком развития языка Java стало появление сети Интернет и её широкое распространение. В качестве меры адаптации под быстро изменяющиеся условия нового, стремительно растущего рынка, в спецификацию языка Java были добавлены апплеты - небольшие программы, которые в реальном времени загружаются через сетевое подключение. Принцип загрузки такого приложения такой же, как и для картинок, звуковых файлов и элементов мультипликации.

Главной особенностью апплетов является их принадлежность к числу реально выполняемых самостоятельных программ, а не еще одним форматом файлов, который используется для хранения данных о своем содержании. Апплет не только выполняет один и тот же алгоритм, но способен реагировать на действия пользователей и автоматически изменять логику собственного поведения, подстраиваясь под него, если это, конечно, предусмотрено.

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

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

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

На сегодняшний день в технической и массовой литературе, в особенности, в специализирующейся на сфере сети интернет, популярной темой является освещение темы сетевой безопасности пользователей. Среди главных принципов языка Java уже на стадии его проектирования появился пункт о необходимости создания механизма защиты пользователей от угроз извне.

Стоит отметить, что программное обеспечение, написанное на языке Java, неспособно в принципе получить доступ к системным ресурсам или значимым потокам операций пользовательского компьютера. Таким образом Java гарантирует непреклонный уровень безопасности для пользователей при работе с любой из программ, что практически отсутствует среди других популярных языков программирования.

Структура языка Java способствует фокусировке внимания разработчика на некоторых ключевых областях, таким образом способствуя локализации ошибок в процессе разработки программного обеспечения. Одновременно с этим Java избавилась от многих механизмов, служивших, по сути, источником ошибок компиляции в процессе разработки программы. Среди таких механизмов стоит выделить, например, строгую типизацию.

Язык Java создавался в качестве средства, удовлетворяющего насущные потребности пользователей в средствах создания динамических сетевых сервисов. Язык Java предоставляет ряд органичных функций, которые позволяют разрабатывать программное обеспечение, выполняющее в один момент времени множество операций и осуществляющее контроль за процессом их выполнения. Синхронизация потоков выполнения различных вычислительных операций в языке Java выполнена достаточно изящно, благодаря чему разработчики программного обеспечения получили возможность уделять этой, несомненно важной, области проектирования систем меньше внимания в угоду другим, более насущным потребностям специалистов. Результатом этого стратегически удачного решения стало развитие настольных и сетевых приложений, выполненных с использованием языковых средств Java.

Несколько жестких ограничений, наложенных на языковые средства и среду исполнения программы, способствовали развитию языка и увеличению его популярности благодаря возможности запускать одну и ту же программу на различных аппаратных средствах при условии наличия на них виртуальной машины Java.

Это свойство языка, называемое кроссплатформенностью, достигается засчет построения структуры процесса трансляции высокоуровневых команд, введенных программистом, в машинный код определенным образом. Так, этот процесс имеет в данном случае некоторую промежуточную стадию, именуемую байт-кодом, который без каких-либо серьезных затрат машинных ресурсов переводится в машинный код в реальном времени.

Среди прочих преимуществ языка Java стоит отметить очевидную простоту его освоения. Это, само собой, во многих случаях является решающим аргументом в выборе области работы начинающим специалистом.

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

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

Разработка программного продукта будет производиться средствами языка Java.

Для разработки программного продукта используется следующее ПО:

- СУБД PostgreSQL;

- NetBeans IDE 8.2;

- GlassFish Server 4.1.1.

СУБД PostgreSQLнаходится в открытом доступе, что обеспечивает свободное использование системой управления реляционными базами данных. СУБД PostgreSQLимеет высокую безопасность данных благодаря прозрачному шифрованию данных и надежному аудиту. В имеющейся информационной системе используется именно СУБД PostgreSQL, поэтому и программное обеспечение должно иметь возможности взаимодействия с ним.

Для разработки программного продукта используется NetBeans IDE -- свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, Python, PHP, JavaScript, C, C++, Ада и ряда других.

Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведётся независимым сообществом разработчиков-энтузиастов (NetBeansCommunity) и компанией NetBeansOrg.

Последние версии NetBeans IDE поддерживают рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету и множество предопределённых шаблонов кода. Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии.

Все необходимые средства для описанной информационной системы присутствуют здесь в достаточном количестве, в том числе по-умолчанию в комплекте с NetBeans 8.6 идет GlassFish 4 -- сервер приложений с открытым исходным кодом, реализующий спецификации Java EE. В разрабатываемой системе GlassFish используется для разворачивания серверных и клиентских частей приложения, является довольно надежным сервером приложений, поэтому был выбран для ведения данной разработки.

1.3 Обоснование проектных решений по техническому обеспечению

Техническим или аппаратным обеспечением называют совокупность электрических, электронных и механических компонентов компьютеров и автоматизированных систем в отличие от программного обеспечения автоматизированных систем и данных. Существует возможность программной реализации некоторых функций аппаратных средств и наоборот. Компьютер с архитектурой фон Неймана обладает следующими элементами аппаратного обеспечения: устройства ввода и вывода, манипуляторы, сканеры, графические планшеты, принтеры, видеопроекторы, акустические системы и запоминающие устройства, такие как оперативная память, магнитные и оптические диски, карты памяти. Современные компьютеры оснащены устройствами, которые обеспечивают работу данной архитектуры. Это микропроцессоры, шины, порты, контроллеры, чипсеты, блок питания, система охлаждения. В зависимости от типа подключения к ПК принято различать внутренние и внешние устройства. К сетевому аппаратному обеспечению относят абонентские машины, среду передачи данных (коаксиальный кабель, витая пара, оптоволоконный кабель) и дополнительные устройства, которые требуются для работы сети (мосты, шлюзы, повторители, брутеры, коммутаторы, концентраторы). Для эффективного решения поставленной перед дипломным проектом задачи и дальнейшего полноценного функционирования автоматизированной системы необходимо выбрать проектные решения по техническому обеспечению и обосновать выбор.

Анализ рынка современных ПЭВМ, компьютерных сетей и печатающих устройств определяет следующие технические характеристики для рабочих станций, где будет установлена автоматизированная система:

* Процессор Core i5, 3240, 3.4 ГГц, 5000МГц, 5ГТ/с, S1155, iH61 Express

* Звук 7.1, Realtek ALC887

* Память DIMM DDR3 1600 (PC12800), 2ГБ

* Видео Intel HD Graphics 2500, D-Sub (VGA), DVI

* Сеть 10/100Мбит, Realteck AR8152, SATAIII

* Жесткийдиск 1Тб, 7200rpm

* Приводдисков DVD+/-RW, Pioneer

* Корпус Optimum, microATX, 350 Вт, черный, 8 USB2.0, 2 PS/2 (miniDIN6), 5 Mini Jack (Audio), 2 Audio, 2 USB2.0, 445 x 395 x 218 мм, 6.5 кг

Выбор данной модели обосновывается тем, что указанный монитор создан на основе TN-матрицы с малым временем отклика в 5 мс.. Широкоформатный ЖК-монитор Philips 203V5LSB26 оснащен 19.5-дюймовым WLED-экраном с соотношением сторон 16:9 и разрешением 1600 x 900 пикселей, который благодаря эргономичной подставке можно наклонять в диапазоне от -3° до 10°. ?

2. АНАЛИЗ ПОСТАВЛЕННОЙ ЗАДАЧИ

2.1 Автоматизированные информационные системы

Автоматизированные информационные системы (АИС), как более частный случай информационных систем вообще, стали широко применяться в последние 20 лет. Выгода их применения очевидна - оперативный мониторинг состояния производственной линии, сплошной контроль партий изделий с проведением высокоточных измерений, бухгалтерский учет и регулярная отчетность - все это представляется возможным внедрить на предприятии на основе автоматизированной информационной системы.

Решающим аргументом является тот факт, что ответственность за принятие решений и взятие управления процессами в неочевидных процессах остается на человеке. АИС служит мощным инструментом в руках руководства предприятия, автоматически выполняя множество простых действий, оставляя за человеком право принимать решения и требующие его присутствия. Это системы, способные полностью исключить потребность во вмешательстве человека, или минимизировать его.

Всю совокупность АИС можно классифицировать по следующим признакам:

По характеру обрабатываемой информации информационные системы разделяют на документальные и фактографические.

В документальных АИС объектами модификации, хранения и вывода являются разнообразные знания (книги, статьи, патенты и прочие информационные материалы). Работа такой системы чаще всего заключается в поиске и выводе данных по запросу оператора. В документальных АИС одним из параметров оценки качества работы системы является степень соответствия содержания выданного документа запрашиваемой информации. Количественное значение этого параметра вычисляется чаще всего с использованием некоторых специальных лингвистических алгоритмов.

В фактографических АИС хранимые и модифицируемые данные являются определенной информацией об объекте. Зачастую эти данные являются оперативными, т.е. быстро теряют свою актуальность, вследствие чего с определенной периодичностью обновляются системой. Система в таком случае называется оперативной.

Во время разработки подобной системы необходимо определить параметры объектов, сведения о которых хранятся в системе, зависимости, характеризующие связь объектов в реальном мире, которые подлежат вычислению и после - визуализации в информационных отчетах.

Также информационные системы разделяют на основании их предназначения:

? управление технологическими процессами;

? организационное управления;

? управление организационными процессами;

? научные исследования;

? обучение.

АИС управления технологическими процессами - это системы, требующие периодического вмешательства человека, которые являются вспомогательным инструментом при управлении технологическими устройствами, станками, автоматическими линиями.

Для управляющих АИС объектом управления служат производственные и экономические процессы, которые реализуются на в сфере экономического управления, например: банковские АИС; АИС фондового рынка; финансовые АИС; и страховые АИС; налоговые АИС; АИС таможенной службы; статистические АИС; промышленные организационные АИС и т.д..

Управляющие технологическими процессами АИС являются многоуровневыми системами, которые сочетают АИС, управляющие технологическими процессами, и АИС, управляющие предприятиями.

АИС научных исследований призваны производить вычисления с высокой точностью, автоматически регистрировать и сохранять информацию о протекании процессов. Основой подобных систем служат аналитические алгоритмы. Технологические организационные системы, также, как и научно-исследовательские, могут включать в себя подсистемы автоматизированного проектирования работ (САПР).

Обучающие АИС нередко внедряются в процессы подготовки специалистов в системе образования, при переподготовке и повышении квалификации работников разных отраслей.

В зависимости от сферы применения различают несколько видов АИС:

Информационные системы автоматизированного проектирования (САПР) направлены на сокращение количества ручных операций в работе работников при разработке конструкции или дизайна новой продукции. Основными функциями подобных систем являются: математические вычисления, визуальное конструирование документов (чертежей и схем), создание проектной документации, изображение моделей, построенных на основе введенных данных. Интегрированные системы позволяют автоматизировать рабочие операции на протяжении всего жизненного цикла продукции. Характерным признаком таких систем является модульность и единое информационное пространство для всех компонентов.

Автоматизированные информационные системы организационного управления - такие системы ориентированы на автоматизированное выполнение задач оператора. В основном подобные системы выполняют ряд следующих задач: Основными функциями подобных систем являются: сплошной или выборочный контроль, или регулирование, учёт и анализ, долгосрочное и краткосрочное планирование, бухгалтерский учёт, управление сбытом, снабжением и т.д.

Информационные системы управления технологическими процессами (СУТП) ориентированы на уменьшение человеческого фактора в операциях контроля и управления технологическими операциями. СУТП в большинстве случаев оснащены множеством датчиков и автоматических измерительных приборов, способных в полной мере предоставить общую информацию о характере протекания технологического процесса.

В зависимости от уровня управления:

Информационная система оперативного уровня обрабатывает вводимые данные и служат дополнительным инструментом в работе оператора. Такие системы участвуют в образовании связей между внешней и внутренней средой компании. Данные и способы их обработки определены, структурированы и приведены в виде, удобном для восприятия человеком.

Информационные системы специалистов обеспечивают хранение и обработку информации, увеличивают эффективность и результативность труда специалистов. Задача таких информационных систем - удобное добавление поступающей информации в существующую структуру данных с последующей обработкой.

Информационные системы уровня управления находят применение среди менеджеров среднего звена. Основными задачами таких систем являются мониторинг, контроль, принятие решений и управление.

Стратегические информационные системы призваны сопровождать процесс принятия решений по построению долгосрочной линии поведения организации, формированию её стратегических целей и политик. Основная задача таких систем - оперативный анализ изменений условий окружающей среды и сопоставление этих изменений с возможностями компании.

На уровне корпораций с развитием возможностей вычислительной техники нашли широкое применение так называемые ERP-системы (EnterpriseResourcePlanning -- Система планирования ресурсов предприятия). Такую представляет собой любая интегрированная информационная система, чьими функциями является снижение трудоемкости учета и управления ресурсами предприятия.[6] Построение такой системы необходимо проводить с учетом интеграции в едином информационном пространстве всех ключевых бизнес-процессов предприятия. Доступ к этой информации должен быть оперативно предоставлен требуемому количеству сотрудников, при условии, что они имеют необходимые полномочия.

Несомненным преимуществом ERP-систем является их глубокая интеграция в процесс производства и избавление от проблем с оперативной передачей информации между отделами, однако высокая сложность системы требует значительных затрат на обучение персонала работе с системой. Недостаточные вложения в аппаратную часть системы также могут повлечь за собой серьезные последствия вследствие физического устаревания ЭВМ.

Трудности внедрения ERP-систем заключаются в следующем:

Результат внедрения системы зависит от компетентности работников, которым предстоит работать с интерфейсами системы.

Наем персонала осложняется необходимостью либо объявить одним из пунктов к соискателю знакомство с аналогичной ERP-системой, либо обеспечить обучающие курсы каждому новому сотруднику.

Зачастую ERP, являясь функциональным инструментом, все же лишен гибкости, что создает проблемы при появлении у предприятия специфических требований к функциональности программного обеспечения

В редких случаях может потребоваться изменение производственных процессов предприятия для их соответствия некоторым требованиям ERP-системы;

Стоит также отметить высокую стоимость внедрения подобной системы на предприятии;

Продление клиентской лицензии на программное обеспечение зачастую осуществляется платно, что означает появление очередной статьи расходов предприятия;

Техническая поддержка фирмы-поставщика программного обеспечения нередко вводит в ситуацию путаницу в виду некомпетентности операторов call-центра.

Часто политика компании предоставляет слишком узкие полномочия сотрудникам в сфере информационной безопасности, в то время, как работа с

интерфейсом информационной системы почти неизбежно связана с чтением и модификацией хранимой на сервере информации.

Одной из самых частых причин неудачного внедрения ERP-системы является отсутствие у этой системы гибкости и механизма адаптации, или подстройки, к некоторым типам данных и производственным процессам предприятия;

ERP-системы сложны как в эксплуатации, так и в освоении;

Некорректная работа одного из модулей ставит под угрозу краха работу всей системы;

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

Интеграция системы на уровне корпорации снижает и её гибкость, т.к. для полноценного функционирования системы необходимо её одинаковое функционирование во всех филиалах компании, что невозможно в случае внедрения некоторых новшеств в филиале;

Глубокая интеграция ERP-системы со временем затирает границы между зонами ответственности;

На предприятиях военно-промышленного комплекса эффективность системы нивелируется требованиями к оперативному контролю, защите секретной информации и необходимостью проставления личной подписи сотрудников на множестве бланков;

Взаимодействие предприятия с партнерами усложняется в случае, если они используют другую систему, либо ту же систему другой версии

В случае, если эксплуатация информационной системы подразумевает регулярное выполнение операций над разнородными данными, её построение следует проводить, опираясь на концепцию «хранилища данных»

В тех же условиях, но при глобальном характере работы системы, фокус

проектировщиков во время разработки информационной системы смещается в сторону выбора объектно-ориентированных ЭВМ.

Максимальной результативности внедрения автоматизированных информационных систем возможно достичь, проектируя систему с упором на оптимизацию бизнес-процессов организации, оперативную поддержку принятия решений, грамотный контроль управления ресурсами предприятия и т.д. Вследствие этого менеджмент в контексте АИС в основном направлен на использование экономико-организационных моделей, составленных с учетом известных структурно-динамических свойств бизнес-процесса.

Используемые модели в этом случае должны с высокой степенью достоверности имитировать характеристики моделируемой системы. Само собой, построение идеальной модели процесса невозможно, тем не менее в процессе проектирования АИС целесообразно учесть максимум из возможных параметров. Модели имеют собственную классификацию, подразделяясь на вероятностные и детерминированные, функциональные и структурные. Их многообразие необходимо учесть при проектировании информационной системы.

Для оценки качества автоматизированной информационной системы обычно анализируются её функциональные и вспомогательные составляющие. Функциональная составляющая системы дает представление о специфике её назначения, т.е. описывает способы выполнения конкретных процедур и ход процесса в целом. Такие системы идентифицируются по признакам управленческих функций, которые осуществляются в организации.

Подсистемы развития и обеспечения обеспечивают штатную работу отдельных элементов и подсистем АИС и всей системы в целом и позволяют совершенствовать, модернизировать и изменять систему, настраивать ее на решение новых классов задач, связанных с обработкой экономической информации.

2.2 Функциональная модель системы

В ходе реализации программы интегрированной компьютеризации производства, предложенной в свое время ВВС для аэрокосмической промышленности США, была выявлена потребность в разработке методов анализа взаимодействия процессов в производственных системах. Для удовлетворения этой потребности была разработана методология IDEF0, которая в настоящее время принята в качестве федерального стандарта США. Методология успешно применялась в самых различных отраслях, продемонстрировав себя как эффективное средство анализа, проектирования и представления деловых процессов. В настоящее время методология IDEF0 широко применяется не только в США, но и во всем мире. В России IDEF0 успешно применялся в государственных учреждениях (к примеру, в Государственной Налоговой Инспекции), в аэрокосмической промышленности (при проектировании космодрома в Плесецке), в Центральном Банке и коммерческих банках России, на предприятиях нефтегазовой промышленности и предприятиях других отраслей.

В основе IDEF0 методологии лежит понятие блока, который отображает некоторую бизнес-функцию. Четыре стороны блока имеют разную роль: левая сторона имеет значение "входа", правая - "выхода", верхняя - "управления", нижняя - "механизма".

Взаимодействие между функциями в IDEF0 представляется в виде дуги, которая отображает поток данных или материалов, поступающий с выхода одной функции на вход другой. В зависимости от того, с какой стороной блока связан поток, его называют соответственно "входным", "выходным", "управляющим".

В IDEF0 реализованы три базовых принципа моделирования процессов:

- принцип функциональной декомпозиции;

- принцип ограничения сложности;

- принцип контекста.

2.3 Информационная модель системы

IDEF1X является методом для разработки реляционных баз данных и использует условный синтаксис, специально разработанный для удобного построения концептуальной схемы. Концептуальной схемой мы называем универсальное представление структуры данных в рамках коммерческого предприятия, независимое от конечной реализации базы данных и аппаратной платформы. Будучи статическим методом разработки, IDEF1X изначально не предназначен для динамического анализа по принципу "AS IS", тем не менее, он иногда применяется в этом качестве, как альтернатива методу IDEF1. Использование метода IDEF1X наиболее целесообразно для построения логической структуры базы данных после того, как все информационные ресурсы исследованы (скажем с помощью метода IDEF1) и решение о внедрении реляционной базы данных, как части корпоративной информационной системы, было принято. Однако не стоит забывать, что средства моделирования IDEF1X специально разработаны для построения реляционных информационных систем, и если существует необходимость проектирования другой системы, скажем объектно-ориентированной, то лучше избрать другие методы моделирования.

Существует несколько очевидных причин, по которым IDEF1X не следует применять в случае построения нереляционных систем. Во-первых, IDEF1X требует от проектировщика определить ключевые атрибуты, для того чтобы отличить одну сущность от другой, в то время как объектно-ориентированные системы не требуют задания ключевых ключей, в целях идентифицирования объектов. Во-вторых, в тех случаях, когда более чем один атрибут является однозначно идентифицирующим сущность, проектировщик должен определить один из этих атрибутов первичным ключом, а все остальные вторичными. И, таким образом, построенная проектировщиком IDEF1X-модель и переданная для окончательной реализации программисту является некорректной для применения методов объектно-ориентированной реализации, и предназначена для построения реляционной системы.

Хотя терминология IDEF1X практически совпадает с терминологией IDEF1, существует ряд фундаментальных отличий в теоретических концепциях этих методологий. Сущность в IDEF1X описывает собой совокупность или набор экземпляров похожих по свойствам, но однозначно отличаемых друх от друга по одному или нескольким признакам. Каждый экземпляр является реализацией сущности. Таким образом, сущность в IDEF1X описывает конкретный набор экземпляров реального мира, в отличие от сущности в IDEF1, которая представляет собой абстрактный набор информационных отображений реального мира.

Основным преимуществом IDEF1X, по сравнению с другими многочисленными методами разработки реляционных баз данных, такими как ER и ENALIM является жесткая и строгая стандартизация моделирования. Установленные стандарты позволяют избежать различной трактовки построенной модели, которая, несомненно, является значительным недостатком ER.

Рисунок 1 -схема сущностей проекта в нотации IDEF1X

3. ОПИСАНИЕ РЕЗУЛЬТАТОВ РАЗРАБОТКИ (ИССЛЕДОВАНИЯ)

3.1 Тестирование разработанной системы

Тестирование программного обеспечения -- это процесс исследования разрабатываемого программного продукта, целями которого являются:

? Верификация разрабатываемого программного обеспечения на предмет соответствия требованиям;

? Выявление ситуаций, в которых поведение программы становится некорректным или не соответствующим спецификации.

На сегодняшний день тестирование является неотъемлемой частью процесса разработки программного обеспечения. Тестирование производится не только в течение всего цикла разработки, но и также в течение практически всего периода эксплуатации разработанного программного продукта. Такая тесная связь разработки и тестирования, при правильном следовании всем правилам рабочего процесса, рано или поздно становится гарантом качества разрабатываемого программного обеспечения.

Качество определяется как совокупная характеристика исследуемого программного обеспечения с учётом следующих составляющих:

? Надёжность;

? Сопровождаемость;

? Практичность;

? Эффективность;

? Мобильность;

? Функциональность.

Состав и содержание документации, сопутствующей процессу тестирования, определяется стандартом IEEE 829-1998.

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

Рассмотрев аспект сопровождаемости данного проекта, можно сказать следующее: анализируемость программного кода хорошая. Важные особенности реализации имеют комментарии. Структура проекта небольшая и логичная. Исходя из вышеперечисленных особенностей можно смело заявить о том, что изменяемость в данном проекте легкая. Риск возникновения неожиданных эффектов не велик, легко может быть устранен. Удобство тестирования программы очень высокое, потому что данный проект разрабатывается в NetBeans 8.6, имеющем множество утилит автоматического тестирования.

В результате тестирования на практичность было выявлено следующее: Данный продукт имеет интуитивно понятный интерфейс, руководство пользователя имеется, ознакомиться с которым можно в пункте 5 данного отчета. Большинство пользователей в состоянии освоить данную программу и без документации. Случаев игнорирования действий пользователя выявлено не было.

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

Тестирование на мобильность предполагает наличие следующих параметров:

? Возможность программы работать в различных окружениях - разработанная информационная система полностью удовлетворяет данному требованию, так как сервер исполняется на кроссплатформенной java-машине, а клиент реализует web-интерфейс пользователя, что позволяет пользоваться клиентской частью даже с браузеров мобильных телефонов;

? Простота установки программного обеспечения - разработанная информационная система полностью удовлетворяет данному требованию, так как серверная часть развертывается довольно легко и быстро с использованием GlassFishServer 4;

? Дружелюбие по отношению к другим работающим программам - разработанная информационная система полностью удовлетворяет данному требованию, так как не вступает в конфликты с другим установленным ПО;

Тестирование разработанного программного средства на функциональность по параметру пригодности к использованию и правильности выполнения функций полностью удовлетворяет требованиям. Способность взаимодействия с другими программами не заложена в функционал, однако пересылка данных сервером осуществляется по стандартному протоколу SOAP, а потому есть возможность написания других клиентских приложений, которые успешно будут осуществлять взаимодействие. Тестирование по параметру безопасность удовлетворяет требованию, программа выполняет строго заявленный функционал.

3.2 Руководство пользователя

После запуска браузера перейдите в веб-интерфейс клиента пользователя (http://localhost:8080/). На экране отобразится главная страница сервиса (рисунок 2). При переходе на страницу «Ошибки» на экране отображается таблица с зарегистрированными в базе данных ошибками (рисунок 3). При необходимости пользователь может добавить новую ошибку и назначить ей исполнителя (рисунок 4). Также по мере выполнения задачи через меню редактирования можно дополнить её описание и прикрепить решение (рисунок 5). При ошибочном вводе ошибки её можно удалить с помощью меню удаления (рисунок 6).

Рисунок2 - Главнаястраница

Рисунок3 - Списокошибок

Рисунок4 - Страницадобавленияошибки

Рисунок 5 - Страницаредактированияошибки

Рисунок 6 - Страница удаления ошибки

ЗАКЛЮЧЕНИЕ

Цель данной курсовой работы заключалась в разработке веб-приложения с использованием клиент-серверной архитектуры.

Было установлено, что достижение цели сопряжено с выполнением следующих задач:

- Исследование предметной области;

- Изучение основ сетевого взаимодействия;

- Проектирование web-приложения;

- Разработка web-приложения.

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

Было проведено исследование предметной области, а также освещены основные понятия объектно-ориентированного программирования и языка программирования Java.

Была рассмотрена поставленная задача, а также были освещены основные способы достижения поставленной цели.

Подробно рассматривается проведенное моделирование разработанного сервиса в соответствии с условиями требований нотации IDEF0.

Приводится информационная модель разработанной системы.

Приводится текст основных файлов проекта, а также описывается их назначение. Листинги файлов, содержащих байт-код, либо служебные данные, генерируемые средой разработки автоматически, были опущены.

Работоспособность разработанного сервиса была протестирована, в результате чего не было выявлено каких-либо несоответствий.

По результатам выполнения работы все задачи можно считать выполненными, а значит цель - достигнутой.?

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Бройдо В. Л. Вычислительные системы, сети и телекоммуникации : учеб. пособие для вузов / В. Л. Бройдо, О. П. Ильина .- 4-е изд.- СПб. : Питер, 2008, 2011

2. Гринченко, Н.Н. Проектирование баз данных. СУБД MicrosoftAccess: Учебное пособие для вузов. / Н.Н. Гринченко и др. - М.: РиС, 2013. - 240 c.

3. Давыдов, С. IntelliJ IDEA. Профессиональное программирование на Java / С. Давыдов. - СПб.: BHV, 2005. - 800 c.

4. Истомин, Е. П. Высокоуровневые методы информатики и программирования / Е. П. Истомин, В. В. Новиков, М. В.Новикова. - СПб.: ООО "Адреевский издательский дом", 2006 г. - 228 с.: ил.

5. Колисниченко, Д.Н. PHP и MySQL. Разработка веб-приложений. Профессиональное программирование / Д.Н. Колисниченко. - СПб.: BHV, 2015. - 592 c.

6. Кубенский А.А. Структуры и алгоритмы обработки данных. Уч.пос. "БХВ-Петербург" 2004г.

7. Липаев, В. В. Методы обеспечения качества крупномасштабных программных средств / В. В. Липаев. - М.: СИНТЕГ, 2003. - 520 с.: ил.

8. Лукин, В.Н. Введение в проектирование баз данных / В.Н. Лукин. - М.: Вузовская книга, 2015. - 144 c.

9. Макгрегор, Дж. Тестирование объектно-ориентированного программного обеспечения/ Дж. Макгрегор, С. Дэвид. - К.: ООО “ТИД ДС”, 2002. - 432 с.: ил.

10. Макин, Дж.К. Проектирование серверной инфраструктуры баз данных Microsoft SQL Server 2005 / Дж.К. Макин. - М.: Русская редакция, 2008. - 560 c.

11. Мартишин, С.А. Проектирование и реализация баз данных в СУБД MySQL с использованием MySQLWorkbench: Методы и средства проектирования информационных систем и технологий. Инструментальные средства информационных систем: Учебное пособие / С.А. Мартишин, В.Л. Симонов,. - М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2012. - 160 c.

12. Машнин, Т.С. Web-сервисы Java. Профессиональное программирование / Т.С. Машнин. - СПб.: BHV, 2012. - 560 c.

13. Мюллер, Р.Д. Проектирование баз данных и UML / Р.Д. Мюллер. - М.: Лори, 2013. - 420 c.

14. Назаров С. В. Операционные среды, системы и оболочки. Основы структурной и функциональной организации / С. В. Назаров .- М. : КУДИЦ-ПРЕСС, 2007

15. Одинцов, И. Профессиональное программирование. Системный подход / И. Одинцов. - СПб.: BHV, 2004. - 624 c.

16. Паронджанов В.Д. Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации. "ДМК Пресс" , 2012г.

17. Преснякова, Г.В. Проектирование интегрированных реляционных баз данных: Учебное пособие / Г.В. Преснякова. - М.: КДУ , 2007. - 224 c.

18. Рублев В.С. под ред. В. А. Соколова Основы теории алгоритмов: учебное пособие. -М.: "Научный мир" 2008г.

19. Шпак, Ю.А. Проектирование баз данных. Просто как дважды два / Ю.А. Шпак. - М.: Эксмо, 2007. - 304 c.

20. Эмблер, С. Рефакторинг баз данных: эволюционное проектирование / С. Эмблер, П. Садаладж. - М.: Вильямс, 2007. - 672 c.?

ПРИЛОЖЕНИЕ

КлассAuthorsController.java

@Named(value = "authorsController")

@SessionScoped

public class AuthorsController implements Serializable {

@EJB

private SkillsFacadeskillsFacade;

@EJB

private AuthorsFacadeauthorsFacade;

private ArrayListskillsSelector;

public AuthorsController() {

this.author = new Authors(null, "", new Date());

}

private Authors author;

public Integer getId_Skill() {

return (this.author.getIdSkill() == null) ? 1 :this.author.getIdSkill().getIdSkill();

}

private ArrayListauthorsSelector = new ArrayList<>();

public ArrayListgetAuthorsSelector() {

authorsSelector = new ArrayList();

List<Authors>allAuthors = this.authorsFacade.findAll();

for (int i = 0; i< (allAuthors.size()); i++) {

Authors authors = allAuthors.get(i);

authorsSelector.add(new SelectItem(authors.getIdAuthor(), authors.getAuthorName()));

}

return authorsSelector;

}

public void setId_Skill(Integer id) {

this.author.setIdSkill(skillsFacade.find(id));

}

public Authors getAuthor() {

return this.author;

}

public int getNumberOfAuthors() {

return authorsFacade.findAll().size();

}

public List<Authors>getAllOfAuthors() {

return authorsFacade.findAll();

}

public String saveAuthor() {

this.authorsFacade.create(author);

return "authorsPage";

}

public String modAuthor(Authors author) {

this.author = author;

return "author_mod";

}

public String mod_yes_Author() {

this.authorsFacade.edit(this.author);

return "authorsPage";

}

public String delAuthor(Authors author) {

this.author = author;

return "author_del";

}

public String del_yes_Author() {

this.authorsFacade.remove(this.author);

return "authorsPage";

}

}

КлассIssuesController.java

@Named(value = "issuesController")

@SessionScoped

public class IssuesController implements Serializable {

@EJB

private AuthorsFacadeauthorsFacade;

@EJB

private IssuesFacadeissuesFacade;

private Issues issue;

/**

* Creates a new instance of SkillsController

*/

public IssuesController() {

this.issue = new Issues(null, "", "");

public Integer getId_Author() {

return (this.issue.getAuthorId() == null) ? 1 :this.issue.getAuthorId().getIdAuthor();

}

public void setId_Author(Integer id) {

this.issue.setAuthorId(authorsFacade.find(id));

public Issues getIssues() {

return this.issue;

}

public int getNumberOfIssues() {

return issuesFacade.findAll().size();

}

public List<Issues>getAllOfIssues() {

return issuesFacade.findAll();

}

public String saveIssue() {

this.issuesFacade.create(issue);

return "issuesPage";

}

public String modIssue(Issues issue) {

this.issue = issue;

return "issue_mod";

}

public String mod_yes_Issue() {

this.issuesFacade.edit(this.issue);

return "issuesPage";

}

public String delIssue(Issues issue) {

this.issue = issue;

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.