Веб-объекты и распределительная обработка

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.11.2015
Размер файла 3,7 M

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

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

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

РЕФЕРАТ

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

Перечень ключевых слов: СЕРВЕР, АДМИНИСТРИРОВАНИЕ, УДАЛЕННОЕ УПРАВЛЕНИЕ, PHP, SQL, НЕСАНКЦИОНИРОВАННЫЙ ДОСТУП, ОНЛАЙН-ИГРЫ.

Объектом исследования является организация администрирования серверов онлайн-игр ООО «Мираж».

Целью дипломной работы является создание информационной системы удаленного администрирования серверов онлайн-игр для ООО «Мираж».

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

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

В качестве средства реализации ИС выбран скриптовый язык PHP, обеспечивающий наиболее широкие возможности для взаимодействия с серверными базами.

Информационная система находится на этапе тестирования и внедрения некоторых функций в эксплуатацию.

Ожидаемый экономический эффект при внедрении информационной системы составит приблизительно 48 тысяч рублей в первый год и 76,3 тысяч во второй год со сроком окупаемости 4.4 месяца.

СОДЕРЖАНИЕ

Введение

Глава 1. Аналитическая часть

1.1 Понятие серверов и их классификация

1.1.1 Аппаратное обеспечение

1.1.2 Классификация стандартных серверов

1.2 Сущность и методы удаленного доступа

1.2.1 Типы взаимодействующих систем

1.2.2 Удаленный узел

1.2.3 Удаленное управление

1.3 Понятие многопользовательских ролевых онлайн-игр

1.4 Обзор существующих информационных систем удаленного администрирования серверов онлайн-игр

1.4.1 RT Java Server Administrator v.1.0

1.4.2 La2offline Interlude 2.0

1.4.3 Off php admin by Hint

1.4.4 Интегрированная в игровую оболочку административная панель

1.5 Скриптовый язык PHP и его взаимодействие с базами данных

1.5.1 Использование

1.5.2 Синтаксис

1.5.3 Типы данных

1.5.4 Суперглобальные массивы

1.5.5 Объектно-ориентированное программирование

1.5.6 Взаимодействие с базами данных (MS SQL)

1.5.7 Недостатки языка

Глава 2. Практическая часть

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

2.2 Краткая характеристика предприятия ООО «Мираж»

2.3 Особенности администрирования серверов онлайн-игр

2.4 Обоснование выбора средства разработки

2.5 Разработка алгоритма решения задач администрирования серверов

2.6 Разработка структуры баз данных

2.7 Описание разработанной системы

2.7.1 Защита системы от несанкционированного доступа

2.7.2 Главное окно системы

2.7.3 Фрейм настройки записей

2.7.4 Основной фрейм управления

2.7.5 Фрейм блокирования учетных записей

2.7.6 Фрейм записей захода на сервер

2.7.7 Фрейм записей действий

2.7.8 Фрейм записей чата

2.7.9 Фрейм истории предметов

2.7.10 Фрейм поиска предметов

2.7.11 Фрейм списка предметов

Глава 3. Экономическая часть

3.1 Особенности определения экономической эффективности программного продукта

3.2 Расчет затрат на разработку и внедрение программного продукта

3.3 Расчет годового экономического эффекта и периода окупаемости

Заключение

Список использованных источников

ВВЕДЕНИЕ

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

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

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

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

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

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

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

Основные требования, предъявляемые к разрабатываемой системе:

· Мультифункциональность

· качественные возможности поиска

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

· поддержка мультисессионного режима

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

· удобный пользовательский интерфейс

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

Целью данной дипломной работы является разработка информационной системы удаленного администрирования серверов онлайн-игр для крупного сервера.

Для достижения данной цели необходимо решить следующие задачи:

1. изучить особенности администрирования серверов онлайн-игр и выявить основные проблемы данной области

2. провести анализ современных систем удаленного администрирования серверов онлайн-игр

3. изучить возможности языка php и его использование для взаимодействия с серверными SQL-базами

4. разработать информационную систему удаленного администрирования серверов онлайн-игр

5. разработать комплексную защиту системы от несанкционированного доступа

6. создать оптимальный программный интерфейс системы

ГЛАВА 1. АНАЛИТИЧЕСКАЯ ЧАСТЬ

1.1 Понятие серверов и их классификация

Семрвер (англ. server от англ. to serve -- служить) -- в информационных технологиях -- программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определённым ресурсам; компьютер (или специальное компьютерное оборудование) выделенный и/или специализированный для выполнения определенных сервисных функций [1].

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

Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например протоколы Интернета определяются в документах RFC.

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

1.1.1 Аппаратное обеспечение

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

Аппаратными серверами (аппаратное обеспечение) называются узкоспециализированные решения со встроенным программным обеспечением (англ. firmware; в отличие от компьютеров, где программное обеспечение необходимо устанавливать), определяющим специализацию и возможные предоставляемые услуги. Аппаратные серверы, как правило, более просты и надежны в эксплуатации, потребляют меньше электроэнергии и, иногда, более дешевы. Но вместе с тем они менее гибки (так как изначально ограничены в выполняемых задачах) и, часто, ограничены в ресурсах.

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

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

Серверы услуг можно запускать на рабочей станции, чтобы они работали в фоне разделяя ресурсы компьютера с программами, запускаемыми пользователем. Такой режим работы называется «невыделенным», в отличие от «выделенного» (англ. dedicated), когда компьютер выполняет только сервисные функции. Строго говоря, на рабочей станции (для примера, под управлением Windows XP) и без того, всегда работает несколько серверов -- сервер удаленного доступа (терминальный сервер), сервер удаленного доступа к файловой системе и системе печати, и прочие удаленные и внутренние серверы.

1.1.2 Классификация стандартных серверов

Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг которые они предоставляют.

1. Универсальные серверы

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

§ inetd от англ. internet super-server daemon демон сервисов IP -- стандартное средство UNIX-систем -- программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).

§ RPC от англ. Remote Procedure Call удаленный вызов процедур -- система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используетстся как в большинстве Unix-систем, так и в Windows.

Прикладные клиент-серверные технологии Windows:

§ (D-)COM (англ. (Distributed) Component Object Model -- модель составных объектов) и др. -- Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.

§ Active-X -- Расширение COM и DCOM для создания мультимедиа-приложений.

Универсальные серверы часто используются для написания всевозможных информационных серверов, серверов, которым не нужна какая-то специфическая работа с сетью, серверов не имеющих никаких задач, кроме обслуживания клиентов. Например в роли серверов для inetd могут выступать обычные консольные программы и скрипты. Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).

2. Маршрутизация

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

Для TCP/IP, маршрутизация является базовой функцией стека IP (кода поддержки TCP/IP). Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети, маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета:

§ принять пакет

§ найти машину на которую следует этот пакет или следующий маршрутизатор по маршруту к ней (в таблице маршрутов)

§ передать пакет или вернуть ICMP-сообщение о невозможности его доставки по причинам:

§ Назначение недостижимо (Destination unreachable) -- у пакета кончилось «время жизни» прежде чем он достиг места назначения

§ Хост недостижим (Host unreachable) -- компьютер или следующий маршрутизатор выключен или не существует

§ Сеть недостижима (Network unreachable) -- маршрутизатор не имеет маршрута в сеть назначения если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) -- отбросить пакет без уведомлений

3. Динамическая маршрутизация

Решения динамической маршрутизации призваны собирать информацию о текущем состоянии сложной сети и поддерживать таблицу маршрутов через эту сеть, чтобы обеспечить доставку пакета по кратчайшему и самому эффективному маршруту. Из этих решений клиент-серверную модель использует только BGP (англ. Border Gateway Protocol -- протокол пограничного шлюза), применяемый для глобальной маршрутизации. Локальные решения (RIP, OSPF) используют в своей работе бродкастовые и мультикастовые рассылки.

