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

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

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

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

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

mssql_num_fields

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

mssql_num_fields() возвращает количество полей в результирующем наборе.

mssql_num_rows

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

mssql_num_rows() возвращает количество рядов в результирующем наборе.

mssql_pconnect

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

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

mssql_pconnect() очень напоминает mssql_connect(), но есть два важных отличия.

Во-первых, при соединении эта функция сначала пытается найти (постоянную) ссылку/link, уже открытую с теми же host, username и password. Если найдена, возвращается её идентификатор вместо открытия новой ссылки.

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

Поэтому ссылки этого типа называются 'persistent/постоянные'.

mssql_result

Синтаксис: int mssql_result (int result, int i, mixed field)

mssql_result() возвращает содержимое ячейки из результирующего набора MS SQL. Аргумент field может быть смещением поля, именем поля или именем_таблицы.именем_поля (tablename.fieldname). Если создан псевдоним имени столбца ('select foo as bar from...'), используется этот псевдоним вместо имени столбца.

mssql_select_db

Выбор одной базы данных MSSQL. Возвращает true при удачном закрытии или false при ошибке.

До того как послать первый запрос серверу MSSQL, необходимо указать, с какой базой данных мы собираемся работать. Для этого и предназначена данная функция. Она уведомляет, что в дальнейших операциях с соединением link_identifier (или с последним открытым соединением, если указанный параметр не задан) будет использоваться база данных database_name.

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

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

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

1. Несогласованный синтаксис функций и неортогональность

PHP предоставляет разработчикам большое количество самых разнообразных функций, которые попали в язык из расширений, создаваемых разными группами программистов [6]. В результате синтаксис языка не согласован, например, часть функций для работы с массивами начинается с префикса array_, другая часть этим префиксом не обладает. Названия части строковых функций начинается с префикса str, другие функции таким префиксом не обладают. В тех же строковых функциях обрабатываемая строка может передаваться как в качестве первого, так и в качестве последнего аргумента, что требует постоянного обращения к документации. Многие задачи, например разбиение строки на массив или подстроки, решаются неимоверным количеством разнообразных наборов функций. Все это связано с сильным влиянием Perl, в котором неортогональность является частью концепции. Однако PHP задумывался как промышленный и ортогональный язык, и альтернативные наборы функций для решения одних и тех же задач сильно мешают создавать код в едином стиле. К сожалению, проблема скорее всего не будет решена из соображений обратной совместимости.

2. Отсутствие обратной совместимости между версиями языка

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

3. Отсутствие поддержки Unicode в ядре языка

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

4. Отсутствие прямого обращения к возвращаемому массиву

В языке PHP массив, возвращаемый функцией или методом, необходимо предварительно занести в переменную, чтобы применить оператор […].

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

Тут надо выводы. Итак, произведен обзор… обзор показал, что ничего нам не подходит, надо разработать самим. Для этого мы рассмотрели средства разработки…

ГЛАВА 2. ПРАКТИЧЕСКАЯ ЧАСТЬ

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

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

Система удаленного администрирования серверов онлайн-игр должна обеспечивать следующие возможности:

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

· изменение параметров учетных записей и персонажей на них

· просмотр регистрационной информации об учетных записях

· просмотр внутриигровой информации о персонажах

· добавление, удаление, перемещение предметов и изменение их параметров

· поиск по различным параметрам и маскам

· применение временных санкций в отношении нарушителей

· поиск в истории переименований персонажей с отображением предыдущих имён и даты проведения операции по переименованию

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

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

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

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

· поиск местонахождения предмета в виртуальном мире по уникальному идентификатору предмета

· поиск предметов по идентификатору типа (класса) с возможностью поиска по количеству

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

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

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

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

На сегодняшний день наиболее приоритетным проектом является игровой сервер SW.

Среди основных принципов политики, проводимой руководством предприятия, можно назвать следующие:

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

§ круглосуточная техническая поддержка

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

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

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

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

Рисунок 2.1 - График изменения суммарного количества активных пользователей

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

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

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

В качестве средства разработки выбран скриптовый язык PHP. Главным фактором языка РНР является практичность [7]. РНР предоставляет средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками:

1) Традиционность

Язык РНР будет казаться знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си, Perl.

