The 1st lecture from the course "Design of Information Systems".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
This presentation deals with the evolution of object-relational mapping, its essence and goals. There is also an accent on challenges of ORM use, its benefits and disadvantages.
This presentation by Andrii Sidun (Software Engineer, GlobalLogic) was delivered at Java.io 3.0 conference in Kharkiv on March 22, 2016.
This presentation deals with the evolution of object-relational mapping, its essence and goals. There is also an accent on challenges of ORM use, its benefits and disadvantages.
This presentation by Andrii Sidun (Software Engineer, GlobalLogic) was delivered at Java.io 3.0 conference in Kharkiv on March 22, 2016.
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
15 октября 2011, Я.Субботник в Алматы
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
О докладе:
Яндекс.Почта сейчас – это большое ajax-приложение. Из доклада вы узнаете, как работает фронтенд почты изнутри, как загружаются данные, обновляется страница и происходит взаимодействие с пользователем, какой мы используем шаблонизатор и почему, как живут самые разные приложения (Яндекс.Подписки, История общения) в рамках одной почтовой платформы.
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"DataArt
Многие из нас используют текстовый формат обмена данными (JSON) для связи серверных и клиентских частей приложения. Как и многие другие текстовые форматы, JSON легко читается, может использоваться практически с любым языком программирования, для которых существует готовый код для создания и обработки данных в формате JSON. Но есть ли другие форматы обмена данными, которые могли бы быть полезными нам в процессе разработки веб приложений (и не только)?
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Я.Субботник в Новосибирске
О докладе:
Яндекс.Почта – это большое ajax-приложение. Из доклада вы узнаете, как работает фронтенд почты изнутри, как загружаются данные, обновляется страница и происходит взаимодействие с пользователем, какой мы используем шаблонизатор и почему, как живут самые разные приложения (Яндекс.Подписки, История общения) в рамках одной почтовой платформы.
The 3rd part of the 6th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 2nd part of the 6th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
More Related Content
Similar to Design of Information Systems. Lecture #1. XML
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
15 октября 2011, Я.Субботник в Алматы
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
О докладе:
Яндекс.Почта сейчас – это большое ajax-приложение. Из доклада вы узнаете, как работает фронтенд почты изнутри, как загружаются данные, обновляется страница и происходит взаимодействие с пользователем, какой мы используем шаблонизатор и почему, как живут самые разные приложения (Яндекс.Подписки, История общения) в рамках одной почтовой платформы.
Виктор Гунько "Трансфер данных: есть ли жизнь за пределами JSONa"DataArt
Многие из нас используют текстовый формат обмена данными (JSON) для связи серверных и клиентских частей приложения. Как и многие другие текстовые форматы, JSON легко читается, может использоваться практически с любым языком программирования, для которых существует готовый код для создания и обработки данных в формате JSON. Но есть ли другие форматы обмена данными, которые могли бы быть полезными нам в процессе разработки веб приложений (и не только)?
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Я.Субботник в Новосибирске
О докладе:
Яндекс.Почта – это большое ajax-приложение. Из доклада вы узнаете, как работает фронтенд почты изнутри, как загружаются данные, обновляется страница и происходит взаимодействие с пользователем, какой мы используем шаблонизатор и почему, как живут самые разные приложения (Яндекс.Подписки, История общения) в рамках одной почтовой платформы.
The 3rd part of the 6th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 2nd part of the 6th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 1st part of the 6th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 4th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 3rd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 1st part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 2-nd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
The 1-st lecture from the course "Java Core".
Chair of Information Net Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
2. Содержание курса
1. Текстовые данные
2. CSV
3. JSON
4. XML
5. Основные понятия
6. Особенности языка
7. DOM
8. SAX
9. SAX vs. DOM
10. StAX
11. JAXB
12. XPATH
13. XSLT
14. XQuery
3. Текстовые данные
• Freeform тексты сложно обрабатывать
автоматически
• Бинарные данные почти невозможно
читать простому смертному
Нужен компромисс: формат
представления данных, который будет
понятен и человеку, и машине в
(относительно) равной степени.
4. CSV
Формат предполагает использование
специальных символов-разделителей для
отделения значения двух полей
• Символы-разделители: . , ; t
• Одна строка хранит информацию об одном
объекте, следствие – таблицы «плоские»
• Опционально, первая строка – заголовок с
названием полей
5. JSON
Средство передачи объектов в текстовом
виде поверх протокола HTTP
•Простой
•Human-readable
•Нативная поддержка из JavaScript
Библиотеки для всех мыслимых платформ и
языков
•Есть возможность передавать
иерархические данные
8. XML
XML позволяет хранить структурированные данные любой
природы, сохраняя иерархическую структуру
■ Есть средства автоматической генерации, разбора и
верификации XML-документов
■ Поддерживается множество разных кодировок
■ Есть возможность использования пространств имён
■ Есть средства хранения бинарных данных в текстовом виде
(Base64)
■ Развитые средства для преобразования документов (XSLT,
XPATH, …)
9. XML
■ XML-документ – дерево
■ Другие абстракции –
элемент, атрибут и их
значения
■ В корне – всегда
единственный элемент
<?xml version="1.0" encoding="UTF-8"?>
<EmployeeData>
<Employee>
<FirstName></FirstName>
<LastName></LastName>
<Address
city=“”
street=“”
building=“”
apartment=“”
/>
</Employee>
</EmployeeData>
11. Основные понятия
■ Declaration
■ Element
■ Tag
■ Attribute
■ Data
■ CDATA
<?xml version="1.0"
encoding="utf-8"?>
<EmployeeData>
<Person>
<Name first="John”
last="Doe"/>
<Age>34</Age>
<Department>IT</Department>
</Person>
</EmployeeData>
12. Особенности языка
▪ Все файлы XML имеют структуру
(иерархическая модель данных).
▪ Основные элементы XML – узлы (nodes).
▪ Каждый элемент (узел) обязан иметь
открывающий и закрывающий тег.
▪ Теги XML не заданы с самого начала, вы
должны определить свои собственные
теги.
13. Особенности языка
▪ Элементы могут иметь атрибуты, значения
которых заключаются в кавычки.
В XML Учитывается регистр символов.
▪ Вся информация между начальным
и конечным тэгами – это данные,
и поэтому учитываются все символы
форматирования (пробелы, переводы
строк, табуляции).
▪ Имеются инструкции обработки файла и
комментарии.
14. DOM
Document Object Model – набор инструментов для
работы с XML-документами как деревьями
объектов
•Позволяет обращаться к произвольному
фрагменту дерева в любой момент времени
•Стандартизируется в W3C
15. SAX
Simple API for XML – API для последовательного
разбора потока xml-данных
•Последовательно обрабатывает поток
•В определённые моменты генерируются событие
(начало элемента, появление атрибута, конец
элемента…)
•Обработка выполняется внутри callback-функций
•Требует фиксированного (относительно
небольшого) объёма памяти для документов любого
размера
•Не позволяет посмотреть содержимое всего
документа целиком
16. SAX vs. DOM
SAX:
■ Документ не подвергается
структурным изменениям
■ Документ имеет большой
размер
DOM:
■ Документ подвергается
преобразованиям
■ Документы имеют
небольшой размер
■ Есть необходимость
просматривать документ в
разных направлениях
17. StAX
Streaming API for XML – эволюция подходов SAX и DOM
•Приложение самостоятельно «вытягивает» события из парсера
•Как и в SAX, поддерживается только чтение вперёд
•Добавляются возможности по управлению процессом разбора:
приостановить разбор, пропустить ненужный контент, etc.
18. JAXB
Java Architecture for XML Binding – набор инструментов для
(де)сериализации данных (из)в XML
•Использует аннотации для описания сериализуемых полей
•Типы данных XML отображаются на типы данных Java
•xjc позволяет сгенерировать по XML-схеме java классы
•schemagen генерирует схему по java классу
19. XPATH
XPATH – язык описания запросов к XML-дереву
•Позволяет получить значение элемента или атрибута по «пути» от
корня дерева
•Позволяет выполнять некоторые простейшие операции над
значениями (арифметические и строковые операции)
•Используется в XSLT
20. XSLT
Набор средств для преобразования XML-документов
•Используется в основном для изменения формата или фильтрации
существующих xml-документов
•Широко применяется для представления xml-данных в приятном для
чтения виде
21. XQUERY
Язык для обработки xml-данных.
•Ориентирован не на форматирование данных, а на обработку
(аналогичен языку SQL)