Описание исходной (входной) выходной информации




 

Входным документом является форма регистрации и авторизации пациента. В нее вносятся данные о пациенте: фамилия, имя, отчество, дата рождения, логин и пароль. (Рис. 1.3 и 1.3.1).

 

Рис. 1.3 Форма авторизации пациента.

Рис. 1.3.1 Форма регистрации пациента.

 

 

Перечень вводимой информации: назначение диагноза, поступление, выписанные лекарства, типы назначения, дата выписки пациента, ИД доктора и пациента. (Рис. 1.3.2)

 

 

Рис. 1.3.2 Форма для добавления назначений пациенту.

 

Перечень выводимой информации: история болезни определенного пациента. (Рис. 1.3.3).

 

Рис. 1.3.3 Информация о истории болезни пациента.

 

ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

Framework Spring Tool Suite

 

Spring Framework (или коротко Spring) — универсальный фреймворк с открытым исходным кодом для Java-платформы. [2]

Несмотря на то, что Spring не обеспечивал какую-либо конкретную модель программирования, он стал широко распространённым в Java-сообществе главным образом как альтернатива и замена модели Enterprise JavaBeans. Spring предоставляет бо́льшую свободу Java-разработчикам в проектировании; кроме того, он предоставляет хорошо документированные и лёгкие в использовании средства решения проблем, возникающих при создании приложений корпоративного масштаба.

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

 

Модули

Spring может быть рассмотрен как коллекция меньших фреймворков или фреймворков во фреймворке.

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

- Inversion of Control-контейнер: конфигурирование компонентов приложений и управление жизненным циклом Java-объектов.

- Фреймворк аспектно-ориентированного программирования: работает с функциональностью, которая не может быть реализована возможностями объектно-ориентированного программирования на Java без потерь.

- Фреймворк доступа к данным: работает с системами управления реляционными базами данных на Java-платформе, используя JDBC- и ORM-средства и обеспечивая решения задач, которые повторяются в большом числе Java-based environments.

- Фреймворк управления транзакциями: координация различных API управления транзакциями и инструментарий настраиваемого управления транзакциями для объектов Java.

- Фреймворк MVC: каркас, основанный на HTTP и сервлетах, предоставляющий множество возможностей для расширения и настройки (customization).

- Фреймворк удалённого доступа: конфигурируемая передача Java-объектов через сеть в стиле RPC, поддерживающая RMI, CORBA, HTTP-based протоколы, включая web-сервисы (SOAP).

- Фреймворк аутентификации и авторизации: конфигурируемый инструментарий процессов аутентификации и авторизации, поддерживающий много популярных и ставших индустриальными стандартами протоколов, инструментов, практик через дочерний проект Spring Security (ранее известный как Acegi).

- Фреймворк удалённого управления: конфигурируемое представление и управление Java-объектами для локальной или удалённой конфигурации с помощью JMX.

 

«Inversion of Control».

Центральной частью Spring является контейнер Inversion of Control, который предоставляет средства конфигурирования и управления объектами Java с помощью рефлексии. Контейнер отвечает за управление жизненным циклом объекта: создание объектов, вызов методов инициализации и конфигурирование объектов путём связывания их между собой.

Объекты, создаваемые контейнером, также называются управляемыми объектами (beans). Обычно конфигурирование контейнера осуществляется путём загрузки XML-файлов, содержащих определение bean’ов и предоставляющих информацию, необходимую для создания bean’ов.

«MVC».

Spring имеет собственную MVC-платформу веб-приложений, которая не была первоначально запланирована. Разработчики Spring решили написать её как реакцию на то, что они восприняли как неудачность конструкции (тогда) популярного Apache Struts, а также других доступных веб-фреймворков. В частности, по их мнению, было недостаточным разделение между слоями представления и обработки запросов, а также между слоем обработки запросов и моделью. [4]

Класс DispatcherServlet является основным контроллером фрэймворка и отвечает за делегирование управления различным интерфейсам, на всех этапах выполнения HTTP-запроса.