Код РНР очень похож на тот, который встречается в типичных программах на С или Pascal. Это заметно снижает начальные усилия при изучении РНР. PHP -- язык, сочетающий достоинства Perl и Си и специально нацеленный на работу в Интернете, язык с универсальным (правда, за некоторыми оговорками) и ясным синтаксисом. И хотя PHP является довольно молодым языком, он обрел такую популярность среди web-программистов, что на данный момент является чуть ли не самым популярным языком для создания web-приложений (скриптов).

2) Простота

Сценарий РНР может состоять из 10 000 строк или из одной строки -- все зависит от специфики задачи. Нет необходимости подгружать библиотеки, указывать специальные параметры компиляции или что-нибудь в этом роде. Механизм РНР просто начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.

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

Большое разнообразие функций PHP избавляют от написания многострочных пользовательских функций на C или Pascal.

3) Эффективность

Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и web.

Очень важное преимущество PHP заключается в его «движке». «Движок» PHP не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» PHP позволяет обрабатывать сценарии с достаточно высокой скоростью.

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

4) Безопасность

РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

1. Средства безопасности системного уровня

В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР для просмотра конфиденциальной информации на сервере (например, файла passwd).

2. Средства безопасности уровня приложения

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

5) Гибкость

Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования).

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

Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus -- РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows.

Наконец, средства РНР позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря этим новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.

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

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

Рисунок 2.2 - Классификация задач и уровни ИС

На уровне пользователя расположены основные функции системы или события, которые инициируют пользователи системы.

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

Уровень базы данных включает в себя таблицы с данными.

На основе данной модели разработан алгоритм работы информационной системы удаленного администрирования серверов онлайн-игр (рисунок 2.3).

Рисунок 2.3 - Алгоритм работы ИС удаленного администрирования серверов онлайн-игр

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

С помощью CASE-средства AllFusion ERwin Data Modeler создана физическая модель данных [14,15]. Фактически физическая модель данных представляет собой реляционную модель данных - систему связанных таблиц.

Процесс построения модели состоит из следующих шагов:

· определение сущностей

· определение зависимостей между сущностями

· задание первичных и альтернативных ключей

· определение атрибутов сущностей

· переход к физическому описанию модели: назначение соответствий имя сущности - имя таблицы, атрибут сущности - атрибут таблицы

ИС удаленного администрирования серверов онлайн-игр использует для своей работы данные из таблиц, наиболее основные:

§ данные об учетных записях - содержит информацию об учетных записях пользователей

§ данные о персонажах - содержит информацию о персонажах и их параметрах

§ предметы персонажа - содержит информацию о всех предметах персонажа

§ история предметов - содержит информацию об операциях с предметами

§ записи действий - содержит записи обо всех действиях пользователей

§ записи чата - содержит записи переписки персонажей

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

Рисунок 2.4 - Структура базы данных ИС удаленного администрирования серверов онлайн-игр

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

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

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

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

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

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

1. Защищенный доступ (HTTPS)

HTTPS -- расширение протокола HTTP, поддерживающее шифрование [16]. Данные, передаваемые по протоколу HTTP, «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивается защита этих данных.

HTTPS работает через шифрованные транспортные механизмы SSL и TSL. Это обеспечивает защиту от атак, основанных на прослушивании сетевого соединения - от снифферских атак, но не защищает от атак типа man-in-the-middle.

По умолчанию https: URL использует 443 TCP-порт (для незащищённого HTTP -- 80). Чтобы подготовить веб-сервер для обработки https соединений, необходимо получить и установить в систему сертификат для этого веб-сервера. Сертификат состоит из двух частей (двух ключей) - public и private. Public часть сертификата используется для зашифровывания трафика от клиента к серверу в защищённом соединении, private часть - для расшифровывания полученного от клиента зашифрованного трафика на сервере. Сертификат должен быть подписан уполномоченной стороной (компанией-сертификатором - Certificate authority), которая будет гарантировать клиентам, что держатель сертификата является тем, за кого себя выдаёт.

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

В HTTPS для шифрования используется длина ключа 40, 56, или 128 бит. Старые версии браузеров использует длину ключа 40 бит (пример тому -- IE), что связано с экспортными ограничениями в США. Длина ключа 40 бит не является сколько-нибудь надёжной. Многие современные сайты требуют использования новых версий браузеров, поддерживающих шифрование с длиной ключа 128 бит с целью обеспечить достаточный уровень безопасности. Такое шифрование значительно затрудняет злоумышленнику поиск паролей и другой личной информации.

