Дипломная (вкр): Разработка программного продукта для мини-отеля для платформы Android

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Некоторые платформы предлагают аппаратную поддержку выполнения для Java. К примеру, микроконтроллеры выполняющие код Java на аппаратном обеспечении вместо программной JVM, а также основанные на ARM процессоры, которые поддерживают выполнение байткода Java через опцию Jazelle.

Основные возможности Java:

-       автоматическое управление памятью;

-       расширенные возможности обработки исключительных ситуаций;

-       богатый набор средств фильтрации ввода/вывода;

-       набор стандартных коллекций: массив, список, стек и т. п.;

-       наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);

-       наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

-       встроенные в язык средства создания многопоточных приложений;

-       параллельное выполнение программ.

Для разработки клиентской части программного комплекса выбрана платформа Android.(Андро́ид) - операционная система для коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов, нетбуков, смартбуков и других устройств, основанная на ядре Linux и собственной реализации Java от Google. Изначально разрабатывалась компанией Android Inc., которую затем купила Google. Впоследствии Google инициировала создание альянса Open Handset Alliance (OHA), который сейчас занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Android Native Development Kit позволяет портировать (но не отлаживать) библиотеки и компоненты приложений, написанные на С и других языках.

В 70,1 % смартфонов, проданных в четвёртом квартале 2012 года, была установлена операционная система Android. Первым устройством, работающим под управлением Android, стал разработанный компанией HTC смартфон HTC Dream (рис. 3.3) (официально выпущен сотовым оператором T-Mobile под названием T-Mobile G1), презентация которого состоялась 23 сентября 2008 года.

Рисунок 3.3 - Смартфон HTC Dream

Вскоре последовали многочисленные заявления других производителей смартфонов о намерении выпустить устройства на базе Android. В России первым Android-смартфоном поступившим в продажу (июль 2009 года) стал Highscreen PP5420 (рис. 3.4).

Рисунок 3.4 - Android-смартфон Highscreen PP5420

С выходом Android третьей версии (Honeycomb), ориентированной на планшеты, всё больше производителей стали объявлять и о выпуске планшетов на этой платформе. Также компания Google в сотрудничестве с разными гигантами мобильной индустрии выпускает собственные устройства в серии «Google Nexus». Именно эти устройства первыми получают обновления до новых версий.

Кроме смартфонов и планшетов, операционную систему Android устанавливают и на другие устройства. Так, в конце 2009 года появилась в продаже первая фоторамка, работающая на Android. В июне 2011 года итальянская компания Blue Sky анонсировала выпуск интеллектуальных наручных часов i’mWatch под управлением ОС Android. В августе 2012 года Nikon представила первую в мире фотокамеру, которая также работает на Android. В серии «Google Nexus» присутствуют не только смартфоны и планшеты, но и медиаплеер Nexus Q, работающий на Android.

Кроме того, портировали Android на ряд известных устройств, среди которых, например, смартфоны на платформе Windows Mobile HTC Touch Dual и HTC TyTN II, на которых Android был запущен в режиме эмуляции. Также было осуществлено полноценное портирование на такие устройства, как интернет-планшеты, работающие на Maemo - Nokia N810 и Nokia N900 (порт под названием Nitdroid), на смартфоны Nokia N9, работающий на платформе MeeGo, и HTC HD2, работающий на операционной системе Windows Mobile, на котором ОС Android можно запускать как с microSD-карты, так и с внутренней NAND-памяти. При этом установленная система имеет полную, ничем особо не ограниченную функциональность. Также Android портирован на архитектуру x86.

В октябре 2012 года исполнительный директор компании Ларри Пейдж сообщил о более 500 миллионов активированных смартфонов и планшетов на базе операционной системы Android и о ежедневной активации 1,3 миллиона устройств.

Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik, для которых был разработан формат установочных пакетов .apk. Для работы над приложениями доступно множество библиотек: Bionic (библиотека стандартных функций, несовместимая с libc); libc (стандартная системная библиотека языка Си); мультимедийные библиотеки на базе PacketVideo OpenCORE (поддерживают такие форматы, как MPEG4, H.264, MP3, AAC, AMR, JPG и PNG); SGL (движок двухмерной графики); OpenGL ES 1.0 ES 2.0 (движок трёхмерной графики); Surface Manager (обеспечивает для приложений доступ к 2D/3D); WebKit (готовый движок для Web-браузера; обрабатывает HTML, JavaScript); FreeType (движок обработки шрифтов); SQLite (легковесная СУБД, доступная для всех приложений); SSL (протокол, обеспечивающий безопасную передачу данных по сети). По сравнению с обычными приложениями Linux, приложения Android подчиняются дополнительным правилам: Content Providers - обмен данными между приложениями; Resource Manager - доступ к таким ресурсам, как файлы XML, PNG, JPEG; Notification Manager - доступ к строке состояния; Activity Manager - управление активными приложениями.

