Файл: Минобрнауки россии санктПетербургский государственный электротехнический университет лэти.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.12.2023
Просмотров: 251
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
16
3. Средства реализации
3.1 Используемые технологии
WordPress
WordPress – одна из самых популярных в мире информационных систем для обеспечения и организации процесса создания, редактирования и управления содержимым ( CMS ). Она предоставляет все необходимые функции для создания блога, новостного сайта. Эта современная платформа сориентирована на удобство использования, сетевые стандарты и, естественно, эстетическую привлекательность. WordPress бесплатен и свободен к распространению. Язык написания – РНР, в качестве базы данных используется My SQL, распространяется под универсальной общедоступной лицензией GNU.[6]
Достоинства WordPress: o большое сообщество разработчиков и хорошо структурированная документация; o
Информационная система позволяет создавать публикации при помощи сторонних программ. o
Поддерживает функции создания автоматически обрабатываемых списков обновлений RSS, Atom, trackback, pingback. o
Реализация «тем», как наборов файлов – шаблонов (на РНР), весьма заметно увеличивает скорость и гибкость. o
Существует возможность легко изменять внешний вид и способы вывода данных за счет поддержки «тем». o
Неисчерпаемые объемы библиотек «тем» и «плагинов» o
Доступна реализация сложных решений за счет заложенного потенциала архитектуры. o
Предлагается использование человеко-понятных URL.
17
Рисунок 3.1 - Рейтинг популярности CMS. [3]
Google maps
Google Maps - это лидер среди современных картографических сервисов, предоставляющих спутниковые интерактивные карты онлайн. По крайней мере лидер в области спутниковых снимков и по количеству разнообразных дополнительных сервисов и инструментов (Google Earth,
Google Mars, разнообразные погодные и транспортные сервисы, одно из самых мощных API).
Популярность Карт Google остается пожалуй одной из самых высоких из всех других картографических сервисов. Отчасти причина в том, что именно в Google Maps мы можем найти самые детализированные спутниковые фотографии для самых обширных регионов любых стран. С картами Google любой желающий может бесплатно посмотреть спутниковые фотографии Земли практически в любой точке мира[8].
18
JSON
Для предоставления данных о местjположении Google maps использует
JSON
JSON-текстовый формат обмена данными,основанный наJavaScriptи обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан
Дугласом Крокфордом. Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON [5].
JSON-текст представляет собой (в закодированном виде) одну из двух структур:
• Набор пар ключ: значение. В различных языках это реализовано как объект, запись, структура, словарь, хэш-таблица, список с ключом или ассоциативный массив. Ключом может быть только строка, значением
— любая форма.
• Упорядоченный набор значений. Во многих языках это реализовано как массив, вектор, список или последовательность.
Это универсальные структуры данных: как правило, любой современный язык программирования поддерживает их в той или иной форме.
Они легли в основу JSON, так как он используется для обмена данными между различными языками программирования.
В качестве значений в JSON могут быть использованы:
Объект — это неупорядоченное множество пар ключ:значение, заключённое в фигурные скобки «{ }». Ключ описывается строкой,
19 между ним и значением стоит символ «:». Пары ключ-значение отделяются друг от друга запятыми.
Массив (одномерный) — это упорядоченное множество значений.
Массив заключается в квадратные скобки «[ ]». Значения разделяются запятыми.
Число.
Литералы true, false и null.
Строка — это упорядоченное множество из нуля или более символов юникода, заключенное в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты «\», или записаны в кодировке UTF-8.
Следующий пример показывает JSON-представление объекта, описывающего человека. В объекте есть строковые поля имени и фамилии, объект, описывающий адрес, и массив, содержащий список телефонов. Как видно из примера, значение может представлять собой вложенную структуру.
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
20
HTML и
CSS
HTML- это язык разметки гипертекста (от англ. HyperText Markup
Language).
Данный язык применяется для создания веб-страниц. Он интерпретируется (обрабатывается) браузером и отображается в виде документа в удобной для человека форме.
HTML – это неотъемлемая составляющая и основа практически любой веб-страницы. Язык HTML в первую очередь выступает как средство логической разметки страницы. [9]
CSS – это язык описания внешнего вида документа, написанного с использованием языка разметки. Название произошло от англ. Cascading
Style Sheets — каскадные таблицы стилей.
Проще говоря, язык CSS предназначен для того, чтобы придавать необходимый внешний вид HTML-документам.
Придание внешнего вида документам HTML – это хоть и самый популярный, однако лишь частный случай применения языка CSS, т.к. с его помощью можно придавать вид и документам других типов: XHTML,
SVG и XUL.
PHP
PHP —скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. На сегодняшний момент поддерживается подавляющим большинством представителей хостингов [7].
21
3.2 Базы данных
Существует множество подходов к построению концептуальных моделей: графовые модели, семантические сети, модель «сущность-связь» и т.д. Самая популярная из вышеуказанных - это «сущность-связь» или по- другому называемая ER-моделью (Entity-Relationship).
Основными понятиями ER-модели являются сущность, связь, атрибут.
Сущностью называют любой действительный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах
ER-модели сущность представляется в виде прямоугольника, в верхней части которого находиться наименование данной сущности. При этом имя сущности является именем типа, а не отдельного экземпляра этого типа.
Пример сущности представлен на рисунке
Экземпляр сущности – это конкретный представитель cущности. Все экземпляры сущности должны быть различимы между собой. Сущности должны иметь свойства, которые будут уникальными для каждого экземпляра этой сущности. Множество из одного или нескольких атрибутов, которые определяют уникальность каждого экземпляра сущности, называют идентификатором (ключом). Каждая сущность должна иметь хоть один идентификатор. Если существует несколько атрибутов, каждый из которых однозначно определяет каждый экземпляр сущности, то из них на роль идентификатора выбирается любой, более подходящий на эту роль. Если сущность не имеет идентификатора, то следует ввести еще один атрибут, который будет отвечать за это. Довольно часто такие атрибуты именную «ID».
Атрибут – поименованная характеристика сущности, определяющая его свойства и принимающая одно значение множества [4]. Каждому атрибуту присваивается имя, которое обозначает его смысл и значение. Сами атрибуты отображаются внутри сущности в виде списка их имен. Сущность с атрибутами представлена на рисунке 3.2.
22
Имя атрибут 1 атрибут 2
… атрибут n
Рисунок 3.2 – Сущность с атрибутами
Ключ сущности – это неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности [4].
Если ключ состоит из нескольких атрибутов, то удаления любого из них нарушает уникальность. Сущность может иметь несколько различных ключей.
Ключевые атрибуты изображаются на диаграмме подчеркиванием (рисунок
3.3).
Имя
атрибут 1
атрибут 2
… атрибут n
Рисунок 3.3 - Пример атрибута с ключом
Связь – это графически изображаемая ассоциация, которую чаще всего устанавливают между двумя сущностями, но бывают случаи рекурсивной связи, когда связь существует между сущностью и ей же самой. В любой связи выделяются два конца, на каждом из которых указывается имя связи.
23
Существуют три основные типа связи:
Связь один-к-одному (1:1) – один экземпляр одной сущности связан с единственным экземпляром другой сущности, как показано на рисунке 3.4.
Рисунок 3.4 – Тип связи «один-к-одному»
Связь один-ко-многим (1:M) – один экземпляр одной сущности связан с одним или более экземпляром другой сущности, а каждый экземпляр второй сущности связан только с одним экземпляром первой (рисунок 4.5).
Рисунок 3.5 – Тип связи «один-ко-многим»
Связь многие-ко-многим (M:N) – один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан с одним или более экземпляром первой сущности (рисунок
3.6).
Рисунок 3.6 – Тип связи «много-ко-многим»
24
3.3 Базы данных в WordPress
В качестве базы данных WordPress использует MySQL
MySQL – это одна из самых популярных и самых распространенных
СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.[10]
WordPress изначально предусматривает разные таблицы для разного типа контента.
Существуют такие стандартные типы контента:
•
Записи (posts)
•
Страницы (pages)
•
Пользовательские типы записей (custom post types)
•
Вложения (attachments)
•
Ссылки (links)
•
Элементы меню (navigation menu items)
Эти типы контента имеют такие данные:
•
Категории (categories)
•
Метки (tags)
•
Пользовательские таксономии (custom taxonomies and terms)
•
Метаданные (post metadata)
Кроме того существует типы контента, хранящиеся в ином виде:
Виджеты (widgets)
•
Опции (options)
•
Пользователи (users)
25
•
Нестандартный контент (hardcoded content), который добавляют некоторые темы/плагины.
•
Сторонний контент (third party content) (например RSS)
Все эти типы контента хранятся в таблицах базы данных или в файлах настроек тем/плагинов. Каждый тип может быть представлен как отдельной записью в таблице, так и её частью. Кроме, того они могут быть связаны с данными в других таблицах.
26
Рисунок 3.7 - Структура базы данных WordPress.[4]
27
Почти каждая таблица так или иначе связана с другой. В таблице 3.1 продемонстрирована связь стандартных таблиц WordPress.
Таблица 3.1
Таблица
Данные
Связи с другими
таблицами
wp_posts
Записи, страницы, вложения, редакции, пользовательские записи wp_postmeta через post_id wp_term_relationships через post_id wp_postmeta
Метаданные записей, страниц и т.д. wp_posts через post_id wp_comments
Комментарии wp_posts через post_id wp_commentmeta
Метаданные комментариев wp_comments через comment_id wp_term_relationships Связи между таксономиями и записями, страницами и т.д. wp_posts через post_id wp_term_taxonomy через term_taxonomy_id
28 wp_term_taxonomy
Таксономии (включая категории и метки) wp_term_relationships через term_taxonomy_id wp_terms
Ваши категории, метки и термины пользовательских таксономий wp_term_taxonomy через term_id wp_users
Пользователи wp_posts через post_author wp_user_meta
Метаданные пользователей wp_users через user_id wp_options
Опции и настройки сайта
(устанавливаются в панели управления на странице настроек и в темах/плагинах)
Отсутвуют
3.4 Получение ключа Google Maps API.
Для использования сервисов Google Map сначала следует получить ключ
API. В работе используется Google Maps JavaScript API и Google Maps
Geocoding API, Google Places API Web Service, Google map Geolocation API.
Google map Geolocation API
отвечает за поиск месоположения на основе информации, передаваемой по сотовой связи и Wi-Fi.
Служба Google Maps Geocoding API обеспечивает геокодирование и обратное геокодирование адресов.
29
• Геокодирование – это процесс преобразования адресов (например, почтовых адресов) в географические координаты (широту и долготу), которые могут быть использованы для размещения маркеров на карте или указания ее положения.
• Обратное геокодирование – это процесс преобразования географических координат в адреса, понятные для пользователя.
Представленная в Google Maps Geocoding API служба обратного геокодирования также позволяет найти адрес по указанному идентификатору места.
С помощью Google Places API Web Service можно получить идентификаторы мест, которые однозначно указывают на различные места в базе данных Google Places и в Google Maps.
Google Maps JavaScript API предоставляет возможность динамического прямого и обратного геокодирования данных, указанных пользователем.
Для получения и включения API необходимо попасть в консоль разработчиков от компании Google https://console.developers.google.com/
Затем создать там проект, выбрать необходимые API, включить их, получить ключи для использования. После этого можно просматривать статистику использования того или иного API (рисунок 1.1)