Реализация сервиса хранения данных

Реализация экспериментального образца программного обеспечения сервиса федеративного хранилища для общественных данных. Организация мониторинга и взаимодействия программ администрирования БД с хранилищем через веб-сервисы по протоколам SOAP и REST.

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

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

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

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

Реализация сервиса хранения данных

Суханов Владимир Иванович д.т.н., доцент, Уральский федеральный университет, Екатеринбург, Россия

Описана программная реализация федеративного хранилища данных

Ключевые слова: база данных, веб-приложение, сервер

Implementetion of storage data service

Sukhanov Vladimir IvanovichDr.Sci.Tech., associate professor

Ural Federal University, Yekaterinburg, Russia

In the article we present the program implementation of the federation data storage

Keywords: data base, web-application, server

Введение

Одним из ключевых направлений развития информационных технологий являются облачные вычисления с возможностью доступа к данным, предоставляемым различными провайдерами на свободной основе. Такими данными являются публичные сведения о юридических лицах, включая реквизиты банков, справочники адресов, видов деятельности, нормативные документы и другие сведения. Эксперты Gartner считают, что стремление пользователей делиться своими данными и иметь к ним доступ с разных цифровых устройств приведет к тому, что к 2016 году треть всех данных будет храниться в «облаках» [1].

Материал статьи продолжает обсуждение проблемы реализации экспериментального образца программного обеспечения (ЭО ПО) сервиса федеративного хранилища для общественных данных, приведенной в [2]. Инструментальные средства реализации ЭО ПО обсуждались в работе [3]. Далее рассматриваются детали организации мониторинга и взаимодействия прикладных программ с хранилищем через веб-сервисы по протоколам SOAP и REST.

Концепции сервиса хранения данных

Представлением данных на уровне хранения в репозитории и передачи пользователю является XML-документ. Следовательно, описание структуры хранимых данных следует выполнить в формате XML Schema. В этом случае схемы представления информации в XML файле становится некоторым аналогом описания таблицы реляционной СУБД или класса объектов в объектно-ориентированных базах данных. Языком манипулирования данных является XQuery, позволяющий исполнять запросы на выборку и форматирование информации к XML-документам и таблицам баз данных реляционных СУБД.

Рисунок 1 - Общая схема взаимодействия компонент сервиса

Общая схема хранилища показана на рисунке 1. Учет всех предоставляемых сервисом ресурсов ведется в репозитории, выполненном в СУБД Postgre SQL. Для обслуживания репозитория имеется веб-приложение для просмотра и редактирования учетной информации, выполняемого администратором системы.

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

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

Разработка программы администрирования БД

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

Для разработки веб-приложения для администратора БД репозитория требуются следующие ресурсы:

· веб-браузер с поддержкой HTML 5;

· среда разработки приложений Netbeans 7.3.

Разработка включает следующие шаги.

1) В Netbeans создается новое веб-приложение с именем «adminrepo».

2) В Netbeans создаем сущности на основе таблиц базы данных. При этом создаем новое соединение с БД PostgreSQL, указывая адреса, имена, логины, пароли и другие параметры созданной ранее БД репозитория. Выбираем все созданные ранее таблицы. Размещаем классы в пакете «entities»

3) В Netbeans создаем JSF страницы на основе сущностей. Выбираем все созданные ранее сущности. Размещаем сгенерированные программы в следующих пакетах (папках):

1) facades - фасады созданных сущностей;

2) controlers - контроллеры создаваемых страниц сущностей;

3) pages - страницы xhtml для просмотра и редактирования содержимого таблиц.

После генерации кода классов и страниц вручную откорректировать следующие фрагменты:

1) В классах сущностей для более понятного восприятия имен объектов в списках выбора заменить тело метода toString на public String toString() {return <Ключевое поле записи> + ": " + <Имя экземпляра>;}

2) На страницах создания и редактирования сущностей для полей типа «text» заменить тип компонента ввода inputText на inputTextarea для редактирования длинных многострочных текстов.

3) Отредактировать названия полей в интерфейсах пользователя, заменив английские слова на слова русского языка в файле Bundle.properties.

2) Для проверки работоспособности приложения запустить его на исполнение из среды Netbeans или из браузера по адресу http://localhost:8080/adminrepo/.

Для защиты приложения администратора от несанкционированного доступа используется проверка полномочий пользователя Для этого в дескрипторе развертывания приложения web.xml добавляется ограничения безопасности:

<security-constraint>

<web-resource-collection>

<web-resource-name>repotxt</web-resource-name>

