Architektura Pluginowa

171 views
Skip to first unread message

Przemysław Lewandowski

unread,
May 13, 2013, 6:09:29 AM5/13/13
to warsza...@googlegroups.com
Cześć 

Nie wiem czy był ten temat już opisywany, ale mam takie pytanie Czy ktoś z was tworzył już Web Aplikacje ze strukturą Pluginową, 
Gdzie jest część Core'owa - wspólna wraz z zarządcą pluginów, i w tej części zostały by wgrywane Jar'y które rozszerzają funkcjonalność aplikacji.
Tzn tworzą nowe tabele, nowe przyciski menu, nowe panele GUI, : D

Robił może ktoś coś takiego, bo o ile weryfikacje i tworzenie tabel chce oprzeć na Hibernate/LiquiBase to czy wgranie Jara i załadowanie klas z niego do działającej aplikacji w kontenerze Serwerza Aplikacyjnego nie wiem do końca jak zrobić poprawnie. Czy zwykły javowy ClassLoader dałby rade  ??

Arkadiusz Burdach

unread,
May 13, 2013, 6:31:34 AM5/13/13
to warsza...@googlegroups.com, Przemysław Lewandowski
Ja w ramach pracy mgr robiłem coś takiego w oparciu o OSGi, spring mvc,
virgo snaps, hibernate. Tyle, że to był raczej POC niż gotowe komercyjne
rozwiązanie. Po wgraniu jara, pojawiały się nowe pozycje w menu,
kontrolery obsługiwały nowe adresy itd, była też wtyczka dostarczająca
uwierzytelnienie i kontrolę dostępu. Jeśli chcesz więcej szczegółów na
ten temat to daj znać na priv.

W dniu 13.05.2013 12:09, Przemysław Lewandowski pisze:
> --
> --
> Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
> Więcej informacji na stronie
> http://groups.google.com/group/warszawa-jug?hl=pl
> Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
> Oferty pracy dozwolone zgodnie z zasadami na
> http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie
>
> ---
> Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną
> Google o nazwie „Warszawa Java User Group (Warszawa JUG)”.
>
> Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej
> wiadomości, wyślij e-maila do warszawa-jug...@googlegroups.com.
> Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out
>
>

Krzysztof Nielepkowicz

unread,
May 13, 2013, 5:11:00 PM5/13/13
to warsza...@googlegroups.com
> --
> --
> Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
> Więcej informacji na stronie
> http://groups.google.com/group/warszawa-jug?hl=pl
> Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
> Oferty pracy dozwolone zgodnie z zasadami na
> http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie
>
> ---
> Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną
> Google o nazwie „Warszawa Java User Group (Warszawa JUG)”.
>
> Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej
> wiadomości, wyślij e-maila do warszawa-jug...@googlegroups.com.
> Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out
>
>
Czy przypadkiem nie jest to przekombinowane? Chyba że piszesz CRM'a na
20 rynków to można się pokusić o coś takiego. Do rozszerzania i
konfigurowania w granicach rozsądku wystarczającymi narzędziami są
Spring i Mybatis. Ciężko mi sobie wyobrazić jaką przewagę miał by
hibernate? Wydajność raczej nie bo pod sporem siedzi relacyjna baza
danych, jest dość skomlikowany. Przypomniały mi się słowa jednego
prelegentów z 33Dgree - "problemem javy jest mnogość frameworków, PO
mówi do developerów - "słuchajcie, potrzebuję byście mi zrobili...." ci
mu przerywają : "użyjemy hibernate, wicketa, logikę napiszemy w closure!
Nie, użyjmy grailsów... " na to PO odpowiada "ale nawet nie zdąrzyłem
wam powiedzieć o co mi chodzi" a oni ripostują "ale my już wiemy w czym
to napiszemy" PO im przerywa "mi chodzi o zwykłe okienko logowania...."
..... "achaaa Hmmm".....


Pamiętajcie że im więcej frameworków i technologii mieszamy to tym
trudniej skupić się na istocie zadania - o tym też mówił Neward. Dlatego
popieram swoje słowa zdaniem znanych ze światka by pokazać że to co
piszę to nie są moje jakieś urojenia.

--
Serdecznie Pozdrawiam,
Krzysztof Nielepkowicz
fotografia : fotomilo.pl
mój programistyczny blog : http://kyniek.blogspot.com/

Przemysław Lewandowski

unread,
May 13, 2013, 5:51:52 PM5/13/13
to warsza...@googlegroups.com
chcemy napisać CRM moze nie na 20 rynkow ale zaczac od początku z możliowścią konfiguracji pluginowej, Czyli chcesz to, to i to więc dostajesz Core (Zarządce pluginów) + plus odpowiednie jary. Pod wzgledem Hibernate/LiquiBase chodziło mi o to że mogą tworzyć z obiektów domenowych tabele podczas działania programu, a także zmieniać jej strukture. Niestety nie uwzględnia zmian już istniejacych tabel tj. zmiana nazwy, typu kolumny. Pozatym uzywaliśmy Hibernate w poprzednich projektach...
Tak więc jeśli mamy czas, a troche go mamy dobrze byloby sie czegos nowego nauczyć : D

