Нужно создать на языке awk (UNIX) скрипт, который делает следующее: Задан файл, в котором в каждой строке находится только одно слово. Подсчитать, сколько раз встречается каждое слово ...
Серверное приложение (с++ or Java)
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Требуется замена заболевшего программиста с++ bkb java. Суть заключается в разработке серверного приложения для онлайн-игры (нац.игра африканских стран, вроде шашок), настройка сервера. Клиент игры ( пишется нашим флэшером ) должен взаимодействовать с серверным приложением. Техническое задание в наличии.
КРАТКОЕ ОПИСАНИЕ:
1. План разработки сервера игры
Протокол:
Возможны 2 варианта работы клиента с сервером
1.синхронная, односторонняя (аналог ― HTTP или SOAP)
2.асинхронная (аналог - Jabber)
В первом случае только клиент посылает сообщение серверу а сервер
только отвечает на него. Этот вариант позволяет создавать более
простых клиентов, упрощает синхронизацию, но клиент должен
периодически опрашивать сервер не появилось ли новых сообщений что
увеличивает трафик и создает дополнительные задержки. Во втором ― как
клиент так и сервер могут посылать запросы или сообщения асинхронно.
Клиент более сложен, т.к. он должен уметь обрабатывать входящий
запросы и различать ответы на разные запросы. Но задержки сводятся к
минимуму. Поэтому далее я буду рассматривать второй вариант.
Клиент-серверное взаимодействие сводится к обмену сообщения в xml
формате поверх, зашифрованного с помощью SSL, tcp/ip соединения. Все
сообщения делятся на классы по типу решаемых задач и уровням доступа.
Например
0 уровень (клиент не авторизован) ― возможны только сообщения о ходе в
систему либо регистрации
1 уровень (демо доступ) ― любые сообщения связанные с Solo игрой
2 уровень (полный доступ)
Любое сообщение содержит имя команды, уникальный номер и блок данных.
Сообщения записываются в стек и обрабатываются последовательно.
Сообщения могут быть 3х видов:
1.требующие запрос к БД
2.требующие запрос к Игровому боту
3.требующие доставить их другому игроку(ам)
Так же сообщения 3-го типа могут создаваться СУБД для уведомления о
некоторых событиях в системе. Сообщения 3-го типа при обработке просто
перемещаются в исходящую очередь нужного клиента(ов). Сообщения 3-го
типа от СУБД извлекаются из специальной временной таблицы блоком
работы с базой данных и помещаются в соответствующие очереди клиентов.
Уведомление о появлении таких сообщений осуществляется с помощью
команды NOTIFY (PostgreSQL) и обработка происходит сразу после
создания сообщения.
Структура БД
В БД создаются необходимые таблицы и представления. И для каждой
клиентской команды, требующей запроса к БД, создается хранимая
процедура, которая ее обрабатывает. Таким образом вся логика
находится только внутри базы данных. Исключение ― бот для Solo игры.
Он будет запускаться в сервере и общаться напрямую с клиентом, а ходы
будут записываться в БД.
Структура сервера
Сервер будет состоять из 4х блоков
1.Главный блок. Этот блок запускает дочерние потоки и осуществляет
ожидание клиентов
2.Блок работы с базой данных. Содержит пул соединений с БД. Получает
Запросы от рабочих модулей, передает их в базу и отдает ответ.
3.Рабочий блок. Поток, который обеспечивает работу одного клиента.
Принимает запросы и передает их нужным блокам.
4.Бот. Поток, который запускается для Solo игры. (возможно будет
работать внутри потока запущенного 3-м блоком)
Блоки взаимодействую друг с другом с помощью очередей сообщений и
общей памяти. Для доступа к разделяемым ресурсам используются
блокировки разных типов.
Главный блок после запуска считывает конфигурацию, подключается к БД и
проверяет ее готовность. Далее открывает клиентский порт и ожидает
подключений. При подключении создает новый рабочий поток и передает
ему пользователя.
Пользователь после подключения получает статус 0 и ему доступны только
2 команды: авторизироваться или зарегистрироваться. В случае успешного
прохождения авторизации ему присваивается статус 1 или 2 в зависимости
от вида его учетной записи. Далее в зависимости от статуса
определяется список доступных команд. При выходе пользователя из
клиента или обрыве связи выполняется де-авторизация пользователя.
В общей памяти сервера находятся списки он-лайн пользователей, связи
id из БД и группы для рассылок сообщений в зависимости от текущих игр.
Этапы 1, части 1-2 выполнены:
Этап 1.
1. Альфа-версия документации API (выполнено)
2. Альфа-версия схемы базы (выполнено)
3. Альфа версия сервера с основным игровым функционалом
+ тесты + административный веб-интерфейс с минимальными возможностями
Этап 2.
4. Бета версия сервера с полным набором возможностей
5. Бета-тестирование
Этап 3.
6. Окончательная доработка проекта
7. Тестирования продукта
Оплата как почасовая, так и проектно, в зависимости от вашего выбора.
Если вы из Беларуси - возможна личная встрача.
- Похожие заказы
- Системное программирование1 исполнительЗакрыт17 лет назад
Требуется предварительная оценка и предложения по используемой технологии. Задача. Голосовой мессенджер обеспечивающий хорошее качество звука. Планируемая нагрузка более 1000 пар одновременно. Исходя из нагрузки преимущество будет отдано решению, ...
Системное программирование8 заявокЗакрыт17 лет назадНужен патч для httpd под CentOS 4.4 Server: Apache/2.0.59 (Unix) Необходимо чтобы по команде "top" или "ps axu -U apache" в системе выводился список процессов как обычно, но в колонке ...
Системное программированиенет заявокЗакрыт17 лет назад- $2000
Нужно создать аналог Elite Keylogger (www.elite-keylogger.com) или Powered Keylogger (http://www.security-utilities.com/keylogger.html) + добавить функцию просмотра удалённых рабочих столов, как в RadMin.
Системное программирование1 исполнительЗакрыт17 лет назад Нужна прога на С++ под ДОС Задача вот в чём: Прога работает с дискетой(загрузочная область), при запуске проги появляется меню: Выберите дальнейшее действие: 0:Выход 1:Настройка 2:Просмотр ...
Системное программирование1 заявкаЗакрыт17 лет назадДоброго времени суток! Необходимо выполнить след. лабараторную работу по ООП: моделирование магазина самообслуживания это по объектно ориентированному программированию , нужно сделать в билдере на с++ это проект.Там должна быть ...
Системное программированиенет заявокЗакрыт17 лет назад- $690
Нужно написать программу под Mac. ICQ#: 371-827-442 [email protected]
Системное программированиенет заявокЗакрыт17 лет назад Нужно сделать программу на ассемблере аська 229-шесть87-два81
Системное программирование5 заявокЗакрыт17 лет назадНа сайте http://open-save-dialog.com/ представленна библиотека которую надо "обернуть" в компонент для Microsoft C++ 6.0. Для знающего человека работы не много. Незнающих не надо. Все работы можно проводить с демо-версией ...
Системное программирование1 исполнительЗавершен17 лет назадНужна программа эмулирующая три команды UNIX в среде Windows Команды: 1) Kill 2) LS 3) PS. Срок вечер 10 января аська 229-шесть87-два81
Системное программирование2 заявкиЗакрыт17 лет назад