Struts, Spring MVC является фреймворком, ориентированным на запросы. В нем определены стратегические интерфейсы для всех функций современной запросно-ориентированной системы.

Цель каждого интерфейса — быть простым и ясным, чтобы пользователям было легко его заново имплементировать, если они того пожелают. MVC прокладывает путь к более чистому front-end коду. Все интерфейсы тесно связаны с Servlet API.

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

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

- HandlerAdapter: вызов и выполнение выбранного метода обработки входящего запроса;

- Controller: включен между Моделью (Model) и Представлением (View). Управляет процессом преобразования входящих запросов в адекватные ответы. Действует как ворота, направляющие всю поступающую информацию. Переключает поток информации из модели в представление и обратно;

- View: ответственно за возвращение ответа клиенту в виде текстов и изображений. Некоторые запросы могут идти прямо во View, не заходя в Model; другие проходят через все три слоя;

- ViewResolver: выбор, какое именно View должно быть показано клиенту;

- HandlerInterceptor: перехват входящих запросов. Сопоставим, но не эквивалентен сервлет-фильтрам (использование не является обязательным и не контролируется DispatcherServlet-ом);

- LocaleResolver: получение и, возможно, сохранение локальных настроек (язык, страна, часовой пояс) пользователя;

- MultipartResolver: обеспечивает Upload — загрузку на сервер локальных файлов клиента;

 

Spring MVC предоставляет разработчику следующие возможности:

- ясное и прозрачное разделение между слоями в MVC и запросах;

- стратегия интерфейсов — каждый интерфейс делает только свою часть работы;

- Интерфейсы тесно связаны с Servlet API;

- Высокий уровень абстракции для веб-приложений;

- В веб-приложениях можно использовать различные части Spring, а не только Spring MVC.

 

Доступ к данным.

Spring предоставляет свой слой доступа к базам данных и поддерживает все популярные СУБД (JDBC, iBatis / MyBatis, Hibernate, JDO, JPA, Oracle TopLink, Apache OJB, Apache Cayenne и т. д.).

Для всех этих фреймворков Spring предоставляет такие особенности:

- управление ресурсами — автоматическое получение и освобождение ресурсов базы данных;

- обработка исключений — перевод исключений при доступе к данным в исключения, Spring-а;

- транзакции — прозрачные транзакции в операциях с данными;

- распаковка ресурсов — получение объектов базы данных из пула соединений;

- абстракция для обработки BLOB и CLOB.

 

 

Управление транзакциями.

Фреймворк управления транзакциями в Spring привносит механизм абстракций для платформы Java. Основные возможности этих абстракций:

- работа с локальными и глобальными транзакциями;

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

- работа с точками сохранения в транзакциях.

 

IntelliJ IDEA

 

IntelliJ IDEA — интегрированная среда разработки программного обеспечения на многих языках программирования, в частности Java, JavaScript, Python, разработанная компанией JetBrains.

Первая версия появилась в январе 2001 года и быстро приобрела популярность, как первая среда для Java с широким набором интегрированных инструментов для рефакторинга [3], которые позволяли программистам быстро реорганизовывать исходные тексты программ. Дизайн среды ориентирован на продуктивность работы программистов, позволяя сконцентрироваться на функциональных задачах, в то время как IntelliJ IDEA берёт на себя выполнение рутинных операций.

Начиная с шестой версии продукта IntelliJ IDEA предоставляет интегрированный инструментарий для разработки графического пользовательского интерфейса. Среди прочих возможностей, среда хорошо совместима со многими популярными свободными инструментами разработчиков, такими как CVS, Subversion, Apache Ant, Maven и JUnit. В феврале 2007 года разработчики IntelliJ анонсировали раннюю версию плагина для поддержки программирования на языке Ruby [1].

 

Начиная с версии 9.0, среда доступна в двух редакциях: Community Edition и Ultimate Edition. Community Edition является полностью свободной версией, доступной под лицензией Apache 2.0, в ней реализована полная поддержка Java SE, Groovy, Scala, а также интеграция с наиболее популярными системами управления версиями. В редакции Ultimate Edition реализована поддержка Java EE, UML-диаграмм, подсчёт покрытия кода, а также поддержка других систем управления версиями, языков и фреймворков [5].

