powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Rich Client Platform ?
21 сообщений из 21, страница 1 из 1
Rich Client Platform ?
    #33621967
db2student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните что означает сия аббревиатура Rich Client Platform. Вот например Eclipse тоже RCP. А что это такое?
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33622008
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть SWT->RCP->Eclipse

SWT - это базовая библиотека для построения gui
RCP - это платформа для разработки gui клиентов. Представляет собой некоторый шаблон gui приложения с возможностями кастомизации. Уже содержит общую архитектуру приложения.

Eclipse - это конкретный продукт, реализованный на RCP. Есть например еще куча других продуктов написаных на RCP
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33699610
db2student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А где можно посмотреть примеры создания GUI интерфейса на основе Eclipse RCP ?
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33699803
коты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот студенты пошли!
низачот за неумение пользоваьтся гуглём!






eclipse.org
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33700698
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто нибудь делал на базе EclipseRCP толстого клиента к трёхзвенке (EJB3.0, Hibernatr)?
А то же самое но с помощью EMF?

У меня идея на счёт EMF. Пишем интерфейсы для сущностей метим их для EMF.
Реализуя эти интерфейсы пишем Entity Beans. EMFом генерим классы модели которые будут работать на клиенте (их нужно генерить так, чтобы они наследовали наши Entity Beans'ы), генерим EMF редактор. Теперь EMF модель может прочитаться из XMLа - нужно чтобы фасад писал и читал сущности из такого же XMLа (думаю не проблема). В результате получим робастную технологию для толстага клиента.

ваши камменты по этому поводу ????

а гугл по этому вопросу выдаёт ссылцы на бургерские конференции и курсы.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33704428
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exppА кто нибудь делал на базе EclipseRCP толстого клиента к трёхзвенке (EJB3.0, Hibernatr)?
А то же самое но с помощью EMF?

У меня идея на счёт EMF. Пишем интерфейсы для сущностей метим их для EMF.
Реализуя эти интерфейсы пишем Entity Beans. EMFом генерим классы модели которые будут работать на клиенте (их нужно генерить так, чтобы они наследовали наши Entity Beans'ы), генерим EMF редактор. Теперь EMF модель может прочитаться из XMLа - нужно чтобы фасад писал и читал сущности из такого же XMLа (думаю не проблема). В результате получим робастную технологию для толстага клиента.

ваши камменты по этому поводу ????

а гугл по этому вопросу выдаёт ссылцы на бургерские конференции и курсы.

ну и кто-нибудь чоннить скажед???
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33705581
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данный момент работаю над таким проектом:
1) Сервер – работает под Tomcat, использует Hibernate для доступа к данным;
2) Клиент – на RCP;
Про EMF сказать ничего не могу, ибо смотрел в сторону EMF очень не долго (времени не было). Можно обменяться опытом, если интересно.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33706832
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСервер – работает под Tomcat, использует Hibernate для доступа к данным;
тут я не понял на котеТоме вёб-служба или что? на RCP к чему клиент ???
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33706867
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
exppтут я не понял на котеТоме вёб-служба или что? на RCP к чему клиент ???
На сервере работает серверная часть приложения (Вы же сами про трехзвенку тут говорили). А клиентская часть к ней как раз (к серверной части). Архитектура сервис-ориентированная, но мы пока soap не используем, поэтому обработку запросов от клиента пока выполняют сервлеты. Хотя я как раз хочу переехать на вэб-сервисы.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33707056
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему сервлеты ?? а не Session EJB ???
на них как то лихо получается
они отлично вызываются по RMI и возвращают Entity beans (Hibernate POJO)
а сервлетом как? (и на пальцах про SOA ???)
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33707649
AndreySerj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже есть похожий проект.
Аппликэйшн сервер - ЖБосс 4. Используется его интегрированная поддержка Хибернэйта и Вэб-сервисов. Клиент - на RCP. Обмениваются бинами туда-обратно.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33708035
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сразу вопрос: бины прокачиваются через вёб-сервисы? зачем? почему не фасад на сессионном бине через RMI? (это так мелоч)

как в случае RCP проблемы с ленивой выгрузкой объектов (чтоб ветки дерева грузились по тычку), и единицей работы (UnitOfWork).
и можно скриншотец - ну чтоб проникнуться.
а что на счёт EMF на мой ламерцкый взгляд (см.пред) он почти сам всего клиента может сгенерить.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33710060
AndreySerj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, бины через вэб-сервис, причем, когда надо - то и все дерево бинов.
Архитектура приложения была разработана так, что ленивая загрузка не используется, так как любой метод сервиса - атомарный и после его отработки хибернэйт сессия закрывается.
А почему не EJB - такое было требование заказчика ...
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33710091
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreySerj... ленивая загрузка не используется ...

А не может получиться так, что вся база данных поднимется по запросу?
И еще вопрос, как Вы обратно данные в базу заносите? Мержем? Не возникает проблем с рассинхронизацией?

Очень интересна Ваша архетиктура, мы нечто подобное планируем сейчас сделать, но есть опасения...
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33710733
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pretender, "ага"
AndreySerj, я под "ленивая загрузка" не хибернатцкий lazy load имел ввиду, а пользовательский screen flow (что ли)
типа: показываем корень, тыч по корню - развернули master'ов
тыч по мастеру грузим его details,
...
ну и как изменения вносятся, сразу же или юзер сначала натыкает, а потом или запостит или отменит изменения. короче данные на клиенте как хранятся.
о как.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33711342
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот бред, который я песал, сделан в SDO - нашлёпке на EMF (которая хорошо совмещается с RCP)

заценим сцылцу, коллеги
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33711560
AndreySerj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2pretender:
Нет вся база не тянется. Где надо в мапингах обрублены связи и имеются проки-классы - когда нужно показать только сущность без ее наполнения.
Кусок DAO:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
 public   class  CommonDAO  implements  IPersister {

     public  Object create(Object entity)  throws  BusinessServiceException {
         return  saveOrUpdate(entity);
    }

     private  Object saveOrUpdate(Object entity)  throws  BusinessServiceException {
        Session session = HibernateUtil.getSession();
        Transaction tx =  null ;
         try  {
            tx = session.beginTransaction();
            session.saveOrUpdate(entity);
            tx.commit();
        }  catch  (HibernateException ex) {
            ex.printStackTrace();
            tx.rollback();
             throw   new  BusinessServiceException("Save or update exception: " + ex.getMessage(), ex);
        }  finally  {
            HibernateUtil.closeSession();
        }
         return  entity;
    }

     public  Object update(Object entity)  throws  BusinessServiceException {
         return  saveOrUpdate(entity);
    }


     public  List load( Class  c)  throws  BusinessServiceException {
        List objects =  null ;
         try  {
           objects = HibernateUtil.getSession().createCriteria(c).list();
        }  catch  (HibernateException ex) {
           ex.printStackTrace();
            throw   new  BusinessServiceException("Load a list exception: " + ex.getMessage(), ex);
        }  finally  {
           HibernateUtil.closeSession();
        }
         return  objects;
    }

 .....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 public   class  CommonViewDAO  implements  IViewPersister {

     public  List load(String name)  throws  BusinessServiceException {
        List listBeans =  new  ArrayList();
         try  {
            Iterator itr = HibernateUtil.getSession().createQuery("select id, name, version from " + name + " order by id").list().iterator();
             while (itr.hasNext()) {
               Object[] obj = (Object[])itr.next();
               listBeans.add( new  CommonViewBean( ( Long )obj[ 0 ], (String)obj[ 1 ], ( Long )obj[ 2 ] ));
            }
        }  catch  (HibernateException ex) {
            ex.printStackTrace();
             throw   new  BusinessServiceException("Load a list view exception: " + ex.getMessage(), ex);
        }  finally  {
            HibernateUtil.closeSession();
        }
         return  listBeans;
    }

Не совсем понял, что имелось ввиду про рассинхронизацию ...
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33711909
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreySerjв мапингах обрублены связи и имеются проки-классы

А не тяжело без связей работать. Хотя слова «где надо» наталкивают на мысль что Вам пришлось думать, как и где их обрубить, чтобы с одной стороны не потерять нужные связи, а с другой, чтобы не было проблем с загрузкой объектов на клиент. Или я не правильно Вас понял?
Если я правильно понял CommonDAO – собственно DAO, а CommonViewDAO – это прокси DAO, который используется для отправки и отображения на клиенте?
Это прокси обладает значительно уменьшенным количеством атрибутов. В нем отсутствуют все ссылки на другие объекты, как я понял.

Про рассинхронизацию, наверное, я действительно непонятно написал, прошу прощения. Вопрос такой: Клиент имеет возможность редактировать объект (изменять его)? Скорее всего - да. Значит, возникает задача сохранения изменений произведенных клиентом на сервере. Сервер получает от клиента измененный прокси объект, так? И сохраняет его в базу данных методом update(Object entity). Проблем не возникает? Похоже, что нет.

Поясню, какие проблемы я имел в виду: прежде всего lazyInitializationException при сохранении каскадных изменений в подчиненных объектах («no session or session was closed»). Если я не ошибаюсь, именно потому, что Вы lazy не используете, то у Вас нет проблем с этим. Да еще к тому же клиент с прокси объектами работает, у которых вообще связей нет (как я понял). Я также надеялся услышать и про другие проблемы, но если их нет, то это здорово!

И еще вопрос есть: с производительностью проблем не возникает (все-таки с lazy нагрузка поменьше на систему)? Или Вы так не думаете?

Если что не так понял, не ругайте :)
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33712431
AndreySerj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pretender
А не тяжело без связей работать. Хотя слова «где надо» наталкивают на мысль что Вам пришлось думать, как и где их обрубить, чтобы с одной стороны не потерять нужные связи, а с другой, чтобы не было проблем с загрузкой объектов на клиент. Или я не правильно Вас понял?
Все верно. Пришлось очень тщательно продумывать где какие связи сохранять, где удалять.
pretender
Если я правильно понял CommonDAO – собственно DAO, а CommonViewDAO – это прокси DAO, который используется для отправки и отображения на клиенте?
Это прокси обладает значительно уменьшенным количеством атрибутов. В нем отсутствуют все ссылки на другие объекты, как я понял.
Да. Те клиенту изначально дается прокси, а когда он определился с выбором и хочет загрузить полноценный бин - тогда подгружается обычный бин.

pretender
Про рассинхронизацию, наверное, я действительно непонятно написал, прошу прощения. Вопрос такой: Клиент имеет возможность редактировать объект (изменять его)? Скорее всего - да. Значит, возникает задача сохранения изменений произведенных клиентом на сервере. Сервер получает от клиента измененный прокси объект, так? И сохраняет его в базу данных методом update(Object entity). Проблем не возникает? Похоже, что нет.
Прокси нужен только чтобы показать клиенту что есть например список каких то обектов. Когда клиент выбирает из этого списка определнный объект(например для, редактирования) - подгружается полноценный объект. Его и редактируют. Проблем с апдейтом не возникало.

pretender
Поясню, какие проблемы я имел в виду: прежде всего lazyInitializationException при сохранении каскадных изменений в подчиненных объектах («no session or session was closed»). Если я не ошибаюсь, именно потому, что Вы lazy не используете, то у Вас нет проблем с этим.
...
И еще вопрос есть: с производительностью проблем не возникает (все-таки с lazy нагрузка поменьше на систему)? Или Вы так не думаете?
Да с lazy в моем случает не получится. Как я говорил, все операции с сервисом - атомарные. При вызове любого метода удаленного сервиса - открывается и закрывается сессия. Вообще с производительностью имеенно в этом проекте проблем нет, так кол-во объектов небольшое (имеются заранее предопределенные + возможно добавление пару расширенных). Безусловно, с lazy пошустрее будет, но я как-то не нашел красивого решения, что б и lazy и независимый вызов методов у сервиса.
Может у кого-то есть более элегантное решение - поделитесь плиз.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33712588
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваша архитектура понятна. Я очень рад что у Вас все работает. Мы тоже шли-шли и к такому решению пришли. Но сомнения все-таки есть особенно в плане производительности...

AndreySerj Безусловно, с lazy пошустрее будет, но я как-то не нашел красивого решения, что б и lazy и независимый вызов методов у сервиса.
Может у кого-то есть более элегантное решение - поделитесь плиз.


Да вроде есть решение.
Код: plaintext
Session.merge() 
надо смотреть, который как раз и позволяет сохранять отсоединенные объекты. Но надо проверять как это будет работать в Вашем случае.
...
Рейтинг: 0 / 0
Rich Client Platform ?
    #33713331
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreySerj
Да. Те клиенту изначально дается прокси, а когда он определился с выбором и хочет загрузить полноценный бин - тогда подгружается обычный бин.


а я вот, делаю такой изврат: сначала клиент получает entity с неподгруженными ассоциациями т.е. потенциально возможно lazyinitexc .GUI это обнаруживает (спец.методом) и при обращении вместо отбражения коллекций озадачивает фасад на полную выгрузку бина с его ассоциациями. (для этого все сложные сущности реализуют спец. интерфейс)

такое решение по вашему это как ????
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Rich Client Platform ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]