4. Сетевые службы

Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS -- трансляцию имен в адреса и наоборот.

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

Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.

5. Информационные службы

К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.

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

6. Файл-серверы

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

Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.

Недостатки файл-серверной системы:

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

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

§ Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.

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

7. Серверы доступа к данным

Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа -- LDAP (англ. Lightweight Directory Access Protocol -- облегчённый протокол доступа к спискам).

Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов -- язык SQL (англ. Structured Query Language -- язык структурированных запросов).

8. Службы обмена сообщениями

Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно -- текстовые). В первую очередь это серверы электронной почты работающие по протоколу SMTP. SMTP-сервер принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный). На многопользовательских компьютерах, пользователи работают с почтой прямо на терминале (или веб-интерфейсе). Для работы с почтой на персональном компьютере, почта забирается из почтового ящика через серверы, работающие по протоколам POP3 или IMAP.

Для организации конференций существует серверы новостей, работающие по протоколу NNTP.

Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC -- распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.

9. Серверы удаленного доступа

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

Для обеспечения доступа к командной строке служат серверы telnet, RSH, SSH. Графический интерфейс для Unix-систем -- X Window System, имеет встроенный сервер удаленного доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удаленного доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер). Стандартный сервер удаленного доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.

Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.

10. Игровые серверы

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

1.2 Сущность и методы удаленного доступа

Удаленный доступ - очень широкое понятие, которое включает в себя различные типы и варианты взаимодействия компьютеров, сетей и приложений [2]. Если рассматривать все многочисленные схемы взаимодействия, которые обычно относят к удаленному доступу, то всем им присуще использование глобальных каналов или глобальных сетей при взаимодействии. Кроме того, для удаленного доступа, как правило, характерна несимметричность взаимодействия, когда с одной стороны имеется центральная крупная сеть или центральный компьютер, а с другой - отдельный удаленный терминал, компьютер или небольшая сеть, которые хотят получить доступ к информационным ресурсам центральной сети. Количество удаленных от центральной сети узлов и сетей, которым необходим этот доступ, постоянно растет, поэтому современные средства удаленного доступа рассчитаны на поддержку большого количества удаленных клиентов.

1.2.1 Типы взаимодействующих систем

Основные схемы удаленного доступа, отличающиеся типом взаимодействующих систем:

§ терминал-компьютер

§ компьютер-компьютер

§ компьютер-сеть

§ сеть-сеть

Первые три вида удаленного доступа часто объединяют понятием индивидуального доступа, а схемы доступа сеть-сеть иногда делят на два класса - ROBO и SOHO. Класс ROBO (RegionalOffice/BranchOffice) соответствует случаю подключения к центральной сети сетей средних размеров - сетей региональных подразделений предприятия, а классу SOHO (SmallOffice/HomeOffice) соответствует случай удаленного доступа сетей небольших офисов и домашних сетей.

1.2.2 Удаленный узел

Средства поддержки режима удаленного узла (remotenode) делают вызывающую машину (ПК, Macintosh или рабочую станцию Unix) полноправным членом локальной сети. Это достигается за счет того, что на удаленном компьютере работает тот же стек протоколов, что и в компьютерах центральной локальной сети, за исключением протоколов канального и физического уровня. На этом уровне вместо традиционных протоколов Ethernet или TokenRing работают модемные протоколы (физический уровень) и канальные протоколы соединений "точка-точка", такие как SLIP, HDLC или PPP. Эти протоколы используются для передачи по телефонным сетям пакетов сетевого и других протоколов верхних уровней. Таким образом осуществляется полноценная связь удаленного узла с остальными узлами сети (рисунок 1.1).

