Обзор и использование war-архивов
Особенности языка Java. Классификация и основные возможности платформ. Java и Microsoft. Java и Android. Технические особенности веб-приложений. Структура, создание и применение war-архивов. Легкость разработки, тестирования и развертывания WAR-файлов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 11.03.2019 |
Размер файла | 23,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Обзор и использование war-архивов
Татаринцев Е.М.
Балаковский инженерно-технологический институт - филиал
федерального государственного автономного образовательного учреждения
высшего образования «Национальный исследовательский ядерный университет (МИФИ)»
введение
Web Archive или Web Application Archive - спецификация структуры данных, записанных в компьютерном файле, описывающая, как полное веб-приложение упаковывается в соответствии со спецификацией Java-сервлетов в файл в формате JAR или ZIP. Такие файлы имеют расширение «.war» и поэтому называются ещё «WAR-файлами».
Веб-приложение - клиент-серверное приложение, в котором клиентом выступает браузер, а сервером - веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети.
Компьютерная, или вычислительная сеть - система, обеспечивающая обмен данными между вычислительными устройствами. Для передачи информации могут быть использованы различные виды электрических и световых сигналов или электромагнитного излучения.
Сервлет является интерфейсом Java, реализация которого расширяет функциональные возможности программных компонентов вычислительной системы, выполняющих обслуживающие функции по запросу клиента, предоставляя ему доступ к определенным ресурсам и услугам. [1]
ZIP-файл - популярный формат архивации файлов и сжатия данных без потерь. Архив ZIP может содержать один или несколько файлов и каталогов, которые могут быть сжаты разными алгоритмами.
JAR-файл - это Java-архив, который представляет собой ZIP-архив, в котором содержится часть программы на объектно-ориентированном языке программирования Java
Главное же преимущество WAR-файлов заключается в лёгкости разработки, тестирования и развертывания. Версию развёрнутого приложения, так же, легко идентифицировать, а все J2EE-контейнеры поддерживают WAR-файлы. [2]
1. ЯЗЫК JAVA
Java - строго типизированный язык, построенный на принципах объектноориентированного программирования, разработанный компанией Sun Microsystems, в последующем приобретенной Oracle. Приложения Java обычно выполняют трансляцию в специальное промежуточное представление, в которое может быть переведена компьютерная программа, байт-код. Поэтому они могут работать на любой компьютерной архитектуре, с помощью основной исполняющей части системы Java - виртуальной машины Java. Дата официального выпуска - 23 мая 1995 года.
1.1 Основные особенности языка
Как уже было сказано ранее, программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java - программой, обрабатывающей байтовый код и передающий инструкции оборудованию как интерпретатор.
Достойнством подобного способа выполнения программ является полная независимость байт-кода от комплекса взаимосвязанных программ, предназначенных для управления ресурсами персонального компьютера и организации взаимодействия с пользователем, а так же аппаратной платформы компьютера. Это позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина.
Другой важной особенностью технологии Java является гибкая система безопасности, в рамках которой исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы, вызывают немедленное прерывание.
Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:
Применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы с возможностью сохранения версий класса в машинном коде.
Широкое использование платформенно-ориентированного кода в стандартных библиотеках.
Аппаратные средства, обеспечивающие ускоренную обработку байт-кода.
По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10 - 30 раз больше, чем программой на C/C++.
Также примечательно исследование, проведённое американской транснациональной публичной корпорацией Google Inc, согласно которому отмечается существенно более низкая производительность и большее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на языке программирования общего назначения C++.
Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу программной платформы .NET компанией Microsoft.
war файл платформа приложение
1.2 Классификация платформ
Внутри Java существует несколько основных семейств технологий:
Java SE - Java Standart Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь - для настольный систем.
Java EE - Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
Java ME - Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например, в мобильных телефонах, КПК, встроенных системах.
JavaFX - технология, являющаяся следующим шагом в эволюции Java как Rich Client Platform; предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.
Java Card - технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объемом памяти и возможностями обработки.
1.3 Основные возможности
Автоматическое управление памятью, или сборка мусора - одна из форм автоматического управления памятью, который периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложениями.
Расширенные возможности обработки исключительных ситуаций.
Богатый набор средств фильтрации ввода-вывода.
Набор стандартных коллекций: массив, список, стек и прочие.
Наличие простых средств создания сетевых приложений.
Наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы.
Встроенные в яз средства создания многопоточных приложений, которые потом были портированы на многие языки.
Унифицированный доступ к базам данных:
На уровне отдельных SQL-запросов - на основе JDBC, SQLJ.
На уровне концепции объектов, обладающих способностью к хранению в базе данных - на основе Java Data Object и Java Persistence API.
Поддержка обобщений.
Поддержка лямбд, замыканий, встроенные возможности функционального программирования.
Множество вариантов реализации многопоточных программ.
1.4 Java и Microsoft
Компанией Microsoft была разработана собственная реализация виртуальной машины Java, включавшаяся в состав различных операционных систем, начиная с Windows 98.
Microsoft Java Virtual Machine имела существенные отличия от Sun Java, во многом ломающие основопологающую концепцию переносимости программ между разными платформами:
Отсутствие поддержки программного интерфейса удаленного вызова процедур.
Отсутствие поддержки технологии стандартного механизма для запуска кода - Java Native Interface.
Наличие нестандартных расширений, таких, как средства интеграции Java и DCOM, расширения Component Object Model, работающих только на платформе Windows.
Тесная интеграция Java с DCOM и Win32 поставила под вопрос
кроссплатформенную парадигму языка. Впоследствии это явилось поводом для судебных исков со стороны Sun Microsystems к Microsoft. Суд принял сторону компании Sun Microsystems. В конечном счёте между двумя компаниями была достигнута договоренность о возможности продления срока официальной поддержки пользователей нестандартной Microsoft JVM до конца 2007 года.
В 2005 году компанией Microsoft для платформы .NET был представлен Javaподобный язык J#, не соответствующий официальной спецификации языка Java и исключенный впоследствии из стандартного инструментария разработчика Microsoft Visual Studio, начиная с Visual Studio 2008.
1.5 Java и Android
Язык Java активно используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код, для использования их регистровой виртуальной машины для выполнения программ, написанных на языке Java, Dalvik. Для такой компиляции используется дополнительный инструмент, а именно Android Software Development Kit, разработанный компанией Google.
Разработку приложений можно вести в среде Android Studio, NetBeans, в среде Eclipse, используя при этом плагин Android Development Tools, или IntelliJ IDEA. Версия JDK при этом должна быть 5.0 или выше.
8 декабря 2014 года Android Studio признана компанией Google официальной средой разработки под OC Android. [5]
2. ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ ВЕБ-ПРИЛОЖЕНИЙ
Существенное преимущество построения веб-приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента. Вместо того, чтобы писать разные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создаётся один раз для произвольно выбранной платформы и на ней разворачивается. Однако различная реализация языков разметки, описания внешнего вида и программных интерфейсов документов, а так же других спецификаций в браузерах может вызвать проблемы при разработке веб-приложений и последующей поддержке. Кроме того, возможность пользователя настраивать многие параметры браузера может препятствовать корректной работе приложения.
Менее универсальный подход заключается в использовании различных мультимедийных платформ для создания веб-приложений или мультимедийных презентаций, таких как Adobe Flash, Silverlight или Java-аплетов, для полной или частичной реализации пользовательского интерфейса. Поскольку большинство браузеров поддерживает эти технологии, Flash и Java-приложения могут выполняться без существенных проблем. Так как они предоставляют программисту больший контроль над интерфейсом, они способны обходить многие несовместимости в конфигурациях браузеров, хотя несовместимость между Java и Flash-реализациями на стороне клиента может привести к различного рода осложнениям.
На 2015 год технологию Adobe Flash не поддерживают Chrome, Safari и другие популярные браузеры. [3]
В связи с архитектурным сходством с традиционными клиент-серверными приложениями, в некотором роде «толстыми» клиентами, существуют споры относительно корректности отношения подобных систем к веб-приложениям. Альтернативный термин звучит как «Rich Internet Application», или «Насыщенное интернет-приложение - веб-приложение, загружаемое пользователем через Интернет, предназначенное для выполнения функций традиционных настольных приложений и работающее на устройстве пользователя.
Компьютерная программа - последовательность из набора кодов операции конкретного устройства или системы, которая обрабатывается и выполняется непосредственно центральным процессором или микропрограммами этой вычислительной машины. [4]
3. СТРУКТУРА WAR-АРХИВОВ
На рисунке 1 представлен пример структуры Web-Архива.
/index.html
/guestbook.jsp
/images/logo.png
/WEB-INF/web.xml
/WEB-INF/classes/org/wikipedia/Util.class
/WEB-INF/classes/org/wikipedia/MainServlet.class
/WEB-INF/lib/util.jar
/META-INF/MANIFEST.MF
Рисунок 1 - Пример структуры Web-Архива
Следует обратить внимание, что в каталоге «WEB-INF» находится так называемый дескриптор развёртывания с именем «web.xml», определяющий все сервлеты и другие свойства Web-приложения. Если приложение содержит только JSP-файлы, этот файл не строго обязателен.
Пример дескриптора развертывания web.xml изображен на рисунке 2:
<?xml version=?1.0? encoding=?UTF-8??>
<!DOCTYPE web-app
PUBLIC ?-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN? ?http://java.sun.com/j2ee/dtds/web-app_2_2.dtd?>
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>mypackage.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
<servlet-mapping>
<resource-ref>
<description>
Resource reference to a factory for javax.mail.Session instances that may be used for sending electronic mail messages, preconfigured to connect to the appropriate SMTP server. </description>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth> </resource-ref>
</web-app>
Рисунок 2 - Пример дескриптора развертывания web.xml
Директория /WEB-INF/classes находится в classpath ClassLoader. Эти java-файлы с расширением .class будут загружены, когда веб-приложение загрузится и начнет выполняться. Любые файлы JAR, находящиеся в каталоге /WEB-INF/lib, также будут помещены в classpath.
Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов. Для таких приложений технология Java Servlet определяет HTTP-специфичные сервлет классы.
Пакеты javax.servlet и javax.servlet.http обеспечивают интерфейсы и классы для создания сервлетов.
4. СОЗДАНИЕ WAR-АРХИВОВ
Создать WAR-архив можно следующими способами:
1. Паковщиком, входящим в состав J2EE SDK.
2. Выполнив в Apache Ant задачу «war».
3. Выполнив в Apache Maven команду «mvn clean install».
4. JAR-утилитой, входящей в J2SE. В этом случае, создавая архив WAR, вам следует проследить, чтобы структура каталогов вашего приложения соответствовала требуемой для формата WAR. Далее следует выполнить следующую команду в корневом каталоге вашего приложения: «jar cvfarchiveName.rar».
Apache Ant - вспомогательная компьютерная программа для автоматизации процесса сборки программного продукта. Является платформонезависимым аналогом утилиты make, автоматизирующей процесс преобразования файлов из одной формы в другую и записывающей все команды в XML-формате.
Apache Maven - программное обеспечение для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM, являющимся подмножеством XML.
5. ПРИМЕНЕНИЕ WAR-АРХИВОВ
Все J2EE-контейнеры поддерживают WAR-файлы.
Чтобы веб-сервер смог прочитать дескриптор развертывания и начал перенаправлять запросы на данное приложение, необходимо развернуть WAR-файл в контейнер. Одним из вариантов выполнения развёртывания является копирование WARфайла в autodeploy-каталог веб-контейнера.
WAR может быть подписан реквизитом электронного документа, или электронной цифровой подписью, так же, как и JAR-файл, чтобы подтвердить аутентичность кода.
Электронная подпись предназначена для определения лица, подписавшего электронный документ, и является подобием собственноручной подписи в случаях, предусмотренных законом. Применяется при совершении гражданско-правовых сделок, оказании государственных и муниципальных услуг, исполнении государственных и муниципальных функций, при совершении иных юридически значимых действий.
ЗАКЛЮЧЕНИЕ
Web Archive или Web Application Archive - формат файла, описывающий, как полное веб-приложение упаковывается в соответствии со спецификацией Java-сервлетов в файл в формате JAR или ZIP. Такие файлы имеют расширение «.war» и поэтому называются ещё «WAR-файлами».
Формат файла, или формат данных - спецификация программной единицы, позволяющей хранить и обрабатывать множество однотипных и логически связанных данных записанных в компьютерном файле.
Преимущества WAR-файлов:
Легкость разработки, тестирования и развертывания.
Версию развернутого приложения легко идентифицировать.
Все J2EE-контейнеры поддерживают WAR-файлы. [5]
WAR имеет специфическую структуру каталогов. Верхним уровнем каталога WAR является корень документа приложения. В корень документа записываются страницы JSP, клиентские классы, архивы и статические Web-ресурсы.
Корень документа содержит подкаталог по имени WEB-INF, в котором находятся следующие файлы и каталоги:
web.xml - дескриптор развертывания Web-приложения.
Файлы дескрипторов библиотек тегов.
classes - каталог, который содержит серверные классы - сервлеты, служебные классы и компоненты JavaBeans.
lib - каталог, который содержит архивы библиотек JAR.
СПИСОК ЛИТЕРАТУРЫ
1. Coward, D. Java Servlet Specification [Текст] / D. Coward, Y. Yoshida. - Palo Alto: Sun Microsystems, 2003. - 267 с.
2. Беллиньясо, М. Разработка Web-приложений в среде ASP.NET 2.0 [Текст] / М. Беллиньясо. - Москва: «Диалектика», 2007. - 640 с.
3. Олищук, А.В. Разработка Web-приложений на PHP 5 [Текст] / А.В. Олищук. - Москва: «Вильямс», 2006. - 352 с.
4. Хелмс, Г. Компьютеры: справочное руководство [Текст] / Г. Хелмс. - Москва: «Мир», 1986. - 416 с.
5. Википедия - свободная энциклопедия [Электронный ресурс]. - http://wikipedia.org . - (дата обращения: 12.12.2016).
Размещено на Allbest.ru
Подобные документы
Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.
курсовая работа [795,9 K], добавлен 14.12.2012Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.
курсовая работа [197,5 K], добавлен 19.11.2009Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.
курсовая работа [276,1 K], добавлен 19.07.2014Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.
курсовая работа [962,8 K], добавлен 13.01.2016Трансляция как процесс перевода программного кода из текстовой формы в машинные коды. Основные категории программ Java. Основные управляющие операторы. Объявление и инициализация переменных. Основные средства разработки приложений, написанных на Java.
презентация [938,2 K], добавлен 26.10.2013Преимущество использования программ, написанных на Java, требования к ним и настройки на клиентском ПК. Развертывание и последующее "автоматическое" обновление версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.
реферат [33,2 K], добавлен 16.05.2011Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.
курсовая работа [549,2 K], добавлен 23.12.2015Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Архитектура уровня команд платформы Java, формат файла класса Java. Компилятор ассемблероподобного языка, позволяющий создавать файлы классов, корректно обрабатываемые реальной JVM, поддерживающий все команды байт-кода Java и важнейшие возможности JVM.
курсовая работа [292,6 K], добавлен 17.09.2008