Архитектура для разработки приложения на Java, которое может использоваться с настольным и веб-интерфейсом - PullRequest
0 голосов
/ 01 декабря 2010

Я занимаюсь разработкой Java-приложения или службы для выполнения удаленных команд или других приложений и получения результатов этих команд.И я думаю о том, чтобы спроектировать это приложение, чтобы было возможно его использование с интерфейсом Swing или веб-интерфейсом.

Я должен позаботиться о параметрах, которые нужно передать для моих занятий по бизнесу, и о том, как я буду иметь дело с результатами,Мне нужно использовать архитектуру и проект, которые позволят мне также использовать мои классы с настольным приложением или веб-приложением.

Я считаю, что это связано с API и дизайном сервиса.Некоторые популярные приложения имеют веб-интерфейс или панель управления для служб управления, а службы управляются агентами, установленными для запуска некоторых демонов, служб или приложений.Для выполнения команд запуска или остановки для систем баз данных, служб каталогов и других задач

Существуют некоторые руководства по разработке приложений и служб в Java, которые можно использовать в веб-среде и среде рабочего стола?

IЯ чувствую, что укус сбивает с толку из-за этого, потому что, по моему мнению, если я решу развить это с помощью свинг-подхода, все мысли прояснятся для меня.Но когда я представляю тот же проект с использованием веб-перспективы, я теряю свои директивы.

Извините, но я надеюсь, что кто-то может предпринять меня.: -Р

Ответы [ 4 ]

3 голосов
/ 01 декабря 2010

Рассмотрим архитектуру spring и MVC . Ни один из них не ограничен только веб-разработкой, однако они широко используются как таковые.

2 голосов
/ 01 декабря 2010

Вы можете заглянуть в Голые объекты , где вы разрабатываете объектную модель домена и получаете пользовательский интерфейс более или менее бесплатно (вы можете получить графический интерфейс рабочего стола и различные веб-интерфейсы).Вероятно, это нереальный подход, если вы разрабатываете общедоступное приложение, но больше подходит для приложений, разработанных для опытных пользователей.

1 голос
/ 02 декабря 2010

Привет, я бы посоветовал вам построить систему с модульным подходом, чтобы у вас есть вся ваша бизнес-логика, представленная как служба, к которой может получить доступ REST, Кроме того, вы можете создать слой веб-приложений и уровень рабочего стола.

схематически это будет выглядеть на более высоком уровне

веб-слой / рабочий стол --------- {интерфейс REST} ------- {бизнес-логика} ----- EIS

и для модульности вы можете рассмотреть OSGI надеюсь, это поможет

1 голос
/ 02 декабря 2010

Я недавно был в похожей ситуации, когда начал работать над простой CMS.Я хотел, чтобы мой движок CMS был свободен от того, какой интерфейс / клиент использует для взаимодействия с ним, и, наконец, я остановился на подходе, ориентированном на Web-сервис.Будучи студентом RESTful WS / ROA, я обычно предпочитаю использовать этот подход.

Если я правильно понимаю вашу проблему, я бы разработал ее для каждой внешней программы, службы, веб-службы, которой я хочу предоставить удаленный доступ.to будет «Application» для моего веб-сервиса, где «Application» будет «Resource».Выполнение действий над ресурсом «Приложение» будет означать выполнение запросов GET с другими параметрами запроса.То, как выводится «Приложение», зависит от ресурса «Приложение».

Аналогичный подход, который я использовал в движке CMS, заключается в создании представлений для контента.Я поддерживаю шаблоны Ruby (JRuby), Groovy, JavaScript (Rhino) и Velocity для создания представления.Пользователь создает шаблон сценария как ресурс и ссылается затем в определении типа контента.Клиентам предоставляются URI для представления из универсальных форматов мультимедиа контента (Atom XML, JSON), и после выборки они получают выходные данные, сгенерированные сценарием.Я испытываю соблазн принять аналогичный подход к вашей проблеме.Он не только отделил бы пользовательский интерфейс от бизнес-объектов, но также обеспечил бы гибкость добавления новых внутренних сервисов в долгосрочной перспективе.

В качестве инструментов для RESTful WS через Java я бы порекомендовал, Джерси Абдера , Джексон .В качестве примера того, как использовать их вместе, вы можете взглянуть на проект CMS, который я имел в виду .

...