Сервис удаленного узла обеспечивает этому узлу транспортное соединение с локальной сетью, поэтому на удаленном узле могут использоваться все те сервисы, которые доступны локальным клиентам сети, например, файл-сервис NetWare, сервис telnet или X-Window ОС Unix, администрирование WindowsNT.

Рисунок 1.1 - Режим удаленного узла для маршрутизируемого протокола

Основное отличие удаленного узла от локальных - низкая скорость сетевого обмена - от 9.6 до 28.8 Кб/с по сравнению с 10 Мб/с или 100Мб/с в локальной сети. Такое существенное снижение скорости обмена делает проблематичным работу многих приложений, которые были написаны в расчете на работу по локальной сети. Из-за этого, желательно на удаленном узле использовать приложения, написанные в архитектуре клиент-сервер, которые экономно расходуют полосу пропускания. Неплохо работают на удаленных низкоскоростных связях клиенты SQL-серверов баз данных, которые получают от сервера по сети только найденные записи из базы, а вот клиенты СУБД архитектуры файл-сервер, например, dBase или Clarion, вряд ли смогут нормально работать при схеме удаленного узла, так как они переписывают на клиентский компьютер файлы базы данных, а затем их локально обрабатывают.

1.2.3 Удаленное управление

Наибольшие сложности вызывает удаленное управление популярными настольными операционными системами, такими как Windows 3.1, OS/2 или DOS. Это связано с тем, что для этих систем нет стандартного протокола эмуляции терминала, подобного telnet или X-Window для Unix, или LAT для VAXVMS. С другой стороны, эти операционные системы наиболее знакомы конечному пользователю и ему хотелось бы использовать привычный графический интерфейс Windows при управлении удаленным хостом.

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

При удаленном управлении хостом с операционной системой, поддерживающей свой протокол эмуляции терминала по сети, например Unix, имеющей протокол telnet для эмуляции алфавитно-цифрового режима и протокол X-Window для эмуляции графического оконного режима, особых проблем у пользователей не возникает. Так как эмулятор терминала - это стандартное клиентское приложение, то достаточно реализовать схему удаленного узла, а затем запустить эмулятор терминала. Результатом будет удаленное управление хостом, который работает с соответствующей операционной системой.

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

Каждый поставщик системы удаленного управления разработал собственные методы передачи сигналов клавиатуры и мыши, а также видеоизображения, хотя при работе в ЛВС могут использоваться в качестве транспортных средств одни и те же стандартные протоколы, такие как IP, IPX и NetBEUI. Фирменные методы разработаны для увеличения быстродействия средств удаленного управления. Поскольку передача сигналов клавиатуры и мыши, а также видеоизображения не требует большой пропускной способности канала связи, производительность средств удаленного управления, использующих медленные коммутируемые линии, оказывается вполне приемлемой. Большинство поставщиков для повышения производительности этих средств применяют также сжатие и кэширование данных.

1.3 Понятие многопользовательских ролевых онлайн-игр

Многопользовательская ролевая онлайн-игра (англ. massively multiplayer online role-playing game, MMORPG) -- жанр онлайновых компьютерных ролевых игр (CRPG), в которой большое количество игроков взаимодействуют друг с другом в виртуальном мире (в основном, в жанре фэнтези) [3].

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

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

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

В большинстве платных MMORPG игроки приобретают абонентскую подписку, Иногда издатели требуют однократного приобретения копии игры. Бесплатные MMORPG можно просто скачать в Интернете [4].

В классическом варианте MMORPG делятся по трем стилям игры, но в основном сочетают в себе несколько:

§ PvE - Игрок против Окружения (англ. Player versus Environment). Игра построена на отношениях "Игрок-Мир". Взаимодействуя с игровым окружением игрок улучшает характеристики собственного персонажа и продвигается по сюжетной линии (если таковая существует).

§ PvP - Игрок против Игрока (англ. Player versus Player). Игра строится на отношениях "Игрок-Игрок", где главенствующую роль играет фактор коммуникации, противостояния и обмена игровыми предметами между игроками.