2. Парольный доступ к страницам Web-узла

Сервер Apache снабжен удобными средствами предоставления парольного доступа к страницам Web-узлов, основанными на использовании файлов .htaccess [17]. Когда посетитель пытается просмотреть содержимое защищенных страниц Web-узла, сервер посылает браузеру посетителя специальный запрос, в результате чего на экране его компьютера появляется окно аутентификации, показанное на рисунке 2.5.

Рисунок 2.5 - Запрос имени пользователя и пароля для доступа к Web-узлу

Чтобы получить доступ, посетитель должен ввести в поле Пользователь свой идентификатор, а в поле Пароль -- пароль доступа. В случае ввода ошибочных данных пользователь получает уведомление об ошибке авторизации (рисунок 2.6).

Рисунок 2.6 - Уведомление об ошибке авторизации

Сервер Apache современных версий позволяет использовать два типа аутентификации -- базовый (Basic) и аутентификацию с использованием MD5 (Digest). Первый тип аутентификации предполагает хранение идентификаторов пользователей и паролей в обычном текстовом файле. Аутентификация типа Digest обеспечивает более безопасный способ передачи паролей, но доступна только в самых новых версиях браузеров.

3. Ограничение доступа посетителей web-узла по IP-адресу

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

Команды Order, Deny и Allow позволяют ограничивать доступ к каталогу, указанному в качестве аргумента команды <Directory>:

<Directory /usr/local/httpd>

Order Deny,Allow

Allow from all

</Directory>

С помощью команды Order задается порядок, в котором используются команды запрещения доступа Deny и разрешения доступа Allow.

Если эти команды указаны в порядке Deny,Allow, то вначале обрабатываются все команды запрещения доступа Deny, а затем -- команды разрешения доступа Allow. При этом по умолчанию доступ к каталогу Web-узла разрешен для всех Интернет-узлов посетителей, адреса IP которых не соответствуют условию, описанному в аргументе команды Deny.

При указании параметров в последовательности Allow,Deny доступ к каталогу по умолчанию запрещен. Только те клиенты, адреса IP которых соответствуют аргументу команды Allow, могут получить доступ (но только в том случае, если эти адреса не попадают под действие команды Deny).

В качестве аргумента командам Deny и Allow можно передавать одиночные адреса IP, списки и диапазоны адресов IP.

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

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

Поэтому ограничение доступа по адресу IP целесообразно дополнять другими видами защиты, например, парольной защитой.

4. Дополнительная аутентификация для доступа к самой системе

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

Рисунок 2.7 - Окно аутентификации для доступа в систему

Обозначения на рисунке 2.7:

Поле 1 - Имя пользователя

Поле 2 - Пароль

Поле 3 - Код с картинки

Ниспадающий список - выбор одного из серверов

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

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

Непосредственно сразу же после прохождения аутентификации, описанной в предыдущем пункте, открывается главное окно системы (рисунок 2.8). Интерфейс системы состоит из фреймов, в каждый из которых в процессе работы загружаются данные из серверных логов (записи обо всех действиях, совершаемых пользователями). Фрейм - элемент языка HTML версии 3.0 и выше, позволяющий разделить веб-страницу на несколько независимых окон и в каждом из них размещать отдельную веб-страницу. При этом допускаются ссылки из одного окна в другое окно. В разработанной системе фреймы обладают возможностью масштабирования, что позволяет настроить интерфейс удобным способом при выполнении тех или иных действий.

Рисунок 2.8 - Главное окно системы

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

Рисунок 2.9 - Главное окно системы со скрытым фреймом и кнопками управления

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

Фрейм настройки записей (рисунок 2.10) предназначен для выбора количества отображаемых записей и выбора диапазона или нескольких периодов, за которые эти записи будут загружены. Количество записей указывает на максимальное построчное количество записей, которые будут отображены во фрейме при загрузке данных. Возможен выбор как отдельной даты или диапазона, так и нескольких периодов с нужным отклонением. Для уменьшения времени загрузки данных добавлена возможность выбора не только даты, но и времени. Если известно точное время события, то можно просто указать это время в виде короткого интервала и загрузить только необходимые для проверки записи, что существенно облегчит их анализ в дальнейшем.

Рисунок 2.10 - Фрейм настройки записей

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

