Использование WEB-сервисов в Java Standard Edition 8

Характеристика веб-службы как программа, к которой могут обращаться другие программы через Интернет. Анализ основного преимущества веб-службы. Описание особенностей Java Standard Edition. Анализ основных усовершенствований в Java Standard Edition 8.

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

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

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

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

2

ИСПОЛЬЗОВАНИЕ WEB - СЕРВИСОВ В JAVA STANDARD EDITION 8

Абузова Е.А.

Балаковский инженерно-технологический институт

Национального исследовательского ядерного университета МИФИ

Балаково, Россия

USING WEB-SERVICES IN JAVA STANDARD EDITION 8 Abuzova E.A.

Balakovo Engineering and Technological Institute of National Research Nuclear University MEPhI Balakovo, Russian Federation

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. Web - сервис

2. Java Standard Edition

3. Java Standard Edition 8

4. Web - сервис в Java SE 8

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

ВВЕДЕНИЕ

К моменту появления понятия «веб-сервисов» в мире уже существовали технологии, позволяющие приложениям взаимодействовать на расстоянии, где одна программа могла вызвать какой-нибудь метод в другой программе, которая при этом могла быть запущена на компьютере, расположенном в другом городе или даже стране. Все этого сокращенно называется RPC (Remote Procedure Calling - удаленный вызов процедур) [1].

В качестве примеров можно привести технологии CORBA, а для Java - RMI (Remote Method Invoking - удаленный вызов методов). И все вроде в них хорошо, особенно в CORBA, так как с ней можно работать на любом языке программирования, но чего-то все же не хватало. Вероятней всего, минусом CORBA является то, что она работает через какие-то свои сетевые протоколы вместо простого HTTP, который пролезет через любой firewall [1].

Идея веб-сервиса заключалась в создании такого RPC, который будет засовываться в HTTP пакеты. Так началась разработка стандарта. Базовые понятия этого стандарта:

? SOAP. Прежде чем вызвать удаленную процедуру, нужно этот вызов описать в XML файле формата SOAP. SOAP - это просто одна из многочисленных XML разметок, которая используется в веб-сервисах. Все, что мы хотим куда-то отправить через HTTP, сначала превращается в XML описание SOAP, потом засовывается в HTTP пакет и посылается на другой компьютер в сети по TCP/IP [1].

? WSDL. Есть веб-сервис, то есть программа, методы которой можно удаленно вызывать. Но стандарт требует, чтобы к этой программе прилагалось описание, в котором сказано, что «да, вы не ошиблись - это действительно веб-сервис и можно у него вызвать такие-то такие - то методы». Такое описание представляется еще одним файлом XML, который имеет другой формат, а именно WSDL. То есть, WSDL - это просто XML файл описания веб-сервиса и больше ничего [1].

Так вот, в Java появился такой API, как JAX-RPC. Это означает, что есть пакет с набором классов, которые инкапсулируют рассматриваемую технологию. JAX-RPC долго развивался от версии к версии и в конечном итоге превратился в JAX-WS. WS, очевидно, означает WebService. Далее появился еще JAX-RS для RESTful веб-сервисов.

1. Web - сервис

Веб-служба - это программа, к которой могут обращаться другие программы через Интернет (http). Например, есть функция, которая предоставляет текст в формате HTML. Цель приложения - это веб-браузер, который отображает результаты, и человек сможет легко прочитать этот текст на странице [2].

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

Основным преимуществом веб-службы является то, что приложения могут быть написаны на любом языке, но они могут обмениваться данными и обмениваться данными друг с другом через веб-службу. Программные приложения, написанные на разных языках программирования и работающие на различных платформах, могут использовать веб-службы для обмена данными через Интернет (HTTP). Это взаимодействие (например, между Java и Python, или приложениями Windows и Linux) связано с использованием открытых стандартов (XML, SOAP, HTTP) [2].

? SOAP (простой протокол доступа к объектам);

? UDDI (универсальное описание, обнаружение и интеграция);

? WSDL (язык описания веб-сервисов).

