Я планирую написать приложение, использующее RMI, который использует JDO в качестве базы данных. Я думаю о том, чтобы брать те же классы и компилировать RMI-заглушки и улучшать их для использования с JDO. Таким образом, клиенты общаются с сервером, используя те же объекты, которые хранятся в базе данных. Это возможно?RMI и JDO: Насколько они совместимы?
ответ
Я раньше не использовал JDO, но если бы я отказался от этого, я сделал бы эти данные неизвестными клиенту.
Клиент не должен заботиться о том, где и как возникают объекты, из которых он запрашивается. Это позволяет вам определить интерфейс (или интерфейсы), с которым клиенту будет разрешено взаимодействовать, но освобождая вас от реализации, по вашему усмотрению.
Проблема с разоблачением клиента деталями означает, что с трудом (если не невозможно) перейти позже к другой реализации.
На мой взгляд, я бы рассматривал его так же, как любой другой удаленный API (например, веб-RPC), где у вас есть серия хорошо определенных интерфейсов, которая позволяет клиенту взаимодействовать с сервером, но сохранить детали как это взаимодействие действительно работает на стороне сервера.
Это отделяет сферу ответственности и, если вы хорошо ее проектируете, означает, что если вам понадобится изменить модель сервера в будущем, это должно практически не повлиять на клиента, поскольку у вас есть четко определенный контракт, согласно которому вы может работать через
Так что мой ответ будет, да, это может быть сделано, но нет, клиент не должен ничего знать о том, как это делается
ИМХО
Это должно работать, если вы убедитесь, что для отсоединения JDOs, прежде чем они будут сериализованы над RMI. См. http://db.apache.org/jdo/attach_detach.html
Но могу ли я прикрепить их позже и сделать их еще доступными для удаленного доступа? – tbodt
Да, хотя присоединение полезно только на сервере в сценарии, когда ваш удаленный клиент сделал обновление JDO, и вы хотите сохранить изменения в вашем хранилище данных. – TheArchitect
- 1. Насколько совместимы rspec и heckle?
- 2. Насколько совместимы JQuery и Microsoft AJAX UpdatePanel?
- 3. Насколько совместимы разные версии Android?
- 4. Насколько совместимы модули БД на уровне SQL?
- 5. NSCoder + UIDocument: совместимы ли они?
- 6. Насколько быстро может быть RMI?
- 7. GWT Rich Internet Application (RIA) и REST HATEOAS - насколько они совместимы?
- 8. Spinlocks, насколько они полезны?
- 9. Насколько совместимы статические методы класса и регулярные указатели регулярных операций?
- 10. Статистика и индексы SQL - Насколько они подробны?
- 11. unichar и NSString - насколько они взаимозаменяемы?
- 12. Какие веб-серверы совместимы с gevent и как они соотносятся?
- 13. MySQL-запросы - насколько они дороги?
- 14. выражения Angularjs - насколько они сложны?
- 15. Отдельные объекты в Jdo/Hibernate - для чего они нужны?
- 16. Насколько совместимы загрузочные плагины с загрузочной загрузкой 3 markup
- 17. Раскадранты и наконечники совместимы?
- 18. Autohotkey и Vim совместимы?
- 19. JPOX JDO и Castor JDO по сравнению с сохранением гибернации
- 20. Совместимы ли APC и ionCube?
- 21. Совместимы ли OpenMPI и MPICH2?
- 22. Сравните 2 объекта, чтобы узнать, совместимы ли они в VB.NET.
- 23. Css Hover совместимы, даже если они не зависают
- 24. Java Generics: Compiler не будет выводить типы, хотя они совместимы
- 25. Понимание сессий SqlAlchemy - насколько они неустойчивы?
- 26. Расширенные классы в java, насколько они громоздкие?
- 27. Alpine musl vs glibc - они должны быть совместимы?
- 28. OpenGL Stencil Buffer, насколько хорошо они поддерживаются?
- 29. TastyPie и Django ORM - насколько они тесно связаны?
- 30. Являются ли ASP.Net WebHooks хорошим решением и насколько податливы они?
Я тоже видел ваш другой вопрос. Моя последняя программа RMI - пару лет назад, поэтому я не помню всех деталей RMI и не могу дать действительно хороший ответ, но мне кажется странным, что объекты домена удаляются из удаленных объектов. Возможно, лучше подходит архитектура с хорошо определенным интерфейсом сервера и, возможно, объектами передачи данных (DTO). Также я рекомендую сначала ознакомиться с требованиями. Во-вторых, попытаться удовлетворить ваши требования технически приведет вас в правильном направлении. Альтернативная альтернатива: передача сообщения, например. с Аккой (www.akka.io). Удачи. – user573215
Есть много более практичных деталей для объектов JDO, чем только данные домена. Существуют методы жизненного цикла (реализация JDO-специфических интерфейсов), вспомогательный код, который создает зависимость от самой реализации JDO и т. Д. Вы направляетесь именно в том направлении, о котором я упомянул вам в вашем другом вопросе: у вас будет полный набор зависимостей JAR как на клиенте, так и на сервере. –