Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > (Client-Server) и хранение данных. Как лучше сд..?


Автор: ci5 8.12.2011, 18:51
Здравствуйте! Есть задание написать Клиент-серверное приложение с параллельной обработкой запросов с использованием сокетов. 
База данных это 2 файла: информация по отделам (начальник и отдел) и файл с отделами, в котором информация о нем(ФИО, отдел, телефон, зарплата). Вот некоторые вопросы по заданию
1. Как лучше хранить данные ? Допустим отделов у нас не так много, штук 10 и сами они не много информации содержат. Это будет 2 XML файла ? Или на каждый отдел делать лучше свой XML файл ? 
2. SAX или DOM ? SAX единственный раз может изменять данные, при своем проходе по данным. Может в этот момент все данные загрузить в какой-нибудь массив и вывести в таблицу, после чего перезаписывать данные по окончанию работы ? 
Или лучше DOM тут использовать для работы с XML ? Но он жрет память на сколько знаю много. 
Я не мало смыслю пока в XML, так что сильно не пинайте. Хотя нет, разве что на материал, было бы здорово. 
3. Как можно реализовать работу 2-х клиентов в один момент ? Чтобы один к примеру открыл для изменения файл, а второму указали что с файлом работают и предоставили доступ только для чтения. Возможно ли вообще так сделать ? Ведь мы загрузили данные и работаем по сути с их копией, а основной файл получается уже будет закрыт. Как вариант который пришел в голову, это находить хэш всего отдела и сравнивать. 
4. Работа с данными: думаю использовать 2 коллекции, это LinkedList для информации о отделе и какой-нибудь MAP, к примеру LinkedHashMap. Или что-то есть более лучшее в коллекциях для этого дела ? идентификатор наверняка должен быть уникальным в MAP. 

Заранее спасибо 

Автор: sergejzr 8.12.2011, 20:07
Я бы так сделал:
1. База данных
2. Jersey + JaxB
3. База данных / помечать записи как "read-only" (и передавать эту информацию), снимать галочку по окончанию работы / по таймауту
4. Да, hashMap - удобное решение в качестве индекса, а обьекты так и хранить, как JaxB

Автор: ci5 8.12.2011, 20:19
Извиняюсь, забыл указать, что пока что не предусмотрено использовать какие-либо базы данных для хранения. Либо txt либо xml. 

Автор: sergejzr 8.12.2011, 20:54
Тогда наверное два файла или даже в одном всё. А вообще XML базы данных, конечно, для этого следовало бы применять.

И на сервере тогда вообще можно массив (HashMap) JaxB обьектов в памяти хранить. И лочить каждый обьект при его запросе.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)