<url-pattern>/*</url-pattern>

<http-method>GET</http-method>

<http-method>POST</http-method>

</web-resource-collection>

<auth-constraint>

<role-name>admins</role-name>

</auth-constraint>

</security-constraint>

<login-config>

<auth-method>BASIC</auth-method>

<realm-name>file</realm-name>

</login-config>

<security-role>

<role-name>admins</role-name>

</security-role>

В дескрипторе glassfish-web.xml:

<security-role-mapping>

<role-name>admins</role-name>

<group-name>admins</group-name>

</security-role-mapping>

В консоли администратора сервера Glassfish нужно добавить пользователя с именем admin и его паролем в разделе Configurations - server-config - Security - Realms - File - Manage user.

Веб-сервисы позволяют связывать сервер и клиента поверх протокола HTTP. Веб-сервисы могут быть реализованы разными способами: JAX-WS веб-сервисы SOAP и JAX-RS веб-сервисы REST.

При разработке сервисов пересылки файлов используется специальная технология мультидоступа multipart. Для разработки демонстрационного REST-сервиса загрузки файлов на сервер в среде Netbeans нужно создать новое веб-приложение в категории Maven и дополнить его следующим текстом [4].

Файл index.jsp:

<form action="upload/file/upload" method="post" enctype="multipart/form-

data">

<p> Выбран файл : <input type="file" name="file" size="35" /> </p>

<input type="submit" value="Загрузить файл" />

</form>

Файл UploadFileService.java:

@Path("/file")

public class UploadFileService {

@POST

@Path("/upload")

@Consumes(MediaType.MULTIPART_FORM_DATA)

public Response uploadFile(

@FormDataParam("file") InputStream uploadedInputStream,

@FormDataParam("file") FormDataContentDisposition fileDetail) {

String uploadedFileLocation = "uploaded/"

+ fileDetail.getFileName();

writeToFile(uploadedInputStream, uploadedFileLocation);

String output = "Файл сохранен в : " + uploadedFileLocation;

return Response.status(200).entity(output).build();

}

}

Файл pom.xml дополнить строками:

<repositories>

<repository>

<id>maven2-repository.java.net</id>

<name>Java.net Repository for Maven</name>

<url>http://download.java.net/maven/2/</url>

<layout>default</layout>

</repository>

</repositories>

<dependencies>

<dependency>

<groupId>javax</groupId>

<artifactId>javaee-web-api</artifactId>

<version>6.0</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>com.sun.jersey</groupId>

<artifactId>jersey-server</artifactId>

<version>1.8</version>

</dependency>

<dependency>

<groupId>com.sun.jersey.contribs</groupId>

<artifactId>jersey-multipart</artifactId>

<version>1.8</version>

</dependency>

</dependencies>

программный федеративный хранилище данный

Файл web.xml дополнить строками:

<servlet>

<servlet-name>ServletAdaptor</servlet-name>

<servlet-class> com.sun.jersey.spi.container.servlet.ServletContainer

</servlet-class>

<init-param>

<param-name> com.sun.jersey.config.property.packages</param-name>

<param-value>com.user.upload</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class> javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>ServletAdaptor</servlet-name>

<url-pattern>/upload/*</url-pattern>

</servlet-mapping>

Для решения задач, стоящих перед ЭО сервиса, реализован сервис для пользователей, выполняющий следующие действия:

Получение перечня ресурсов, зарегистрированных на сервисе:

@GET

@Path("/getResources/")

@Produces(MediaType.APPLICATION_JSON)

List<Resource> getResources(@QueryParam("description") String

description);

Пример данного запроса:

http://localhost:8180/storage-

service/ConsumerService/getResources?description=test.

Для следующих запросов вызов аналогичен.

Получение перечня ресурсов, на которые подписан пользователь:

@GET

@Path("/getSubscribedResources/")

@Produces(MediaType.APPLICATION_JSON)

Set<Resource> getSubscribedResources(@QueryParam("email") String

email);

Получение перечня ресурсов, которыми владеет пользователь:

@GET

@Path("/getOwnedResources/")

@Produces(MediaType.APPLICATION_JSON)

Set<Resource> getOwnedResources(@QueryParam("email") String email);

Перечень запросов к ресурсу:

@GET

@Path("/getQueryForResource/")

@Produces(MediaType.APPLICATION_JSON)

List<Query> getQueryForResource(@QueryParam("resourceId") Long

resourceId);

Выполнение запросов к ресурсу. В запросе передаются параметры:

@GET

@Path("/executeQueryOnResource/")

@Produces(MediaType.TEXT_XML)

String executeQueryOnResource(@Context UriInfo info)

Заключение

Работы в области создания федеративных хранилищ в мировой практике находятся в начальном состоянии, что позволяет надеяться на получение в этом направлении полезных для практики результатов. Этому способствует готовность рынка свободных инструментальных средств разработки веб-приложений и веб-сервисов на языках программирования Java, Python, Ruby on Rails, широко используемых в облачных технологиях, и имеющийся широкий опыт использования этих инструментов для разработки веб-технологий для облаков.

Список литературы

1 Облачные вычисления (мировой рынок) [Электронный ресурс] // TAdviser. - М., 2012. - Статья: Облачные вычисления мировой рынок

2 Суханов В.И. Облачный сервис хранения данных / В.И. Суханов, О.Л. Чагаева // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета (Научный журнал КубГАУ) [Электронный ресурс]. - Краснодар: КубГАУ, 2013. - №02(86)

3 Суханов В.И. Обработка XML-документов в JAVA EE / В.И. Суханов/ Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета (Научный журнал КубГАУ) [Электронный ресурс]. - Краснодар: КубГАУ, 2013. - №02(86)

4 File upload example in Jersey. [Электронный ресурс].

References

1. Cloud computing (world market) [electronic resource] / TAdviser. - M., 2012.

2. V. Sukhanov. Cloud storage service / V.I. Sukhanov, O.L. Chagaev / Polythematic power electronic scientific journal of the Kuban State Agrarian University (Journal KubGAU) [electronic resource]. - Krasnodar KubGAU, 2013. - №02 (86)

3. V. Sukhanov. Processing of XML-documents in a JAVA EE / VI Sukhanov / Polythematic power electronic scientific journal of the Kuban State Agrarian University (Journal KubGAU) [electronic resource]. - Krasnodar KubGAU, 2013. - №02 (86)

4. File upload example in Jersey. [Electronic resource]

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

...

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

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

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

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

    курсовая работа [116,9 K], добавлен 20.07.2012

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

    дипломная работа [1,4 M], добавлен 13.04.2010

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

    дипломная работа [1,9 M], добавлен 05.04.2017

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

    дипломная работа [2,3 M], добавлен 22.07.2013

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

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

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

    дипломная работа [2,1 M], добавлен 20.07.2012

  • База данных как основа автоматизации. Разработка, описание и реализация программного обеспечения "Точность и правильность методов и результатов измерений для центральной заводской лаборатории ОАО "Акрилат". Листинг, исходные коды программы и базы данных.

    дипломная работа [1,0 M], добавлен 23.06.2012

  • Назначение, принципы построения и архитектура единой системы мониторинга и администрирования. Характеристика аппаратуры цифровой системы передачи данных ВТК-12. Принцип работы шлюза, создание его файлов конфигурации и реализация интерфейсных функций.

    дипломная работа [3,2 M], добавлен 28.10.2013

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Архитектура интерактивного сервиса Internet; программное обеспечение, применяющее протоколы передачи данных в глобальных сетях; аудио- и видеоконференции, сервисы для общения; принципы IP-телефонии. Формирование ведомости зарплаты средствами MS Excel.

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

  • Общие сведения о платформе Microsoft NET Framework. Разработка приложения "Поставка и реализация программного обеспечения", содержащего базу данных о каталогах адресов в Internet. Описание логической структуры. Требования к техническому обеспечению.

    курсовая работа [2,4 M], добавлен 28.06.2011

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

    дипломная работа [2,1 M], добавлен 20.12.2015

  • Основные проблемы проектирования реляционных баз данных "МВД". Инфологическое описание сущностей и атрибутов программного обеспечения. Разработка датологической модели данных и гарантирование ее безопасности и целостности. Реализация запросов на SQL.

    курсовая работа [3,0 M], добавлен 28.06.2011

  • Вечное хранение данных. Сущность и значение средства OLAP (On-line Analytical Processing). Базы и хранилища данных, их характеристика. Структура, архитектура хранения данных, их поставщики. Несколько советов по повышению производительности OLAP-кубов.

    контрольная работа [579,2 K], добавлен 23.10.2010

  • Разработка и программная реализация сайта и базы данных, наполнение базы данных тестовой информацией о товарах. Инструментальные средства создания сайта. Организация тестирования сайта, модуль визуализации интерфейса. Создание запросов в базе данных SQL.

    курсовая работа [1,4 M], добавлен 24.12.2012

  • Методы построения хранилища данных на основе информационной системы реального коммерческого предприятия. Основные аналитические задачи, для решения которых планируется внедрение хранилищ данных. Загрузка процессоров на серверах. Схемы хранения данных.

    контрольная работа [401,0 K], добавлен 31.05.2013

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

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

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

    дипломная работа [1,0 M], добавлен 18.11.2017

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

    дипломная работа [177,1 K], добавлен 24.06.2012

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