4. Разработка основных алгоритмов и структуры получаемых данных

4.1 Структурная схема проекта

Структурная схема автоматизированной информационной системы представлена на рисунке 4.1

Рисунок 4.1 - Структурная схема информационной системы обслуживания клиентов мини - отеля

Клиент, выбрав интересующие его услуги, переходит на страницу получения информации и заказа в приложении, реализующем клиентскую часть. В этот момент приложение формирует запрос к базе данных, указывая параметры отбора. Запрос отправляется по сети internet к серверу. Сервер обрабатывает запрос и формирует массив возвращаемых данных. Массив возвращается к клиентской части, где данные отображаются. Когда клиент совершает, заказ приложение формирует запрос к базе данных на добавление в неё новой информации. Клиентская часть администратора отеля периодически отправляет запросы к базе данных. Запрос отправляется по сети internet к серверу. Сервер обрабатывает запрос и формирует массив возвращаемых данных. Массив возвращается к клиентской части администратора, где новые данные отображаются в виде оповещения о действиях клиента.

4.2 Алгоритм получения данных

(англ. HyperText Transfer Protocol - «протокол передачи гипертекста») - протокол прикладного уровня передачи данных (изначально - в виде гипертекстовых документов). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.

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

Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI (унифицированный (единообразный) идентификатор ресурса). В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами (например, «куки» на стороне клиента, «сессии» на стороне сервера). Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования. Протокол прост в реализации, что позволяет легко создавать клиентские приложения.

Взаимодействие клиента и сервера по протоколу HTTP.

World Wide Web или просто Web - это сеть информационных ресурсов. Служба WWW - представляет собой множество независимых, но взаимосвязанных серверов и предназначена для обмена текстовой, графической, аудио и видео информацией. Работая с Web, пользователь последовательно соединяется с Web-серверами и получает информацию.построена по схеме "клиент-сервер". Взаимодействие клиента и сервера по протоколу HTTP показано на рис. 4.2

Рисунок 4.2 - Взаимодействие клиента и сервера по протоколу HTTP

В качестве клиента выступает браузер, который является также и интерпретатором HTML. Как интерпретатор, браузер в зависимости от команд (тегов) выполняет различные функции: размещение текста на экране, обмен информацией с сервером по мере анализа полученного HTML-текста и др.

Сервер HTTP обрабатывает запросы клиента на получение файлов, выполнение программ и др.

Протокол HTTP используется службой WWW для передачи Web-страниц. Tранспортным протоколом для HTTP является протокол TCP (один из основных протоколов передачи данных Интернета), причем сервер HTTP (сервер Web) находится в состоянии ожидания соединения со стороны клиента стандартно по порту 80 TCP, а клиент HTTP (браузер Web) является инициатором соединения.

В самом общем случае URL (стандартизированный способ записи адреса ресурса в сети Интернет) выглядит следующим образом:://user:password@host:port/path/file?paremeters#fragment

Отдельные поля URL имеют следующий смысл:

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

Взаимодействие между клиентом и сервером Web осуществляется путем обмена сообщениями. Сообщения HTTP делятся на запросы клиента серверу и ответы сервера клиенту.

Запросы и ответы выглядят следующим образом:

начальная строка

заголовок 1

...

заголовок NLF (пустая строка)

тело сообщения (может отсутствовать)

Формат начальной строки (start-line) клиента и сервера различаются. Заголовки бывают четырех видов:

-       общие заголовки (general-headers), которые могут присутствовать как в запросе, так и в ответе;

-       заголовки запросов (request-headers), которые могут присутствовать только в запросе;

-       заголовки ответов (response-headers), которые могут присутствовать только в ответе;

