|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 188
|
||||||
Клиент в клиент-серверном приложении07.08.2014, 19:08. Показов 2912. Ответов 12
Метки нет (Все метки)
Добрый день, делаю тестовое задание для прохождения стажировки. Задействованы MySQL, Hibernate. Вот само задание
Кликните здесь для просмотра всего текста
Исследование AccountService'а
------------------------------------------------------------------------------------------------------ Цель: создать сервис и оценить время доступа к нему в зависимости от входных параметров ------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------ 1. Создать сервис со следующим интерфейсом: ------------------------------------------------------------------------------------------------------
Сервис должен кэшировать данные в памяти и сохранять данные в БД (Oracle, PostgreSQL, MySQL) или бросать Exception'ы если выполнить операцию не удалось. В качестве транспортного слоя можно выбрать любой из протоколов RMI, Hessian, HTTP ------------------------------------------------------------------------------------------------------ 2. Создать тестового клиента ------------------------------------------------------------------------------------------------------ Тестовый клиент должен уметь запускать несколько конкурентных потоков на определённом подмножестве идентификаторов - rCount - количество читателей вызывающих метод getAmount(id) - wCount - количество читателей вызывающих метод addAmount(id,value) - idList - список или доапазон ключей которые будут использоваться для тестирования Эти параметры можно задавать через командную строчку или конфигурационный файл. Одновременно можно запускать несколько тестовых клиентов на одном или разных компьютерах. ------------------------------------------------------------------------------------------------------ 3. Получить стаистику обрабатки запросов на сервере AccountService'ом ------------------------------------------------------------------------------------------------------ Для каждого из двух методов AccountService'а (getAmount, addAmount) нужно получить - кол-во запросов обрабатываемых в единицу времени на сервере (!!! не на клиенте) - общее кол-во запросов от всех клентов Статистику с сервиса можно получать по требованию любым способом или сбрасывать в лог с определённой периодичностью. Предусмотреть возможность сбросить статистику в ноль на работающем сервисе. Прошу пояснить полностью второй пункт(про подмножества идентификаторов), т.к. из написанного там вообще ничего не понятно. Также хочу спросить, лучше клиент делать в вебе или десктопный?
0
|
||||||
| 07.08.2014, 19:08 | |
|
Ответы с готовыми решениями:
12
Аутентификация в клиент-серверном приложении Шифрование данных в клиент-серверном приложении Организация авторизации в клиент-серверном приложении |
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 08.08.2014, 11:28 | |
|
Добрый день.
Множество идентификаторов - к примеру 100-1000000, думается должно быть неким задаваемым
0
|
|
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 188
|
|
| 08.08.2014, 13:22 [ТС] | |
|
edwin3d, что-то я совсем запутался. rCount, wCount, idList - это и есть эти идентификаторы или это просто параметры? И еще, судя по описанию этих параметров, кажется, что они имеют отношение к серверной части, а не клиентской.
0
|
|
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 08.08.2014, 13:29 | |
|
Вот смотрите, написано:
" - rCount - количество читателей вызывающих метод getAmount(id)" Неважно КАК мы будем дергать этот метод, через RMI или HTTP, суть в том, что мы его будем дергать. А "читатели" и будут его "дергать", а значит они и есть компоненты клиента
0
|
|
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 188
|
|
| 08.08.2014, 14:03 [ТС] | |
|
edwin3d, понятно, что читатели будут его дергать. Но каждый читатель в определенный момент времени будет дергать только один раз этот метод, а тут идет речь о количестве читателей ВЫЗЫВАЮЩИХ(т.е. в один и тот же момент) метод. Как я понимаю считается количество клиентов, вызывающих этот метод. По-моему может это делаться только на сервере.
0
|
|
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 08.08.2014, 14:19 | |
|
Кто Вам сказал про то, что дергать метод в тот или иной момент времени будет только один читатель ? Ведь их множество и соот. конкуренция - это совершенно здравая ситуация тут.
Т.е. встраивается схема клиент, у которого Н читателей. К примеру каждый читатель "живет" в отдельном потоке
0
|
|
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 188
|
|
| 08.08.2014, 18:54 [ТС] | |
|
edwin3d, понятное дело, что читателей несколько, т.к. несколько клиентов. Но из каждого клиента то дергаться будет только один метод. А у каждого клиента один читатель(т.е. пользователь).
0
|
|
|
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
|
|
| 09.08.2014, 16:17 | |
|
Вы не поняли. У вас будет многопоточный клиент.
Количество потоков = количеству читателей. Это все может быть в одном клиенте. Один клиент. У него много потоков. В каждом потоке по читателю. Вам нужно задать количество потоков, которое будет создавать ваш клиент. Естественно, одновременного (в общепризнанном понимании) чтения не будет. Но переключение между потоками будет проходить за доли секунды. Так что можно легко заспамить ваш сервер (если он слабый и не успевает обрабатывать такое количество запросов сразу). В этом и суть его тестирования.
1
|
|
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 188
|
|
| 09.08.2014, 23:15 [ТС] | |
|
Virkom, кажется начинаю понимать. Но: допустим в клиенте две кнопки(для чтения и записи), как тогда протестировать это, выполнение запросов будет происходить явно быстрее, чем я успею нажать кнопки.
0
|
|
|
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
|
|
| 10.08.2014, 17:14 | |
Сообщение было отмечено ivan92 как решение
Решение
Алгоритм в общем виде:
1. Вы вводите количество создаваемых потоков (N). 2. Нажимаете кнопку "Чтение". 3. Программа создает первый поток и обращается к серверу. 4. Программа создает второй поток и обращается к серверу. 5. Программа создает третий поток и обращается к серверу. ..... n. Программа создает N-ный поток и обращается к серверу. n+1. Сервер не сдох? - Тест пройден успешно. Закрываем все потоки и завершаем работу клиента. При этом можно установить временную задержку. Между запросами. Например, программа-клиент создает один поток и устанавливает для него задержку в одну секунду. Т.е. этот поток будет каждую секунду "теребить" сервер. Программа-клиент создает второй поток и опять же ставит для него задержку в одну секунду. Теперь работают два потока и сообщений на сервер сыплется каждую секунду в два раза больше. И так далее. Нажимаете кнопку вы один раз. Остальное делает программа-клиент. Почитайте про процессы/потоки.
1
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 10.08.2014, 19:33 | |
|
Если сервер использует HTTP то тестовым клиентом может выступить apache jmeter. Думаю использование готового решения вместо траты времени на написание своего (если готовое решение отвечает требованием и достаточно гибкое) является лучшей альтернативой. К тому же в задании сказанно создать клиента а не написать
0
|
|
|
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 188
|
|
| 11.08.2014, 12:54 [ТС] | |
|
Virkom, о потоках и потоках в java я более-менее осведомлен, спасибо за развернутый ответ)
Добавлено через 2 минуты KEKCoGEN, решил все таки остановиться на свинге. Ведь транспортному слой между свинговым клиентом и сервером соответствует протокол RMI?
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 11.08.2014, 16:09 | |
|
0
|
|
| 11.08.2014, 16:09 | |
|
Помогаю со студенческими работами здесь
13
Авторизация в клиент-серверном приложении (simplemembership?) Передача данных в клиент-серверном приложении Обработка ошибки в Клиент - Серверном приложении Передача файлов в клиент-серверном приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|