Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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 обьектов в памяти хранить. И лочить каждый обьект при его запросе. |