Выпускная квалификационная работа (1218777), страница 6
Текст из файла (страница 6)
Хранит в себе время появления клиента на веб-сайте;334) mail_id. Внешний ключ, служит формирования связи с первичным ключом таблицы email.Таблица почтовых ящиков:1) id_mail. Однозначно определяет запись в таблице;2) name_mail. Хранит в себе название почтового ящика;3) status. Хранит в себе значение 1 если ящик занят, 0 – свободен;4) conversion_status.
Хранит в себе информацию о состоянии конверсии;2.2.2 Настройка почтового доменаПеред созданием почтовых ящиков на веб-хостинге необходимо создатьпочтовый домен, который является совокупностью почтовых ящиков, связанных одним доменным именем и имеющие общую часть после символа «@»,являющуюся основным доменным именем [27].Создание почтового домена в ISPmanager изображен на рисунке 9.Рисунок 9 – Создание почтового доменаПочтовый ящик – это место на диске почтового сервера, отведённое дляприёма и хранения писем пользователя, отправленных на почтовый адрес, который связан с данным почтовым ящиком.
Приём почты осуществляется попротоколам POP3 [22].Post Office Protocol (POP) – протокол доставки почты пользователю из почтового ящика почтового сервера РОР и располагается между агентом пользователя и почтовыми ящиками. PОРЗ разработан с учетом специфики доставки34почты на персональные компьютеры и имеет соответствующие операции дляэтого [26].PОРЗ разработан с учетом специфики доставки почты на персональныекомпьютеры и имеет соответствующие операции для этого.
Пользователь может получить доступ к РОР-серверу из любой точки доступа к Интернет. Приэтом он должен запустить специальный почтовый агент, работающий по протоколу РОРЗ, и настроить его работу с почтовым сервером.Три стадии процесса получения почты по протоколу POP3:– авторизация;– транзакция;– обновление.После установки соединения сервера и клиента, начинается стадия авторизации, включающую в себя идентификацию для сервера. После успешной авторизации, сервер открывает почтовый ящик клиента и наступает стадия транзакции.
Пользователь запрашивает у сервера информации.В нашем случае необходимо проводить проверку о поступлении почтовогописьма от клиента веб-сайта.После этого переходит в стадию обновления и соединение закрывается.Приведем список команд протокола POP3 необходимые для реализациипрограммного функционала:1) USER – идентифицирует пользователя с указанным именем;2) PASS – указывает пароль для пары клиент-сервер;3) STAT – сервер возвращает количество сообщений в почтовом ящикеплюс размер почтового ящика;4) DELE – отмечает сообщение для удаления;5) QUIT – закрывает TCP-соединение.Когда осуществляется передача от компьютера к компьютеру через Интернет, TCP работает на верхнем уровне между двумя конечными системами,35браузером и веб-сервером.
TCP осуществляет надежную передачу потока байтов программы для электронной почты. TCP контролирует длину сообщения,скорость обмена сообщениями, сетевой трафик [28].При обмене данными приемник использует номер последовательности, содержащийся в получаемых сегментах, для восстановления их исходного порядка. Приемник уведомляет передающую сторону о номере последовательности, до которой он успешно получил данные. Все получаемые данные, относящиеся к промежутку подтвержденных последовательностей, игнорируются.Для того, чтобы передающая сторона не отправляла данные интенсивнее,чем их может обработать приемник, TCP содержит средства управления потоком. В сегментах, направляемых от приемника передающей стороне, указывается текущий размер приемного буфера.
Передающая сторона сохраняет размер окна и отправляет данных не более, чем указал приемник. Если приемникуказал нулевой размер окна, то передача данных в направлении этого узла непроисходит, пока приемник не сообщит о большем размере окна [29].2.3 UML-диаграммыUML (Unified Modeling Language) – унифицированный язык моделирования. Модель UML это, прежде всего, описание объекта или процесса. Предназначен он для визуализации и проектирования создаваемых систем, разрабатываемых программных функционалов [23].UML-диаграммы позволяет разработчикам программного обеспечение достигнуть соглашения для представления общих понятий (таких как класс, компонент и поведение) и больше сконцентрироваться на проектировании и архитектуре.Преимущества UML диаграмм:– UML объектно-ориентирован, в результате чего методы описания результатов анализа и проектирования семантически близки к методам программирования на современных объектно-ориентированных языках;36– UML позволяет описать систему практически со всех возможных точекзрения и разные аспекты поведения системы;– UML-диаграммы просты для чтения после ознакомления с его синтаксисом;– UML позволяет вводить собственные текстовые и графические стереотипы, что способствует его расширению охватываемых сфер представления;– UML получил широкое распространение и динамично развивается [24].Для подробного отражения работы системы функционала, необходиморазбить существующее представление о задаче на сущности, знаниями обпредставляемых объектов и соответственно составить UML – диаграмму классов.Диаграммой классов называется статическая структурная диаграмма, описывающая структуру системы, демонстрирующая классы, их атрибуты, методы, наследование между классами [10].Существуют различные точки зрения на построения диаграмм классов взависимости от их применения.В данной работе на этапе проектирования функционала необходимым шагом будет построение диаграммы классов с точки зрения реализации.
Представим диаграмму содержащую используемые непосредственно в программном коде классы, при использовании объектно-ориентированного языка программирования PHP.Из требований, накладываемых на разрабатываемый функционал, можновыделить следующие сущности:– почтовые ящики (класс User);– клиенты сайта (класс Email).Также для взаимодействия представленных сущностей с базой данныхнеобходимо проработать класс database.Основываясь на работу функционала представленный на блок-схеме изображенном на рисунке 6 представим UML-диаграмму классов на рисунке 10.37Рисунок 10 – UML-диаграмма классовНеобходимо чтобы работа выполнялась в следующих этапах:– клиенту, вошедшему на веб-сайт, выделяется индивидуальный почтовыйящик, который он может видеть, как контактный почтовый адрес предприятия. Идентификатор данного почтового адреса заносится в таблицу User;– из небольшого фрагмента данных извлекается уникальный номер(ClientID) и заносится в таблицу User базы данных;– осуществить создание ящика или выделение свободного ящик;– необходимо с определенной периодичностью проводить актуализациюданных, а именно проверку на лимит по времени привязки почтового ящика ипоступления сигнала о совершении отправки письма – конверсии;– в случае совершения целевого действия происходил отправка уникального идентификатора клиента в Google Analytics;– в случае превышения лимитного времени, происходила отвязка почтового адреса и удаления информации о клиенте;– происходила переадресация письма на почтовый адрес менеджера предприятия.383 АВТОМАТИЗАЦИЯ ПРОЦЕССА РАБОТЫ ФУНКЦИОНАЛАОТСЛЕЖИВАНИЯ ПОЧТОВЫХ КОНВЕРСИЙПосле анализа средств реализации был сделан вывод, что будет создаваться программный функционал для отслеживания почтовых конверсий.
Вкачестве средств реализации проекта будут использоваться возможности объектно-ориентированного языка программирования PHP в связке с СУБДMySQL, в качестве панели управления веб-хостингом будет использоватьсяISPmanager и его инструментарий.3.1 Реализация классов на PHPПри создании класса необходимо четко понять задачу, которую мы хотимпредставить. Часто построение класса является моделированием той сущности, которую необходимо перенести в код. Объект является отражением сущности, которая описана в виде класса.
При моделировании класса стоит выявить те необходимые части сущности, над которыми будут производиться необходимые действия, с помощью методов. То есть необходимые части сущности являются полями класса, они как раз отражают данные, которые составляют общий тип данных. Этим тип объекта напоминает данные типа массив.Методы выполняют разнообразные действия над данными. Методы следует проектировать так, чтобы они работали только с теми данными, которыеопределены в классе. Не рекомендуется определять методы, которые как-либовлияют на внешние данные.
Так называемая стратегия слабого связывания чем меньше связей между классами и внешними данными - тем проще извлечькласс из системы и повторно использовать его вновь [32].Для работы данного программного функционала необходимо реализоватьработу четырех классов: user, email, database, cron. Разберем данные классы поотдельности.39Класс (database) предназначен для работы с базой данных: соединения сбазой данных, добавления записей в таблицы, произведения выборок из таблицы, подсчета строк результатов, производить изменения в таблице, удаления записей.Реализация методов класса database:Метод соединяет с сервером MySQL отправляя название сервера, имяпользователя базы данных, пароль.public function connect() {$connection = mysql_connect($this->db_host,$this->db_user, $this->db_pass);mysql_select_db($this->db_name);return true;}Метод осуществляет выборку данных из таблицы.
Метод принимает название таблицы и условия выборки.protected function select($table, $where) {$sql = "SELECT * FROM $table WHERE $where";$result = mysql_query($sql);return $this->processRowSet($result);}Результирующая информация выводится через метод результатом, которого будет ассоциативный массив данных.protected function processRowSet($rowSet) {$resultArray = array();while($row = mysql_fetch_assoc($rowSet)) {array_push($resultArray, $row);}return $resultArray;}Метод осуществляет обновления данных в таблице. Метод принимаетназвание таблицы, данные которые необходимо занести в таблицу, и условие,при котором данное действие выполняется.protected function update($data, $table, $where) {$set = "";foreach ($data as $column => $value) {$set .= ($set == "") ? "" : ", ";$set .= "$column = $value";}$sql = "UPDATE $table SET $set WHERE $where";40mysql_query($sql) or die(mysql_error());return true;}Метод осуществляет добавление новой записи в таблицы.