-       заголовки объекта (entity-headers), которые относятся к телу сообщения и описывают его содержимое.

В теле сообщения содержится собственно передаваемая информация. Тело сообщения представляет собой последовательность октетов (байтов). Тело сообщения может быть закодировано, например, для уменьшения объема передаваемой информации, при этом способ кодирования указывается в заголовке объекта Content-Encoding. Запрос от клиента к серверу состоит из строки запроса (request-line), заголовков (общих, запросов, объекта) и, возможно, тела сообщения.

Строка запроса:

<Команда HTTP> <Идентификатор запрашиваемого ресурса> <Версия HTTP>

Основные команды протокола HTTP:

Запрос информации об опциях соединения (например, методах, типах документов, кодировках), которые поддерживает сервер для запрашиваемого ресурса. Если идентификатор запрашиваемого ресурса - звездочка ("*"), то запрос предназначен для обращения к серверу в целом.

Позволяет получить информацию, связанную с запрашиваемым ресурсом. Если идентификатор запрашиваемого ресурса указывает на документ, то сервер возвращает содержимое этого документа (содержимое файла). Если запрашиваемый ресурс является приложением (программой), формирующим в процессе своей работы некоторые данные, то в теле сообщения ответа возвращаются эти данные. Если идентификатор запрашиваемого ресурса указывает на директорию (каталог, папку), то, в зависимости от настроек сервера, может быть возвращено либо содержимое директории (список файлов), либо содержимое одного из файлов, находящегося в этой директории (как правило, index.html). В случае запроса папки ее имя может указываться как с символом "/" на конце, так и без него. При отсутствии на конце идентификатора ресурса данного символа сервер выдает один из ответов с перенаправлением (с кодами статуса 301 или 302).

Разновидностями команды GET является "условный GET" ("conditional GET") и "частичный GET" ("partial GET"). Условный GET запрашивает передачу объекта, только если он удовлетворяет условиям, описанным в приведенных заголовках. Частичный GET запрашивает передачу только части объекта.

HEAD

Идентична команде GET, за исключением того, что сервер не возвращает в ответе тело сообщения.

POST

Используется для запроса, при котором адресуемый сервер принимает данные, включенные в тело сообщения (объект) запроса, и отправляет их на обработку приложению, указанному как запрашиваемый ресурс.

PUT

Тело сообщения, которое передается в запросе, сохраняется на сервере, причем идентификатор запрашиваемого ресурса будет идентификатором сохраненного документа.

Запрос на удаление ресурса, имеющего запрашиваемый идентификатор.

Используется для тестирования или диагностики. Получатель запроса (сервер Web) отправляет полученное сообщение обратно клиенту как тело сообщения ответа.

После получения и интерпретации сообщения запроса, сервер отвечает сообщением HTTP ответа.

Ответ сервера клиенту:

Первая строка ответа - это строка состояния (Status-Line):

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Код состояния (Status-Code) - это целочисленный трехразрядный код результата понимания и удовлетворения запроса. Поясняющая фраза (Reason-Phrase) - короткое текстовое описание кода состояния. Код состояния предназначен для обработки программным обеспечением, а поясняющая фраза предназначена для пользователей.

Первая цифра кода состояния определяет класс ответа. Последние две цифры не имеют определенной роли в классификации. Имеется 5 значений первой цифры:

1xx - Информационные коды - запрос получен, продолжается обработка.

xx - Успешные коды - действие было успешно получено, понято и обработано.

xx - Коды перенаправления - для выполнения запроса должны быть предприняты дальнейшие действия.

xx - Коды ошибок клиента - запрос имеет ошибку синтаксиса или не может быть выполнен.

xx - Коды ошибок сервера - сервер не в состоянии выполнить допустимый запрос.

4.3 Структура получаемых данных

Для передачи сообщений выбран формат данных JSON.(англ. JavaScript Object Notation) - текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.

Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается языконезависимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.

Если говорить о веб-приложениях, в таком ключе он уместен в задачах обмена данными как между браузером и сервером (AJAX), так и между самими серверами (программные HTTP-интерфейсы). Формат JSON также хорошо подходит для хранения сложных динамических структур в реляционных базах данных или файловом кэше.строится на двух структурах:

Источник: https://www.bibliofond.ru/detail.aspx?id=868914