[JAVA] Spring (web) applicatie.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste tweakers,

Voor school moeten wij een enterprise applicatie maken waarbij een webapplicatie en een swing applicatie moeten praten met een business/data laag .

Nu willen wij de applicatie zo gaan maken dat als we in de webapplicatie een wijziging moet gaan doorvoeren de swing applicatie blijft werken. (dus dat de business laag een los gekoppeld project is)

Voor de applicatie willen wij de volgende technieken gebruiken:
Business/ Data laag (spring + hibernate)
Webapplicatie (spring mvc)
Swing applicatie (awt)

Nu hebben wij 2 vragen:

- Op welke manier kunnen wij het beste communiceren tussen de web/swing applicatie en de business laag.

- Hebben wij voor ons project genoeg aan een tomcat app. server of is een applicatie server als jboss aan te raden?

Alvast bedankt voor jullie reacties!

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17:37

TeeDee

CQB 241

Misschien een behoorlijk lomp antwoord: Maar wat zegt de docent ervan? Of is het de bedoeling dat je dit zelf uitzoekt (al dan niet met behulp van online resources)

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Je moet je business 1 keer maken en die gebruiken bij je webapplicatie en je swing applicatie. Hier kan je bijvoorbeeld EJBs voor gebruiken, volgens mij heeft spring hier een equivalent van.

Swing applicatie(awt) is een beetje tegenstrijdig trouwens, AWT is de voorganger van Swing, Swing is weer gebaseerd op AWT.

[ Voor 25% gewijzigd door Y0ur1 op 17-03-2008 16:03 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vrije keus hebben wij erin / zelf uitzoeken :)

Acties:
  • 0 Henk 'm!

  • xerix
  • Registratie: Januari 2001
  • Laatst online: 10-12-2020
Verwijderd schreef op maandag 17 maart 2008 @ 15:32:
- Op welke manier kunnen wij het beste communiceren tussen de web/swing applicatie en de business laag.
Ik zou m'n data/business managers exposen dmv. een RmiServiceExporter of een HTTP exposer. Je web/swing applicaties kunnen dan deze services aanroepen.
Zie http://static.springframework.org/spring/docs/2.5.x/reference/remoting.html voor meer informatie.
- Hebben wij voor ons project genoeg aan een tomcat app. server of is een applicatie server als jboss aan te raden?
Tomcat is voldoende als je geen EJB gaat gebruiken.

vtec just kicked in yo!


Acties:
  • 0 Henk 'm!

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 29-08 09:58
Wat xerix zegt lijkt me inderdaad een goede keus. Je kan eventueel ook nog je business laag ontsluiten met webservices. En daar weer op aansluiten. Genoeg keus in ieder geval.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


Acties:
  • 0 Henk 'm!

  • redfox314
  • Registratie: December 2004
  • Laatst online: 21:11
Verwijderd schreef op maandag 17 maart 2008 @ 15:32:

- Op welke manier kunnen wij het beste communiceren tussen de web/swing applicatie en de business laag.
Afhangende van wat je precies wil doen zou je best ook eens kijken naar spring webflow.
Dat is een extensie van swing die het spring mvc kan gebruiken en jij toelaat om pageflows te definieren. Je schrijft dan minimale jsp's (bijna alleen html) voor elke pagina.

Ik zou in elk geval een facade maken voor je business logic laag. Deze brengt dan alle componenten samen in een klasse. Deze klasse kan je dan als enterprise java bean gebruiken in spring. Je kan dan vanuit je webapp methodes aanspreken van je facades. Je hoeft deze klasse alleen maar de declareren in een xml configuratie document voor spring (webflow).

Onthou vooral dat je POJOs (Plain Old Java Objects) kan declareren als java beans en ze vervolgens zonder meer kan gebruiken. De meeste webapplicaties stack ondersteunen dit.

==>
Voor een bredere kijk op de dingen leen eens hetvolgende boek uit uit de bibliotheek (ik kan mij niet voorstellen dat ze het niet hebben).
GAMMA E., et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 2005.
- Hebben wij voor ons project genoeg aan een tomcat app. server of is een applicatie server als jboss aan te raden?
Zelfs als je ejb's wilt gebruiken kan je tomcat blijven gebruiken. Je laad gewoon de benodigde libs in je webapp directory en je bent vertrokken.

