PHP — скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP — «стандартный» набор для создания веб-сайтов (Linux, Apache, MySQL, PHP (Python или Perl)). Группа разработчиков PHP состоит из множества людей, добровольно работающих над ядром и расширениями PHP и смежными проектами, такими как PEAR или документация языка. В области программирования для Сети PHP — один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения. Кроме этого, он может использоваться для решения административных задач в операционных системахUNIX, GNU/Linux, Microsoft Windows, Mac OS X и AmigaOS. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript
В настоящее время PHP используется сотнями тысяч разработчиков. Несколько миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета.
Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль начиная с версии 5.5 добавил в Паскаль объектно-ориентированные свойства, а Delphi — объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией.
Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Также отличительным свойством Дельфи от С++ является отсутствие возможности располагать объекты в стеке (объекты, унаследованные из Турбо Паскаля, располагаться в стеке могут) — все объекты попадают в динамически выделяемую область (кучу).
Де-факто Object Pascal, а затем и язык Delphi являются функциональными наращиваниями Turbo Pascal. Об этом говорят обозначения версий компилятора. Так, в Delphi 7 компилятор имеет номер версии 15.0 (Последняя версия Borland Pascal / Turbo Pascal обозначалась 7.0, в Delphi 1 компилятор имеет версию 8.0, в Delphi 2 — 9.0, и т. д. Номер версии 11.0 носит компилятор Pascal, входивший в состав среды C++Builder). Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.
1.3 Постановка задачи
В связи с быстрым развитием услуги по предоставлению широкополосного доступа к сети Интернет по технологии ADSL в г.Мариуполе возникла необходимость в создании программного комплекса для автоматизации работы персонала. Так как на учёт и обработку поступающих заявок, сохранение информации о всех существующих абонентах, планирование подключений и ремонтов, администрирование оборудования ADSL, составление отчётных документов стало затрачиваться значительная часть рабочего времени администратора ADSL, возникает потребность в разработке программного комплекса позволяющего максимально автоматизировать выше описанные процессы.
В результате сократится время на подключение абонента к услуги ADSL, и тем самым увеличится количество подключаемых абонентов.
А также более эффективно будет использоваться транспорт предоставленный для обслуживания абонентов, в связи с автоматическим планированием выездов к абонентам.
В программном комплексе также необходим механизм для учёта оборудования переданного пользователям ADSL, что позволяет контролировать перемещение комплектов оборудования и сохранения их целостности.
Функции администрирования существующего оборудования должны быть максимально упрощены и автоматизированы.
Безопасности подключения к оборудованию DSLAM необходимо предавать первостепенное значение.
1.3.1 Входные данные
Исходными данными для ПК будет являться информация об абоненте его физическом расположении на порту стойки DSLAM, а также в зависимости от этапа прохождения заявки от абонента на каждом шаге необходимо наличие данных об номере телефона (транзита), адресе абонента, приоритете заявки (VIP, срочный, обычный), типе телефона (свободный, спаренный, сигнализация, транзит), АТС где непосредственно расположен абонент.
1.3.2 Выходные данные
Выходными данными будут являться результаты работы скриптов отображающих состояние абонентской линии. Полная информация об абоненте хранящаяся в БД, а также информация об оборудовании взятом
в аренду пользователем.
Также о кол-во произведённых подключений пользователей за определённый период времени (функция значительно сокращает время на составление отчётных документов), кол-во отключений, общее количество, а также количество по определённым площадкам, задействованных портов на площадках ADSL.
2 ОПИСАНИЕ СТРУКТУРНОЙ МОДЕЛИ, МЕТОДОВ И АЛГОРИТМОВ, СТРУКТУРЫ БАЗЫ ДАННЫХ.
2.1 Проектирование базы данных и работа с ней
Для работы программного комплекса необходимо создать базу данных содержащую таблицы. 2.1-2.17.
Таблица 2.1 ATS – таблица для хранения информации о существующих АТС где предоставляется услуга ШПД
Поле | Тип | Ноль | Примечание |
ID | int(11) | нет | идентификатор строки |
ATS | varchar(10) | нет | информация о имени станции |
Таблица 2.2 KROSS – таблица для хранения информации о том на какой плате и порту находиться конкретный абонент, а также дате и времени, когда его телефонная линия была скроссирована
Поле | Тип | Ноль | Примечание |
ID | int(11) | нет | идентификатор строки |
ID_PLATA | int(3) | нет | идентификатор платы |
PORT | int(3) | нет | информация о номере порта |
ID_PHONE | int(3) | нет | идентификатор номера телефона |
DATE_KROSS | datetime | нет | дата кроссировки телефонной линии абонента. |
Таблица 2.3 PLAN_ON – таблица для хранения информации о времени, когда запланировано подключение определённого номера и от том кем именно оно было запланировано.
Поле | Тип | Ноль | Примечание |
ID | int(11) | нет | идентификатор строки |
DATE | date | нет | время и дата на когда планируется подключение |
ID_PHONE | int(3) | нет | идентификаторномера телефона |
ID_USERS | int(3) | нет | идентификатор пользователя который запланировал подключение |
Таблица 2.4 SOSTOYANIE_PORTOV – таблица для хранения информации о состоянии конкретного порта, активности модема, количестве переданных пакетов, зависший ли порт или нет, информации о том кем именно занят порт, дате последнего обновления.
Поле | Тип | Ноль | Примечание |
ID | int(11) | нет | идентификатор строки |
ID_PLATA | date | нет | идентификатор платы |
ID_STATE_PORT | int(3) | нет | идентификатор состояния порта |
PORT | int(3) | нет | номер порта |
PORT_STATE | varchar(255) | нет | состояние модема на стороне пользователя |
OUT_PACKETS | int(10) | нет | количество переданных пакетов |
HAND_UP_PORT | int(3) | нет | ключ зависшего порта |
INFO | varchar(255) | да | примечание |
DATE_UPDATE | datetime | нет | датаобновлениязаписи |
Таблица 2.5 BLOK_SOTNI – таблица для хранения информации какая сотня номеров на какой АТС является блокираторной.
Поле | Тип | Ноль | Примечание |
ID | int(11) | нет | идентификатор строки |
ID_ATS | int(3) | нет | идентификатор АТС |
SOTNYA | varchar(3) | нет | сотня телефонных номеров являющихся блокираторными. |
Таблица 2.6 LOG_ABONENT – таблица для хранения информации о действиях произведённых администраторами при работе с абонентами.
Поле | Тип | Ноль | Примечание |
ID | int(11) | нет | идентификатор строки |
DATE | datetime | нет | дата занесения |
ABONENT | varchar(255) | да | телефонный номер абонента |
PROBLEM | varchar(255) | да | проблема у пользователя |
USER | varchar(255) | да | идентификатор администратора |
FLAG | varchar(3) | нет | Флаг тип абонента. |
Таблица 2.7 PLATA – таблица для хранения информации об установленных платах ШПД.