Поддерживаемые языки:

Java, JavaScript, CoffeeScript, HTML/XHTML/HAML, CSS/SASS/LESS, XML/XSL/XPath, YAML, ActionScript/MXML, Python, Ruby, Haxe, Groovy, Scala, SQL, PHP, Kotlin, Clojure, Си, C++.

 

NetBeans IDE

 

 

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

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

Последние версии NetBeans IDE поддерживают рефакторинг, профилирование, выделение синтаксических конструкций цветом, авто дополнение набираемых конструкций на лету и множество предопределённых шаблонов кода.

 

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

В сентябре 2016 года Oracle передала интегрированную среду разработки NetBeans в руки фонда Apache [7].

 

Возможности.

NetBeans IDE поддерживает плагины, позволяя разработчикам расширять возможности среды. Одним из самых популярных плагинов является мощный дизайнер отчётов iReport [8] (основанный на библиотеке JasperReports).

На идеях, технологиях и в значительной части на исходном коде NetBeans IDE базируются предлагаемые фирмой Sun коммерческие интегрированные среды разработки для Java — Sun Java Studio Creator, Sun Java Studio Enterprise и Oracle Solaris Studio (для ведения разработки на C, C++ или Фортран). Сравнительно недавно Sun стала предлагать эти среды разработки бесплатно для зарегистрировавшихся в Sun Developer Network (SDN) разработчиков, сама же регистрация на сайте бесплатна и не требует никаких предварительных условий, кроме согласия с лицензией CDDL.

NetBeans IDE доступна в виде готовых дистрибутивов (прекомпилированных бинарных файлов) для платформ Microsoft Windows, Linux, FreeBSD, Mac OS X, OpenSolaris и Solaris (как для SPARC, так и для x86 — Intel и AMD). Для всех остальных платформ доступна возможность скомпилировать NetBeans самостоятельно из исходных текстов.

NetBeans Platform — платформа для разработки модульных настольных Swing-приложений. NetBeans IDE содержит все, что нужно для разработки плагинов и приложений на основе NetBeans Platform.

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

NetBeans Platform предлагает многократно используемые сервисы и модули для настольных приложений, позволяя разработчикам сфокусироваться на логике приложения. Особенности платформы:

- управление дизайном приложения (меню, всплывающие окна);

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

- управление хранением данных;

- управление окнами;

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

 

Сборки NetBeans IDE.

Пользователи могут выбирать, какую сборку NetBeans IDE они хотят загрузить для работы с кодом.

NetBeans IDE Bundle for Web & Java EE [9] Сборка предоставляет инструменты для всех последних стандартов Java EE 6, включая новые: Java EE 6 Web Profile, Enterprise Java Beans (бины), сервлеты, Java Persistence API, веб-сервисы и аннотации. NetBeans также поддерживает JSF 2.0 (Facelets), JavaServer Pages (JSP), Hibernate, spring, и Struts-фреймворки. А также веб-серверы, такие, как GlassFish и Apache Tomcat.

NetBeans IDE Bundle for PHP. Начиная с версии 6.5 Netbeans поддерживает PHP. Сборка для PHP включает:

- подсветка синтаксиса, авто завершение кода, подсветка вхождений и ошибок;

- отладка кода xdebug;

- поддержка тестирования с PHP Unit и Selenium;

- поддержка PHP фреймворков Symfony (с версии 6.8) и Zend Framework (с версии 6.9);

- поддержка PHP 5.3 (с версии 6.8);

- поддержка Git начиная (с версии 7.1).

MySQL

 

MySQL [12] — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц.

Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle, OurDelta, Percona Server и MariaDB. Все эти ответвления уже существовали на момент поглощения компании Sun корпорацией Oracle.

 

Лицензирование.

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

Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку. Для свободного программного обеспечения Oracle предоставляет отдельное исключение из правил, явным образом разрешающее использование и распространение MySQL вместе с ПО, распространяемым под лицензией из определённого Oracle списка. [13]

 