Основной фрейм управления (рисунок 2.11) содержит кнопки для взаимодействия со всеми другими фреймами и содержит ссылки на дополнительные окна, недоступные в общем виде.

Рисунок 2.11 - Основной фрейм управления

Элементы основного фрейма управления:

1. Кнопка «Аккаунт» позволяет выбрать аккаунт (учетную запись пользователя)

2. Кнопка «Аккаунт ID» позволяет выбрать аккаунт по уникальному идентификатору в базе, присваиваемому каждому пользователю при регистрации

3. Кнопка «Персонаж» позволяет выбрать персонажа, располагающегося на аккаунте пользователя

4. Кнопка «Char ID» позволяет выбрать персонажа по уникальному идентификатору в базе, присваиваемому при создании персонажа

5. Поле «Чар» отображает выбранного персонажа и состояние его активности (онлайн или нет), так же доступен просмотр других персонажей на аккаунте и всех персонажей, которые когда-либо были на аккаунте, но удалены на данный момент.

6. Кнопка «Выход» предназначена для завершения сессии

Следующий ряд кнопок управления предназначен для взаимодействия основного фрейма управления с другими фреймами. При нажатии на данные кнопки загружаются записи в соответствующие фреймы системы (рисунок 2.12).

Рисунок 2.12 - Взаимодействие основного фрейма управления с другими фреймами

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

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

Рисунок 2.13 - Окно информации о персонаже

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

Рисунок 2.14 - Окно дополнительной информации о персонаже

Кнопки «to Home» и «to Town» открывают окна, предназначены для перемещения персонажа в близлежащий виртуальный город или же в город на выбор соответственно (рисунок 2.15). На практике данные инструменты используются в случаях «застревания» персонажей, когда пользователь не может самостоятельно выбраться из определенного места по причине ошибок геодаты (виртуальный ландшафт) или иных ошибок клиента, мешающих нормальному подключению персонажа к виртуальному миру.

Рисунок 2.15 - Окна перемещения персонажа

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

Кнопки «Ban/Unban» и «Mute/Unmute» предназначены для временной блокировки/разблокировки персонажей и для наложения запрета отправки сообщений в чат/снятия соответственно (рисунок 2.16). Данные функции необходимы для применения временных мер по отношению к пользователям. Наиболее распространенным нарушением является использование нецензурной лексики в отношении других игроков, что противоречит политике сервера и запрещено правилами. В таких случаях пользователь блокируется на определенное количество часов в зависимости от типа нарушения.

Рисунок 2.16 - Окна временных санкций в отношении персонажа

Кнопка «Check Test» выполнена для временного использования и предназначена для просмотра результатов тестирования.

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

Рисунок 2.17 - Окно параметрического поиска

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

Рисунок 2.18 - Окно поиска в истории переименований

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

Фрейм блокирования учетных записей (рисунок 2.19) предназначен для постоянной или временной блокировки учетных записей пользователей. В ниспадающем списке необходимо выбрать причину блокировки или написать самостоятельно, выбрать тип бана с разбаном или без (параметр в дальнейшем используется для автоматического сервиса разблокировки аккаунтов) и заблокировать учетную запись кнопкой «Бан акка». Через этот же интерфейс производится проверка аккаунтов на предмет блокировки (кнопка check) и их разблокировка. В некоторых случаях в качестве штрафа при разблокировке используется удаление предметов; список предметов для удаления можно выбрать поставив метку «удаление вещей при разбане» до блокировки аккаунта. Поскольку разблокировка аккаунтов происходит в автоматическом режиме пользователями (если причина блокировки предусматривает возможность разблокировки), то удаление предметов происходит так же автоматически в момент разблокировки.

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

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

Фрейм записей захода на сервер (рисунок 2.20) предназначен для просмотра IP-адресов подключения и отключения от сервера пользователей. Загрузка записей во фрейм производится за определенную дату или интервал (указывается во фрейме настройки записей) для конкретной учетной записи пользователя. Так же предусмотрен поиск других учетных записей, которые заходили и выходили в этот же временной промежуток с IP, указанного в поле поиска. В строке Id отображается уникальный идентификатор каждого действия (подключение к серверу, отключение, авторизация и т.п.). В строке date - дата, в строке данные - информация по IP-адресу и список аккаунтов, заходивших с данного IP.

Рисунок 2.20 - Фрейм записей заходов на сервер

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

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

Рисунок 2.21 - Фрейм записей действий

Основные поля фрейма записей действий:

§ char - имя персонажа

§ id - уникальный идентификатор каждого действия (всего около 1000), по которому определяется совершенное действие или событие.

§ date - дата и время действия

§ item id - уникальный идентификатор предмета

§ item type - идентификатор типа (класса) предметов

§ sell_count - количество (например, при передаче другому игроку)

§ sell_price - цена продажи либо сумма, изъятая за какое-либо действие

§ Target - ник персонажа-получателя предметов

§ toAcc - аккаунт получателя предметов

§ x y, z - координаты местоположения персонажа при совершении действия

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

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

Рисунок 2.22 - Выборка по нескольким параметрам во фрейме записей действий

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

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

Рисунок 2.23 - Фрейм записей чата

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

Фрейм истории предметов (рисунок 2.24) предназначен для загрузки в него записей обо всех действиях, происходивших с предметом в определенную дату или период. Поля фрейма идентичные полям во фрейме записей действий (пункт 2.4.5), но в данном случае поиск может осуществляться одновременно только по одному предмету. Поиск осуществляется по уникальному идентификатору предмета (item id).

Рисунок 2.24 - Фрейм истории предметов

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

Фрейм поиска предметов предназначен для поиска местонахождения предметов в виртуальном мире по их уникальному идентификатору (рисунок 2.25).

Поля фрейма идентичные полям во фрейме записей действий (пункт 2.4.5), но присутствуют и дополнительные:

§ Char/account name or clan name - имя персонажа и название аккаунта, или имя клана, у которого находится предмет.

§ item_name - название предмета

§ e - значение улучшения предмета

§ w - местоположение предмета (0=инвентарь, 1=склад)

§ quant - количество предметов

§ price - базовая цена предмета

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

§ забанен (заблокирован) аккаунт

§ забанен персонаж

§ пользователь находится онлайн (на сервере)

Рисунок 2.25 - Поиск предмета по ID во фрейме поиска предметов

Кроме поиска по уникальному идентификатору возможен поиск и по типу (классу) предметов. Этот метод используется для определения количества тех или иных предметов у пользователей и имеет дополнительную возможность поиска по количеству (рисунок 2.26).

Рисунок 2.26 - Поиск предметов по типу во фрейме поиска предметов

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

Фрейм списка предметов предназначен для загрузки записей о предметах, находящихся в инвентаре или на складе персонажа (рисунок 2.27), или в хранилище клана (рисунок 2.28).

Рисунок 2.27 - Список предметов у персонажа

Рисунок 2.28 - Список предметов в хранилище клана

ГЛАВА 3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ

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

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

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

В экономической и научно-технической литературе термин «эффективность» понимается по-разному:

- как вероятность выполнения поставленных перед системой задач;

- как отношение реализованного эффекта к максимально возможному.

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

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

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

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

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

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

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

- сокращение сроков формирования документов,

- повышение качества планово-учетных, контрольных и аналитических операций,

- сокращение объема документооборота,

- повышение управленческой культуры,

- рост производительности труда.

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

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

- экономия рабочего времени,

- индекс экономии затрат труда,

- индекс производительности труда,

- коэффициент снижения себестоимости и др.

Обобщающими показателями прямой эффективности, позволяющими судить о целесообразности применения технических средств, являются:

- годовой экономический эффект;

- период окупаемости единовременных затрат,

- коэффициент экономической эффективности (рентабельности) затрат или капитальных вложений.

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

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

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

Определение эффективности информационной системы основано на принципах экономической оценки производства и использования новой техники.

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

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

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

Гарантированный экономический эффект рассчитывается в виде эффекта для конкретного объекта внедрения и общего гарантированного внедрения по ряду объектов.

Фактический экономический эффект рассчитывается на основе данных учета и сопоставления затрат и результатов при конкретных применениях информационной системы.

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

Годовой экономический эффект от использования информационной системы (программного продукта) на предприятии как элемента новой или усовершенствованной технологии определяется по формуле:

Эг = ДС - З =(Сб- Сн) - З;

где Эг - годовой экономический эффект, руб.;

ДС - экономия затрат при внедрении программного продукта за год, руб.;

З - затраты на разработку и внедрение программного продукта, руб.

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

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

ДС = Сб - Сн;

где Сб, Сн - затраты на выполнение работ с использованием базового и нового варианта соответственно.

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

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

