ьмрепргмепргмтепргщтбмепщргбмеп. Проектирование и создание информационной системы для торговой организации
Скачать 3.33 Mb.
|
Министерство образования и науки Российской Федерации ФГБОУ ВО «Уральский государственный педагогический университет» Институт математики, физики, информатики и технологий Кафедра физики и математического моделирования Проектирование и создание информационной системы для торговой организации Выпускная квалификационная работа Квалификационная работа допущена к защите Зав.кафедрой ФиММ д.ф-м.н., профессор Сидоров Валерий Евгеньевич _______ __________________ дата подпись Исполнитель: Терехов Григорий Юрьевич обучающийся БЭ-51z группы ____________ подпись Руководитель: Кощеева Елена Сергеевна, к.п.н., доцент кафедры ФиММ ___________ подпись Екатеринбург 2017 2 Содержание Введение ................................................................................................................... 3 Глава 1. Информационные технологии создания систем .................................... 5 1.1. Особенности информатизации торговой организации ................................. 5 1.2. Стандарты разработки веб-приложений ...................................................... 17 Глава 2. Проектирование и создание информационной системы для торговой организации ........................................................................................................... 24 2.1. Разработка серверной части информационной системы............................ 24 2.2. Разработка клиентской части информационной системы .......................... 43 2.3. Тестирование и обзор информационной системы ...................................... 50 Заключение ............................................................................................................. 69 Список источников и литературы ........................................................................ 71 Приложение 1 ........................................................................................................ 74 3 Введение В современном мире люди повсеместно используют интернет в качестве универсального и функционального инструмента во многих сферах жизнедеятельности человека. Расширяясь и развиваясь, глобальная сеть получила большую значимость для коммерческой деятельности. Интернет привлёк широкий интерес со стороны бизнеса, благодаря активному формированию электронной коммерции, появлению виртуальных торговых площадок, широким возможностям рекламы и повышению уровня экономического взаимодействия в информационном поле. Успешность коммерческих организаций всё больше зависит от эффективности и полноты использования информационных и интернет технологий, наиболее актуальным являются информационные системы для накопления, хранения и обработки информации. Такая потребность подтверждается в высоком спросе на рынке соответствующего программного обеспечения. Однако из-за постоянно растущих и меняющихся требований в информатизации и автоматизации, существующие предложения в ряде случаев не могут удовлетворить всех потребностей. Из примеров можно выделить следующие проблемы, с которыми сталкиваются торговые организации при выборе ПО: высокая цена - гиганты IT индустрии часто предлагают большие и удовлетворяющие текущим потребностям программные комплексы, однако их приобретение и обслуживание, могут позволить организации только с высоким финансированием информатизации; нехватка специалистов на рынке труда – проблема возникает с использованием ИС созданной на базе специфичного или неактуального программного и/или аппаратного обеспечения. Стоимость услуг таких специалистов соответственно может нести значительные затраты; низкое качество безопасности - при критичности и необходимости высокого уровня безопасности выбор на рынке программного обеспечения 4 становится ещё более меньшим. Небольшие компании-разработчики часто не имеют возможность обеспечить безопасность своей системы на высочайшем уровне, а IT-гиганты с популярными и огромными программными комплексами постоянно сталкиваются со взломом их систем и по мере нахождения слабых мест выпускают обновления безопасности, которые не редко приходят постфактум - после взлома; сложность в обслуживании - может выражаться в необходимости обучения сотрудников для работы в системе, дополнительных и не редко, высоких затратах для поддержания работы, необходимостью в найме дорогих специалистов; отсутствие интеграции и современного функционала - с такой проблемой может столкнуться как малая организация-разработчик из-за недостатка ресурсов, так и крупные организации из-за трудности внедрения новых технологий в большие программные комплексы. Постоянно развивающиеся интернет-технологии создают новые потребности на рынке программных продуктов и являются главным фактором актуальности разработки новых информационных систем для торговых организаций. Цель работы: проектирование и создание информационной системы для хранения, наполнения и обработки информации для повышения эффективности бизнес-процессов торговой организации. Задачи работы: 1. Составление и анализ актуальных требований информатизации и автоматизации коммерческих организаций. 2. Изучение средств, стандартов и методологий разработки создания информационной системы, решающей комплекс задач в информатизации и автоматизации торговой деятельности. 3. Создание информационной системы для хранения, наполнения и обработки информации, сопутствующей бизнес-процессам. 5 Глава 1. Информационные технологии создания систем 1.1. Особенности информатизации торговой организации В системе социальных и экономических связей происходят заметные изменения, вызванные ростом использования интернет-технологий. Новые методы и средства для взаимодействия между людьми и организациями, формируют современную среду ведения бизнес-деятельности, в которой торговым организациям необходимо взаимодействовать с информационными ресурсами, организовывать обмен информацией в реальном времени, мгновенно и независимо от расстояния. Исходя из этого есть необходимость во внедрении новейших способов управления процессами и информацией в среде электронной коммерции, которые будут отвечать современным требованиям рынка [15]. Большая доля прикладных процессов торговой организации составляет работа с реестрами данных [3], таких как: клиенты, поставщики, заказы, товары, а также координация взаимодействия с контрагентами, распределение задач для сотрудников, анализ и аналитика цен, роста и падения продаж, анализ действий по привлечению новых клиентов. В процессе информирования клиентов важно иметь реестр актуальных данных о товарах, информацию о клиенте, историю его покупок, возможность добавить нового клиента в базу данных, быстро сформировать новый заказ или обработать уже существующий, иметь электронное средство коммуникации [12]. В процессе оформления покупки есть необходимость формирования таких документов, как накладная, торговый чек. Процессы руководства организации требуют возможность аналитики и анализа поступления прибыли (заказов). Используя базы данных руководитель отдела продаж может проводить аналитику успешности торговли за определённый период времени, прогноз продаж на будущее и анализ эффективности предпринятых ранее действий, к примеру, показатель 6 успешности новой рекламной кампании. Для этого в определённый момент времени руководитель ОП собирает данные по заказам и контрагентам, анализирует данные и формирует выводы в отчёт деятельности организации, чтобы затем предоставить его своему руководителю — директору. Также руководитель отдела продаж отвечает за работу подчинённых — менеджеров/продавцов, анализируя кол-во успешных и не успешных заказов и иных значимых для бизнеса действий, проделанных работниками в рамках рабочих обязанностей. Директор в свою очередь на основе отчётов проводит аналитику бизнес процессов, например, реализация тех или иных товаров и соответственно необходимость найти большее число поставщиков для этой продукции или необходимость увеличить эту продукцию на складе [12]. Появление такой системы в организации может значительно улучшить показатели по ведению бизнес-процессов. Некоторые организации принимают решение о разработке собственной информационной системы «под ключ», взамен приобретению существующих специализированных программных комплексов, либо использовать альтернативные варианты. Так в качестве альтернативной базы данных в малых организациях выступают привычные электронные таблицы из офисных пакетов. Однако, такой подход вызывает проблемы с составлением отчётов, поиском информации (распределённой в нескольких несвязанных таблицах и даже компьютерах), потерю данных. Такая работа не может быть эффективной и отражать реальные данные, т. к. в процессе сбора, информация может дублироваться, теряться, становиться неактуальной, а вся работа займёт значительное количество времени. Разработка собственной информационной системы может стать верным решением, если при этом проектирование и разработка будут выполняться с использованием современных стандартов и методологий. Такое требование необходимо не только для разработки ИС в качестве конечного продукта, отвечающего текущим требованиям, но и продукта, который сможет развиваться и расширяться соответственно росту организации и рынка. Это также значит, что в будущем над данной системой 7 будут работать и другие специалисты, эффективность и взаимодействие которых во многом будет зависеть от изначально разработанной основы ИС. Другой немаловажный фактор при создании информационной системы – это выбор обеспечивающего её работу программного обеспечения. Для малых и средних организаций использование платных компонентов может перечеркнуть все достоинства собственной информационной системы, а выбирая свободно распространяемые программные продукты необходимо учитывать их надёжность, безопасность, дальнейшее развитие, наличие аналогов и возможность их использования при расширении информационной системы. Анализируя данную информацию, можно сделать вывод, что потребность организации к информационной системе, может быть удовлетворена созданием собственной ИС. Рекомендованное и общепризнанное сообществом разработчиков информационных систем решение, продиктованное здравым смыслом — это присутствие в организации централизованной системы управления базой данных, в которой будет храниться, обрабатываться и вноситься информация необходимая для работы организации. Кроме этого организация получает хорошую программную среду для дальнейшей работы с информацией иными средствами, программными комплексами. Основная особенность СУБД - это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Централизованное хранение обеспечивает такие преимущества, как целостность и непротиворечивость информации, исключение дублирования, обеспечение сохранности и безопасности данных. Также возможно создание ролевой модели работы с данными находящимися в централизованной системе управления базой данных. Необходимость использование актуальной информации из информационной базы может появиться и вне офисной среды, к примеру, в служебной командировке или на деловой встрече для демонстрации роста продаж или каталога продукции. В рамках такой деятельности удобно иметь 8 возможность оперативно получить доступ к базе данных и средствам формирования отчётов, графиков, при этом имея стандартное аппаратное и программное обеспечение. Современные возможности интернет технологий и централизованное хранение информации даёт и такие инструменты, как интеграция со сторонними информационными системами [4], например, в рекламе. В рекламной деятельности торговая организация может автоматизировать отправку данных о товарах и ценах в специализированные рекламные организации, предоставляющие услуги торговых интернет площадок, а также в собственные торговые информационные системы, такие как интернет- магазин, электронные рассылки клиентам. Практические реализации программного обеспечения во всём мире множество раз сталкивались с проблемами совместимости, наиболее часто это выражалось в возможности использования того или иного программного продукта их пользователями, а также поддержкой программным продуктом иного ПО разработанного сторонними разработчиками. Решение проблем совместимости привело к разработке большого числа международных стандартов и соглашений в области применения и разработки информационных систем. Основополагающим понятием стало понятие открытые системы [8]. Открытую систему можно определить в качестве системы использующей согласованный набор международных стандартов на информационные технологии и профили функциональных стандартов, которые специфицируют интерфейсы, службы и поддерживающие их форматы, чтобы обеспечить взаимодействие и мобильность программных приложений, данных и персонала [8,10]. Это определение, сформулированное специалистами института IEEE (Institute of Electrical and Electronic Engineers), унифицирует содержание среды, которую предоставляет открытая система для широкого использования. В настоящее время общепризнанным координационным 9 центром (https://www.oasis-open.org) по разработке и согласованию стандартов открытых систем является OASIS (Organization for the Advancement of Structured Information Standards). В качестве спонсоров данного центра выступают такие IT-гиганты, как IBM и Microsoft. Общие свойства открытых информационных систем можно описать следующим образом [14]: мобильность/переносимость — такое свойство является полезным при необходимости переноса программ и данных в случае замены и модернизации аппаратного обеспечения информационной системы, а также обеспечивает возможность работы с ИС специалистов, без их переподготовки по случаю модификаций информационной системы; расширяемость/масштабируемость — данное свойство должно упростить и обеспечить возможность добавления нового функционала в информационные системы или изменять уже имеющиеся, не затрагивая иные функциональные части информационной системы; стандартизируемость — проектирование и разработка информационных систем должна осуществляться на основе согласованных международных стандартов и предложений, реализация открытости осуществляется на базе функциональных стандартов (профилей) в области информационных технологий; взаимодействие — возможность взаимодействия с другими ИС и их интеграция является важным свойством, в этом способствует наличие технических средств, обеспечивающих реализацию объединения разных ИС при помощи сетевых технологий; дружественность к пользователю — понятные, привычные и универсальные интерфейсы при взаимодействии «человек-машина» позволяют использовать информационную систему пользователям без прохождения специальной «компьютерной» подготовки. Разработка и проектирование информационной системы для торговой организации с учётом перечисленных свойств позволит реализовать систему 10 «дружелюбную» к конечному пользователю, исключить такие недостатки как: асинхронность наполнение базы данных, дублирование информации, потеря актуальности, даст возможность интеграции с иными ИС и стандартизировать как компоненты, так и систему в целом. Следует учесть и то, что возможность сделать информационную систему открытой системой можно лишь рассматривая перечисленные свойства как комплекс взаимосвязанных мер, принятых при проектировании, разработке и внедрении информационной системы. Таким образом, свойства будут являться не отдельными, а дополняющими и расширяющими друг друга, организуя открытую систему. Придерживаясь принципов открытых систем будут достигнуты поставленные цели и задачи, решены проблемы, с которыми сталкиваются как торговые, так и иные организации в процессе информатизации и автоматизации своей деятельности. Анализируя примеры хранения, наполнения и обработки данных в информационных системах торговых организаций не имеющих свойств открытых систем или исключающих некоторые из них, можно выделить следующие возникающие проблемы: отсутствие единого реестра (базы данных) — при децентрализованном хранение и интерфейсе доступа к данным возникает ряд проблем: дублирование информации, потеря актуальности, затруднения с отчётностью. Невозможность организации удалённого доступа — вызывает сложность в своевременном получении данных, необходимость дополнительных процессов для передачи информации, потеря стратегического преимущества, связанного со временем получения данных. Необходимость в специализированном клиентском ПО — ограничивает конечного пользователя в выборе аппаратного и программного обеспечения для получения доступа к данным. 11 Невозможность или ограничение интеграции со сторонним ПО — ограничивает организацию в функциональных возможностях информационной системы или связывает расширение и модернизацию ИС с определённым разработчиком/средой разработки. Анализ литературы и практического опыта разработчиков интерфейсов для информационных систем, приводит к актуальному и популярному решению - создание web-приложения, которое позволит совместить комплекс свойств открытых систем. Под определением «Веб-приложение» понимается прикладное программное обеспечение в реализации представляющее собой клиент- серверное решение, обмен информацией в котором происходит посредством сети (локальной или глобальной) через HTTP и/или HTTPS прикладные протоколы передачи гипертекста [6]. В данном решении клиентская часть может быть независимой от аппаратного и программного обеспечения, выполняя функцию пользовательского интерфейса (рис. 1.). Также следует упомянуть, что реализация клиентского интерфейса в веб-приложении может не требовать больших ресурсов к аппаратному обеспечению, выполняя ограниченное количество вычислений необходимых для отображения полученной информации из сервера и отправки необходимых запросов обратно. Рис. 1. Архитектура веб-приложения 12 Веб-приложения имеют свои положительные особенности, соблюдающие и дополняющие свойства открытых систем [4]: Клиентская часть выполняется независимо от операционной системы или аппаратного обеспечения клиента. В качестве программного обеспечения используются интернет-обозреватели (браузеры). Однако при разработке и тестировании клиентского интерфейса следует учесть, что приложение должно иметь свойства кроссбраузерности, из-за различной реализации браузерами стандартов HTML, CSS и DOM. Однако на практике большая часть стандартов ими соблюдена, а различия вытекают из-за разного времени применения новейших стандартов разработчиками этих программ обновлений. Веб-приложения представляют собой распределённую информационную систему из серверной и клиентской частей. Серверная часть проектируется для обеспечения необходимого количества клиентских обращений и имеет возможность масштабирования. В процессе разработки, веб-приложение может быть открыто для тестирования с удалённых компьютеров, что является положительным фактором для применения гибких методик разработки. Разработка веб-приложения является хорошей перспективой, особенно для торговых организаций, учитывая растущую и уже повсеместную сферу электронной коммерции. Предоставляются широкие возможности социального взаимодействия, взаимодействия и интеграции ИС с другими информационными системами функционирующими в глобальной сети. Благодаря работоспособности на любом аппаратном обеспечении и актуальности таких систем, веб-приложения могут составлять реальную конкуренцию нативным приложениям операционных систем (Apple iOS, Google Android, Windows Phone). В обозримом будущем конкурентоспособность может сильно возрасти благодаря работе W3C 13 (организация, разрабатывающая и внедряющая технологические стандарты для Всемирной паутины) над созданием открытых стандартов, дающих веб-приложениям доступ к аппаратной составляющей устройств, что сильно расширит возможности клиентской составляющей. Как видно из перечисленных свойств и особенностей веб-приложений — они весьма подходят к определению открытых систем и соблюдают их принципы. Наиболее яркое осуществление свойств открытых систем — это внутреннее и внешнее взаимодействие веб-приложения посредством сетевых технологий, что является соблюдением свойства взаимодействия. Мобильность и переносимость отлично обеспечивается на клиентском уровне — как правило любая операционная система содержит браузер, который является программной основой для работы конечного пользователя с веб-приложением, на серверной стороне переносимость обеспечивается множеством совместимых аналогов программного обеспечения (такого как СУБД), возможностью запуска серверного ПО в различных операционных системах и на аппаратных решениях, лёгкость переноса серверной части на другое оборудование. Черта масштабируемости хорошо присутствует в веб- приложениях — отчасти это обеспечивается стандартизацией разработки и реализации веб-приложений, из этого также вытекает свойство стандартизации, хотя некоторые аспекты программирования имеют довольно молодые и не устоявшиеся стандарты, они весьма быстро распространяются благодаря сфере и области функционирования данных информационных систем и возможности быстрого внедрения. Дружественность клиентского интерфейса к пользователю во многом соблюдается благодаря наличию технологий и стандартов по разработке веб-приложений для различных устройств, часто этот фактор сводится к самому значительному: размер экрана и вид используемого аппаратного обеспечения и способ управления (классические клавиатура и компьютерная мышь или сенсорный экран). Веб- приложение позволяет сделать интерфейс удобным для конечного 14 пользователя независимо от того, использует тот смартфон (рис. 2.), персональный компьютер или телевизор с функцией SMART-TV. Клиентская часть веб-приложения может быть реализована в максимально простом и понятном виде, для решения конкретных задач пользователя «под ключ». Рис. 2. Интерфейс веб-приложения на разных экранах Организация разработки веб-приложения весьма гибкая, на конечный выбор методологии могут влиять такие факторы, как масштаб информационной системы, финансовые и временные рамки разработчика, техническое задание заказчика. Современные аспекты и концепции в методиках для разработки веб-приложений: Модель горизонтальной организации проектной группы возникла из-за недостатков традиционной иерархической структуры в качестве эффективного аналога. Такая группа — это многопрофильная, небольшая команда, каждый в которой принимает на себя ответственность за ту или иную часть разработки, а также дополняющий компетентность смежных членов команды, что 15 обеспечивает единое видение проекта каждым участником. В таких командах выставляются высокие требования к компетенции и конечному результату, поощряется желание в образовании совершенствовании навыков. Не редко такие команды собираются в крупных организациях для разработки конкретной информационной системы (пример, Microsoft Solution Framework), однако, есть и антонимичные примеры — экстенсивная модель роста за счёт увеличения прибыли, путём повышения набора низкооплачиваемых специалистов, что вызывает постоянную текучку кадров, но снижает риски из-за кадровых потерь. Модель проектной группы включает в свой состав специалистов, исполняющих роли: дизайнера/проектировщика интерфейсов, разработчика, специалиста по оптимизации, тестера, управляющего проекта. Все участники в такой проектной группе равноправны, каждый участник исполняет определённую роль или несколько ролей сразу, а управляющий проектом является техническим специалистом. Минимальный коллектив должен состоять не менее, чем из 3 человек. Интеграция IT специалисту функций веб-разработчика является созданием универсального специалиста, который должен иметь высокое качество навыков в области разработки как серверной составляющей, так и клиентской части — это вёрстка, проектирование баз данных, оптимизация и проектирование интерфейсов. Специалист может быть развит больше в одной области, чем в другой, но должен быть способен реализовать проект целиком, пусть и за большее время, чем это сделает команда специалистов. Современные требования к разработчикам веб-приложений предполагают широкое видение разработки проекта за рамками своей прямой компетенции, т.к. различные части веб-приложения во многом дополняют друг друга и плотно взаимодействуют. 16 Жизненный цикл разработки веб-приложения схож с методологией Rational Unified Process и состоит из 4 фаз, которая может быть исполнена только один раз или повторяться несколько раз при необходимости. Фаза «Начало» формирует видение и границы проект, определяет основные требования, ограничения и ключевую функциональность продукта. Также при этой фазе оцениваются риски. В фазе «Уточнение» производится анализ предметной области и построение архитектуры приложения, разработка интерфейсов и дизайна. В фазе «Конструирование» происходит реализация большей части функциональности. В фазе «Внедрение» - происходит тестирование и оценка, определяется качество получившегося веб- приложения, проводится оптимизация. Критичный подход к использованию и выборе готовых решений. Само использование существующих программных решений для повышения скорости и/или качества приложения может являться хорошим фактором, но при этом необходимо учитывать влияние таких решений на безопасность, архитектуру и дальнейшую масштабированность. При использовании готовых решений должно быть понимание их логики работы и возможность модификации. Поэтому для серьёзных проектов требовательных в первую очередь к безопасности не используются полностью готовые системы управления веб-содержимым (WordPress, Joomla, OpenCart). Заказчик всегда рядом – концепция экстремального программирования. Заказчик представляет собой конечного пользователя продукта, который должен быть всегда на связи для диалога. Парное программирование — это техника, ставшая весьма продуктивной и полезной при разработке веб-приложений с определёнными условиями. Парное программирование производится двумя специалистами, из которых один осуществляет кодирование в 17 деталях, а другой сосредоточен на картине в целом. Через некоторое время происходит смена ролей. Смежный принцип коллективного владения кодом означает, что каждый разработчик несет ответственность за весь исходный код. Исходя из вышеперечисленных способов разработки веб-приложений можно сделать вывод, что методика разработки может быть разной при разных проектах, а также совмещать в себе лучшие качества, организуя гибридные варианты в процессе реализации конкретных задач. На выбор методики может влиять время выполнения, обоснование используемых ресурсов и требовательность к конечному функционалу. 1.2. Стандарты разработки веб-приложений Кроме методики организации разработки веб-приложений, не менее важными являются правила написания кода. Стандартизация написания кода веб-приложений — это развивающиеся решения, одной из популярных и глобально применяющихся методик, является БЭМ-методология (Блок, Элемент, Модификатор), которая включает в себя компонентный подход к веб-разработке, подразумевающий разделение кода и файловой структуры интерфейса на независимые блоки. Данная методология разработана российской компанией Яндекс и описывает подход к написанию кода всех веб-технологий для построения интерфейса (HTML, CSS, JavaScript), а также составление документации, проведение тестов и т.д. 18 Рис. 3. БЭМ-методология как решение частых проблем веб-разработки БЭМ-методология сопровождается большим количеством технической документации, готовыми к работе примерами, инструментариями, доступными в соответствующем разделе сайта «Технологии Яндекс» (https://tech.yandex.ru/bem/). БЭМ включает в себя: Методологические рекомендации - это простые советы, помогающие организовать проект, наиболее быстро его реализовать и удобно поддерживать длительное время. Технологии и библиотеки с открытым исходным кодом — готовая реализация рекомендаций БЭМ. Инструменты для автоматизации работы с методологией БЭМ. Преимущества БЭМ: Простая поддержка структуры кода при росте проекта. Повторное использование кода — позволяет сократить сроки и стоимости новых разработок за счёт использования одинаковых компонентов. 19 Точечные изменения с минимальными затратами: обновление дизайна, добавление функциональных элементов и т. д. Масштабирование — код развивается по заранее известным правилам. Общая терминология — позволяет упростить взаимодействие разных разработчиков. Автоматизация — общие единые правила способствуют автоматизации процессов. Часть кода может быть сгенерирована автоматически. БЭМ рекомендуют многие популярные разработчики, консультанты и технические директора. Его используют в таких IT-гигантах как Google, Яндекс, BBC, Alpha-Bank, BuzzFeed, EPAM. Также БЭМ можно использовать не только в веб-разработке, но и в любом другом языке программирования и фреймворке, т. к. методология предлагает только абстрактные практики по повышению надёжности и повторному использованию кода [23]. Кроме стандартизированной разработки веб-приложения в части интерфейса, необходимо также стандартизировать разработку серверной части, основой которого является PHP-код. Наиболее популярным и применяемым в мире является стандарт кодирования PSR. Proposing a Standards Recommendation — предлагаемые рекомендации стандартов, которые в свою очередь разделены на несколько независимых блоков. Данный стандарт создан группой взаимодействия фреймворков (PHP-FIG), является развивающимся и постоянно дополняющимся, охватывая всё больше аспектов PHP-программирования [28]. На сайте сообщества можно найти как утверждённые рекомендации, так и рекомендации, находящиеся в разработке (http://www.php-fig.org). Описание существующих на данный момент PSR стандартов [28,34]: PSR-1 - основной стандарт кодирования. Данный стандарт описывает наиболее общие правила, такие как использование тегов PHP, кодировка файлов, разделение места объявления функции, класса и места их использования, а также именование классов и методов. 20 PSR-2 - руководство по стилю кода. Расширяет первый стандарт, регулирует такие вопросы использования в коде как «табуляция или пробелы», переводы строк, максимальная длина строк, правила оформления управляющих конструкций (рис. 4.) и другое. PSR-3 - интерфейс протоколирования. Этот стандарт разработан для того, чтобы обеспечить логирование (журналирование) в приложениях, написанных на PHP. PSR-4 - стандарт автозагрузки. Это, наверное, самый важный и нужный стандарт PSR. Классы, которые реализуют PSR-4, могут быть загружены единым автозагрузчиком, что позволяет частям и компонентам из одного фреймворка или библиотеки быть использованными в других проектах. PSR-6 - интерфейс кеширования. Кэширование используется для повышения производительности системы. И PSR-6 позволяет стандартно сохранять и извлекать данные из кэша, используя унифицированный интерфейс. PSR-7 - интерфейс HTTP-сообщений. При написании сложных веб- приложений на PHP, почти всегда приходиться работать с HTTP заголовками. Конечно, язык PHP предоставляет нам уже готовые возможности для работы с ними, такие как суперглобальный массив $_SERVER, функции header(), setcookie() и т.д., однако их ручной разбор чреват ошибками, да и не всегда можно учесть все нюансы работы с ними. И вот, чтобы облегчить работу разработчику, а также сделать единообразным интерфейс взаимодействия с HTTP протоколом был принят данный стандарт. PSR-11 - интерфейс контейнера. При написании PHP программы часто приходится использовать сторонние компоненты. И чтобы не заблудиться в обилии зависимостей были придуманы различные методы управления зависимостями кода, зачастую несовместимые между собой, которые данный стандарт и приводит к общему знаменателю. 21 PSR-13 - гипермедиа ссылки. Данный интерфейс призван облегчить разработку и использование прикладных программных интерфейсов (API). PSR-16 - интерфейс простого кэширования. Является продолжением и улучшением стандарта PSR-6. Рис. 4. Оформление кода и файловая структура в соответствии с PSR Консорциум Всемирной паутины (World Wide Web Consortium, W3C) — это организация, разрабатывающая и внедряющая для Интернета единые принципы и технологические стандарты (называемые рекомендациями), которые затем внедряются производителями программ и оборудования. Консорциум возглавляет сэр Тимоти Джон Бернерс-Ли, автор множества разработок в области информационных технологий [40]. Стандарты, рекомендуемые W3C, являются открытыми и свободными для внедрения кем угодно, без финансовых отчислений консорциуму. Организация не проводит сертификацию на соответствие стандартам и не планирует этим заниматься. Благодаря этому рекомендации консорциума получили широкое распространение, однако это вызывает проблему с тем, что некоторые производители следуют рекомендациям лишь частично (такое внедрение не нарушает общих стандартов W3C). Также внедрение разделено на несколько степеней внедрения – каждый сам решает в какой степени необходимо внедрение W3C стандартов. Из практических примеров – это частичное внедрение новых стандартов W3C в работе веб-обозревателей, что обуславливает веб-разработчиков необходимостью проводить дополнительное тестирование на кроссбраузерность веб-приложения. 22 Стандарты W3C имеют черту хорошо детализированных рекомендаций и доступны как начинающим веб-мастерам, так и экспертам-программистам. Технические спецификации консорциума сопровождаются обилием руководств и советов, которые облегчают понимание и внедрение стандартов. В последнее время W3C проводит много работы по популяризации своих стандартов, их совершенствованию и расширению. Рис. 5. Один из популярнейших стандартов W3C – это HTML версии 5 Принципы и концепции, утверждённые W3C: Общедоступность – при реализации данного принципа, большое внимание уделяется доступности ресурсов глобальной сети для людей с ограниченными физическими возможностями. Аппаратная независимость - этот принцип утверждает, что ресурсы и протоколы не должны быть кроссплатформенными, т.е. рассчитаны работать на любом аппаратном обеспечении. Интернационализация – прежде всего подразумевает языковой барьер и призывает к доступности информации на всех языках мира, возможности и равноправию использования национальных шрифтов в документах и системах разработанных на основе стандартов. Патентная политика - здесь речь идёт о патентовании рекомендаций W3C таким образом, чтобы их можно было внедрять бесплатно, на основе лицензии W3C Royalty-Free License. Многоформенное взаимодействие –принцип, предполагающий наличие различных форм и режимов взаимодействия программы с человеком. 23 Семантическая паутина – свежая и актуальная концепция, призывающая размещать информацию в более понятном для компьютеров виде. Семантическая паутина сейчас реализуется как надстройка над существующей Всемирной паутиной. Мобильная паутина - этот принцип определяет, что ресурсы Всемирной сети должны быть доступны для мобильных устройств. Одни из самых используемых стандартов, утверждённых W3C: CSS, DOM, HTML, HTTP, OWL, PNG, RDF, SOAP/XMLP, Style, SVG, URI/URL, XML. Применение данных стандартов и методологий позволит создать информационную систему, соответствующую современным технологическим требованиям и имеющую высокую конкурентоспособность. 24 Глава 2. Проектирование и создание информационной системы для торговой организации 2.1. Разработка серверной части информационной системы Под серверной частью подразумевается back-end составляющая web- приложения. Back-end и front-end — это термины в программной инженерии, которые различают согласно принципу разделения ответственности между внешним представлением и внутренней реализацией соответственно. Front- end — интерфейс взаимодействия между пользователем и основной программно-аппаратной частью (back-end). Front-end и back-end могут быть распределены между одной или несколькими системами [19]. Серверная, back-end часть информационной системы принимает и обрабатывает клиентские запросы, обращается к СУБД при необходимости, формирует и отправляет ответ клиенту. Серверная часть состоит из аппаратного и программного обеспечения. В качестве аппаратного обеспечения у компании ISPSERVER (https://ispserver.ru) был арендован виртуальный выделенный сервер с рабочими характеристиками: 1GB RAM, 100GB HDD, 2 GHz CPU и предустановленной операционной системой FreeBSD. Виртуальный сервер (VPS) – это услуга, в рамках которой пользователю предоставляется часть ресурсов одного физического сервера. В плане управления, такой сервер практически не отличается от физического, на него можно установить полноценную операционную систему, и он имеет один или несколько статических IP-адресов для выхода в интернет. FreeBSD – это свободная операционная система семейства UNIX ( https://www.freebsd.org/ru/ ). ОС распространяется под лицензией BSD и является популярной системой для сетевых серверов (управление сетью и различные сетевые службы). 25 При помощи системы портов (технология установки программного обеспечения сторонних разработчиков в операционной системе FreeBSD) были установлены необходимые компоненты информационной системы, обеспечивающие работу сервера в роли веб-сервера и тем самым веб- приложения: система управления базами данных, HTTP-сервер и PHP- интерпретатор. Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД). Основная особенность СУБД - это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банками данных, а затем "Базами данных" (БД) [20]. Выбор СУБД — это выбор из числа многочисленных программно- лингвистических средств общего и специального назначения, обеспечивающих управление созданием и использованию баз данных. В системе управления базой данных для торговой организации планируется хранить максимальное количество информации о текущей бизнес- деятельности, начиная от каталога товаров и заканчивая данными о заказах клиентов. При выборе были учтены функциональные возможности, документальная поддержка, наличие литературы, масштабируемость и интеграция с другими программными продуктами. Немаловажными стали и такие параметры как возможности системы для работы, как с малым количеством данных, так и возможность «расти» вместе с организацией. Малому бизнесу могут потребоваться только ограниченные возможности, т.е небольшое количество информации, но требования могут существенно расти в течение времени, и переход на другую систему управления базами данных может стать проблемой. Учтены и стоимость использования СУБД, наличие 26 на рынке труда узких специалистов работающих с данной СУБД в случае потребности их найма, наличие достаточного количества технической документации и литературы. При выборе были рассмотрены наиболее популярные и развитые системы управления базой данных [16,18]. Oracle Database Рис. 6. Базы данных и таблицы в Oracle SQL Developer Одна из популярных и современных объектно-реляционных система управления базами данных от компании Oracle. Первая версия системы была создана в 70-х годах, существует несколько различных версия для удовлетворения узконаправленных потребностей в информатизации. Последняя из выпущенных версий предназначена для облачных сред, т.е. размещается на 1 и более серверах, позволяет хранить и работать с очень большими объёмами записей. Присутствует сильная безопасность, обусловленная изоляцией каждой транзакцией в запросах к базе данных. Данная база данных имеет инновационные особенности, широкий набор инструментов и задаёт планку качества и технологичности для многих других СУБД. Oracle Database является платным продуктом, цена для малых и развивающихся организаций весьма высока, также система требует 27 значительно лучшее аппаратное обеспечение в плане ресурсов. На российском рынке труда не много специалистов работающих с данной БД. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.oracle.com. MySQL Рис. 7. Базы и таблицы MySQL в интерфейсе PhpMyAdmin. Свободная реляционная СУБД от корпорации Oracle. Имеет большую популярность при разработке веб-приложений. Разрабатывается с 90-х годов, активно разрабатывается и поддерживается компанией разработчиком. Встроенные инструменты для работы с MySQL имеют многие решения в области программного обеспечения для веб-приложений. Является быстрой, надёжной и относительно использования - безопасной. В качестве аппаратного обеспечения может использоваться ЭВМ с довольно низкими ресурсами. Имеет как бесплатную версию под лицензией GNU GPL 2, так и платную с официальной поддержкой. На рынке труда имеется множество специалистов работающих с данной СУБД, а также большое кол-во технической документации, литературы, практических примеров использования и готовых продуктов в составе которых используется MySQL. Имеет возможности распределения нагрузки на несколько серверов. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.oracle.com. 28 Microsoft SQL Server Рис. 8. SQL Server Manager Система управления реляционными базами данных, разработанная корпорацией Microsoft. Ядро данной системы может предназначено для работы как на локальных серверах, так и на облачных. В 2016 году стала доступна в операционной системе Linux. Одной из уникальных особенностей версии 2016 года является временная поддержка данных, которая позволяет отслеживать изменения данных с течением времени. Последняя версия Microsoft SQL-сервер также позволяет совершать динамическую маскировку данных, которая гарантирует то, что только авторизованные пользователи будут видеть конфиденциальные данные. SQL Server является быстрым и стабильным средством, имеет хорошую техническую документационную основу и множество литературы, большое количество технических специалистов на рынке труда. Данная СУБД является платным решением, со средним ценником, хорошо ориентирована на работу с иными продуктами Microsoft. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.microsoft.com/ru-ru/sql-server/sql-server-2016. 29 PostgreSQL Рис. 9. Postgre база данных в интерфейсе программы Navicat 8 Свободная объектно-реляционная система управления базами данных, базирующаяся на языке SQL, распространяемая под лицензией License PostgreSQL . Может использоваться для обработки больших данных, хорошо масштабируема. Разрабатывается и поддерживается одноимённым сообществом и популярен среди веб-баз данных. Имеется достаточное кол-во литературы и специалистов, не требовательна к аппаратным ресурсам и хорошо подходит для проведения большого кол-ва запросов. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.postgresql.org. 30 Mariadb Рис. 10. База данных MariaDB в интерфейсе программы Navicat Ещё одна свободно распространяемая система управления базой данных от компании MariaDB Corporation Ab и фонда MariaDB Foundation, распространяется под лицензией GNU GPL. Система является ответвлением от СУБД MySQL, разрабатывается первоначальными разработчиками MySQL с 2009 года. Система имеет и платный вариант с расширенной поддержкой и функционалом. Mariadb - это одна из самых быстрорастущих субд со множеством плагинов, однако ещё не имеющая широкой поддержки сторонним программным обеспечением, как другие СУБД и количеством литературы на русском языке, однако является полностью совместимым с MySQL продуктом. Является довольно безопасным и быстрым продуктом, однако стабильность ещё не так высока, как у СУБД уже давно присутствующих на рынке. Часто рассматривается как вариант альтернативный СУБД MySQL. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://mariadb.org. 31 DB2 Рис. 11. База данных DB2 в интерфейсе EMS SQL Query 2007 Платная СУБД от компании IBM, имеющая возможности nosql, читающая json и xml-файлы. Является кроссплатформенным решением, имеет множество документации и литературы, может быть размещено в облачном хранилище, на физическом сервере, или же и там, и там одновременно. Базовая поддержка доступна только в течение трех лет; после этого, вы должны заплатить за это. Подходит для: крупных организаций, которые делают имеют много ресурсов и обрабатывают большие базы данных. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.ibm.com/analytics/us/en/db2/. Из рассмотренных СУБД для решения задач торговой организации была выбрана MySQL. MySQL разработал Михаэль Видениус (Michael Widenius, monty@analytikerna.se), она является небольшой и быстрой реляционной СУБД, основанной на традициях Hughes Technologies Mini SQL (mSQL). Реляционные модели СУБД характеризуются простотой структуры данных, устранением избыточности, удобным для пользователя табличным 32 представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами. СУБД MySQL предоставляет следующие преимущества при её выборе [20]: реляционная модель данных; свободно-распространяемая под лицензией GNU GPL 2; хорошо адаптирована для веб-приложений; имеет хорошую базу технической документации и литературы; является активно развивающимся продуктом с большим опытом; большое количество специалистов на рынке труда; множество плагинов и отличная интеграция в другое программное обеспечение для веб-приложений; низкие требования к ресурсам аппаратного обеспечения. Важный этап проектирования и разработки базы данных — это создание инфологической и даталогической моделей. Под инфологической моделью понимают описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от используемых в дальнейшем программных средств (это по существу блок-схема алгоритма создания базы данных). Цель инфологического моделирования - обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты). Требования к инфологической модели: адекватное отображение предметной области; непротиворечивость; 33 должна отражать взгляды и потребности всех пользователей системы; однозначная трактовка моделей; модель должна быть конечной; модель должна быть легко расширяемой, то есть иметь возможность ввода новых (удаления) данных без изменения ранее определенных; должна обладать свойствами композиции и декомпозиции (укреплять базу данных или расщеплять); должна быть легко реализуемой на ЭВМ; должна быть независимой от оборудования и языков организации базы данных на ЭВМ. Даталогическое проектирование — это создание модели, являющейся моделью логического уровня и представляющей собой отражение логических связей между элементами данных. Эта модель строится в единицах допустимых конкретной СУБД. Описание логической структуры с помощью средств СУБД называется схемой. Так как это осуществляется с помощью конкретной СУБД, то модели должны быть описаны на языке описания данных этой СУБД. Такое описание и называют даталогической моделью данных. База данных состоит из следующих таблиц: Таблица «Клиенты» - содержит информацию о частных и юридических лицах, которым реализуется товар. Таблица «Избранные клиенты» - содержит информацию о том, у каких пользователей какие клиенты добавлены в качестве избранных. Таблица «Поставщики» - содержит информацию об организациях, осуществляющих поставку продукции. Таблица «Заказы» - заказы, их статус и данные. Таблица «Товары» - продукт, реализуемый компанией и его свойства. Таблица «Бренды» - реестр брендов товаров и информации о них. Таблица «Группы» - группы товаров. 34 Таблица «Конфиг» - содержит основные настройки ИС. Таблица «Пользователи» - пользователи системы, их свойства и права. Таблица «Логи» - содержит логи основных действий пользователей. Таблица «Страницы» - служебная информация о страницах/модулях ИС. Таблица «Курс валюты» - таблица хранит актуальный курс валют для вывода на главные страницы ИС и графики. Таблица «Чат» - содержит сообщения чата. Таблица «Задачи» - в таблице находятся все данные для осуществления функционала «Задачи». Для составления даталогической (рис. 13.) и инфологической (рис. 12.) моделей базы данных, было использовано бесплатное специализированное веб-приложение DbDesigner (http://dbdesigner.net). Рис. 12. Инфологическая модель базы данных 35 Рис. 13. Даталогическая модель базы данных Как видно из спроектированных моделей базы данных — все таблицы некоторым образом связаны друг с другом. К примеру, в таблицы «Заказы» и «Избранные клиенты» имеют поля, связывающие их с таблицей «Клиенты» и хотя таблица «Заказы» никак не связывает себя напрямую с таблицей «Избранные клиенты», через общую для них таблицу «Клиенты» выстраивается характерная для реляционных СУБД связь. Таким образом связываются между собой и все остальные таблицы. Таким образом, создана уже ставшая традиционной реляционная база данных, которая имеет зависимости между данными, но при этом избегает избыточности. Если системе необходимо показать заказы, то оно запрашивает данные о них из таблицы «Заказы» при этом, не запрашивая список клиентов и список товаров, что можно сделать при просмотре конкретного заказа, но и в этом случае запрашивать из базы данных придётся не все товары и всех клиентов, а только определённых, относящихся к данному заказу. В качестве программного обеспечения на сервер были установлены СУБД mysql-server и mysql-client (https://dev.mysql.com/downloads/mysql/) 36 (рис. 14.) в качестве простого и быстрого доступа к управлению СУБД. При помощи MySQL клиента (рис. 14.) и запросов к СУБД были созданы таблицы с полями определённых типов, указаны уникальные индексы (id), которым было присвоено свойство «AUTO_INCREMENT”, указывающее, что порядковый номер будет генерироваться автоматически (предыдущее значение + 1) по мере добавления новых строк в таблицу. Рис. 14. Работа с СУБД MySQL через консоль MySQL-Client Таким образом, разработана база данных торговой организации — основной компонент системы. Данная БД позволяет хранить, обрабатывать и дополнять информацию организации в едином месте. Следующим шагом по настройке back-end части – стала установка HTTP-сервера, умеющего интерпретировать PHP-код. Apache HTTP Server – это свободно распространяемый HTTP сервер под лицензией Apache License 2.0 (http://www.apache.org/). Он осуществляет 2 главные функции: взаимодействует с клиентом по HTTP протоколу и компилирует php-код при помощи соответствующего встроенного модуля (рис. 15.). Данная программа является наиболее актуальной и используемой для создания web-серверов [2]. Также Apache кроссплатформенный, надёжный и гибкий в конфигурации [30]. 37 Рис. 15. Схема работы веб-сервера В качестве языка программирования для написания back-end части web- приложения информационной системы был выбран PHP. PHP (препроцессор гипертекста), первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг- провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов [7,13]. Использование PHP осуществляется под PHP License, являющейся open source лицензией, призванной стимулировать широкое распространение исходного кода. Лицензия позволяет распространение материалов в исходной или бинарной форме с изменениями или без таковых при соблюдении следующих условий [17]: 1. включение текста лицензии PHP, 2. слово PHP не может быть включено в название продукта без письменного подтверждения от PHP Group, следующее уведомление должно быть включено в любую форму распространяемых материалов: "This product includes PHP software, freely available from |