Поддерживаемые платформы.

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista, Windows 7 и Windows 10.

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

 

Поддерживаемые языки программирования.

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk, Компонентный Паскаль и Tcl, библиотеки для языков платформы.NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.

MyODBC представляет собой драйвер ODBC (2.50) уровня 0 (с некоторыми возможностями уровней 1 и 2) для подсоединения совместимого с ODBC приложения к MySQL. MyODBC работает на всех системах Microsoft Windows и на большинстве платформ Unix.

 

MySQL Workbench

 

 

MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL. Является преемником DBDesigner 4 от FabForce.

MySQL Workbench предлагается в двух редакциях: [10]

- Community Edition — распространяется под свободной лицензией GNU GPL;

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

 

Поддерживаемые платформы.

MySQL Workbench 6.3CE: [3]

Windows 7/8/10, Windows XP, Mac OS X 10.5+, Ubuntu 10.04 32bit/64bit, 12.04 32/64bit, Fedora 12 32bit/64bit, Oracle Enterprise Linux 6 32bit/64bit, Red Hat Enterprise Linux 6 32bit/64bit, Gentoo.

 

Возможности программы:

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

- наглядный и функциональный механизм установки связей между таблицами, в том числе «многие ко многим» с созданием таблицы связей;

- Reverse Engineering — восстановление структуры таблиц из уже существующей на сервере БД (связи восстанавливаются в InnoDB, при использовании MyISAM — связи необходимо устанавливать вручную);

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

- возможность редактирования данных в таблице в визуальном режиме.

 

PostgreSQL

 

PostgreSQL (произносится «Пост-Грэс-Кью-Эл» [14]) — свободная объектно-реляционная система управления базами данных (СУБД).

Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.

 

Основные возможности.

Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:

- встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;

- скриптовые языки — PL/Lua, PL/LOLCODE, PL/Perl, PL/PHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl, PL/Scheme;

- классические языки — C, C++, Java (через модуль PL/Java);

- статистический язык R (через модуль PL/R).

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

Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя.

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

Триггеры определяются как функции, инициируемые DML-операциями. Например, операция INSERT может запускать триггер, проверяющий добавленную запись на соответствия определённым условиям.

Триггеры ассоциируются с таблицами. Множественные триггеры выполняются в алфавитном порядке.

В PostgreSQL имеется поддержка индексов следующих типов: B-дерево, хэш, R-дерево, GiST, GIN, BRIN. При необходимости можно создавать новые типы индексов. Индексы в PostgreSQL обладают следующими свойствами:

- возможен просмотр индекса не только в прямом, но и в обратном порядке — создание отдельного индекса для работы конструкции ORDER BY... DESC не нужно;

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

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

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

- планировщик запросов может использовать несколько индексов одновременно для выполнения сложных запросов.

 

PhpMyAdmin

 

phpMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер и не только осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.

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

Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ, Open Server.

Проект на данный момент времени локализован на более чем 62 языках.

Вывод

 

Проанализировав некоторые популярные продукты для разработки веб-приложения, я определился с выбором программного обеспечения и выбрал продукты Framework Spring Tool Suite 4.3.7 и MySQL Workbench 6.3 CE.

Spring Tool Suite упрощает разработку enterprise-приложения. Является самым популярным бесплатным фреймворком. Используются много различных модулей для разработки веб-приложения. IntelliJ IDEA – два слова почему я ее не выбрал, она платная. В бесплатной функционал очень ограничен. IDE NetBeans не такая популярная программа. В качестве реляционной базы данных я выбрал MySQL, т.к. это бесплатный сервер для соединения с базой данных и отлично работают в паре в Workbench. Workbench упрощает использование базы данных, потому используется графический интерфейс, тем самым можно управлять базой данных с помощью мыши. Без Workbench очень неудобно работать в командной строке, т.к. при допуске одной ошибки приходится делать заново.

 

РЕАЛИЗАЦИЯ

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: