Avatar billede simonvalter Praktikant
28. oktober 2004 - 23:27 Der er 10 kommentarer og
1 løsning

arkitektur for begyndere

sad lige og kiggede på http://www.eksperten.dk/artikler/148
jeg er lidt i tvivl om min application er en 3 tier eller 4 tier

det er en webapplication som kører under tomcat

præsentationslaget er jsf som kommunikerer med forretnignslaget som styres af spring og snakker med business services der hentes med en servicelocator.
persistens styres af hibernate og er skjult bag et dao pattern.

det hele kører på samme server og har kun en logisk opdeling men kunne evt fordeles over flere servere. så svarer det til en 3 tier eller 4 tier?
Avatar billede arne_v Ekspert
28. oktober 2004 - 23:39 #1
som jeg forstår dig så har du:

browser--(HTTP)--JSF--(?)--Spring--(?)--X--(call)--Hibernate--(JDBC)--database

browser--(HTTP)--JSF er åbenlyst en tier boundary
hibernate--(JDBC)--database er åbenlyst en tier boundary
X--(call)--Hibernate er åbenlyst kun et layer boundary
JSF--(?)--Spring og Spring--(?)--X ved jeg ikke hvad er

Hvis de 2 ? er layer boundaries så har du en 3 tier med 4 layers i midterste tier.

Hvis de 2 ? er tier boundaries så har du en 5 tier med to layers i næstbagerste tier.

Så spørgsmåler er om de ? er simple Java kald eller noget remote et eller andet.
Avatar billede arne_v Ekspert
28. oktober 2004 - 23:41 #2
Og jeg bruger konsekvent terminologien:

layer = klar adskilt lag som skal køre på samme maskine
tier = klart adskilt lag som kan men ikke skal køre på forskellige maskiner
Avatar billede simonvalter Praktikant
28. oktober 2004 - 23:59 #3
fra jsf til spring må være tier.

lige nu får jeg fat i Springs application context fra en service locator og henter en business service men jeg kunne slå remoting til og seperere jsf fra spring

spring til X tror jeg ikke jeg er med på
men spring skal køre på samme server som de objekter den håndterer da den fungerer som en form for container for dem.
Avatar billede simonvalter Praktikant
29. oktober 2004 - 00:19 #4
hmm nu kom jeg endnu mere i tvivl.

for at der er den rigtige seperation fra businesslayer til presentationayer vil man vel have en business delegate og hente business services med en service locator

det vil ikke kræve ændringer i ret meget for at gå fra local til remote da local lookup aligevel kræver at man catcher remote exceptions i EJB

i min kode vil det kræve en del mere at få fra local til remote da remote virker med RMI og så skal jeg til at håndtere remote exceptions.

jeg vil med lidt extra arbejde kunne køre remote men er det det samme som at det skal køre lokalt.
Avatar billede simonvalter Praktikant
29. oktober 2004 - 01:26 #5
eneste ændring det ville kræve er at sætte dette serveren der kører jsf

<bean id=”myServiceProxy”
class=”org.springframework.remoting.rmi.RmiProxyFactoryBean”>
<property name=”serviceInterface”>
<value>mypackage.MyService</value>
</property>
<property name=”serviceUrl”>
<value>rmi://myhost:1099/myservice</value>
</property>
</bean>

og eksportere business servicen på den anden server med

<bean id=”myService” class=”mypackage.MyServiceImpl”/>
<bean id=”myServiceExporter”
class=”org.springframework.remoting.rmi.RmiServiceExporter”>
<property name=”service”>
<ref bean=”myService”/>
</property>
<property name=”serviceName”>
<value>myservice</value>
</property>
<property name=”registryPort”>
<value>1099</value>
</property>
</bean>
Avatar billede arne_v Ekspert
29. oktober 2004 - 07:49 #6
Så det er:

browser--(HTTP)--JSF--(RMI or call)--Spring component--(call)--Hibernate--(JDBC)--database

?

Det giver 4 tiers med 2 layers i den næstsidste tier

(det må være OK med lidt rettelse af config for at skifte fra local til remote)
Avatar billede arne_v Ekspert
29. oktober 2004 - 07:50 #7
X var bare fordi jeg havde læst spørgsmålet som at business layer og business services
var 2 forskellige ting.
Avatar billede simonvalter Praktikant
29. oktober 2004 - 16:27 #8
ok tak du må godt smide et svar.
Avatar billede arne_v Ekspert
29. oktober 2004 - 16:32 #9
svar
Avatar billede arne_v Ekspert
29. oktober 2004 - 16:33 #10
Jeg skal understrege at der er andre som har en mere bred fortolkning af tier og bruger
det som synonym for layer.
Avatar billede simonvalter Praktikant
29. oktober 2004 - 17:03 #11
ok men jeg syntes nu også at din fortolkning lyder mest rigtig så jeg holder mig til det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester