Разработка приложения "Электронный помощник продавца-консультанта"

Анализ и пути совершенствования коммерческой деятельности предприятий розничной торговли. Обзор программных средств, используемых в торговле, их основные возможности. Проектирование и реализация приложения "Электронный помощник" для магазина "Ваш дом".

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 12.07.2013
Размер файла 634,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
  • ГЛАВА 1. ОБЗОР И АНАЛИЗ ПРОГРАММНЫХ СРЕДСТВ ИСПОЛЬЗУЕМЫХ В РОЗНИЧНОЙ ТОРГОВЛЕ
    • 1.1 Постановка задачи
    • 1.2 Мобильные технологии и решения в торговле
    • 1.3 Анализ существующих программных средств используемых в розничной торговле
    • 1.4 Современные средства разработки программ для торговли
    • 1.5 Технология клиент-сервер
    • 1.6 Web-приложения
  • ГЛАВА 2. ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ «ЭЛЕКТРОННЫЙ ПОМОЩНИК»
    • 2.1 Протокол передачи данных
    • 2.2 Язык разметки XML
    • 2.3 Формат обмена данными между клиентом и базой данных
    • 2.4 Выбор средств реализации
    • 2.5 Ключевые особенности Android
    • 2.6 Интерфейс пользователя
    • 2.7 Программная реализация приложения
    • 2.8 Требования к аппаратным и программным средствам
  • ЗАКЛЮЧЕНИЕ
  • Список использованных источников и литературы

ВВЕДЕНИЕ

Применение продуктов сферы информационных технологий в розничной торговле во многом предопределяет успешность развития торговой организации. Современные информационно-технические продукты нацелены на корректировку и оптимизацию как внутренних, так и внешних бизнес процессов. Наиболее важными являются технологии автоматизации отношений с покупателями и налаживания непосредственно торговой деятельности, во всех ее проявлениях.

Так как мы живем в условиях рыночных отношений, и количество торговых организаций с каждым днем растет, то у меня возникла идея создания приложения, которое могло бы упростить работу продавцу консультанту, назовём его «Электронный помощник продавцу-консультанту». В крупных магазинах такого типа представлен огромный ассортимент товара и помнить характеристики каждой единицы очень сложно. С помощью приложения электронный помощник можно легко найти описание определенного товара, посмотреть его количество, найти подобную модель и с легкостью провести консультацию.

Целью данной дипломной работы является исследование, анализ и поиск пути к совершенствованию коммерческой деятельности предприятий розничной торговли, разработка приложения «Электронного помощник».

Объектом данной дипломной работы является ООО «Орбита С», Алатырский филиал, магазин «ВАШ ДОМ».

Предметом - коммерческая деятельность ООО «Орбита С», Алатырского филиала, магазина «ВАШ ДОМ».

ГЛАВА 1. ОБЗОР И АНАЛИЗ ПРОГРАММНЫХ СРЕДСТВ ИСПОЛЬЗУЕМЫХ В РОЗНИЧНОЙ ТОРГОВЛЕ

1.1 Постановка задачи

Разработать приложение для операционной системы Android, которое могло бы подключаться к удалённой базе данных. Приложение должно:

· обеспечивать корректный доступ к данным;

· обрабатывать пользовательские запросы;

· использовать как можно меньше аппаратных ресурсов.

Интерфейс программы должен быть понятен обычному пользователю.

1.2 Мобильные технологии и решения в торговле

В современном мире мобильные технологии развиваются настолько динамично, что на данный момент сложно даже привести пример той сферы жизни, где они не участвуют. И бизнес не стал исключением. Использовать мобильные решения не только в жизни, но и в организации своего дела - значит быть современным.

Все больше компаний не только проявляет интерес к использованию беспроводных технологий, но и с большим энтузиазмом их внедряет, ведь мобильность в работе становится нужной, особенно в работе с большим количеством покупателей или товаров. Мобильные технологии - это, прежде всего, экономия времени и, конечно, денег. Покупая мобильные решения для автоматизации, предприятие определенно выигрывает в борьбе за покупателя: эффективность работы и скорость обслуживания увеличивается.