[ Voor 17% gewijzigd door redfox314 op 17-03-2008 22:25 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt alle voor jullie nuttige antwoorden, hier kan ik zeker wat mee!!

Wat ik mij nog afvraag is hoe ik de spring (context) container start voor mijn business laag als ik in dit project geen web.xml heb zitten?

In de documentatie heb ik alleen kunnen vinden hoe ik een spring servlet kan laden voor een webproject.

Acties:
  • 0 Henk 'm!

  • xerix
  • Registratie: Januari 2001
  • Laatst online: 10-12-2020
Verwijderd schreef op dinsdag 18 maart 2008 @ 11:00:
Bedankt alle voor jullie nuttige antwoorden, hier kan ik zeker wat mee!!

Wat ik mij nog afvraag is hoe ik de spring (context) container start voor mijn business laag als ik in dit project geen web.xml heb zitten?

In de documentatie heb ik alleen kunnen vinden hoe ik een spring servlet kan laden voor een webproject.
Java:
1
2
3
4
5
6
7
8
9
10
11
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SomeClass {
    private static final ApplicationContext ac = new ClassPathXmlApplicationContext("context.xml");

    public static void main(String[] args) {
        MyIntf bean= (MyIntf) ac.getBean("myBean");
        bean.myMethod();
    }
}

vtec just kicked in yo!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
xerix schreef op dinsdag 18 maart 2008 @ 11:06:
[...]


Java:
1
2
3
4
5
6
7
8
9
10
11
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SomeClass {
    private static final ApplicationContext ac = new ClassPathXmlApplicationContext("context.xml");

    public static void main(String[] args) {
        MyIntf bean= (MyIntf) ac.getBean("myBean");
        bean.myMethod();
    }
}
Je bent geweldig _/-\o_ bedankt voor je snelle reactie!

Acties:
  • 0 Henk 'm!

Verwijderd

Als je je Swing-applicatie op wilt laten starten met Java Webstart en je wilt communiceren met je server met web services kun je nog wel eens voor verrassingen komen te staan met verschillen in parsers bij client en server en bij clients heb je niet zoveel controle over de JRE.

Met EJB3 werkt het echter vrij makkelijk. Hibernate (of welk ORM-framework je ook gebruikt) abstraheer je dan door JPA te gebruiken. In je J2EE server kun je dan eventueel nog JDBC/resource aanmaken voor connection pooling.

loskoppelen doe je hoe dan ook door gewoon goede interfaces te ontwikkelen. Dan kun je de implementatie veranderen vat je wilt.

Gezien het een schoolopdracht is zou ik de swing-applicatie gewoon niet java webstart maken. En voor Spring zal wel gekozen zijn ivm de aanwezige kennis/literatuur. Desondanks zul je vragen over waarom Spring en niet EJB of waarom Hibernate en niet JPA of Toplink eigenlijk wel netjes moeten kunnen beantwoorden denk ik.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 18 maart 2008 @ 11:30:
Als je je Swing-applicatie op wilt laten starten met Java Webstart en je wilt communiceren met je server met web services kun je nog wel eens voor verrassingen komen te staan met verschillen in parsers bij client en server en bij clients heb je niet zoveel controle over de JRE.

Met EJB3 werkt het echter vrij makkelijk. Hibernate (of welk ORM-framework je ook gebruikt) abstraheer je dan door JPA te gebruiken. In je J2EE server kun je dan eventueel nog JDBC/resource aanmaken voor connection pooling.

loskoppelen doe je hoe dan ook door gewoon goede interfaces te ontwikkelen. Dan kun je de implementatie veranderen vat je wilt.

Gezien het een schoolopdracht is zou ik de swing-applicatie gewoon niet java webstart maken. En voor Spring zal wel gekozen zijn ivm de aanwezige kennis/literatuur. Desondanks zul je vragen over waarom Spring en niet EJB of waarom Hibernate en niet JPA of Toplink eigenlijk wel netjes moeten kunnen beantwoorden denk ik.
Zou het dan handig zijn om spring in combinatie met JPA te gebruiken of is dit af te raden?

Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 17:30
Verwijderd schreef op dinsdag 18 maart 2008 @ 11:45:
[...]


Zou het dan handig zijn om spring in combinatie met JPA te gebruiken of is dit af te raden?
Hibernate 3 biedt een implementatie van de JPA API, dus als je naar die API programmeert dan kan je gewoon een Spring + Hibernate implementatie gebruiken.

Acties:
  • 0 Henk 'm!

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Verwijderd schreef op dinsdag 18 maart 2008 @ 11:30:
Als je je Swing-applicatie op wilt laten starten met Java Webstart en je wilt communiceren met je server met web services kun je nog wel eens voor verrassingen komen te staan met verschillen in parsers bij client en server en bij clients heb je niet zoveel controle over de JRE.
Je hebt inderdaad weinig (geen eigenlijk) controle over de JRE. Echter, hebt wel controle over wat je met je applicatie meelevert en endorsed op je classpath.

Acties:
  • 0 Henk 'm!

Verwijderd

rrrandy schreef op dinsdag 18 maart 2008 @ 13:07:
[...]


Je hebt inderdaad weinig (geen eigenlijk) controle over de JRE. Echter, hebt wel controle over wat je met je applicatie meelevert en endorsed op je classpath.
kun je met java webstart endorsen dan? Bij mij pakte 'ie steeds een oudere versie uit de JRE. Maar misschien had ik er wat meer tijd in moeten steken.

Anyway, je kunt JPA inderdaad ook buiten een J2EE-server gebruiken. Bovendien hebben Hibernate developers meegewerkt aan de JPA standaard, dus het ligt ook nog eens vrij dicht bij elkaar.

Overigens, afgelopen week bij een JPA-applicatie Hibernate vervangen voor Toplink en daar viel me op dat Hibernate best wel wat grove fouten door de vingers ziet. Hibernate brouwselde zelf wat van totale tegenstellingen. Toen ik er Toplink onder schoof moest ik dus nog wel het één en ander fixen voordat het ook daarmee werkte. Nu zou ik echter zonder moeite moeten kunnen switchen :)

Mag ik de TS overigens vragen waar hij welke opleiding doet? Ik vind het wel goed dat jullie met enterprise dingen mogen stoeien :)

[ Voor 6% gewijzigd door Verwijderd op 18-03-2008 20:30 ]

Pagina: 1