Разработка приложения 'Электронный помощник продавца-консультанта'
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
ГЛАВА 1. ОБЗОР И АНАЛИЗ
ПРОГРАММНЫХ СРЕДСТВ ИСПОЛЬЗУЕМЫХ В РОЗНИЧНОЙ ТОРГОВЛЕ
.1 Постановка задачи
.2 Мобильные технологии и
решения в торговле
.3 Анализ существующих
программных средств используемых в розничной торговле
.4 Современные средства
разработки программ для торговли
.5 Технология клиент-сервер
.6 Web-приложения
ГЛАВА 2. ПРОЕКТИРОВАНИЕ И
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ «ЭЛЕКТРОННЫЙ ПОМОЩНИК»
.1 Протокол передачи данных
.2 Язык разметки XML
.3 Формат обмена данными
между клиентом и базой данных
.4 Выбор средств реализации
.5 Ключевые особенности
Android
.6 Интерфейс пользователя
.7 Программная реализация
приложения
.8 Требования к аппаратным и
программным средствам
ЗАКЛЮЧЕНИЕ
Список
использованных источников и литературы
ВВЕДЕНИЕ
Применение продуктов сферы информационных технологий в розничной торговле
во многом предопределяет успешность развития торговой организации. Современные
информационно-технические продукты нацелены на корректировку и оптимизацию как
внутренних, так и внешних бизнес процессов. Наиболее важными являются
технологии автоматизации отношений с покупателями и налаживания непосредственно
торговой деятельности, во всех ее проявлениях.
Так как мы живем в условиях рыночных отношений, и количество торговых
организаций с каждым днем растет, то у меня возникла идея создания приложения,
которое могло бы упростить работу продавцу консультанту, назовём его
«Электронный помощник продавцу-консультанту». В крупных магазинах такого типа
представлен огромный ассортимент товара и помнить характеристики каждой единицы
очень сложно. С помощью приложения электронный помощник можно легко найти
описание определенного товара, посмотреть его количество, найти подобную модель
и с легкостью провести консультацию.
Целью данной дипломной работы является исследование, анализ и поиск пути
к совершенствованию коммерческой деятельности предприятий розничной торговли,
разработка приложения «Электронного помощник».
Объектом данной дипломной работы является ООО «Орбита С», Алатырский
филиал, магазин «ВАШ ДОМ».
Предметом - коммерческая деятельность ООО «Орбита С», Алатырского
филиала, магазина «ВАШ ДОМ».
ГЛАВА 1.
ОБЗОР И АНАЛИЗ ПРОГРАММНЫХ СРЕДСТВ ИСПОЛЬЗУЕМЫХ В РОЗНИЧНОЙ ТОРГОВЛЕ
1.1
Постановка задачи
Разработать приложение для операционной системы Android, которое могло бы подключаться к удалённой базе
данных. Приложение должно:
· обеспечивать корректный доступ к данным;
· обрабатывать пользовательские запросы;
· использовать как можно меньше аппаратных ресурсов.
Интерфейс программы должен быть понятен обычному пользователю.
1.2 Мобильные
технологии и решения в торговле
В современном мире мобильные технологии развиваются
настолько динамично, что на данный момент сложно даже привести пример той сферы
жизни, где они не участвуют. И бизнес не стал исключением. Использовать
мобильные решения не только в жизни, но и в организации своего дела - значит
быть современным.
Все больше компаний не только проявляет интерес к
использованию беспроводных технологий, но и с большим энтузиазмом их внедряет,
ведь мобильность в работе становится нужной, особенно в работе с большим
количеством покупателей или товаров. Мобильные технологии - это, прежде всего,
экономия времени и, конечно, денег. Покупая мобильные решения для
автоматизации, предприятие определенно выигрывает в борьбе за покупателя:
эффективность работы и скорость обслуживания увеличивается.
В каких сферах деятельности работают организации,
выбравшие для себя пусть мобилизации? Ответ прост - практически во всех.
Развитие и поддержание бизнеса, эффективность работы и снижение затрат важны
для любого предприятия.
Для предприятий ритейла важность использования
мобильных решений трудно переоценить, а стоимость оборудования окупается
увеличением капитализации и уменьшением денежных потерь.
В складской логистике также имеется широкий спектр
задач, решить которые быстро помогают мобильные решения: это и управление
склада, и быстрое получение актуальной информации о товаре, его местонахождении
и количестве, и оптимизация складских помещений. И это не полный спектр задач,
которые решает мобильная автоматизация.
Медицина, государственный сектор, организация
выставок, индустрия общественного питания, сервисные кампании, почта - для
каждой сферы деятельности найдется свое мобильное оборудование, предназначенное
для решения специфических задач.
В настоящий момент широкое применение в розничной торговле находят
информационно-аналитические системы для решения задач прогнозирования спроса,
планирования закупок, управления запасами, эффективного мерчандайзинга и т.п. Внедрение
информационных технологий (ИТ) связано с:
) технологической необходимостью - когда использование ИТ диктуется
требованием обеспечения сложных технологических операций (например, обработки
штриховых кодов). Такие же технологические потребности заставляют оптовые
торговые организации внедрять компьютерные программы для печати
товаросопроводительной документации, объем которой для оптовой торговли
значителен и без автоматизации практически невыполним.
) потребностью в средствах анализа эффективности - при наличии большого
числа однородных «производственных участков» (филиалы, менеджеры по продажам и
т. д.), результаты деятельности которых можно и нужно постоянно сопоставлять.
Благодаря внедрению информационных систем становится возможна оценка состояния
предприятия, быстрая ориентация в товарных и финансовых потоках, охват всех
стадий цикла движения товаров.
Активными темпами развиваются сегодня направления программных средств
самообслуживания клиентов (терминалы самообслуживания, информационные киоски,
использование прайс-чекеров и т.д.); ИТ-поддержка программ лояльности клиентов,
сбора и обработки персональных данных клиента, а также расширение
функциональности POS-терминалов за счет программной поддержки их функций.
Например, просмотр состояния складских остатков, визуальная идентификация
товара - ID Imaging, поддержка RFID-технологий при осуществлении платежа и т.п.
Они позволяют предлагать товары, оптимально отвечающие потребностям
покупателей, быстро обрабатывать, распределять заказы, а также контролировать
их выполнение, планировать поставки, прогнозировать спрос для оптимального
управления складскими запасами.
Популярность и признание моделей электронной коммерции и мобильных
устройств растет стремительными темпами, однако традиционный магазин продолжает
оставаться местом взаимодействия продавцов с покупателями, где они могут
предложить самые широкие покупательские возможности, и лучшим способом
сформировать позитивный образ бренда.
Именно поэтому и возникла идея написания приложения «Электронный помощник»,
т.к. оно в отличии от автономной системы электронный консультант не лишает
покупателя общения с продавцом, а просто помогает продавцу в его работе.
Приложение написано для одной из самых популярных операционных систем Android, оно соединяется по беспроводной
сети Wi-Fi с центральным сервером и базой данных товаров супермаркета.
Благодаря этому продавец может просмотреть на экране информацию о любом товаре
магазина, его ассортимент, информацию о проводимых акциях и освежив свою память
провести консультацию. Предоставление подробной информации о товаре, вывод ее
на экран производится после того, как пользователь введет свой запрос.
«Электронный помощник консультанту» - шанс повысить уровень обслуживания
клиентов, внести положительный вклад в имидж компании и повысить посещаемость
магазина и тем самым увеличить доход компании.
1.3 Анализ
существующих программных средств используемых в розничной торговле
Предприятия розничной торговли проявляют интерес к следующим областям
информатизации:
) системы анализа данных - для обработки значительного количества
информации с большей скоростью, которые позволяют быстро получать сводные
данные об эффективности работы всего предприятия (например, систему класса SAP,
Microsoft Dynamics AX, Oracle BI), анализировать всю информацию, имеющуюся в
торговой организации, независимо от того, в какой информационной системе она
накапливается. Основой этого решения является хранилище данных, которое
аккумулирует информацию из различных источников и, благодаря специальной структуре,
позволяет формировать отчеты гораздо быстрее, чем в ERP-системах. Исчезает
необходимость обращаться к программистам для получения отчетов с требуемыми
данными из разных систем, выгрузки этих данных в Excel, что значительно
повышает скорость анализа и качество принимаемых на его основе решений.
) системы управления отношениями с клиентами - CRM. В условиях
возрастающей конкуренции все большее число торговых предприятий заинтересовано
в том, чтобы лучше знать своих покупателей и эффективнее осуществлять политику
в области ассортимента, маркетинга и управления скидками. Кроме CRM-систем это
различные ИТ-продукты для взаимодействия с клиентом через SMS и
специализированные программы для работы с бонусными картами.
) системы управления сетями магазинов (SCM), которые остаются
востребованными торговыми компаниями (например, Visual Pos Manager (VPM), -
позволяющий из единого центра управлять всеми кассами и скидками розничной
сети, и который интегрируется с SAP Retail, Microsoft Dynamics AX, 1С, Oracle
Retail и т.д.). Среди критериев оценки системы можно назвать - учет
потребностей конкретного сегмента розницы, легкую масштабируемость при росте
организации, использование современных ИТ-инструментов разработки, отработанную
технологию внедрения и эксплуатации. Конкурентные преимущества:
функциональность, надежность, и отработанные технологии внедрения,
сопровождения и обучения пользователей.
) рабочие места кассиров - PosX, оснащенные кассовой программой, ведь
помимо стандартных операций по приему денег и выдачи сдачи, требуется
организовать прием безналичных платежей, обслуживание дисконтных и бонусных
карт.
) использование карманных компьютеров или коммуникаторов (КПК)- т.е.
мобильной торговли, системы RFID. Эти устройства выступают в качестве хранилища
информации о клиентах, товаре, расчетах и служат для занесения информации о
продажах. Данные регулярно синхронизируются с основной учетной системой
предприятия. Возможности: оформление заявок на продажу товара; мерчандайзинг;
расчет рекомендуемого количества товара для заказа; учет кассовых операций
возвратов, взаиморасчетов с клиентом; ведение нескольких фирм; система
индивидуальных скидок; напоминания об акциях, новинках и скидках; каталог
фотографий товаров; планирование посещений торговых агентов, контроль маршрутов
агентов, поддержка GPS, контроль даты и времени посещения с т.д. Система
повышает оперативность работы торговых агентов и экономит их время для
непосредственного общения с клиентами. Сбор, обработка и анализ информации в
сроки, максимально приближенные к режиму реального времени, позволяют
оперативно скорректировать работу компании, а также учесть изменения внешних
факторов раньше, чем это сделают конкуренты.
Основным программным средством используемым в розничной торговле является
программа «1С: Розница 8» на платформе «1С: Предприятие 8» - автоматизирует
регистрацию следующих операций:
· приход товаров от контрагента на склады магазина;
· реализация товаров и услуг контрагенту;
· перемещения товаров между магазинами, внутренними складами
магазинов, магазинами и складами торгового предприятия;
· торговля комплектами товаров, созданными как в момент продажи
товара, так и с предпродажной подготовкой комплекта;
· возвраты товаров от покупателей, включая возврат после
закрытия кассовой смены;
· инвентаризация товарных запасов;
· оформление приходных и расходных кассовых ордеров
непосредственно в магазинах;
· оформление чеков продажи, и по окончании смены сводного
отчета по контрольно-кассовой машине, с учетом возвращенных товаров в смену;
· перемещение денежных средств между магазинами, внутренними
кассами магазинов, магазинами и кассами торгового предприятия;
· использование процентных скидок по дисконтным картам
(фиксированные и накопительные скидки), скидки с разделением по магазинам,
скидки контрагентам, скидки на сумму чека, скидки по времени действия, по
количеству товара, по виду оплаты.
· поддержка торгового оборудования: фискальные регистраторы,
терминалы сбора данных, сканеры штрихкодов, электронные весы, дисплеи
покупателя, эквайринговые системы, ридеры магнитных карт.
"1С:Розница 8" может:
· работать с территориально распределенными информационными базами (РИБ).
При этом обеспечивается четкое разделение документооборота по магазинам, а в
центральном узле РИБ консолидируется информация по всем магазинам сети. С
помощью центрального узла можно быстро создать периферийный узел РИБ;
· автоматически обмениваться информацией с управляющей
информационной системой (back-office). В качестве управляющей системы для
прикладного решения "1С:Розница 8" может использоваться прикладное
решение "Управление торговлей". С помощью управляющей системы можно
создать неограниченное количество узлов в прикладном решении "1С:Розница
8", которые, в свою очередь, могут являться центральными узлами распределенной
информационной базы.
· использовать ордерные схемы перемещения, реализации и поступления товаров
на склады магазина. Ордерная схема предусматривает предварительную регистрацию
списка товаров, необходимых к принятию или отгрузке со склада, фактическая же
операция с товарами на складе регистрируется документами "Расходный ордер
на товары" или "Приходный ордер на товары".
· из центрального узла регулировать розничные цены для каждого
магазина. В то же время можно предоставить магазину право самому корректировать
розничные цены в зависимости от его расположения и наличия конкуренции.
1.4
Современные средства разработки программ для торговли
#
объектно-ориентированный язык программирования. Разработан в 1998-2001
годах группой инженеров под руководством Андерса Хейлсберга в компании
Microsoft как язык разработки приложений для платформы Microsoft .NET Framework
и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.# относится к
семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к
C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм,
перегрузку операторов (в том числе операторов явного и неявного приведения
типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы,
итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения,
комментарии в формате XML.
Переняв многое от своих предшественников - языков C++, Java, Delphi,
Модула и Smalltalk - С#, опираясь на практику их использования, исключает
некоторые модели, зарекомендовавшие себя как проблематичные при разработке
программных систем, например, C# в отличие от C++ не поддерживает множественное
наследование классов (между тем допускается множественное наследование
интерфейсов).# разрабатывался как язык программирования прикладного уровня для
CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это
касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или
отсутствие тех или иных выразительных особенностей языка диктуется тем, может
ли конкретная языковая особенность быть транслирована в соответствующие
конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно
обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем.
(Однако эта закономерность была нарушена с выходом C# 3.0, представляющего
собой расширения языка, не опирающиеся на расширения платформы .NET.) CLR
предоставляет C#, как и всем другим .NET-ориентированным языкам, многие
возможности, которых лишены «классические» языки программирования. Например,
сборка мусора не реализована в самом C#, а производится CLR для программ,
написанных на C# точно так же, как это делается для программ на VB.NET, J# и
др.
Достоинством подобного способа выполнения программ является полная
независимость байт-кода от операционной системы и оборудования, что позволяет
выполнять Java-приложения на любом устройстве, для которого существует
соответствующая виртуальная машина. Другой важной особенностью технологии Java
является гибкая система безопасности благодаря тому, что исполнение программы
полностью контролируется виртуальной машиной. Любые операции, которые превышают
установленные полномочия программы (например, попытка несанкционированного
доступа к данным или соединения с другим компьютером) вызывают немедленное
прерывание.
Часто к недостаткам концепции виртуальной машины относят то, что
исполнение байт-кода виртуальной машиной может снижать производительность
программ и алгоритмов, реализованных на языке Java. В последнее время был
внесен ряд усовершенствований, которые несколько увеличили скорость выполнения
программ на Java:
· применение технологии трансляции байт-кода в машинный код непосредственно
во время работы программы (JIT-технология) с возможностью сохранения версий
класса в машинном коде,
· широкое использование платформенно-ориентированного кода
(native-код) в стандартных библиотеках,
· аппаратные средства, обеспечивающие ускоренную обработку
байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами
фирмы ARM).
Идеи, заложенные в концепцию и различные реализации среды виртуальной
машины Java, вдохновили множество энтузиастов на расширение перечня языков,
которые могли бы быть использованы для создания программ, исполняемых на
виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой
инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft.
Java и Android
Язык Java активно используется для создания мобильных приложений под
операционную систему Android. При этом программы компилируются в нестандартный
байт-код, для использования их виртуальной машиной Dalvik. Для такой компиляции
используется дополнительный инструмент, а именно Software Development Kit,
который предназначен для x86-машины под операционной системой Linux. Его
разработали представители компании Google.
Разработку приложений можно вести в среде Eclipse, используя при этом
плагин - Android Development Tools (ADT) или в IntelliJ IDEA. Версия JDK при
этом должна быть 5.0 или выше.
Программы, написанные на Java, имеют репутацию более медленных и
занимающих больше оперативной памяти, чем написанные на языке С. Тем не менее,
скорость выполнения программ, написанных на языке Java, была существенно
улучшена с выпуском в 1997-1998 годах так называемого JIT-компилятора в версии
1.1 в дополнение к другим особенностям языка для поддержки лучшего анализа кода
(такие как внутренние классы, класс StringBuffer, упрощенные логические
вычисления и т. д.). Кроме того была произведена оптимизация виртуальной машины
Java - с 2000 года для этого используется виртуальная машина HotSpot. По
состоянию на февраль 2012 года, код Java 7 приблизительно лишь в 1.8 раза
медленнее кода, написанного на языке Cи.
Основные возможности:
· автоматическое управление памятью;
· расширенные возможности обработки исключительных ситуаций;
· богатый набор средств фильтрации ввода/вывода;
· набор стандартных коллекций: массив, список, стек и т. п.;
· наличие простых средств создания сетевых приложений (в том
числе с использованием протокола RMI);
· наличие классов, позволяющих выполнять HTTP-запросы и
обрабатывать ответы;
· встроенные в язык средства создания многопоточных приложений;
· унифицированный доступ к базам данных:
· на уровне отдельных SQL-запросов - на основе JDBC, SQLJ;
· поддержка обобщений;
· параллельное выполнение программ.
C++
компилируемый статически типизированный язык программирования общего
назначения.
С++ поддерживает такие парадигмы программирования как процедурное
программирование, объектно-ориентированное программирование, обобщенное
программирование, обеспечивает модульность, раздельную компиляцию, обработку
исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные
функции. Стандартная библиотека включает, в том числе, общеупотребительные
контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и
низкоуровневых языков. В сравнении с его предшественником - языком C, -
наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого
программирования.
Являясь одним из самых популярных языков программирования, C++ широко
используется для разработки программного обеспечения. Область его применения
включает создание операционных систем, разнообразных прикладных программ,
драйверов устройств, приложений для встраиваемых систем, высокопроизводительных
серверов, а также развлекательных приложений (игр). Существует множество
реализаций языка C++, как бесплатных, так и коммерческих и для различных
платформ. Например, на платформе x86 это GCC, Visual C++, Intel
C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие
языки программирования, в первую очередь на Java и C#.
Синтаксис C++ унаследован от языка C. Одним из принципов разработки было
сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле
надмножеством C; множество программ, которые могут одинаково успешно
транслироваться как компиляторами C, так и компиляторами C++, довольно велико,
но не включает все возможные программы на C.
кросс-платформенный инструментарий разработки ПО на языке программирования
C++. Есть также «привязки» ко многим другим языкам программирования: Python -
PyQt, PySide; Ruby - QtRuby; Java - Qt Jambi; PHP - PHP-Qt и другие.
Позволяет запускать написанное с его помощью ПО в большинстве современных
операционных систем путём простой компиляции программы для каждой ОС без
изменения исходного кода. Включает в себя все основные классы, которые могут
потребоваться при разработке прикладного программного обеспечения, начиная от
элементов графического интерфейса и заканчивая классами для работы с сетью,
базами данных и XML. Qt является полностью объектно-ориентированным, легко
расширяемым и поддерживающим технику компонентного программирования.
Существуют версии библиотеки для Microsoft Windows, систем класса UNIX с
графической подсистемой X11, iOS, Mac OS X, Microsoft Windows CE, QNX,
встраиваемых Linux-систем и платформы S60. В данный момент рассматривается
возможность внедрения поддержки Qt в Windows Phone.
Со времени своего появления в 1996 году библиотека Qt легла в основу
тысяч успешных проектов во всём мире. Кроме того, Qt является фундаментом
популярной рабочей среды KDE, входящей в состав многих дистрибутивов Linux.
Отличительная особенность Qt от других библиотек - использование Meta
Object Compiler (MOC) - предварительной системы обработки исходного кода (в
общем-то, Qt - это библиотека не для чистого C++, а для его особого наречия, с
которого и «переводит» MOC для последующей компиляции любым стандартным C++
компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие
понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более
лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов,
содержащие макрос Q_OBJECT, и создаёт дополнительный исходный файл на C++,
содержащий метаобъектный код.позволяет создавать собственные плагины и
размещать их непосредственно в панели визуального редактора. Также существует
возможность расширения привычной функциональности виджетов, связанной с
размещением их на экране, отображением, перерисовкой при изменении размеров
окна.комплектуется визуальной средой разработки графического интерфейса «Qt
Designer», позволяющей создавать диалоги и формы в режиме WYSIWYG. В поставке
Qt есть «Qt Linguist» - графическая утилита, позволяющая упростить локализацию
и перевод программы на многие языки; и «Qt Assistant» - справочная система Qt,
упрощающая работу с документацией по библиотеке, а также позволяющая создавать
кросс-платформенную справку для разрабатываемого на основе Qt ПО. Начиная с
версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator», которая
включает в себя редактор кода, справку, графические средства «Qt Designer» и
возможность отладки приложений.
.5 Технология
клиент-сервер
Клиент-серверная система характеризуется наличием двух взаимодействующих
самостоятельных процессов - клиента и сервера, которые, в общем случае, могут
выполняться на разных компьютерах, обмениваясь данными по сети.
Процессы, реализующие некоторую службу, например службу файловой системы
или базы данных, называются серверами (servers). Процессы, запрашивающие службы
у серверов путем посылки запроса и последующего ожидания ответа от сервера,
называются клиентами (clients) .
По такой схеме могут быть построены системы обработки данных на основе
СУБД, почтовые и другие системы. Удобно будет не просто рассматривать
клиент-серверную архитектуру, а сравнить ее с другой - файл-серверной.
В файл-серверной системе данные хранятся на файловом сервере (например,
Novell NetWare или Windows NT Server), а их обработка осуществляется на рабочих
станциях, на которых, как правило, функционирует одна из, так называемых,
"настольных СУБД" - Access, FoxPro, Paradox и т.п..
Приложение на рабочей станции "отвечает за все" - за
формирование пользовательского интерфейса, логическую обработку данных и за
непосредственное манипулирование данными. Файловый сервер предоставляет услуги
только самого низкого уровня - открытие, закрытие и модификацию файлов.
Обратите внимание - файлов, а не базы данных. Система управления базами данных
расположена на рабочей станции.
Таким образом, непосредственным манипулированием данными занимается
несколько независимых и несогласованных между собой процессов. Кроме того, для
осуществления любой обработки (поиск, модификация, суммирование и т.п.) все
данные необходимо передать по сети с сервера на рабочую станцию (см. рис. 1.1
сравнение файл-серверной и клиент-серверной моделей)
В клиент-серверной системе функционируют (как минимум) два приложения -
клиент и сервер, делящие между собой те функции, которые в файл-серверной архитектуре
целиком выполняет приложение на рабочей станции. Хранением и непосредственным
манипулированием данными занимается сервер баз данных, в качестве которого
может выступать Microsoft SQL Server, Oracle, Sybase и т.п..
Рис. 1.1 Сравнение файл-серверной и клиент-серверной моделей
Формированием пользовательского интерфейса занимается клиент, для
построения которого можно использовать целый ряд специальных инструментов, а
также большинство настольных СУБД. Логика обработки данных может выполняться
как на клиенте, так и на сервере. Клиент посылает на сервер запросы,
сформулированные, как правило, на языке SQL. Сервер обрабатывает эти запросы и
передает клиенту результат (разумеется, клиентов может быть много).
Таким образом, непосредственным манипулированием данными занимается один
процесс. При этом, обработка данных происходит там же, где данные хранятся - на
сервере, что исключает необходимость передачи больших объемов данных по сети.
Что дает архитектура клиент-сервер?
Посмотрим на данную архитектуру с точки зрения потребностей бизнеса.
Какие же качества привносит клиент-сервер в информационную систему?
Надежность
Сервер баз данных осуществляет модификацию данных на основе механизма
транзакций, который придает любой совокупности операций, объявленных как
транзакция, следующие свойства:
· атомарность - при любых обстоятельствах будут либо выполнены все операции
транзакции, либо не выполнена ни одна; целостность данных при завершении
транзакции;
· независимость - транзакции, инициированные разными
пользователями, не вмешиваются в дела друг друга;
· устойчивость к сбоям - после завершения транзакции, ее
результаты уже не пропадут.
Механизм транзакций, поддерживаемый сервером баз данных, намного более
эффективен, чем аналогичный механизм в настольных СУБД, т.к. сервер
централизованно контролирует работу транзакций. Кроме того, в файл-серверной
системе сбой на любой из рабочих станций может привести к потере данных и их
недоступности для других рабочих станций, в то время, как в клиент-серверной
системе сбой на клиенте, практически, никогда не сказывается на целостности
данных и их доступности для других клиентов.
Масштабируемость
Масштабируемость - способность системы адаптироваться к росту количества
пользователей и объема базы данных при адекватном повышении производительности
аппаратной платформы, без замены программного обеспечения.
Общеизвестно, что возможности настольных СУБД серьезно ограничены - это
пять-семь пользователей и 30-50 Мб, соответственно. Цифры, разумеется, представляют
собой некие средние значения, в конкретных случаях они могут отклоняться как в
ту, так и в другую сторону. Что наиболее существенно, эти барьеры нельзя
преодолеть за счет наращивания возможностей аппаратуры.
Системы же на основе серверов баз данных могут поддерживать тысячи
пользователей и сотни ГБ информации - дайте им только соответствующую
аппаратную платформу.
Безопасность
Сервер баз данных предоставляет мощные средства защиты данных от
несанкционированного доступа, невозможные в настольных СУБД. При этом, права
доступа администрируются очень гибко - до уровня полей таблиц. Кроме того,
можно вообще запретить прямое обращение к таблицам, осуществляя взаимодействие
пользователя с данными через промежуточные объекты - представления и хранимые процедуры.
Так что администратор может быть уверен - никакой слишком умный пользователь не
прочитает то, что ему читать не положено.
Гибкость
В приложении, работающем с данными, можно выделить три логических слоя:
· пользовательского интерфейса;
· правил логической обработки (бизнес-правил);
· управления данными (не следует только путать логические слои
с физическими уровнями, о которых речь пойдет ниже).
Как уже говорилось, в файл-серверной архитектуре все три слоя реализуются
в одном монолитном приложении, функционирующем на рабочей станции. Поэтому
изменения в любом из слоев приводят однозначно к модификации приложения и
последующему обновлению его версий на рабочих станциях.
В двухуровневом клиент-серверном приложении, показанном на рисунке выше,
как правило, все функции по формированию пользовательского интерфейса
реализуются на клиенте, все функции по управлению данными - на сервере, а вот
бизнес-правила можно реализовать как на сервере используя механизмы
программирования сервера (хранимые процедуры, триггеры, представления и т.п.),
так и на клиенте.
В трехуровневом приложении появляется третий, промежуточный уровень,
реализующий бизнес-правила, которые являются наиболее часто изменяемыми
компонентами приложения (см. рис.1.2. Трехуровневая модель клиент-серверного
приложения)
Рис. 1.2 Трехуровневая модель клиент-серверного приложения
Наличие не одного, а нескольких уровней позволяет гибко и с минимальными
затратами адаптировать приложение к изменяющимся требованиям бизнеса.
Предположим, в некоей организации изменились правила расчета заработной
платы (бизнес-правила) и требуется обновить соответствующее программное
обеспечение.
) В файл-серверной системе мы "просто" вносим изменения в
приложение и обновляем его версии на рабочих станциях. Но это
"просто" влечет за собой максимальные трудозатраты.
) В двухуровневой клиент-серверной системе, если алгоритм расчета
зарплаты реализован на сервере в виде правила расчета зарплаты, его выполняет
сервер бизнес-правил, выполненный, например, в виде OLE-сервера, и мы обновим
один из его объектов, ничего не меняя ни в клиентском приложении, ни на сервере
баз данных.
Веб-приложения стали широко популярными в конце 1990-х - начале 2000-х
годов.
Технические особенности
Существенное преимущество построения Web приложений для поддержки
стандартных функций браузера заключается в том, что функции должны выполняться
независимо от операционной системы данного клиента. Вместо того чтобы писать
различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других
операционных систем, приложение создается один раз для произвольно выбранной
платформы и на ней разворачивается. Однако различная реализация HTML, CSS, DOM
и других спецификаций в браузерах может вызвать проблемы при разработке
веб-приложений и последующей поддержке. Кроме того, возможность пользователя
настраивать многие параметры браузера (например, размер шрифта, цвета,
отключение поддержки сценариев) может препятствовать корректной работе
приложения.
Другой (менее универсальный) подход заключается в использовании Adobe
Flash, Silverlight или Java-апплетов для полной или частичной реализации
пользовательского интерфейса. Поскольку большинство браузеров поддерживает эти
технологии (как правило, с помощью плагинов), Flash- или Java-приложения могут
выполняться с легкостью. Так как они предоставляют программисту больший
контроль над интерфейсом, они способны обходить многие несовместимости в
конфигурациях браузеров, хотя несовместимость между Java или Flash реализациями
на стороне клиента может приводить к различным осложнениям.
В связи с архитектурным сходством с традиционными клиент-серверными
приложениями, в некотором роде «толстыми» клиентами, существуют споры
относительно корректности отнесения подобных систем к веб-приложениям;
альтернативный термин «Богатое Интернет приложение» (англ. Rich Internet
Applications).
Устройство веб-приложений
Веб-приложение состоит из клиентской и серверной частей, тем самым
реализуя технологию «клиент-сервер».
Клиентская часть реализует пользовательский интерфейс, формирует запросы
к серверу и обрабатывает ответы от него.
Серверная часть получает запрос от клиента, выполняет вычисления, после
этого формирует веб-страницу и отправляет её клиенту по сети с использованием
протокола HTTP.
Само веб-приложение может выступать в качестве клиента других служб,
например, базы данных или другого веб-приложения, расположенного на другом
сервере. Ярким примером веб-приложения является система управления содержимым
статей Википедии: множество её участников могут принимать участие в создании
сетевой энциклопедии, используя для этого браузеры своих операционных систем
(будь то Microsoft Windows, GNU/Linux или любая другая операционная система) и
не загружая дополнительных исполняемых модулей для работы с базой данных
статей.
В настоящее время набирает популярность новый подход к разработке
веб-приложений, называемый Ajax. При использовании Ajax страницы веб-приложения
не перезагружаются целиком, а лишь догружают необходимые данные с сервера, что
делает их более интерактивными и производительными.
Для создания веб-приложений на стороне сервера используются разнообразные
технологии и любые языки программирования, способные осуществлять вывод в
стандартную консоль.
ГЛАВА 2.
ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ «ЭЛЕКТРОННЫЙ ПОМОЩНИК»
.1 Протокол
передачи данных
Приложение электронный помощник получает данные из базы данных по
протоколу http.(англ. HyperText Transfer Protocol -
«протокол передачи гипертекста») - протокол прикладного уровня передачи данных.
Основой HTTP является технология «клиент-сервер», то есть предполагается
существование потребителей (клиентов), которые инициируют соединение и посылают
запрос, и поставщиков (серверов), которые ожидают соединения для получения
запроса, производят необходимые действия и возвращают обратно сообщение с
результатом.в настоящее время повсеместно используется во Всемирной паутине для
получения информации с веб-сайтов.
Основным объектом манипуляции в HTTP является ресурс, на который
указывает URI (англ. Uniform Resource Identifier) в запросе клиента. Обычно
такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть
логические объекты или что-то абстрактное. Особенностью протокола HTTP является
возможность указать в запросе и ответе способ представления одного и того же
ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно
благодаря возможности указания способа кодирования сообщения клиент и сервер
могут обмениваться двоичными данными, хотя данный протокол является текстовым.
Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для
идентификации ресурсов HTTP использует глобальные URI. В отличие от многих
других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие
сохранения промежуточного состояния между парами «запрос-ответ». Компоненты,
использующие HTTP, могут самостоятельно осуществлять сохранение информации о
состоянии, связанной с последними запросами и ответами (например, «куки» на
стороне клиента, «сессии» на стороне сервера). Браузер, посылающий запросы,
может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки
запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих
запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к
нему не предъявляются такие требования.
При выборе протокола HTTP для решения конкретных задач немаловажным
фактором является его распространённость. Как следствие, это обилие различной
документации по протоколу на многих языках мира, включение удобных в
использовании средств разработки в популярные IDE, поддержка протокола в
качестве клиента многими программами и обширный выбор среди хостинговых
компаний с серверами HTTP.
Всё программное обеспечение для работы с протоколом HTTP разделяется на
три большие категории:
Серверы как основные поставщики услуг хранения и обработки информации
(обработка запросов).
Клиенты - конечные потребители услуг сервера (отправка запроса).
Прокси для выполнения транспортных служб.
Для отличия конечных серверов от прокси в официальной документации
используется термин «исходный сервер». Один и тот же программный продукт может
одновременно выполнять функции клиента, сервера или посредника в зависимости от
поставленных задач.
Клиенты
Первоначально протокол HTTP разрабатывался для доступа к гипертекстовым
документам Всемирной паутины. Поэтому основными реализациями клиентов являются
браузеры. Для просмотра сохраненного содержимого сайтов на компьютере без
соединения с Интернетом были придуманы офлайн-браузеры. При нестабильном
соединении для загрузки больших файлов используются менеджеры закачек. Они
позволяют в любое время докачать указанные файлы после потери соединения с
веб-сервером.
Нередко протокол HTTP используется программами для скачивания обновлений.
Структура протокола
Каждое HTTP-сообщение состоит из трёх частей, которые передаются в
указанном порядке:
Стартовая строка - определяет тип сообщения;
Заголовки - характеризуют тело сообщения, параметры передачи и прочие
сведения;
Тело сообщения - непосредственно данные сообщения. Обязательно должно
отделяться от заголовков пустой строкой.
Заголовки и тело сообщения могут отсутствовать, но стартовая строка
является обязательным элементом, так как указывает на тип запроса/ответа.
программный электронный помощник магазин
2.2 Язык
разметки XML
Язык разметки документов - это набор специальных инструкций, называемых
тэгами, предназначенных для формирования в документах какой-либо структуры и
определения отношений между различными элементами этой структуры.
Популярность World Wide Web и неотъемлемой ее части, XML стала причиной
повышенного внимания к системам гипертекстовой разметки документов. Всплеск
активности вокруг этой технологии начался в результате реальной необходимости в
механизме объединения множества информационных ресурсов, обеспечения
возможности создания, просмотра нелинейного текста.
Использование гипертекстовой разбивки текстового документа в современных
информационных системах во многом связано с тем, что гипертекст позволяет
создавать механизм нелинейного просмотра информации. В таких системах данные
представляются не в виде непрерывного потока текстовой информации, а набором
взаимосвязанных компонентов, переход по которым осуществляется при помощи
гиперссылок.
В качестве элемента гипертекстовой базы данных, описываемой XML,
используется текстовый файл, который может легко передаваться по сети с
использованием протокола HTTP. Эта особенность, а также то, что XML является
открытым стандартом и огромное количество пользователей имеет возможность
применять возможности этого языка для оформления своих документов, безусловно,
повлияли на рост популярности XML и сделали его сегодня главным механизмом
представления информации в Web.
Одним из главных достоинств использования XML является то, что с
использованием гипертекстовой модели документа способ представления
разнообразных информационных ресурсов в сети Интернет стал более упорядочен, а
пользователи получили удобный механизм поиска и просмотра нужной информации.
Стало легче представлять информацию в некотором стандартизованном формате.-это
язык разметки, описывающий целый класс объектов данных, называемых XML-
документами. Этот язык используется в качестве средства для описания грамматики
других языков и контроля за правильностью составления документов. Т.е. сам по
себе XML не содержит никаких тэгов, предназначенных для разметки, он просто
определяет порядок их (тегов) создания.
Еще одним из очевидных достоинств XML является возможность использования
его в качестве универсального языка запросов к хранилищам информации. В
настоящее время разрабатывается вариант стандарта XML-QL (или XQL), который,
возможно, в будущем составит серьезную конкуренцию SQL. Кроме того,
XML-документы могут выступать в качестве уникального способа хранения данных,
который включает в себя одновременно средства для разбора информации и
представления ее на стороне клиента. В этой области одним из перспективных
направлений является интеграция Java и XML-технологий, позволяющая использовать
мощь обеих технологий при построении машинно-независимых приложений,
использующих, кроме того, универсальный формат данных при обмене
информации.позволяет также осуществлять контроль за корректностью данных,
хранящихся в документах, производить проверки иерархических соотношений внутри
документа и устанавливать единый стандарт на структуру документов, содержимым
которых могут быть самые различные данные. Это означает, что его можно
использовать при построении сложных информационных систем, в которых очень
важным является вопрос обмена информацией между различными приложениями,
работающими в одной системе. Создавая структуру механизма обмена информации в
самом начале работы над проектом, менеджер может избавить себя в будущем от
многих проблем, связанных с несовместимостью используемых различными
компонентами системы форматов данных.
2.3 Формат
обмена данными между клиентом и базой данных
- простой, основанный на использовании текста, способ хранить и
передавать структурированные данные. С помощью простого синтаксиса можно легко
хранить все, что угодно, начиная от одного числа до строк, массивов и объектов,
в простом тексте. Также можно связывать между собой массивы и объекты, создавая
сложные структуры данных.
После создания строки JSON, ее легко отправить другому приложению или в
другое место сети, так как она представляет собой простой текст.имеет следующие
преимущества:
· он компактен;
· его предложения легко читаются и составляются как человеком,
так и компьютером;
· его легко преобразовать в структуру данных для большинства
языков программирования (числа, строки, логические переменные, массивы и так
далее);
· многие языки программирования имеют функции и библиотеки для
чтения и создания структур JSON.
Название JSON означает JavaScript Object Notation (представление объектов
JavaScript). Как и представляет имя, он основан на способе определения объектов
(очень похоже на создание ассоциативных массивов в других языках) и массивов.
Наиболее частое распространенное использование JSON - пересылка данных от
сервера к браузеру. Обычно данные JSON доставляются с помощью AJAX, который
позволяет обмениваться данными браузеру и серверу без необходимости
перезагружать страницу.
Пример:
Пользователь нажимает миниатюру продукта в онлайн магазине.,
выполняющийся на браузере, генерирует запрос AJAX к скрипту PHP, запущенному на
сервере, передавая ID выбранного продукта.
Скрипт PHP получает название продукта, описание, цену и другую информацию
из базы данных. Затем составляет из данных строку JSON и отсылает ее браузеру.,
выполняющийся на браузере, получает строку JSON, декодирует ее и выводит
информацию о продукте на странице для пользователя.
Также можно использовать JSON для отправки данных от браузера на сервер,
передавая строку JSON в качестве параметра запросов GET или POST. Но данный
метод имеет меньшее распространение, так как передача данных через запросы AJAX
может быть упрощена. Например, ID продукта может быть включен в адрес URL как
часть запроса GET.
Библиотека jQuery имеет несколько методов, например, getJSON() и
parseJSON(), которые упрощают получение данных с помощью JSON через запросы
AJAX.
Есть несколько основных правил для создания строки JSON:
· Эта строка содержит либо массив значений, либо объект (ассоциативный
массив пар имя/значение).
· Массив заключается в квадратные скобки ([ и ]) и содержит
разделенный запятой список значений.
· Объект заключается в фигурные скобки ({ и }) и содержит
разделенный запятой список пар имя/значение.
· Пара имя/значение состоит из имени поля, заключенного в
двойные кавычки, за которым следует двоеточие (:) и значение поля.
· Значение в массиве или объекте может быть:
· Числом (целым или с плавающей точкой)
· Строкой (в двойных кавычках)
· Логическим значением (true или false)
· Другим массивом (заключенным в квадратные скобки)
· Другой объект (заключенный в фигурные скобки)
· Значение null
Чтобы включить двойные кавычки в строку, нужно использовать обратную
косую черту: \". Так же, как и во многих языках программирования, можно
помещать управляющие символы и шестнадцатеричные коды в строку, предваряя их
обратной косой чертой. Смотрите детали на сайте JSON.
Сравнение JSON и XML
Во многих отношениях JSON можно рассматривать как альтернативу XML, по
крайней мере, в сфере веб приложений. Концепция AJAX оригинально основывалась
на использовании XML для передачи данных между сервером и браузером. Но в
последние годы JSON становится все более популярным для переноса данных AJAX.
Хотя XML является проверенной технологией, которая используется в
достаточном количестве приложений, преимуществами JSON являются более
компактный и простой для распознавания формат данных.
Версия XML имеет существенно больший размер. В действительности она имеет
длину 1128 символов, а вариант JSON - только 323 символа. Версию XML также
достаточно трудно воспринимать.
Конечно, это радикальный пример. И возможно создать более компактную
запись XML. Но даже она будет существенно длиннее эквивалента на JSON.
2.4 Выбор
средств реализации
Язык программирования
Для разработки приложения под ОС Android в качестве языка программирования был выбран язык Java, т.к он является официальным
средством разработки под Android
и обладает рядом преимуществ:
Это действительно необходимо, когда программы загружаются через Интернет
для последующего выполнения под управлением разных операционных систем.
) Синтаксис языка Java похож на синтаксис языка C++, и программистам,
знающим языки С и C++, его изучение не составляет труда.
) Java - полностью объектно-ориентированный язык, даже в большей степени,
чем C++. Все сущности в языке Java являются объектами, за исключением немногих
основных типов (primitive types), например чисел.
) В Java полностью исключена возможность
явного выделения и освобождения памяти. Память здесь освобождается
автоматически с помощью механизма сборки мусора. Программист гарантирован от
ошибок, связанных с неправильным использованием памяти.
) Введены истинные массивы и запрещена арифметика указателей. Теперь
программисты в принципе не могут стереть данные из памяти вследствие
неправильного использования указателей.
) Исключена возможность перепутать оператор присваивания с оператором
сравнения на равенство.
) Исключено множественное наследование. Оно заменено новым понятием -
интерфейсом, позаимствованным из языка Objective С. Интерфейс дает программисту
почти все, что тот может получить от множественного наследования, избегая при
этом сложностей, возникающих при управлении иерархиями классов.
Среда разработки
В качестве среды разработки была выбрана интегрированная среда разработки
модульных кроссплатформенных приложений Eclipse. Eclipse служит в первую очередь платформой для
разработки расширений, чем он и завоевал популярность: любой разработчик может
расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT),
C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM,
и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP и пр. от
различных разработчиков. Множество расширений дополняет среду Eclipse
менеджерами для работы с базами данных, серверами приложений и др.JDT (Java
Development Tools) - наиболее известный модуль, нацеленный на групповую
разработку: среда интегрирована с системами управления версиями - CVS, GIT в основной
поставке, для других систем (например, Subversion, MS SourceSafe) существуют
плагины. Также предлагает поддержку связи между IDE и системой управления
задачами (ошибками). В основной поставке включена поддержка трекера ошибок
Bugzilla, также имеется множество расширений для поддержки других трекеров
(Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих
организациях является корпоративным стандартом для разработки приложений.
Интерфейс Eclipse интуитивно понятен и при работе в данной
среде не возникнет вопросов даже у неопытных пользователей.
2.5 Ключевые
особенности Android
- это полноценная мобильная операционная систему компании Google.
Платформа Android представляет собой набор программ. Она включает операционную
систему, связующее ПО и различные приложения.
В Android можно запускать много приложений. Но одно из них есть главным и
занимает экран. От текущего приложения можно перейти к предыдущему или
запустить новое. Это похоже на браузер с историей просмотров.
Каждый экран пользовательского интерфейса представлен классом Activity в
коде. Различные Activity содержатся в процессах. Activity может даже жить
дольше процесса. Activity может быть приостановлен и запущен вновь с
сохранением всей нужной информации. Класс использует специальный механизм
описания действий основанный на Intent. Когда нужно выполнить действие (сделать
звонок, послать письмо, показать окно), вызывается Intent.
Для обмена данными между приложениями используются Content providers
(провайдеры содержимого).
Приложения для Android в своей работе использует окна (аналогично
Windows), однако в данной системе вышеуказанные окна носят иное название -
Activity. Как и в Windows, каждое окно имеет свой жизненный цикл и свои
особенности. При создании нового окна вызывается метод onCreate(), при
разработке данный метод переопределяется и в нем происходит инициализация
приложения и его компонентов. Далее вызываются методы onStart() и onResume().
Оба метода вызываются перед отображением окна при его создании, либо восстановлении(при
переключении из другого приложения, при разворачивании свернутого приложения и
тп). При сворачивании вызываются методы onPause() и onStop(). При закрытии
приложения и окна вызывается onDestory(), в данном методе можно сохранить
пользовательские данные и параметры.
Приложения для Android являются программами в нестандартном байт-коде для
виртуальной машины Dalvik.предлагает для свободного скачивания инструментарий
для разработки (Android SDK), который предназначен для x86-машин под
операционными системами Windows XP, Windows Vista, Mac OS X (10.4.8 или выше) и
Linux. Для разработки требуется JDK 5 либо JDK 6.
Разработку приложений для Android можно вести на языке Java (не ниже Java
1.5). Существует плагин для Eclipse - «Android Development Tools» (ADT),
предназначенный для Eclipse версий 3.3-3.5. Для IntelliJ IDEA также существует
плагин, облегчающий разработку Android-приложений. Сообщается, что для среды
разработки NetBeans IDE разработан экспериментальный плагин.
Уровень каркаса приложений (Application Framework)позволяет использовать
всю мощь API, используемого в приложениях ядра. Архитектура построена таким
образом, что любое приложение может использовать уже реализованные возможности
другого приложения при условии, что последнее откроет доступ на использование
своей функциональности. Таким образом, архитектура реализует принцип
многократного использования компонентов ОС и приложений.
Основой всех приложений является набор систем и служб:
. Система представлений (View System) - это богатый набор представлений с
расширяемой функциональностью, который служит для построения внешнего вида
приложений, включающий такие компоненты, как списки, таблицы, поля ввода,
кнопки и т.п.
. Контент-провайдеры (Content Providers) - это службы, которые позволяют
приложениям получать доступ к данным других приложений, а также предоставлять
доступ к своим данным.
. Менеджер ресурсов (Resource Manager) предназначен для доступа к
строковым, графическим и другим типам ресурсов.
. Менеджер извещений (Notification Manager) позволяет любому приложению
отображать пользовательские уведомления в строке статуса.
. Менеджер действий (Activity Manager) управляет жизненным циклом
приложений и предоставляет систему навигации по истории работы с действиями.
Уровень библиотек (Libraries)
Платформа Android включает набор C/C++ библиотек, используемых различными
компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован
через использование Application Framework. Ниже представлены некоторые из них:
. System C library - BSD-реализация стандартной системной библиотеки C
(libc) для встраиваемых устройств, основанных на Linux.
. Media Libraries - библиотеки, основанные на PacketVideo‘s OpenCORE,
предназначенные для поддержки проигрывания и записи популярных аудио- и видео-
форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.).
. Surface Manager - менеджер поверхностей управляет доступом к подсистеме
отображения 2D- и 3D- графических слоев.
. LibWebCore - современный движок web-браузера, который предоставляет всю
мощь встроенного Android-браузера.
. SGL - движок для работы с 2D-графикой.
. 3D libraries - движок для работы с 3D-графикой, основанный на OpenGL ES
1.0 API.
. FreeType - библиотека, предназначенная для работы со шрифтами.
. SQLite - мощный легковесный движок для работы с реляционными БД.
Уровень среды исполнения (Android Runtime)
В состав Android входит набор библиотек ядра, которые предоставляют
большую часть функциональности библиотек ядра языка Java.
Платформа использует оптимизированную, регистр-ориентированную виртуальную
машину Dalvik, в отличии от нее стандартная виртуальная машина Java -
стек-ориентированная. Каждое приложение запускается в своем собственном
процессе, со своим собственным экземпляром виртуальной машины. Dalvik
использует формат Dalvik Executable (*.dex), оптимизированный для минимального
использования памяти приложением. Это обеспечивается такими базовыми функциями
ядра Linux, как организация поточной обработки и низкоуровневое управление
памятью. Байт-код Java, на котором написаны приложения, компилируются в
dex-формат при помощи утилиты dx, входящей в состав SDK.
Уровень ядра Linux (Linux Kernel)основан на ОС Linux, тем самым платформе
доступны системные службы ядра, такие как управление памятью и процессами,
обеспечение безопасности, работа с сетью и драйверами. Также ядро служит слоем
абстракции между аппаратным и программным обеспечением. [13]
2.6 Интерфейс
пользователя
Работать с приложением очень просто и его работа будет понятна даже
самому неопытному пользователю.
Во время первого запуска программы производится распаковка начальных
данных приложения;
приложение соединяется с базой данных хранящейся на сервере;
производится инициализация элементов управления и приложение становится
готовым к работе.
После запуска приложения, внешний вид его главного окна представлен на
рис.2.1., видно, что экран разделен на две части, в левой части находятся
группы товаров и их наименования, в правой части выводится полное описание
товара.
Рис. 2.1 Вид главного окна приложения
Для удобства пользования программой, был предусмотрен поиск по товарам.
На рис. 2.2., красным цветом выделена строка ввода запроса для поиска.
Рис. 2.2 Запрос для поиска
.7
Программная реализация приложения
Архитектура клиент-серверных приложений содержит два приложения -
приложение-сервер и приложение-клиент. Приложение-сервер не инициирует
соединений - оно ждет, когда к нему присоединяться клиенты. Приложение-клиент
при выполнении соединения указывает IP-адрес компьютера, на котором установлено приложение-клиент, который этот
сервер прослушивает. После соединения можно осуществлять обмен данными на
основании созданных соединением потоков ввода и вывода (аналогичные потоки
будут созданы и в приложении-клиенте, и в приложении-сервере).
Разберем клиентскую часть приложения:
. создается соединение с сервером:
try{= CustomHttpClient.executeHttpPost(
"http://192.168.1.1/db_access.php",
postParameters);result = response.toString();jArray = new JSONArray(result);=
new ArrayList<Map<String, Object>>(
jArray.length());
2. с помощью скрипта производится парсинг:
try{(int i=0;i<jArray.length();i++){json_data =
jArray.getJSONObject(i);= new HashMap<String, Object>();.put(FIELD_ID,
json_data.getString(FIELD_ID));.put(FIELD_GOODS_NAME,
json_data.getString(FIELD_GOODS_NAME));.put(FIELD_DISTRIBUTOR_NAME,
json_data.getString(FIELD_DISTRIBUTOR_NAME));.put(FIELD_GROUP_NAME,
json_data.getString(FIELD_GROUP_NAME));.put(FIELD_AMOUNT,
json_data.getString(FIELD_AMOUNT));.put(FIELD_PRICE,
json_data.getString(FIELD_PRICE));.put(FIELD_NOTE,
json_data.getString(FIELD_NOTE));
stockData.add(m);
Парсинг - это синтаксический анализ сайтов, который автоматически
производится парсером - специальной программой или скриптом. Характер парсинга
определяется заданием получить определенную информацию со страниц сайта,
параметры анализа заранее задаются. Собранная информация предоставляется в
определенном виде и проводится на одном из языков программирования.
Три фазы парсинга являются логичными стадиями процесса: сначала это
пунктуальный сбор информации, например, это может быть код интернет-страницы.
Затем анализ данных, обработка и преобразование в нужный формат. Наконец -
предоставление результата, вывод данных.
. организуется диалог с сервером
4. при помощи методов GET и POST, получаем необходимые данные
public static String executeHttpPost(String
url,ArrayList<NameValuePair>
postParameters) throws Exception {in = null;{client =
getHttpClient();request = new HttpPost(url);formEntity = new UrlEncodedFormEntity();.setEntity(formEntity);response
= client.execute(request);= new BufferedReader(new
InputStreamReader(response.getEntity()
.getContent()));sb = new StringBuffer("");line =
"";NL = System.getProperty("line.separator");((line =
in.readLine()) != null) {.append(line + NL);
}.close();
static String executeHttpGet(String url) throws Exception {in
= null;{client = getHttpClient();request = new HttpGet();.setURI(new
URI(url));response = client.execute(request);= new BufferedReader(new InputStreamReader(response.getEntity()
.getContent()));
sb = new StringBuffer("");line = "";NL =
System.getProperty("line.separator");((line = in.readLine()) != null)
{.append(line + NL);
Полный код программы приведен в приложении 1.
2.8
Требования к аппаратным и программным средствам
При выборе аппаратных средств для разработки приложений наибольшую роль
играет фактор быстродействия работы ПЭВМ. Поскольку именно от него зависит
время разработки ПО, а соответственно затраты на разработку и его себестоимости.
Скорость функционирования ПЭВМ в основном определяется следующими
параметрами:
Объемом оперативной памяти (ОП);
Быстродействием процессора;
Объемом видеопамяти (ВП).
Одним из требований к программному обеспечению является наличие
виртуальной среды выполнения приложений Java - Android Virtual Device Manager и библиотеки SDK.
Минимальные требования к аппаратному обеспечению являются:
ОП - 2048 Мб, рекомендуемый объем ОП - 4096 Мб, процессор - Intel Core i3 с тактовой частотой 2.4 Мгц и выше, ВП - 512 Мб и выше.
ЗАКЛЮЧЕНИЕ
На основании проделанной работы можно сделать вывод о том, что применение
информационных технологий в розничной торговле во многом предопределяет
успешность развития торговой организации. Информационные продукты призваны
упрощать и совершенствовать систему контроля оперативной деятельности компании
(финансы и затраты, запасы и склад, закупки и продажи, дебиторская
задолженность и ценовая политика), управлять взаимоотношениями с заказчиками и
поставщиками, контролировать процесс продаж. Ведь на современном рынке
сохранить конкурентные позиции удается только тем, кто постоянно развивается и
использует новые технологии. В результате их внедрения происходит сокращение
операционных издержек, получение дополнительных доходов вследствие увеличения
оборота и/или инвестиционной привлекательности компании.
Инновационные решения необходимы предприятиям торговли по очевидным
причинам:
· постоянно растущая конкуренция требует разработки новых методов
привлечения клиентов и повышения их лояльности компании;
· меняющаяся конъюнктура рынка обязывает торговые организации
корректировать свои внутренние бизнес-процессы. Розничные сети, которым удастся
своевременно отреагировать на изменения, в итоге значительно смогут увеличить
объемы продаж, повысить уровень и эффективность работы персонала, а также
значительно сократить издержки. Иначе им элементарно не удастся выжить на
рынке.
Так же в результате выполнения дипломной работы был получен опыт в
разработке клиент-серверных приложений для операционной системы Android.
Получен глубокий опыт и пониманее принципов стороннего взаимодействия систем в
операционной системе Android. Написана программа «Электронный помощник продавца
консультанта», с помощью которого продавец может просмотреть на экране
информацию о любом товаре магазина, его ассортимент, информацию о проводимых
акциях и освежив свою память провести консультацию. Предоставление подробной
информации о товаре, вывод ее на экран производится после того, как
пользователь введет свой запрос.
«Электронный помощник консультанту» - шанс повысить уровень обслуживания
клиентов, внести положительный вклад в имидж компании и повысить посещаемость
магазина и тем самым увеличить доход компании.
Таким образом, задание на дипломную работу выполнено в полном объёме.
Список использованных источников и литературы
1. Г.М.
Лодыженский Системы баз данных. Коротко о главном. СУБД N 1, 2, 3, 4 1995.
. Д. Васкевич
Стратегии клиент/сервер. Диалектика, Киев, 1997.
3. Кирсанов
Д., Веб-дизайн: книга Дмитрия Кирсанова. / Д. Кирсанов СПб,:Символ-плюс, 1999.
- 376 с.: ил.
. Гудрич М.Т.
Структуры данных и алгоритмы в Java /
М.Т. Гудрич, Р. Тамассия; Пер. с англ. А.М. Чернухо. - М.: Новое знание, 2003.
- 671 с.: ил.
. Х.М.
Дейтел, П.Дж. Дейтел, С.И. Сантри Технологии программирования на Java 2: Книга 3. Корпоративные системы,
сервлеты, JSP, Web-сервисы. / Дейтел, П.Дж. Пер. с англ. - М.: ООО
«Бином-пресс», 2003 г. - 672с.: ил.
. Котлярова
А. Оценка бизнеса в условиях Интернет-экономики // eCommerce World, 2000 -№5-6
. Поваляев А.
Электронный бизнес: панацея или головная боль? // eCommerce World, 2001 -№2
8. Системы
баз данных. Полный курс. / Под редакцией А.С. Варакина. - Москва: Вильямс,
2003. - 1088 с.
.
Интернет-ресурсы