В каких сферах деятельности работают организации, выбравшие для себя пусть мобилизации? Ответ прост - практически во всех. Развитие и поддержание бизнеса, эффективность работы и снижение затрат важны для любого предприятия.

Для предприятий ритейла важность использования мобильных решений трудно переоценить, а стоимость оборудования окупается увеличением капитализации и уменьшением денежных потерь.

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

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

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

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

2) потребностью в средствах анализа эффективности - при наличии большого числа однородных «производственных участков» (филиалы, менеджеры по продажам и т. д.), результаты деятельности которых можно и нужно постоянно сопоставлять. Благодаря внедрению информационных систем становится возможна оценка состояния предприятия, быстрая ориентация в товарных и финансовых потоках, охват всех стадий цикла движения товаров.

Активными темпами развиваются сегодня направления программных средств самообслуживания клиентов (терминалы самообслуживания, информационные киоски, использование прайс-чекеров и т.д.); ИТ-поддержка программ лояльности клиентов, сбора и обработки персональных данных клиента, а также расширение функциональности POS-терминалов за счет программной поддержки их функций. Например, просмотр состояния складских остатков, визуальная идентификация товара - ID Imaging, поддержка RFID-технологий при осуществлении платежа и т.п. Они позволяют предлагать товары, оптимально отвечающие потребностям покупателей, быстро обрабатывать, распределять заказы, а также контролировать их выполнение, планировать поставки, прогнозировать спрос для оптимального управления складскими запасами.

Популярность и признание моделей электронной коммерции и мобильных устройств растет стремительными темпами, однако традиционный магазин продолжает оставаться местом взаимодействия продавцов с покупателями, где они могут предложить самые широкие покупательские возможности, и лучшим способом сформировать позитивный образ бренда.

Именно поэтому и возникла идея написания приложения «Электронный помощник», т.к. оно в отличии от автономной системы электронный консультант не лишает покупателя общения с продавцом, а просто помогает продавцу в его работе.

Приложение написано для одной из самых популярных операционных систем Android, оно соединяется по беспроводной сети Wi-Fi с центральным сервером и базой данных товаров супермаркета. Благодаря этому продавец может просмотреть на экране информацию о любом товаре магазина, его ассортимент, информацию о проводимых акциях и освежив свою память провести консультацию. Предоставление подробной информации о товаре, вывод ее на экран производится после того, как пользователь введет свой запрос.

«Электронный помощник консультанту» - шанс повысить уровень обслуживания клиентов, внести положительный вклад в имидж компании и повысить посещаемость магазина и тем самым увеличить доход компании.

1.3 Анализ существующих программных средств используемых в розничной торговле

Предприятия розничной торговли проявляют интерес к следующим областям информатизации:

1) системы анализа данных - для обработки значительного количества информации с большей скоростью, которые позволяют быстро получать сводные данные об эффективности работы всего предприятия (например, систему класса SAP, Microsoft Dynamics AX, Oracle BI), анализировать всю информацию, имеющуюся в торговой организации, независимо от того, в какой информационной системе она накапливается. Основой этого решения является хранилище данных, которое аккумулирует информацию из различных источников и, благодаря специальной структуре, позволяет формировать отчеты гораздо быстрее, чем в ERP-системах. Исчезает необходимость обращаться к программистам для получения отчетов с требуемыми данными из разных систем, выгрузки этих данных в Excel, что значительно повышает скорость анализа и качество принимаемых на его основе решений.

2) системы управления отношениями с клиентами - CRM. В условиях возрастающей конкуренции все большее число торговых предприятий заинтересовано в том, чтобы лучше знать своих покупателей и эффективнее осуществлять политику в области ассортимента, маркетинга и управления скидками. Кроме CRM-систем это различные ИТ-продукты для взаимодействия с клиентом через SMS и специализированные программы для работы с бонусными картами.

3) системы управления сетями магазинов (SCM), которые остаются востребованными торговыми компаниями (например, Visual Pos Manager (VPM), - позволяющий из единого центра управлять всеми кассами и скидками розничной сети, и который интегрируется с SAP Retail, Microsoft Dynamics AX, 1С, Oracle Retail и т.д.). Среди критериев оценки системы можно назвать - учет потребностей конкретного сегмента розницы, легкую масштабируемость при росте организации, использование современных ИТ-инструментов разработки, отработанную технологию внедрения и эксплуатации. Конкурентные преимущества: функциональность, надежность, и отработанные технологии внедрения, сопровождения и обучения пользователей.