§ PvE / PvP - Сочетает в себе качества двух вышеприведенных стилей. Является базовой схемой построения современных MMORPG.

§ RvR - Организация игроков (необязательно клан) против другой группы (порой случайной) в борьбе за ресурсы игры и/или столицу противника.

1.4 Обзор существующих информационных систем удаленного администрирования серверов онлайн-игр

Несмотря на многообразие серверов многопользовательских онлайн-игр, систем удаленного администрирования таких серверов существует относительно немного. Системы администрирования серверов, распространяемые абсолютно бесплатно, в большинстве своём поддерживают только серверные сборки на платформе Java (так называемые Java-эмуляторы), которые предназначены в основном для домашнего использования и/или для небольшой аудитории пользователей. Мультифункциональные системы администрирования для серверов офф платформы являются в большинстве своём уникальными, удовлетворяющие предпочтениям и индивидуальным настройкам того или иного сервера, поэтому практически не распространяются, то есть разрабатываются программистами с учетом специфики сервера. Тем не менее, ниже я рассмотрю наиболее выдающиеся из существующих систем администрирования серверов онлайн-игр.

1.4.1 RT Java Server Administrator v.1.0

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

Рисунок 1.2 - RT Java Server Administrator v.1.0

Недостатки системы:

§ совместимость только с серверами на платформе Java

§ отсутствие средств поиска (только сортировка)

§ слабые средства администрирования

§ необходимость использования дополнительных средств администрирования

1.4.2 La2offline Interlude 2.0

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

Недостатки системы:

§ совместимость только с серверами на платформе Java

§ может использоваться только для одного сервера

§ возможности поиска очень сильно ограничены

§ включает в себя лишь основной набор функций

§ низкий уровень защиты от несанкционированного доступа

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

1.4.3 Off php admin by Hint

Мультифункциональная система администрирования серверов онлайн-игр для офф платформы. Данная система является одной из лучших среди бесплатно распространяемых систем администрирования. В состав Off php admin by Hint входят относительно неплохие возможности поиска, редактирования, добавления и просмотра информации с серверных баз данных SQL. В достаточной степени реализованы и средства администрирования, в частности блокировка и разблокировка аккаунтов (учетных записей пользователей). Единственным серьёзным недостатком системы является сложнейшая адаптация к тому или иному серверу.

Недостатки системы:

§ конфигурация и настройка системы требуют профессионального подхода

§ недостаточный для крупных серверов уровень защиты

§ отсутствует поддержка мультисессионого режима

§ отсутствуют возможности разграничения полномочий

§ отсутствуют средства контроля над действиями пользователей в системе (протоколирование)

§ включены лишь наиболее важные возможности администрирования

1.4.4 Интегрированная в игровую оболочку административная панель

Административная панель включена в серверную сборку и не требует дополнительных настроек (Рисунок 1.3). В состав основного меню входят кнопки доступа к подменю. Панель имеет множество возможностей администрирования и управления сервером, таких как:

§ настройка виртуальных магазинов

§ настройка улучшений предметов

§ возможность создания предметов

§ менеджер персонажей

§ менеджер сервера

§ блокировка/разблокировка аккаунтов (учетных записей пользователей)

§ применение временных санкций к персонажам (например, блокировка чата)

Рисунок 1.3 - Интегрированная административная панель

Недостатки системы:

§ доступна только из игры, то есть требует установки клиента

§ для администрирования нескольких серверов требует нахождения в виртуальном мире каждого из серверов

§ при запуске нескольких клиентов существенно оказывает влияние на быстродействии и производительность системы

§ для качественной работы требует высокоскоростное подключение к интернету

§ возможности поиска сильно ограничены

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

1.5 Скриптовый язык PHP и его взаимодействие с базами данных

