RU
EN   Информационное агентство INNOV.RU | Вторник, 06 декабря 2016 г. 23:00
Иннов: электронный научный журнал

Сервлетная реализация обработки файлов метаданных в создании хранилищ информационных ресурсов федерального уровня

Servlet implementation of the metadata file processing in the creation of repositories of information resources at the federal level


25.01.11 12:47
351

Выходные сведения: Маурина И.В. Сервлетная реализация обработки файлов метаданных в создании хранилищ информационных ресурсов федерального уровня // Иннов: электронный научный журнал, 2011. №1 (6). URL: http://www.innov.ru/science/tech/servletnaya-realizatsiya-obrabotki-/

Авторы:
Ирина Владимировна Маурина (ФГУ ГНИИ ИТТ «Информика»)

Authors:

Irina Maurina (SIIT & T "Informica")



Ключевые слова: сервлетная организация, файлы метаданных, хранилища информационных ресурсов, федеральное значение, информационные ресурсы.

Keyword: servlet organization, metadata files, storage of information resources of federal significance, information resources.

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

Annotation: In this paper the approach to practical aspects of implementation of these requirements - as the implementation of the servlet, which is handled by a metadata file (metadata.xml), contained in the archive without unpacking the ZIP file to a folder on the disk.

Сервлетная реализация обработки файлов метаданных в создании хранилищ информационных ресурсов федерального уровня

В основе реализации подходов современного развития открытых технологий создания, хранения и использования  информационных ресурсов [1] лежат следующие основные положения:

1.     Унификация описания и создания информационных ресурсов на основе локализованных версий международных спецификаций и стандартов.

2.     Централизация хранения на основе создания хранилищ информационных ресурсов федерального уровня.

3.     Унификация использования на основе, как программных средств общего пользования, так и специализированных, но открыто опубликованных для единообразного использования.

В данной работе рассматривается подход в практическом аспекте реализации данных требований, - как  реализация сервлета, с помощью которого обрабатывается файл метаданных (metadata.xml) [2], содержащийся в архиве, не распаковывая файл ZIP в папку на диске. Задача сервлета - выбирать из него содержимое некоторых элементов, имя которых содержит префикс пространства имён, и вывести их содержимое пользователю.

В классе сервлета реализованы методы [3], отвечающие:

·        за загрузку архива с метаданными на сервер;

·        вывод файла *.xml в поток;

·        обработку xml;

·        вывод результатов пользователю.

Рассмотрим тонкости реализации каждого из них:

1.     Для загрузки архива на сервер используется библиотека commons-fileupload-1.0.jar. Для передачи файла создаем поток класса DiskFileUpload и получаем данные из HTTP-запроса сервлета.  DiskFileUpload upload = new DiskFileUpload(); …

     List<FileItem> list = upload.parseRequest(httpServletRequest).

2.     Библиотека ввода/вывода Java содержит классы, поддерживающие чтение и запись потоков в компрессированном формате (ZipInputStream, ZipOutputStream). Для извлечения файлов ZipInputStream используется метод getNextEntry( ), который возвращает следующий ZipEntry, если он существует. В качестве более краткой альтернативы, можно читать файл, используя объект ZipFile, который имеет метод entries(), возвращающий Enumeration из ZipEntries.

           ZipInputStream zis = new ZipInputStream(actualFile.getInputStream());

           ZipEntry entry = zis.getNextEntry();

           while (!filename) {

                entry = zipInputStream.getNextEntry();

                if (entry == null) {

                    break;

                }

3.      Парсер (parser − программа синтаксического анализа, парсинга) для XML часто является ключевым элементом в обеспечении устойчивости и производительности приложения [4]. К традиционным методам парсинга XML относятся − Document Object Model (DOM) и Simple API для XML (SAX). Во многом они расходятся. DOM предоставляет для XML-документов простую объектную модель. DOM-парсер превращает XML-документ в несложный объект, который представляет все данные из XML-документа. Но DOM-парсинг очень требователен к ресурсам памяти. Для SAX проблема с памятью отсутствует. SAX-парсеры производят серию событий анализа [5]. Обработчик (handler) может регистрировать обратные вызовы (callbacks) для этих событий и затем применять определенную логику к данным, связанным с этими событиями. SAX работает быстро и эффективно, но нуждается в более сложной программной модели. Для реализации парсинга был выбран Xerces, поддерживающий SAX второго поколения, позволяющий корректно обрабатывать пространство имен [6].

//создаем парсер

 XMLReader parser = XMLReaderFactory.createXMLReader(PARS_NAME);
 parser.setContentHandler(parhandler);  
 // создаем XPath

 XPath xpath = XPathFactory.newInstance().newXPath();   

 // expression – запрос XPath на выборку нужных элементов
 parser.parse(xpath.evaluate(expression, entry));

Событие startElement() происходит, когда парсер SAX нашел тег начала  для элемента. Это событие имеет четыре параметра:

-  String uri - URI пространства имен.

-  String localName - квалифицированное имя элемента.

-  String qualifiedName - квалифицированное название элемента. Это префикс пространства имен, соединенный с локальным названием элемента.

-  org.xml.sax.Attributes attributes  - объект, содержащий все атрибуты для этого элемента. Этот объект предоставляет несколько методов для получения имён и значений атрибутов, а также количество атрибутов, которые данный элемент имеет [7].

4. В событии startElement пишется вывод найденных данных пользователю.

System.out.println("<br>");

          System.out.print(attrs.getValue(i));

System.out.println("<br>");

Методы сервлета выполняются поочередно и по завершению пользователь получает на экран найденные данные, если таковые есть [8].



Библиографический список


1. Кошкарев А.В. Пространственные метаданные и геопорталы как средства интеграции геоинформационных ресурсов и сервисов // Известия Российской академии наук. Серия географическая. 2009. № 1. С. 121-123.

2. Рычков А.Ю. Управление бизнес-процессами в системах, основанных на метаданных // Вестник Пермского университета. Серия: Математика. Механика. Информатика. 2009. № 3. С. 153-156.

3. Шибанов С.В., Мезенков А.А., Макарычев П.П. Применение метаданных в адаптивных информационных системах клиент-серверной архитектуры // Труды международного симпозиума Надежность и качество. 2010. Т. I. С. 120-125.

4. Попов Д.Оптимизирующие парсер-комбинаторы // Практика функционального программирования. 2010. Т. 5. № 5. С. 115-131.

5. Камилов М.М., Ахатов. Cистема контроля достоверности текстовой информации на основе n-граммных парсинговых моделей // Проблемы информатики. 2010. № 1. С. 42-51.

6. Попов Д. Оптимизирующие парсер-комбинаторы // Практика функционального программирования. 2010. Т. 5. № 5. С. 115-131.

7. Зайцев Д.А. Абонентское компьютерное обслуживание – стоит ли овчинка выделки? // Будущее технической науки. Тезисы докладов VIII Международной молодежной конференции. – Н. Новгород, 2009. С. 71-72.

8. Солдатов А.А., Андреев В.В. Организация интернет-магазина на многоагентной платформе // Системы управления и информационные технологии. 2010. Т. 40. № 2. С. 67-71.





  Яндекс.ВиджетINNOV

архив: 2013  2012  2011  1999-2011 новости ИТ гость портала 2013 тема недели 2013 поздравления