Реализация сервиса хранения данных
Реализация экспериментального образца программного обеспечения сервиса федеративного хранилища для общественных данных. Организация мониторинга и взаимодействия программ администрирования БД с хранилищем через веб-сервисы по протоколам 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