PHP (англ. PHP: Hypertext Preprocessor -- «PHP: препроцессор гипертекста», англ. Personal Home Page Tools -- «Инструменты для создания персональных веб-страниц») -- язык программирования, созданный для генерирования HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP -- «стандартный» набор для создания веб-сайтов (Linux, Apache, MySQL, PHP (Python или Perl)) [5].

1.5.1 Использование PHP

В области программирования для Сети, 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 используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета.

1.5.2 Синтаксис

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl [6,9].

Для работы программы не требуется описывать какие-либо переменные, используемые модули, и т.п. Любая программа может начинаться непосредственно с оператора PHP.

PHP исполняет код, находящийся внутри ограничителей, таких как <?php ?>. Всё, что находится вне ограничителей, выводится без изменений. В основном, это используется для вставки PHP-кода в HTML-документ.

Помимо ограничителей <?php ?>, допускается использование дополнительных вариантов, таких как <? ?> и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> ( конструкции <? ?> и <% %> могут быть выключены в конфигурационном файле php.ini ).

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).

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

PHP поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).

1.5.3 Типы данных

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

К скалярным типам данных относятся

§ целый тип (integer),

§ вещественный тип данных (float, double),

§ логический тип (boolean),

§ строковый тип (string)

§ специальный тип NULL.

К нескалярным типам относится

§ «ресурс» (resource),

§ массив (array)

§ объект (object).

Диапазон целых чисел (integer) в PHP зависит от платформы (обычно это диапазон 32-битных знаковых целых чисел, то есть от ?2 147 483 648 до 2 147 483 647). Числа можно задавать в десятичной, восьмеричной и шестнадцатеричной системах счисления. Диапазон вещественных чисел (double) также зависит от платформы (для 32-битной архитектуры диапазон позволяет оперировать числами от ±1.7Ч10-308 до ±1.7Ч10+308).

PHP предоставляет разработчикам логический тип (boolean), способный принимать только два значения TRUE («истина») и FALSE («ложь»). При преобразовании в логический тип число 0, пустая строка, ноль в пустой строке «0», NULL и пустой массив считаются FALSE. Все остальные значения автоматически преобразуются в TRUE.

Специальный тип NULL предназначен для переменных без определённого значения. Единственным значением данного типа является константа NULL. Тип NULL принимают неинициализированные переменные, переменные инициализированные константой NULL, а также переменные, удалённые при помощи конструкции unset().

Ссылки на внешние ресурсы имеют тип «ресурс» (resource). Переменные данного типа, как правило, представляют собой дескриптор, позволяющий управлять внешними объектами, такими как файлы, динамические изображения, результирующие таблицы базы данных и т. п.

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

1.5.4 Суперглобальные массивы

Суперглобальными массивами (англ. Superglobal arrays) в PHP называются предопределённые массивы. Большая часть этих массивов содержит входные данные запроса пользователя (параметры GET-запроса, поля форм при посылке методом POST, куки и т. п.) [8].

Все суперглобальные массивы кроме $GLOBALS и $_REQUEST имеют устаревшие аналоги с длинными именами, которые доступны вплоть до пятой версии PHP (в шестой версии планируется их исключение). Таким образом, обращения $_GET['year'] и $HTTP_GET_VARS['year'] идентичны.

$GLOBALS

Массив всех глобальных переменных (в том числе и пользовательских).

$_SERVER (устаревший аналог -- $HTTP_SERVER_VARS)

Содержит переменные окружения, которые операционная система передает серверу.

$_ENV (уст. $HTTP_ENV_VARS)

Текущие переменные среды (англ. Environment variables). Их набор специфичен платформы, на которой выполняется скрипт.

$_GET (уст. $HTTP_GET_VARS)

Содержит параметры GET-запроса, переданные в URI после знака вопроса «?».

$_POST (уст. $HTTP_POST_VARS)

Ассоциативный массив значений полей HTML-формы при отправки методом POST. Индексы элементов соответствуют значению атрибута name элементов управления HTML-формы.

$_FILES (уст. $HTTP_POST_FILES)