4) рабочие места кассиров - PosX, оснащенные кассовой программой, ведь помимо стандартных операций по приему денег и выдачи сдачи, требуется организовать прием безналичных платежей, обслуживание дисконтных и бонусных карт.

5) использование карманных компьютеров или коммуникаторов (КПК)- т.е. мобильной торговли, системы RFID. Эти устройства выступают в качестве хранилища информации о клиентах, товаре, расчетах и служат для занесения информации о продажах. Данные регулярно синхронизируются с основной учетной системой предприятия. Возможности: оформление заявок на продажу товара; мерчандайзинг; расчет рекомендуемого количества товара для заказа; учет кассовых операций возвратов, взаиморасчетов с клиентом; ведение нескольких фирм; система индивидуальных скидок; напоминания об акциях, новинках и скидках; каталог фотографий товаров; планирование посещений торговых агентов, контроль маршрутов агентов, поддержка GPS, контроль даты и времени посещения с т.д. Система повышает оперативность работы торговых агентов и экономит их время для непосредственного общения с клиентами. Сбор, обработка и анализ информации в сроки, максимально приближенные к режиму реального времени, позволяют оперативно скорректировать работу компании, а также учесть изменения внешних факторов раньше, чем это сделают конкуренты.

Основным программным средством используемым в розничной торговле является программа «1С: Розница 8» на платформе «1С: Предприятие 8» - автоматизирует регистрацию следующих операций:

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

· реализация товаров и услуг контрагенту;

· перемещения товаров между магазинами, внутренними складами магазинов, магазинами и складами торгового предприятия;

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

· возвраты товаров от покупателей, включая возврат после закрытия кассовой смены;

· инвентаризация товарных запасов;

· оформление приходных и расходных кассовых ордеров непосредственно в магазинах;

· оформление чеков продажи, и по окончании смены сводного отчета по контрольно-кассовой машине, с учетом возвращенных товаров в смену;

· перемещение денежных средств между магазинами, внутренними кассами магазинов, магазинами и кассами торгового предприятия;

· использование процентных скидок по дисконтным картам (фиксированные и накопительные скидки), скидки с разделением по магазинам, скидки контрагентам, скидки на сумму чека, скидки по времени действия, по количеству товара, по виду оплаты.

· поддержка торгового оборудования: фискальные регистраторы, терминалы сбора данных, сканеры штрихкодов, электронные весы, дисплеи покупателя, эквайринговые системы, ридеры магнитных карт.

"1С:Розница 8" может:

· работать с территориально распределенными информационными базами (РИБ). При этом обеспечивается четкое разделение документооборота по магазинам, а в центральном узле РИБ консолидируется информация по всем магазинам сети. С помощью центрального узла можно быстро создать периферийный узел РИБ;

· автоматически обмениваться информацией с управляющей информационной системой (back-office). В качестве управляющей системы для прикладного решения "1С:Розница 8" может использоваться прикладное решение "Управление торговлей". С помощью управляющей системы можно создать неограниченное количество узлов в прикладном решении "1С:Розница 8", которые, в свою очередь, могут являться центральными узлами распределенной информационной базы.

· использовать ордерные схемы перемещения, реализации и поступления товаров на склады магазина. Ордерная схема предусматривает предварительную регистрацию списка товаров, необходимых к принятию или отгрузке со склада, фактическая же операция с товарами на складе регистрируется документами "Расходный ордер на товары" или "Приходный ордер на товары".

· из центрального узла регулировать розничные цены для каждого магазина. В то же время можно предоставить магазину право самому корректировать розничные цены в зависимости от его расположения и наличия конкуренции.

1.4 Современные средства разработки программ для торговли

C#

- объектно-ориентированный язык программирования. Разработан в 1998--2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников -- языков C++, Java, Delphi, Модула и Smalltalk -- С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от 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

- объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры.

Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять 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.

Qt