Расчет величины затрат по каждому варианту производится по формуле:

С = ВЧКЧЦ,

где В - время, затраченное на управленческую операцию, час;

К - количество управленческих операций;

Ц - стоимость одного часа работы, руб.

Период окупаемости проекта рассчитывается по формуле:

Т = З/Эг .

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

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

1) Заработная плата разработчиков программного продукта

Заработная плата работников ВУЗа рассчитывается на основе профессионально-квалификационных групп и уровней.

Заработная плата рассчитывается по формуле:

ЗП = ОЧ КрЧКесн ЧТ,

где О - оклад работника в соответствии с группой и уровнем;

Кр - коэффициент, учитывающий районную надбавку (1,15);

Кесн - коэффициент, учитывающий единый социальный налог (1,26);

Т - рабочее время.

Оплата труда дипломника, как молодого специалиста, рассчитывается, исходя из 0,5 оклада инженера (оклад инженера составляет 4330 руб.) и продолжительности разработки программного продукта (времени дипломирования) 3 месяца.

ЗПдип 4330Ч0,5Ч1,15 Ч1,26 Ч 3 = 9411,26 (руб.).

Оплата труда руководителя дипломной работы рассчитывается, исходя из оклада профессора 7500 руб. и норматива времени по руководству дипломных работ - 19 часов.

ЗП рук= (7500 Ч1,6+3000)/ 75 Ч19Ч1,15 Ч1,26 = 5506,2 (руб.),

где коэффициент 1,6 - доплата за должность доцента;

3000 - доплата за степень кандидата наук;

75 - месячный норматив рабочего времени (учебной нагрузки) доцента.

Для консультанта расчет заработной платы ведется аналогично, норматив времени на консультации по экономическому разделу - 4 часа. Консультант - доцент со степенью кандидата наук.

ЗП эк = (6000 Ч1,4+3000)/ 80 Ч4Ч1,15 Ч1,26 = 825, 93 (руб.),

Косвенная заработная плата учитывает текущие затраты на обслуживание компьютерного оборудования и рабочего места и рассчитывается по формуле:

ЗП кос = О / НЧКр ЧКесн ЧТ,

где О - оклад работника;

Кесн - коэффициент, учитывающий единый социальный налог;

Кр - коэффициент, учитывающий районную надбавку;

Т - рабочее время;

Н - норматив обслуживание компьютерного оборудования (10 компьютеров).

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

ЗП кос = 4500/10Ч1,15 Ч1,26Ч 3= 1956,15 (руб.)

Таблица 3.1 - Затраты на заработную плату и социальные отчисления

Наименование затрат

Сумма, руб.

1. ЗП дипломника-разработчика

9411,26

2. 3П руководителя работы

5506,2

3. ЗП консультанта по экономике

825, 93

4. ЗП обслуживающего персонала

1956,15

Итого

17699,54

2) Амортизационные отчисления

Под амортизационными отчислениями понимается уменьшение потребительской стоимости оборудования, используемого в течение расчетного периода времени. В соответствии с классификацией основных средств, включаемых в амортизационные отчисления (постановление Правительства РФ от 01.01. 2002 г.), электронно-вычислительная техника относится к 2 группе имущества со сроком полезного использования 2-3 года. Амортизация персональных компьютеров исчисляется линейным методом, то есть ежемесячно равномерными долями в размере 2,78% от балансовой стоимости оборудования при трех годах эксплуатации.

Стоимость компьютера, на котором разрабатывалось программное изделие, составляет 26 тыс. руб. Дипломная работа на компьютере выполнена за 3 месяца, следовательно, амортизационные отчисления составят 2168,40 (26000Ч0,0278Ч3) руб.

3) Затраты на электроэнергию

Затраты на электроэнергию рассчитывают по формуле:

3 эл =МЧФЧЦэлЧКпр;

где М - потребляемая мощность компьютера (0,4 Квт.ч);

Ф - действительный фонд времени работы оборудования (300-400 час.);

Цэл - стоимость промышленного потребления электроэнергии(3,07 руб. Квт.ч);

Крп - коэффициент на затраты электроэнергии прочего оборудования рабочего места (1,3).

Затраты на электроэнергию составили:

3эл = 0,4 Ч300Ч3,07 Ч1,3 =478,92 (руб.)

4) Накладные расходы

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

...

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

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