Pozdrawiam / Best Regards

Logo Hilltech

Przemysław Lewandowski

Telefon 

Tel: (0) 508 651 582

Fax 

Fax: (22) 213 38 60

E-Mail 

przemyslaw....@hilltech.pl

HILLTECH Systemy Kasowe i Płatnicze
Ul. Chodakowska 12, 03-826 Warszawa
tel. (0) 661 108 338; fax: (22) 213-38-60; e-mail: in...@hilltech.pl
www.hilltech.pl


Informacja zawarta w niniejszej korespondencji jest POUFNA. Korespondencja skierowana jest wyłącznie do osoby (firmy) wymienionej wyżej. Rozpowszechnianie, kopiowanie, ujawnianie lub przekazywanie osobom trzecim w jakiejkolwiek formie informacji zawartych w niniejszym dokumencie w całości lub w części jest zakazane. Jeżeli nie jesteście Państwo adresatem wiadomości prosimy o natychmiastowe powiadomienie nadawcy poprzez odesłanie maila i usunięcie go. 
The information contained in this message is CONFIDENTIAL and is intended for the addressee only. Any unauthorized use, dissemination of the information or copying of this message is prohibited. If you are not the addressee, please notify the sender immediately by return e-mail and delete this message.



W dniu 13 maja 2013 23:11 użytkownik Krzysztof Nielepkowicz <k.p.niel...@gmail.com> napisał:
On 2013-05-13 12:09, Przemysław Lewandowski wrote:
Cześć

Nie wiem czy był ten temat już opisywany, ale mam takie pytanie Czy ktoś z was tworzył już Web Aplikacje ze strukturą Pluginową,
Gdzie jest część Core'owa - wspólna wraz z zarządcą pluginów, i w tej części zostały by wgrywane Jar'y które rozszerzają funkcjonalność aplikacji.
Tzn tworzą nowe tabele, nowe przyciski menu, nowe panele GUI, : D

Robił może ktoś coś takiego, bo o ile weryfikacje i tworzenie tabel chce oprzeć na Hibernate/LiquiBase to czy wgranie Jara i załadowanie klas z niego do działającej aplikacji w kontenerze Serwerza Aplikacyjnego nie wiem do końca jak zrobić poprawnie. Czy zwykły javowy ClassLoader dałby rade  ??
--
--
Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
Więcej informacji na stronie http://groups.google.com/group/warszawa-jug?hl=pl
Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
Oferty pracy dozwolone zgodnie z zasadami na http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie

---
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie "Warszawa Java User Group (Warszawa JUG)".

Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do warszawa-jug+unsubscribe@googlegroups.com.

Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out


Czy przypadkiem nie jest to przekombinowane? Chyba że piszesz CRM'a na 20 rynków to można się pokusić o coś takiego. Do rozszerzania i konfigurowania w granicach rozsądku wystarczającymi narzędziami są Spring i Mybatis. Ciężko mi sobie wyobrazić jaką przewagę miał by hibernate? Wydajność raczej nie bo pod sporem siedzi relacyjna baza danych, jest dość skomlikowany. Przypomniały mi się słowa jednego prelegentów z 33Dgree - "problemem javy jest mnogość frameworków, PO mówi do developerów - "słuchajcie, potrzebuję byście mi zrobili...."  ci mu przerywają : "użyjemy hibernate, wicketa, logikę napiszemy w closure! Nie, użyjmy grailsów... " na to PO odpowiada "ale nawet nie zdąrzyłem wam powiedzieć o co mi chodzi" a oni ripostują "ale my już wiemy w czym to napiszemy" PO im przerywa "mi chodzi o zwykłe okienko logowania...." ..... "achaaa Hmmm".....


Pamiętajcie że im więcej frameworków i technologii mieszamy to tym trudniej skupić się na istocie zadania - o tym też mówił Neward. Dlatego popieram swoje słowa zdaniem znanych ze światka by pokazać że to co piszę to nie są moje jakieś urojenia.

--
Serdecznie Pozdrawiam,
Krzysztof Nielepkowicz
fotografia : fotomilo.pl
mój programistyczny blog : http://kyniek.blogspot.com/
--
--
Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
Więcej informacji na stronie http://groups.google.com/group/warszawa-jug?hl=pl
Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
Oferty pracy dozwolone zgodnie z zasadami na http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie

--- Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie "Warszawa Java User Group (Warszawa JUG)".

Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do warszawa-jug+unsubscribe@googlegroups.com.
image002.jpg
image001.png
image003.jpg

Paweł Szmidt

unread,
May 13, 2013, 5:55:16 PM5/13/13
to warsza...@googlegroups.com
Może warto przyjrzeć się kilku projektom rozwijanym w ramach Eclipse, w szczególności:

http://www.eclipse.org/rap/ --- ten w szczególności mam na myśli
http://www.eclipse.org/virgo/

Co do zasadności przyjęcia takiego rozwiązania dla architektury aplikacji, zależy myślę od tego jaką aplikację piszemy.

Pozdrawiam,
--
Paweł