- кросс-платформенный инструментарий разработки ПО на языке программирования 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 позволяет создавать собственные плагины и размещать их непосредственно в панели визуального редактора. Также существует возможность расширения привычной функциональности виджетов, связанной с размещением их на экране, отображением, перерисовкой при изменении размеров окна.

Qt комплектуется визуальной средой разработки графического интерфейса «Qt Designer», позволяющей создавать диалоги и формы в режиме WYSIWYG. В поставке Qt есть «Qt Linguist» -- графическая утилита, позволяющая упростить локализацию и перевод программы на многие языки; и «Qt Assistant» -- справочная система Qt, упрощающая работу с документацией по библиотеке, а также позволяющая создавать кросс-платформенную справку для разрабатываемого на основе Qt ПО. Начиная с версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator», которая включает в себя редактор кода, справку, графические средства «Qt Designer» и возможность отладки приложений.

1.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 Трехуровневая модель клиент-серверного приложения

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

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

1) В файл-серверной системе мы "просто" вносим изменения в приложение и обновляем его версии на рабочих станциях. Но это "просто" влечет за собой максимальные трудозатраты.

2) В двухуровневой клиент-серверной системе, если алгоритм расчета зарплаты реализован на сервере в виде правила расчета зарплаты, его выполняет сервер бизнес-правил, выполненный, например, в виде OLE-сервера, и мы обновим один из его объектов, ничего не меняя ни в клиентском приложении, ни на сервере баз данных.

1.6 Web-приложения

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

Веб-приложения стали широко популярными в конце 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. ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ «ЭЛЕКТРОННЫЙ ПОМОЩНИК»

2.1 Протокол передачи данных

Приложение электронный помощник получает данные из базы данных по протоколу http.

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

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 является возможность использования его в качестве универсального языка запросов к хранилищам информации. В настоящее время разрабатывается вариант стандарта XML-QL (или XQL), который, возможно, в будущем составит серьезную конкуренцию SQL. Кроме того, XML-документы могут выступать в качестве уникального способа хранения данных, который включает в себя одновременно средства для разбора информации и представления ее на стороне клиента. В этой области одним из перспективных направлений является интеграция Java и XML-технологий, позволяющая использовать мощь обеих технологий при построении машинно-независимых приложений, использующих, кроме того, универсальный формат данных при обмене информации.

XML позволяет также осуществлять контроль за корректностью данных, хранящихся в документах, производить проверки иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные. Это означает, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе. Создавая структуру механизма обмена информации в самом начале работы над проектом, менеджер может избавить себя в будущем от многих проблем, связанных с несовместимостью используемых различными компонентами системы форматов данных.

2.3 Формат обмена данными между клиентом и базой данных

JSON - простой, основанный на использовании текста, способ хранить и передавать структурированные данные. С помощью простого синтаксиса можно легко хранить все, что угодно, начиная от одного числа до строк, массивов и объектов, в простом тексте. Также можно связывать между собой массивы и объекты, создавая сложные структуры данных.

После создания строки JSON, ее легко отправить другому приложению или в другое место сети, так как она представляет собой простой текст.

JSON имеет следующие преимущества:

· он компактен;

· его предложения легко читаются и составляются как человеком, так и компьютером;

· его легко преобразовать в структуру данных для большинства языков программирования (числа, строки, логические переменные, массивы и так далее);

· многие языки программирования имеют функции и библиотеки для чтения и создания структур JSON.

Название JSON означает JavaScript Object Notation (представление объектов JavaScript). Как и представляет имя, он основан на способе определения объектов (очень похоже на создание ассоциативных массивов в других языках) и массивов.

Наиболее частое распространенное использование JSON - пересылка данных от сервера к браузеру. Обычно данные JSON доставляются с помощью AJAX, который позволяет обмениваться данными браузеру и серверу без необходимости перезагружать страницу.

Пример:

Пользователь нажимает миниатюру продукта в онлайн магазине.

JavaScript, выполняющийся на браузере, генерирует запрос AJAX к скрипту PHP, запущенному на сервере, передавая ID выбранного продукта.

Скрипт PHP получает название продукта, описание, цену и другую информацию из базы данных. Затем составляет из данных строку JSON и отсылает ее браузеру.

