Могу ли я использовать серверы LDAP, такие как ApacheDS, в качестве решения для хранения данных для настольных приложений?

парень рекомендовал мне использовать ApacheDS в качестве замены моей базы данных (MySQL), вы можете найти обсуждение здесь я совершенно новичок в LDAP и ApacheDS (на самом деле вчера я понятия не имел об этом), я искал об этом и прочитал несколько статей, наконец, я получил этой страницы.

учитывая, что LDAP является сетевым протоколом (если это так), возможно ли или разумно ли использовать серверы LDAP, такие как ApacheDS, в качестве решения для обеспечения устойчивости для настольных приложений?

разве LDAP не нуждается в сервере приложений (например, tomcat) для запуска? не могли бы вы зажечь меня :) спасибо


person MoienGK    schedule 12.09.2011    source источник


Ответы (3)


Для запуска LDAP требуется служба LDAP, такая как ApacheDS, OpenLDAP и т.п. Больше ничего не нужно.

У LDAP есть два преимущества перед базой данных SQL.

Один из них - гораздо более тонкий контроль доступа, например. у вас может быть «столбец», который может обновлять любой из группы «adminstrator» и который может быть прочитан только пользователем и его / ее менеджером. База данных LDAP может реализовать вашу политику безопасности, которая обеспечивает возможность централизованного аудита.

Базы данных LDAP, как правило, имеют лучшую производительность запросов и чтения (иногда на порядок), но гораздо более низкую производительность записи (также иногда на порядок). Предполагается, что вы используете его для поиска деталей, например. имя пользователя/пароль гораздо чаще, чем вы меняете их.

По этой причине я бы не стал использовать базу данных LDAP для ведения журнала.

person Peter Lawrey    schedule 12.09.2011
comment
хм, хороший намек на скорость чтения/записи, и я думаю, что природа дерева вызывает эту разницу. не так ли? я не использую LDAP для ведения журнала, приложение представляет собой своего рода небольшое банковское приложение (гораздо проще, чем банк). Я разрабатываю на Java, как вы знаете, Java не так уж и хорош в настольных приложениях, поэтому я пытаюсь настроить его производительность, насколько это возможно. - person MoienGK; 12.09.2011
comment
Я бы подумал, что большинство проблем с производительностью будет связано с тем, как обновляется графический интерфейс. В противном случае Java не будет работать медленнее на рабочем столе i7 или сервере i7. (Вы пробовали использовать опцию -server;) - person Peter Lawrey; 12.09.2011
comment
Я считаю, что .NET более популярен на настольных компьютерах из-за простой интеграции с Windows, Office и Outlook. Графические интерфейсы, как правило, выглядят дружелюбно для пользователей Windows. Java часто используется на настольных компьютерах, где ни один из них не важен, а переносимость важнее. (Я использовал приложение .NET, которое работало только в 32-битных окнах, а не в 64-битных, и нам пришлось покупать ноутбук специально для него, потому что все наши ПК были 64-битными) - person Peter Lawrey; 12.09.2011
comment
Java не только переносима между Windows и Linux, но также переносима между всеми вариантами Windows. Я видел продукты .NET, которые не были (произведены компаниями с большими ИТ-ресурсами) - person Peter Lawrey; 12.09.2011
comment
Мне интересно, как такие приложения, как eclipse, имеют лучший пользовательский интерфейс в Windows, чем другие приложения, возможно, потому, что они не используют только стандартные библиотеки. но я тоже хочу :D - person MoienGK; 12.09.2011
comment
Наиболее распространенная проблема заключается в том, что слишком много делается в потоке обработки событий GUI. Лично я бы не стал делать абсолютный минимум в потоке графического интерфейса и никогда не заставлял его быть занятым/блокирующим в течение какого-либо периода времени. например никогда не делайте сетевой вызов или даже доступ к диску в потоке графического интерфейса. Я использую IntelliJ, чистое Java-приложение для свинга, и я предпочитаю его затмению. (Однако иногда он ждет диска, что раздражает, если у вас нет SSD) - person Peter Lawrey; 12.09.2011
comment
вас волнует еще один запоздалый вопрос? :D Я понимаю, что ApacheDS - это сервер ldap, есть ли какой-нибудь сопоставитель каталогов объектов? как спящий режим для sql? который мы можем назвать ODM? - person MoienGK; 23.09.2011
comment
Я бы посмотрел на одну из баз данных без sql nosql-database.org, чтобы увидеть, делает ли она то, что вы хотеть. - person Peter Lawrey; 23.09.2011

Существует множество применений LDAP в качестве хранилища данных не только для пользователей. Собственно говоря, LDAP часто считают одним из первых серверов NoSQL. Я знаю поставщика программного обеспечения для телеконференций, который использовал сервер каталогов LDAP для замены базы данных SQL, чтобы обеспечить высокую доступность и распространение. Поскольку их программное обеспечение развернуто в нескольких местах по всему миру, наличие единой базы данных не будет масштабироваться и создаст проблемы на сетевом уровне. Благодаря LDAP и возможностям сервера по репликации с несколькими мастерами они смогли иметь сервер в каждом месте, контролировать потоки репликации и даже использовать распределенный характер данных для расширения своих услуг. Серверы каталогов LDAP на основе Java, такие как Apache DS или OpenDJ (opendj.org), обеспечивают гибкость при развертывании и даже могут быть встроены в приложения Java, например веб-приложения.

Наконец, в то время как серверы LDAP были разработаны для большого количества операций чтения и небольшого количества операций записи, теперь серверы способны выполнять интенсивную запись (хотя я бы не стал использовать их только для операций записи, таких как ведение журнала). Например, OpenDJ был протестирован со скоростью до 15000 модификаций в секунду в базе данных с 10 миллионами пользователей. Та же конфигурация могла обрабатывать более 60 000 поисков в секунду. Честно говоря, размер кучи JVM составлял 32 ГБ.

С уважением,

Людовик.

person Ludovic Poitou    schedule 19.09.2011
comment
Приятно видеть, что LDAP можно использовать не только для управления пользователями. Сегодня я обнаружил LDAP, так как моя компания в Марселе рассматривает возможность его использования не только для управления аутентификацией и правами доступа наших пользователей, но и для контактов наших клиентов. Если разделить нашу инфраструктуру между сервером LDAP и сервером базы данных MySQL для остальных данных нашего веб-приложения, как я должен синхронизировать эти два хранилища данных? Бизнес-сущности клиента, хранящиеся в базе данных, должны быть связаны с сущностью клиента, хранящейся на сервере LDAP. - person Stephane; 21.01.2017
comment
Я не могу в это поверить! Что !? Есть компания под названием ForgeRock, предлагающая именно такие услуги? И он основан на этой платформе с открытым исходным кодом? О-ля-ля... Глядя на их видео, кажется, что команда действительно хорошо проводит там время. И продукты могут быть ответом на мои требования. Похоже, серия руководств по OpenIDM — это путь вперед для меня! - person Stephane; 21.01.2017

Для развертывания LDAP требуется только сервер ldap. Например, openldap или ApacheDS. Я использовал openldap в качестве решения для сохраняемости веб-приложений, и это сработало. Есть важное отличие: sql — это отношение, а ldap — это дерево!

person Puzirki    schedule 12.09.2011
comment
Я предполагаю, что вы имеете в виду for, а не foe (что означает враг;) - person Peter Lawrey; 12.09.2011