Ассоциативный массив со сведениями об отправленных методом POST файлах. Каждый элемент имеет индекс идентичный значению атрибута «name» в форме и, в свою очередь, также является массивом со следующими элементами:

['name'] -- исходное имя файла на компьютере пользователя.

['type'] -- указанный агентом пользователя MIME-тип файла. PHP не проверяет его и поэтому нет никаких гарантий что указанный тип соответствует действительности.

['size'] -- размер файла в байтах.

['tmp_name'] -- полный путь к файлу во временной папке. Файл необходимо переместить оттуда функцией move_uploaded_file. Загруженные файлы из временной папки PHP удаляет самостоятельно.

['error'] -- код ошибки. Если файл удачно загрузился, то этот элемент будет равен 0 (UPLOAD_ERR_OK).

$_COOKIE (уст. $HTTP_COOKIE_VARS)

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

$_REQUEST

Содержит элементы из массивов $_GET, $_POST, $_COOKIE. С версии PHP 4.1 включает $_FILES.

$_SESSION (уст. $HTTP_SESSION_VARS)

Содержит данные сессии.

1.5.5 Объектно-ориентированное программирование

PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка [5].

Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает все три основные механизма ООП -- инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent.

Классы в PHP имеют ряд специальных методов (англ. Magic methods), начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct(), в ранних версиях конструктором служил метод, одноименный с классом) и деструктор (__destruct()), а также методы чтения (__get()) и записи (__set()), свёртывания (__sleep()) и развёртывания (__wake()), клонирования (__clone()) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно легко добиться существенного изменения поведения объекта.

Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием символов ->. Для доступа к членам класса из его методов используется переменная $this.

1.5.6 Взаимодействие с базами данных (MS SQL)

В дистрибутив PHP входит расширение, содержащее встроенные функции для работы с базой данных SQL [10,11]. Ниже будут описаны основные функции для работы с SQL, которые потребуются для решения задач построения web-интерфейсов с целью отображения и наполнения базы данных. Возникает вопрос, зачем строить такие интерфейсы? Для того чтобы вносить информацию в базу данных и просматривать ее содержимое могли люди, не знакомые с языком запросов SQL. При работе с web-интерфейсом для добавления информации в базу данных человеку нужно просто ввести эти данные в html-форму и отправить их на сервер, а php-скрипт сделает все остальное. А для просмотра содержимого таблиц достаточно просто щелкнуть по ссылке и зайти на нужную страницу.

SQL может применяться в прикладных программах двумя способами: в виде встроенного SQL и интерфейса программирования приложений (Application Program Interface, API). Первый способ напоминает использование PHP - инструкции SQL размещаются среди кода прикладной программы. В настоящий момент такой стиль не поддерживает ни SQL ни PHP. Второй подход заключается в том, что программа взаимодействует с СУБД посредством совокупности функций. Именно такой подход используется при взаимодействии PHP и SQL.

Основные функции для работы с базами данных [12,13]:

mssql_connect

Синтаксис: int mssql_connect ([string servername [, string username [, string password]]])

Возвращает положительный идентификатор MS SQL-ссылки при успехе, FALSE при ошибке.

mssql_connect() устанавливает соединение с MS SQL-сервером. Аргумент servername должен быть правильным именем сервера, которое идентифицируется в 'interfaces'-файле.

Если делается второй вызов mssql_connect() с теми же аргументами, новая ссылка не устанавливается, а возвращается идентификатор уже открытой ссылки.

Ссылка на сервер будет закрыта сразу по окончании работы скрипта, если не будет закрыта ранее явным вызовом mssql_close().

mssql_close

Синтаксис: int mssql_close ([int link_identifier])

Возвращает TRUE при успехе, FALSE при ошибке.

mssql_close() закрывает ссылку на БД MS SQL Server, ассоциированную со специфицированным идентификатором ссылки/link identifier. Если идентификатор не специфицирован, принимается последняя открытая ссылка.