JavaScript, выполняющийся на браузере, получает строку 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 и обладает рядом преимуществ:

1) Одно из основных преимуществ языка Java -- независимость от платформы, на которой выполняются программы: один и тот же код можно запускать под управлением операционных систем Windows, Solaris, Linux, Machintosh и др.

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

2) Синтаксис языка Java похож на синтаксис языка C++, и программистам, знающим языки С и C++, его изучение не составляет труда.

3) Java -- полностью объектно-ориентированный язык, даже в большей степени, чем C++. Все сущности в языке Java являются объектами, за исключением немногих основных типов (primitive types), например чисел.

4) В Java полностью исключена возможность явного выделения и освобождения памяти. Память здесь освобождается автоматически с помощью механизма сборки мусора. Программист гарантирован от ошибок, связанных с неправильным использованием памяти.

5) Введены истинные массивы и запрещена арифметика указателей. Теперь программисты в принципе не могут стереть данные из памяти вследствие неправильного использования указателей.

6) Исключена возможность перепутать оператор присваивания с оператором сравнения на равенство.

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

Среда разработки

В качестве среды разработки была выбрана интегрированная среда разработки модульных кроссплатформенных приложений Eclipse. Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.

Eclipse JDT (Java Development Tools) -- наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями -- CVS, GIT в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами (ошибками). В основной поставке включена поддержка трекера ошибок Bugzilla, также имеется множество расширений для поддержки других трекеров (Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений. Интерфейс Eclipse интуитивно понятен и при работе в данной среде не возникнет вопросов даже у неопытных пользователей.


Подобные документы

  • Выбор состава технических и программных средств для создания данного приложения "Экзаменатор", использование среды разработки Borland Delphi. Основные компоненты и спецификация программы. Используемые технические средства, описание и запуск программы.

    курсовая работа [540,8 K], добавлен 18.07.2012

  • Разработка приложения для проверки использования времен глаголов в английском языке. Создание базы данных. Анализ используемых средств для реализации автоматического разбора текста. Проектирование мобильного приложения с помощью диаграмм деятельности.

    дипломная работа [2,6 M], добавлен 13.09.2017

  • Компоненты приложения и технологии, используемые для связи между ними. Обзор программных средств и технологий, используемых в ходе работы. Трансляция кода JSP страницы в код сервлета. Создание структуры базы данных c применением фреймворка Hibernate.

    курсовая работа [1,1 M], добавлен 16.07.2016

  • Принципы и способы электронной торговли. Требования к разработке гипертекстовой информации для размещения в сети Интернет. Маркетинговые исследования в сфере розничной продажи в магазине обуви города Россошь. Структура сайта розничной торговли магазина.

    дипломная работа [4,3 M], добавлен 26.09.2013

  • Проектирование вариантов использования приложения. Анализ существующей версии приложения. Обоснование выбора инструментальных программных средств. Проектирование интерфейса пользователя. Адаптация под мобильные устройства. Описание программного продукта.

    курсовая работа [2,8 M], добавлен 25.06.2017

  • Обзор принципов построения информационных систем для торговли через интернет. Сравнительная характеристика программных средств построения электронного магазина. Проектирование и программная реализация интернет–магазина. Экономическое обоснование проекта.

    дипломная работа [2,5 M], добавлен 13.02.2006

  • Характеристика основных программных средств построения электронного магазина. Разработка структуры построения электронного магазина. Безопасность платежей в Интернете. Разработка алгоритма работы интернет-магазина. Разработка системы оплаты и доставки.

    дипломная работа [1,9 M], добавлен 10.03.2014

  • Назначение создания информационной системы "Электронный журнал" для автоматизации контроля учебного процесса. Построение логической и реляционной моделей данных. Разработка клиент-серверного приложения для работы с базой данных; программная реализация.

    дипломная работа [5,9 M], добавлен 19.01.2017

  • Обзор основных принципов построения информационных систем для торговли через Интернет. Сравнительная характеристика программных средств построения электронного магазина. Проектирования автоматизированной системы управления книжным Интернет магазином.

    дипломная работа [4,2 M], добавлен 24.03.2010

  • Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.

    дипломная работа [869,8 K], добавлен 12.08.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.