Обзор и использование 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

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