Рассмотрим виды веб-служб, в первую очередь, существуют два типа веб-служб, простой протокол доступа к объектам (SOAP) и репрезентативный перенос состояний (REST).

? Веб-служба SOAP принимает запрос в формате XML и генерирует вывод в формате XML.

? Веб-служба REST более универсальна и может принимать XML, а также JSON в качестве запроса и генерирует вывод в XML, а также в JSON или даже HTML [2].

2. Java Standard Edition

Java Platform, Standard Edition, сокращенно Java SE (ранее Java 2 Standard Edition или J2SE) - стандартная версия платформы Java 2, предназначенная для создания и исполнения апплетов и приложений, рассчитанных на индивидуальное пользование или на использование в масштабах малого предприятия. Не включает в себя многие возможности, предоставляемые более мощной и расширенной платформой Java 2 Enterprise Edition (J2EE), рассчитанной на создание коммерческих приложений масштаба крупных и средних предприятий [3].

Пакет java.lang содержит фундаментальные классы и интерфейсы, близко привязанные к языку и системе во время выполнения. Сюда входят корневые классы, которые формируют иерархию классов, типы, привязанные к определению языка, основные исключения, математические функции, классы поддержки многопоточности, функции безопасности, а также классы, позволяющие получить информацию относительно операционной системы, на которой выполняется программа [3].

Основные классы в java.lang:

?

Object - этот класс является корнем иерархии классов в Java;

?

5.0);