Przemysław Lewandowski

unread,
May 13, 2013, 6:16:11 PM5/13/13
to warsza...@googlegroups.com
Dzieki za info Paweł. Poczytam o tych projektach.

Pozdrawiam / Best Regards

Logo Hilltech

Przemysław Lewandowski

Telefon 

Tel: (0) 508 651 582

Fax 

Fax: (22) 213 38 60

E-Mail 

przemyslaw....@hilltech.pl

HILLTECH Systemy Kasowe i Płatnicze
Ul. Chodakowska 12, 03-826 Warszawa
tel. (0) 661 108 338; fax: (22) 213-38-60; e-mail: in...@hilltech.pl
www.hilltech.pl


Informacja zawarta w niniejszej korespondencji jest POUFNA. Korespondencja skierowana jest wyłącznie do osoby (firmy) wymienionej wyżej. Rozpowszechnianie, kopiowanie, ujawnianie lub przekazywanie osobom trzecim w jakiejkolwiek formie informacji zawartych w niniejszym dokumencie w całości lub w części jest zakazane. Jeżeli nie jesteście Państwo adresatem wiadomości prosimy o natychmiastowe powiadomienie nadawcy poprzez odesłanie maila i usunięcie go. 
The information contained in this message is CONFIDENTIAL and is intended for the addressee only. Any unauthorized use, dissemination of the information or copying of this message is prohibited. If you are not the addressee, please notify the sender immediately by return e-mail and delete this message.



--
--
Wiadomość z grupy Warszawa Java User Group (Warszawa JUG).
Więcej informacji na stronie http://groups.google.com/group/warszawa-jug?hl=pl
Zachęcamy do odwiedzenia naszej strony domowej http://warszawa.jug.pl
Oferty pracy dozwolone zgodnie z zasadami na http://sites.google.com/site/warszawajug/oferty-pracy-na-grupie
 
---
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „Warszawa Java User Group (Warszawa JUG)”.
 
Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do warszawa-jug...@googlegroups.com.
image002.jpg
image001.png
image003.jpg

Paweł Szmidt

unread,
May 13, 2013, 6:40:25 PM5/13/13
to warsza...@googlegroups.com
W dniu wtorek, 14 maja 2013 00:16:11 UTC+2 użytkownik Przemysław Lewandowski napisał:
Dzieki za info Paweł. Poczytam o tych projektach.

W razie pytań, służę pomocą. Tutaj lub na priv.

W sytuacji wyboru od czego zacząć lekturę, polecam zajęcie się najpierw RAP:

 - wtyczki (oparte na OSGi),
 - model programowani powiedzmy "jak w swingu" ale mamy aplikację webową (czyli podobnie jak w Vaadin/GWT),
 - gotowy zrąb aplikacji --- dokładamy nową wtyczkę, dodaje ona tylko własne elementy GUI, nie programujemy całości "od zera",
 - sensowne wsparcie ze strony narzędzi uwzględniające m.in. sytuacje, gdy przygotowujemy kilka wariantów aplikacji poprzez wybór konkretnego zbioru wtyczek
 - technologia rozwijana do jakiegoś czasu,

pzdr.
--
Paweł

Paweł Szmidt

unread,
May 13, 2013, 7:06:37 PM5/13/13
to warsza...@googlegroups.com
W dniu wtorek, 14 maja 2013 00:40:25 UTC+2 użytkownik Paweł Szmidt napisał:
 - technologia rozwijana do jakiegoś czasu,

Przepraszam, literówka, miało być "od jakiegoś czasu".
--
Paweł

Tomek Lipski

unread,
May 14, 2013, 2:42:53 PM5/14/13
to warsza...@googlegroups.com
Hej,

Ja używałem OSGi do pluginów (kontener Apache Felix) i bardzo dobrze to chodziło. Kody są tutaj: https://github.com/bluesoft-rnd/aperte-workflow-core. Sam mechanizm obsługujący pluginy nie był przesadnie skomplikowany - chyba kilkanaście klas.

Z ciekawszych rzeczy udało się podpiąć na przykład takiego Mule ESB 3.x, dynamiczne przeładowanie konfiguracji Hibernate "w locie" czy budowanie procesu z komponentów w Vaadinie. 

t

Paweł

unread,
May 15, 2013, 3:05:43 PM5/15/13
to warsza...@googlegroups.com

... czy wgranie Jara i załadowanie klas z niego do działającej aplikacji w kontenerze Serwerza Aplikacyjnego nie wiem do końca jak zrobić poprawnie. Czy zwykły javowy ClassLoader dałby rade  ??

Zwykły ClassLoader nie nadaje się do tego kompletnie.
W jednym z projektów miałem taką architekturę pluginową. Część kodu była podmieniana w formie "jarków" w locie w działającej aplikacji webowej bez konieczności restartów tej aplikacji.
Użyłem czegoś takiego: https://github.com/kamranzafar/JCL. Fajnie to działa, załadowane klasy można odładować po użyciu itp.
Pozdrawiam,
Paweł
Reply all
Reply to author
Forward
0 new messages