Заметьте, что это обычно не нужно, так как непостоянные открытые ссылки закрываются автоматически по окончании выполнения скрипта.

mssql_close() не закрывает постоянные/persistent ссылки, сгенерированные функцией mssql_pconnect().

mssql_data_seek

Синтаксис: int mssql_data_seek (int result_identifier, int row_number)

Возвращает TRUE при успехе, FALSE при неудаче.

mssql_data_seek() перемещает внутренний указатель ряда MS SQL-результата, ассоциированного со специфицированным идентификатором результата, указывающего на специфицированный номер ряда. Последующий вызов mssql_fetch_row() должен возвратить этот ряд.

mssql_query

Синтаксис: int mssql_query (string query [, int link_identifier])

Возвращает положительный результирующий идентификатор MS SQL при успехе, FALSE при ошибке.

mssql_query() отправляет запрос/query текущей активной БД на сервере, ассоциированной со специфицированным идентификатором ссылки. Если идентификатор не специфицирован, принимается последняя открытая ссылка. Если открытой ссылки нет, функция пытается установить ссылку, как при вызове mssql_connect(), и использует её.

mssql_fetch_array

Синтаксис: int mssql_fetch_array (int result)

Возвращает массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.

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

Важно отметить, что mssql_fetch_array() ненамного медленнее, чем mssql_fetch_row(), но предоставляет важное дополнительное значение.

mssql_fetch_field

Синтаксис: object mssql_fetch_field (int result [, int field_offset])

Возвращает объект, содержащий информацию поля.

mssql_fetch_field() можно использовать для получения информации о полях в определённом результате запроса. Если смещение поля не специфицировано, запрашивается следующее поле, которое ещё не было запрошено функцией mssql_fetch_field().

Вот свойства объекта:

· name - имя столбца. Если столбец является результатом функции, это свойство получает значение computed#N, где #N это серийный номер.

· column_source - таблица, из которой был взят столбец.

· max_length - максимальная длина столбца.

· numeric - 1, если столбец числовой.

mssql_fetch_object

Синтаксис: int mssql_fetch_object (int result)

Возвращает объект со свойствами, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.

mssql_fetch_object() аналогична mssql_fetch_array(), но с одним отличием - возвращается объект, а не массив. Косвенно это означает, что вы можете получать доступ к данным только именам полей, а не по их смещениям (числа недопустимы как имена свойств).

По скорости работы эта функция идентична mssql_fetch_array() и почти так же быстра, как mssql_fetch_row() (разница несущественна).

mssql_fetch_row

Синтаксис: array mssql_fetch_row (int result)

Возвращает массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.

mssql_fetch_row() извлекает один ряд данных из результата, ассоциированного со специфицированным результирующим идентификатором. Ряд возвращается как массив. Каждый результирующий столбец хранится как смещение массива, начиная со смещения 0.

Последующий вызов mssql_fetch_rows() извлечёт следующий ряд результирующего набора или возвратит FALSE, если рядов больше нет.

mssql_field_seek

Синтаксис: int mssql_field_seek (int result, int field_offset)

Ищет специфицированное смещение поля. Если последующий вызов mssql_fetch_field() не будет включать смещение поля, будет возвращено это поле.

mssql_free_result

Синтаксис: int mssql_free_result (int result)

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

mssql_next_result

Синтаксис: bool mssql_next_result (int result_id)

При отправке более одного SQL-оператора серверу или выполнении хранимой процедуры с несколькими результатами эта функция заставит сервер возвращать несколько результирующих наборов. Эта функция будет тестировать на предмет дополнительных результатов, доступных с сервера. Если дополнительный результирующий набор существует, то существующий результирующий набор будет освобождён и будет подготовлено извлечение рядов нового результирующего набора. Функция возвратит TRUE, если дополнительный результирующий набор был доступен, иначе FALSE.

...

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

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