Enum - базовый класс для перечислимого типа (с версии J2SE

?

Java;

Class - класс является основным в подсистеме интроспекции

?

ClassLoader - абстрактный класс, определяет, как загружаются классы.

Приложение может создавать подклассы, расширяющие ClassLoader, реализуя его методы. Это позволяет загружать классы другими способами, нежели тот, которым выполняется обычная загрузка в системе времени выполнения Java;

? Throwable - класс является базовым для иерархии классов исключений;

? Error, Exception, RuntimeException - базовые классы для каждого подтипа исключений;

? Thread - класс, содержащий операции над потоками

исполнения;

? String - класс для представления строк и их значений;

? StringBuffer и StringBuilder - классы для работы со строками (StringBuilder с версии J2SE 5.0);

? Comparable - интерфейс для поддержки обобщённого сравнения и упорядочения объектов (с версии J2SE 1.2);

? Iterable - интерфейс для поддержки улучшенного цикла for (с версии J2SE 5.0);

? Process, Runtime, SecurityManager, System - выполняют «системные операции». Управляют динамической загрузкой классов, созданием внешних процессов, получением информации об окружающей среде (например, времени суток), и следят за выполнением политик безопасности;

? Math и StrictMath - содержат основные математические функции, такие, как вычисление синуса, косинуса и квадратного корня (StrictMath с версии J2SE 1.3);

? Классы-обёртки над примитивными типами, которые

превращают их в объекты;

? Классы исключений для основных исключительных ситуаций языка и среды исполнения.

Все классы из пакета java.lang автоматически подключаются в каждый исходный файл программы. Явное подключение не требуется [3]. java.lang.annotation - в этом пакете определен интерфейс Annotation, а также перечисления ElementType и RetentionPolicy.

java.lang.instrument - пакет определяет средства, которые могут быть использованы для добавления инструментария для разных аспектов выполнения программ. Он определяет интерфейсы Instrumentation и

ClassFileTransformer, а также класс ClassDefinition.

java.lang.management - пакет предоставляет поддержку управления виртуальной Машиной Java и исполняющим окружением. Используя средства пакета, вы можете просматривать и управлять различными аспектами выполнения программы.

java.lang.ref - предоставляет возможность взаимодействия со

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

java.lang.reflect - пакет java.lang.reflect обеспечивает механизм отражения - способность программного обеспечения к самоанализу (то есть получению информации об имеющихся в системе классах, их методах, полях и связях). Отражение - важная возможность, необходимая при использовании компонентов, называемых Java Beans [3].

3. Java Standard Edition 8

Выпуск релиза версии Java 8 состоялся в марте 2014 года. По сравнению с версией Java SE 7 вышедшей в 2011 году, в Java 8 добавлены новые возможности - полная поддержка специального синтаксиса - лямбда выражений, stream - потоки, ключевое слово default, новое API, JavaScript - движок и другие обновления [5].

Список нововведений:

? Интеграция поддержки Lisp-подобных лямбда-выражений ("замыкания"), развиваемых в рамках проекта Lambda. Расширений стандартных библиотек средствами для параллельного выполнения операций над потоками данных, нацеленных на упрощение написания кода для многоядерных процессоров;

? Поддержка компактных профилей для развёртывания на оборудовании с ограниченными ресурсами приложений, которым не требуются все компоненты платформы;

? Новая система сборки на основе Autoconf;

? Интеграция Nashorn, легковесного и высокопроизводительного движка JavaScript, работающий поверх виртуальной машины Java (JVM);

? Новый API для работы с датами и временем. Новые Calendar и Locale API;

? Повторяющиеся аннотации (Repeating Annotations), позволяющие применить один и тот же тип аннотации более одного раза в одном объявлении или применении типа;

? Тип аннотаций, предоставляющий возможность применения

аннотаций везде, где используются типы, а не только при объявлении;

? Новый пакет с классами java.util.stream, предоставляющий Stream API с поддержкой операций в стиле функционального программирования над потоками элементов;

? Увеличение производительности HashMaps в условиях

возникновения коллизий;

? Улучшение средств шифрования: Включение по умолчанию TLS 1.2 на стороне клиента. Усиление алгоритмов для шифрования с использованием паролей. Поддержка SNI (Server Name Indication) в JSSE Server для обеспечения доступа через шифрованное соединение к виртуальным хостам на одном IP. Поддержка хэширования SHA-224 и блочного шифра AEAD (Authenticated Encryption with Associated Data). Новый класс java.security.cert.PKIXRevocationChecker для настройки проверки отзыва сертификатов X.509. Поддержка аппаратного ускорения шифрования AES на процессорах Intel;

? Многочисленные улучшения в JavaFX, включая новые элементы управления DatePicker и TreeTableView, класс SwingNode для встраивания контента Swing, новая тема оформления Modena, пакет javafx.print с API для вывода на печать, класс WebView, класс ScheduledService, поддержка архитектуры ARM, существенное расширение средств для работы с 3Dграфикой (3D-формы, камера, освещение, субсцены, материалы, сглаживание);

? Включение в состав Java DB 10.10;

? В пакеты java.lang и java.util добавлены средства для параллельной сортировки массивов и функции кодирования/декодирования Base64 [5].

Oracle выпустила JDK 8, готовой к использованию реализации Java SE 8 Platform Specification. Эта версия включает самое крупное обновление модели программирования Java со времени выхода платформы в 1996 году. Пакет JDK 8 разрабатывался при активном участии сообщества OpenJDK Community.

Корпорация Oracle также анонсировала выход комплекса продуктов Oracle Java SE Embedded 8, использующих новые функции Java SE 8 и оптимизированных для встраиваемых систем категории от среднего до высшего класса. Новые версии Java SE 8 и Java ME 8 находятся на прямом пути сближения друг с другом.

Используя единую платформу Java 8 для встраиваемых устройств, настольных систем, серверов центра обработки данных и инфраструктуры облачных вычислений, клиенты смогут разворачивать приложения быстрее, обрабатывать и анализировать данные «на лету» и максимально оперативно реагировать на события [5].

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

Версия Java SE 8 является результатом совместной разработки инженеров Oracle и членов мирового сообщества разработчиков Java через OpenJDK Community и JCP.

Java SE 8 позволяет повысить эффективность труда разработчиков и значительно улучшить производительность приложений за счет уменьшения повторяющихся типовых частей программного кода (boilerplate code), улучшения функций коллекций и аннотаций, упрощения моделей параллельного программирования и оптимизации использования возможностей современных многоядерных процессоров [5].

Главными новинками комплекта средств разработки JDK 8 являются: поддержка лямбда - выражений, развиваемых в рамках проекта Project Lambda (JSR 335); механизм Nashorn JavaScript Engine; набор «компактных профилей» Compact Profiles; а также удаление области памяти "permanent generation" из виртуальной машины HotSpot JVM. А полный список новых функций и возможностей JDK 8 весьма широк.

Платформа разработки Oracle JDK 8 уже продемонстрировала рекордную производительность для четырехсокетных систем на Intelсерверах NEC и двухсокетных систем на серверах Oracle SPARC T5, показав выигрыш в производительности от 12% до 41% по сравнению с JDK 7 на той же конфигурации Oracle (результаты теста NEC; результаты теста Oracle) [5].

Новые функции и усовершенствования клиента Java также доступны как часть новейшей версии JavaFX в составе JDK 8. Нововведения и улучшения в JavaFX включают: встраиваемый стек специализированной графики; новые элементы управления пользовательским интерфейсом; новую тему оформления Modena; функции, позволяющие разработчикам встраивать контент Swing в приложения JavaFX; новые функции 3D-графики; и дополнительную поддержку HTML 5 [5].

Обратная совместимость Java SE 8 с предыдущими версиями платформы позволяет сохранить наработанные приемы разработки программного обеспечения Java и защитить инвестиции в технологии Java [5].

4. Web-сервис в Java SE 8

XML (расширяемый язык разметки) - это мета - язык разметки, широко используемый в настоящее время. XML разработан консорциумом World Wide Web в комитете, возглавляемом Джоном Босаком (Jon Bosak). В настоящее время XML широко используется для передачи данных между программами [4].

Модель обработки XML описывает шаги-операции, которые должно выполнить приложение для обработки полной XML; приложения, которые реализуют такую модель, принято называть XML-парсерами. Можно достаточно просто интегрировать любой XML-парсер в любые Javaприложения с помощью Java API for XML Processing (JAXP). JAXP позволяет приложениям разбирать и преобразовывать XML-документы с помощью API, который не зависит от определенной реализации XML-процессора. Благодаря plug-in- подобному механизму разработчики могут менять реализацию XMLпроцессора (XML-парсер) на другую без необходимости изменять код самого приложения [4].

Спецификация API Java Standard Edition 8:

? java.applet - обеспечивает классы, необходимые, чтобы создать апплет и классы, которые апплет использует, чтобы связаться с его контекстом апплета.

? java.awt - содержит все классы для того, чтобы создать пользовательские интерфейсы и для рисования графики и изображений.

? java.awt.color - обеспечивает классы для цветовых пространств.

? java.awt.datatransfer - обеспечивает интерфейсы и классы для того, чтобы передать данные между и в пределах приложений.

? java.awt.dnd - перетащите и Отбрасывание является жестом непосредственного управления, найденным во многих системах графического интерфейса пользователя, который обеспечивает механизм, чтобы передать информацию между двумя объектами, логически связанными с элементами представления в GUI.

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

? java.awt.font - обеспечивает классы и интерфейс, касающийся шрифтов.

? java.awt.geom - обеспечивает Java 2-D классы для определения и выполнения операций на объектах, связанных с двумерной геометрией.

? java.awt.im - обеспечивает классы и интерфейсы для входной платформы метода.

? java.awt.im.spi - обеспечивает интерфейсы, которые включают разработке входных методов, которые могут использоваться с любой средой выполнения Java.

? java.awt.image - обеспечивает классы для создания и изменения изображений. И другие.

ЗАКЛЮЧЕНИЕ

java standard edition

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. info JavaRush [Электронный ресурс] Веб-сервисы. // URL: http://info.javarush.ru/eGarmin/2015/03/14/Веб-сервисы-Шаг-1-Что-такое-вебсервис-и-как-с-ним-работать-.html(дата обращения 15.12.2017)

2. IMPRIUM [Электронный ресурс] Что такое веб - сервис ? // URL: https://imprium.ru/articles/web-service (дата обращения 15.12.2017)

3. WIKI [Электронный ресурс] Java Platform, Standard Edition// URL: https://www.wikiplanet.click/enciclopedia/RU/Java_Platform,_Standard_Edition (дата обращения 15.12.2017)

4. Java [Электронный ресурс] API Java™ для XML, Обрабатывающего (JAXP) // URL: http://spec-zone.ru/RU/Java/Docs/8/technotes/guides/xml/jaxp/index.html (дата обращения 15.12.2017)

5. ICTONLINE [Электронный ресурс] Новая версия Java SE 8 предлагает существенно обновленные модели программирования // URL: http://ict-online.ru/news/n103778// (дата обращения 15.12.2017)

Размещено на Allbest.ru

...

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

  • Изучение возможностей операционной системы Windows Server 2003 - ОС семейства Windows NT от компании Microsoft, предназначенной для работы на серверах. Анализ основных изданий ОС: Web Edition, Standard Edition, Еnterprise Edition, Datacenter Edition.

    презентация [3,4 M], добавлен 23.05.2010

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Краткое описание версий Windows XP: Professional Edition, Home Edition, Tablet PC Edition, Media Center Edition, Embedded, XP 64-bit Edition, XP Edition N, XP Starter Edition. Установка Windows XP. Характеристика интерфейса и нововведений Windows 7.

    контрольная работа [1,8 M], добавлен 14.03.2011

  • Принцип работы Java. Аплеты как особенность Java-технологии, характеристика методов их защиты. Модель безопасности JDK1.2 и концепция "песочницы". Иерархия криптографических сервисов, алгоритмов. Объектная организация криптографической подсистемы Java.

    реферат [54,8 K], добавлен 09.09.2015

  • Архитектура 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.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Основа пользовательского интерфейса. Возможности пакетов java.awt.geom, java.awt, классов java.awt.Graphics и java.awt.Graphics2D. Основные графические примитивы и работа с потоками. Листинг программы и составление композиции аффинных преобразований.

    методичка [525,3 K], добавлен 30.06.2009

  • Выполнение Java-программы. Набор программ и классов JDK. Объектно-ориентированное программирование в Java. Принципы построения графического интерфейса. Компонент и контейнер графической системы. Апплеты как программы, работающие в среде браузера.

    курсовая работа [42,3 K], добавлен 08.02.2011

  • Расширяемый язык разметки XML. Описание типа документа DTD. Значение XML и платформы Java. Обзор стандартных анализаторов DOM и SAX. Технология Java Servlet, Java Server Pages (JSP), JavaBeans. Общая функциональность программного продукта. Модель данных.

    курсовая работа [422,0 K], добавлен 21.02.2009

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Java DataBase Connectivity как платформенно-независимая технология, позволяющая из программы на Java получить доступ к любой SQL-совместимой базе данных, принцип ее работы и использование. Порядок построения данной системы, основные классы и интерфейсы.

    презентация [156,6 K], добавлен 21.06.2014

  • Java Script как язык управления сценарием отображения документа. Отличие world wide web от остальных инструментов для работы с Internet. Использование каскадных таблиц стилей в рамках разработки спецификации HTML. Элементы программы Netscape Navigator.

    контрольная работа [1,1 M], добавлен 02.12.2009

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

    презентация [1,0 M], добавлен 19.05.2014

  • Общее понятие о пакете "java.net". Логическая структура соединений через сокеты. Создание объекта Socket, соединение между узлами Internet. Способы создания потока. Алгоритм работы системы клиент-сервер. Листинг ServerForm.java, запуск подпроцесса.

    лабораторная работа [174,6 K], добавлен 27.11.2013

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

    курсовая работа [292,6 K], добавлен 17.09.2008

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Описание и установка интегрированной среды разработки Eclipse. Описание языка Java. Описание классов и методов, пакетов, использованных в программе, сервера и клиента. Разработка руководства пользователя для клиента и сервера. Пример работы чата.

    курсовая работа [443,5 K], добавлен 18.05.2015

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

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