Информация
Уважаемый посетитель! Позволю себе некоторые размышления по поводу использования JAVA.
При реализации некоторого небольшого проекта для хранения текущей информации "замахнулся" на использование СУБД "ORACLE-8" - успешно всё получилось. Встроенный JDBC позволяет реализовать приложение на JAVA. Однако, этот "монстр" для своего лицензионного использования требует немалых денег и при установке на сервер, и на каждое клиентское место.
Предполагаю, что "MSQL-Server" мало чем отличается.
Другой "монстр" - "CACHE-5" бесплатно разрешает использовать ознакомительную версию (всё другое такое же дорогое). После успешного перевода проекта на эту СУБД оказалась более высокая скорость обработки в процессе эксплуатации проекта. И, что особенно важно, появился объектный подход в проектировании БД, облегчающий само проектирование и повышающий надёжность проекта.
Альтернативой явилась СУБД db4o (http://soft.mail.ru/program_page.php?grp=2338) - бесплатная объектная (объекты на языке JAVA) - полный комфорт программисту JAVA. После перевода упомянутого проекта на эту СУБД был получен плачевный результат - скорость функционирования проекта снизилась на порядок (в 10-15 раз медленнее).
Но последний, как казалось безысходный, вариант имел хороший выход. Он заключается в иерархическом размещении информации в каталогах и во вложенных каталогах. Например, каждодневную информацию размещаем в каталогах по годам и во вложенных каталогах по месяцам в файлах по дням, или информацию о предприятии разместим в файле:
C:\db\enterprise\77\35\08\23\74.txt, что соответствует его ИНН: 7735082374
Конечный файл (в примере - 74.txt) может быть файлом db4o, или сериализованным файлом при помощи механизма сериализации JavaBeans, или простым текстовым файлом. Нетрудно догадаться как в JAVA-приложении "добраться" до информации из этого файла и образовать соответствующий объект-класс.
Наш "злополучный" проект стал по скорости уступать "ORACLE" примерно в 2-3 раза. Но поисковые операции всё ещё остаются весьма долгими...
Картина изменилась в нашу пользу после экспорта в массивы классов в оперативное ЗУ описанной выше иерархически построенной БД. Обработка и поисковые операции стали выше "ORACLE" в несколько раз! В проекте время экспорта в ОЗУ не превышает 5 минут, информация за 3 года занимает около 100 Мб ОЗУ. Специальная параллельно работающая программа "Челнок" каждую минуту импортирует изменения в БД на твёрдом носителе.
Конечно, последнее решение имеет ограничение на объём БД, который должен вмещаться в ОЗУ. Но, полагаю, что найдётся немало проектов, удовлетворяющих этому требованию, построенных по описанной схеме под девизом: "Лицензионно, бесплатно, очень эффективно".
Шаг из платной OS "Windows" в бесплатную OS "Linux" очевиден.
Остаётся добавить, описанное здесь JAVA-приложение является сервлетом бесплатного WEB-сервера "Tomcat", а клиенты используют "Internet Explorer" или "Netscape Navigator" - составные части операционных систем.
27.02.2006г. А.Таракановский
prim-java@narod.ru
Prim_java