close

Вход

Забыли?

вход по аккаунту

?

JavaChat для мобильных телефонов

код для вставкиСкачать
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
JavaChat
для
мобильных
телефонов
Антон Смольянинов
[askrd@digdes.com]
Начальник отдела Digital Design
[www.digdes.ru]
Microsoft Regional Director
[www.microsoft.com/rd]
Лидер Питерской группы
разработчиков Microsoft .NET
[sp.gotdotnet.ru]
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Содержание
Немного о проекте
Проектирование
Подробности реализации
Внедрение системы
Анализ результатов
Слайд: 2
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Содержание
Немного о проекте
Проектирование
Подробности реализации
Внедрение системы
Анализ результатов
Слайд: 3
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Назначение разработки
Заказчик
СЗ Филиал ОАО «МегаФон»
Главная цель
Расширение спектра «on-line» услуг
Вторичная цель
Продажа GPRS трафика
Основные задачи
Поддержка максимально возможного
количества телефонов
Работа в сетях оператора (интеграция с
Radius, поддержка шлюзов, …)
Проблемное место
Разработка на J2ME
Слайд: 4
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Описание задачи
Решаемые задачи
Организация обмена текстовыми
сообщениями
Общение в рамках сессий
Каждая сессия поддерживает участие
несколько пользователей
Все пользователи в рамках одной сессии
видят сообщения друг друга
Общая суть
В рамках одной сессии,
общение происходит
в виде закрытого «чата»
Слайд: 5
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
“Внутренняя кухня”
Команда проекта
Руководитель проекта (Team Lead)
Technical Lead
Разработчик
Инженер по качеству
Дизайнер
Планируемый график работ
Проектирование:
Разработка:
Стабилизация:
Риски:
Итого:
~ 35 дней
~ 65 дней
~ 25 дней
~ 15 дней
всего-то 5 месяцев… Организация процесса разработки
Стандарт ISO 9001
Стандарт CMMI Level 3
Слайд: 6
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Некоторые нюансики
“Аппаратные” средства
Сотовые телефоны для тестирования
SIM-карты с неограниченным доступом
Внутренняя сеть оператора для
размещения серверной части
Контактные лица для технической
поддержки
Программное обеспечение
Linux RedHat 7.3
MySQL 4.0
JBoss 3.2
… мир “Open Source”… Слайд: 7
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Содержание
Немного о проекте
Проектирование
Подробности реализации
Внедрение системы
Анализ результатов
Слайд: 8
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Сценарий общения
Главное меню
Чат
Форма выбора
начала/
продолжения
чата
Продолжить
Форма со
списком
сообщений
старого чата
Начать чат
Новое сообщение
Форма выбора
собеседников
Форма ввода
нового
сообщения
Выбор собеседников
Меню начала
чата/
добавления
собеседника
Старт
Форма со
списком
сообщений
Ввод
номера/имени
собеседника
Отправить
Добавить
Форма ввода
имени/номера
собеседника
Новое сообщение
Форма ввода
нового
сообщения
Отправить
Слайд: 9
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Состояния сессии
Server
Unavailable
(нет доступа к
серверу)
Состояния соединения между клиентом и сервером (и
соответственно приложения) разделяются на два
относительно независимых (параллельных) набора
состояний.
Connected (соединение установлено)
Нет сетевого соединения
или неверный ответ
сервера
Приложение
Соединение
запущено
успешно
Connecting
1. Набор общих
состояний
Приложение
закрыто
(Соединяемся с
сервером…)
Сервер отказал
в соединении
Connection
Refused
(в соединении
отказано)
2. Набор состояний
«вызов в чат/не вызов
в чат»
Ошибка
протокола
(ERR)
Возможно, не каждая
ошибка должна приводить к
полному сбросу состоний?
Слайд: 10
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Разговоры клиента с сервером
Выход из чата
Chat
(Общение в
чате)
Standby
(Ожидание)
Переход в другой чат
(после принятия
приглашения)
Создание чата или
принятие вызова в чат
Ожидание
входящего
приглашения
(вызова в чат)
Приглашения
(вызов) отменен
Приходит приглашение
(вызов) в чат
При этом, сохраняется
старый чат (если был чат
в момент вызова)
Приглашение
(вызов) отклонен
Ожидание
принятия/
отклонения
приглашения
Приглашение
(вызов) принято
При этом, старый чат
закрывается (если был
чат в момент вызова) и
открывается новый чат
Приходит еще одно приглашение
(вызов) в чат
Слайд: 11
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Архитектура
J2ME (MIDP 1.0)
Linux
Клиентский компонент
приложения
Java
Application
Server
(Servlets)
Набор утилит
командной
строки
База данных
Служебные
процессы
HTTP
Сеть
передачи
данных
AP
Проксисерв ер
Сотов ый телефон
SMPP
Сервер
приложения
SMSC
Слайд: 12
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Архитектура
J2ME (MIDP 1.0)
Linux
Клиентский компонент
приложения
Java
Application
Server
(Servlets)
Набор утилит
командной
строки
База данных
Служебные
процессы
HTTP
Сеть
передачи
данных
AP
Проксисерв ер
Сотов ый телефон
SMPP
Сервер
приложения
SMSC
Слайд: 13
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Основные моменты архитектуры
Взаимодействие пользователей
Используется сервер приложений
Клиентская часть приложения
Работает на сотовых телефонах
Протокол взаимодействия
HTTP/GPRS
Службы поддержки
SMSC (SMS Center) оператора для
приема/отправки SMS-сообщений
Сервер «Virtual RADIUS» для определения
MSISDN по IP адресу
Слайд: 14
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Структура базы данных
messages
contacts
users
stattotal
sessions
ipranges
sessionusers
parameters
Слайд: 15
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Детальная архитектура
Слайд: 16
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Содержание
Немного о проекте
Проектирование
Подробности реализации
Внедрение системы
Анализ результатов
Слайд: 17
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Компоненты решения
Клиент
Java-приложение на мобильном
телефоне
Платформа Java2 Platform, Micro
Edition, MIDP 1.0
Клиентские функции приложения
(отображение и ввод сообщений и
т.д.)
Поддерживаемые телефоны
Nokia Series 40 (6100, 6610)
Nokia Series 60 (6600, 3650)
Siemens C55/M55/C60
SonyEricsson T610/T630
…
Слайд: 18
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Компоненты решения
Клиент
Соответствие моделей телефонов и файлов
Слайд: 19
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Компоненты решения
Сервер
На базе Linux RedHat 7.3
Java Application Server (JBoss 3.2.3)
Серверные функции приложения
Регистрация пользователей
Передача сообщений
…
База данных (MySQL 4.0) для хранения
Текущих сообщений
Списков пользователей
Контактов
Статистики
Служебной информации
…
И не только…
Слайд: 20
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Компоненты решения
Сервер
Набор утилит командной строки
Просмотр статистики
Настройка параметров приложения
Служебные процессы
Регулярные действия (например, очистка
базы данных)
Используется CRON
SMSC (SMS Center) – прием и отсылка SMS
Протокол SMPP
Вызов другого пользователя из режима offline
Virtual RADIUS
Определение MSISDN абонента по IP адресу
Использование MSISDN в качестве имени
пользователя
Слайд: 21
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Интерфейс пользователя
1. Запуск
приложения
4. Ввести
номер
2. Приглашение
в чат
5. Список
собеседников
6. Форма
общения
3. Выбрать
контакт
7. Новое
сообщение
Слайд: 22
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Процесс тестирования
Тестирование:
Система (Javachat)
- внутреннее
- внешнее
Сервер
Servlet
Компонент
очистки сессий
Мониторинг
Клиент
Компонент
очистки
статистики
SMSC
Tomcat
V-RADIUS
MySQL
Админ. утилиты
Слайд: 23
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Тестирование производительности
2 пользователя в
чате
5 пользователей в
чате
10 пользователя в
чате
10 чатов
15 мс
??? запросов
0% ошибок
Load avg. ~0.2
CPU < 5%
15 мс
??? запросов
0% ошибок
Load avg. ~0.4
CPU ~10%
22 мс
501 запросов
0% ошибок
Load avg. ~0.4
CPU ~30%
100 чатов
63 мс
1181 сообщений
4729 запросов
0% ошибок
Load avg. ~0.8
CPU ~ 52%
233 мс
3002 сообщений
11030 запросов
0% ошибок
Load avg. ~2.8
CPU ~ 110%
8197 мс
2143 сообщений
5286 запросов
10% ошибок
Время тестирования – 120 секунд.
Интервал опроса сервера – 5 секунд.
Интервал отсылки сообщений – 20 секунд.
Тестовое сообщение – "abcdefghijklmno".
Слайд: 24
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Содержание
Немного о проекте
Проектирование
Подробности реализации
Внедрение системы
Анализ результатов
Слайд: 25
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Схема внедрения системы
Linux RedHat 7.3
Сеть
передачи
данных
AP
JBoss 3.2.3
J2SDK 1.4.2
MySQL 4.0
Утилиты +
CROND
Virtual
RADIUS
SMPP
Серве
р
приложения
SMSC
CPU DUAL INTEL Xeon 2,4 GHz
RAM 2 GB
HDD 60 GB SCSI
Слайд: 26
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Проблемы внедрения
Описание процесса установки
J2SDK 1.4.2
JBoss 3.2.3
MySQL 4.0
Описание настройки
JBoss 3.2.3
MySQL 4.0
CRON
Специального пользователя nwchat
При этом, сама установка
Серверным сценарием chat_install
server – установить конфигурацию JBoss
utils – установить утилиты и файлы библиотек
conf – установить конфигурационные файлы
cron – сконфигурировать CRON
Клиенты устанавливаются методом закачки
Слайд: 27
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Проблемы внедрения
Кроме этого
Конфигурационный файл
Порядка 35 параметров
Скрипт отправки SNMP Traps
Для отправки SNMP Traps в случае сбоев в работе
системы
Порядка 15 параметров
Наблюдение за системой
Лог-файл
Лог-файл
Лог-файл
Лог-файл
ошибок доступа
ошибок системы
действий пользователей
работы сценариев мониторинга
Утилиты командной строки
Административные утилиты
Служебные утилиты
Скрипты мониторинга
Слайд: 28
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Особенности внедрения системы
Опытное внедрение
Сервер, предоставленный Заказчиком для целей
эксплуатации системы
Установки системы в Digital Design
Тестирование на площадке Digital Design
Приемо-сдаточные испытания
Физическое перемещение сервера
Окончательная приемка на площадке Заказчика
Ввод системы в опытную эксплуатацию
Фокус-группа Заказчика (менее 10
пользователей)
Услуга 'МегаФон - Чат'
С ноября 2004 года новая услуга:
http://www.megafonnw.ru/
site/rus/services/servlist/java_chat.html
Слайд: 29
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Бесплатный сыр и бесплатный софт?
Стоимость годовой поддержки MySQL
Стоимость поддержки JBoss
Слайд: 30
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Содержание
Немного о проекте
Проектирование
Подробности реализации
Внедрение системы
Анализ результатов
Слайд: 31
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Где шипы, там и розы
Что удалось
Java-приложение "МегаФон-чат"
Новая услуга раздела "Общение"
Реальная прибыль от трафика GPRS
0,08 USD за 10 Кб
Некоторые неудачи
Неготовностью инфраструктуры Заказчика к
запланированному сроку
Орг.структура Заказчика!
Ряд замечаний к системе на этапе опытной
эксплуатации
Разве бывает иначе?.. Необходимость документирования
Привлечение тех.писателя (~ 5 дней)
Технические сложности
Расходование запланированных
рисков
Вовлечение доп. ресурсов
Слайд: 32
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Два слова о мобильном будущем
Данные маркетингового
агентства ARC Group
Доходы от мировых продаж сервисов
мобильной связи (кроме традиционного
голосового) в 2008 г. увеличатся до 126
млрд. долл., или почти в два раза по
сравнению с 2003 г.
При этом услуги операторов не будут
исчерпываться распространенными SMS,
MMS, Internet over GPRS и пр.
В перспективе
Mobile Instant Messaging and Presence
Services (IMPS)
Push to talk over Cellular (PTT)
…
Слайд: 33
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Проектные выводы (Lessons Learned)
Добрым словом и пистолетом
вы можете сделать гораздо
больше, чем одним только
добрым словом.
Аль Капоне
Лаской почти всегда добьешься
больше, чем грубой силой.
Эзоп
Ты должен сделать добро
из зла, потому что
его больше не из чего делать.
Роберт Пенн Уоррен
“Вся королевская рать”
Слайд: 34
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Слайд: 35
I N F O R M A T I O N
S Y S T E M
D E V E L O P M E N T
Вопросы
199155, Россия, СанктПетербург, Одоевского, 28
Тел: (812) 346-5833
Тел/факс: (812) 346-5834
E-mail: market@digdes.com
URL: http://www.digdes.com
Слайд: 36
Документ
Категория
Презентации
Просмотров
23
Размер файла
3 230 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа