6_Tasoarkkitehtuuri
Download
Report
Transcript 6_Tasoarkkitehtuuri
Kaksi- ja kolmitasoiset
sovellukset
Two and Three Tier Systems
Kaksitasoinen sovellus
Kaksitasoisissa sovelluksissa ohjelman
logiikka on toteutettu seuraavasti
Asiakas
(Client) suorittaa paitsi
kommunikoimisen käyttäjän kanssa
myös ohjelman logiikan suorittamisen
Asiakas
tekee tämän logiikan mukaisia
hakuja tietokannasta (Server)
Client
Server
Users
User-ID
Passwords
Kysely:
Administrator
Admin-ID
Password
Taulu
Taulu
Taulu
Taulu
Vastaus:
Taulu
Taulu
Taulu
Kaksitasoinen sovellus
Ajatuksena se, että ohjelman toiminta on hajautettu
kahdelle eri tasolle eli asiakaskoneelle ja palvelinkoneelle,
jotka on liitetty toisiinsa jonkinlaisen verkkoratkaisun avulla
Ohjelman logiikka on toteutettu siten, että asiakaskone
kommunikoi käyttäjän kanssa ja suorittaa ohjelman
logiikkaan liittyvät toiminnot.
Palvelinkone taasen toimii eräänlaisena tietovarastona,
jonka avulla varsinainen ohjelma voi täyttää käyttäjän
vaatimukset
Esimerkki: yrityksen asiakastietokanta, joka on toteutettu
siten, että kaikki tieto on kerätty palvelimelle, jonka tietoja
asiakaskoneiden käyttäjät voivat hyödyntää
Kaksitasoinen sovellus
Kaksitasoisten sovellusten etuja:
Tiedon jakaminen
Tarjotun tiedon luetettavuuden ja yhtäpitävyyden takaaminen
Tiedon päällekkäisyyden estäminen ja sen ylläpitämisen
helpottaminen
Raporttien muodostamisen helppous
Laitepäivitysten tekemisen helpottaminen
Kaksitasoiset sovellukset toimivat hyvin
teollisuusympäristössä, jossa käyttäjien määrä on alle 100,
tietokantoja on yksi ja käytössä on nopea verkkoyhteys
Kaksitasoinen sovellus
Kaksitasoisten sovellusten haittoja:
Päivitysten tekemisen vaikeus -> Jos ohjelman toimivuutta
halutaan parantaa joudutaan jokaisen koneen ohjelmaversiot
päivittämään
Ohjelman pullonkaulaksi saattaa muodostua se, että tietokanta
pystyy palvelemaan samaan aikaan vain tiettyä määrää käyttäjiä
Ratkaisut kuormittavat lähiverkkoa
Koodin uudelleenkäytettävyys on kehnoa, koska ohjelmakoodi
on sidottu johonkin tiettyyn tietokantarakenteeseen ja sen
tauluihin
Käytettävän tietokannan vaihtaminen on vaikeaa
Kolmitasoinen sovellus
Kolmitasoisissa ohjelmissa ohjelman logiikka
on jaettu kolmelle eri tasolle:
Asiakas
kommunikoi käyttäjän kanssa
Välipalvelin
pyörittää ohjelman varsinaista
logiikkaa
Tiedon
hakemiset tehdään erillisestä
tietokannasta, joka pyörii erillisellä koneella.
Client
Response(HTML)
Server(IIS)
Kysely:
Kysely
kantaan
Request
Inter/intra/extranet
Vastaus
kannasta
Server(DB)
Taulu
Taulu
Taulu
Taulu
Vastaus:
Taulu
Taulu
Taulu
Toinen havaintokuva kolmitasoarkkitehtuurista
Response
client
JDBC
HTML
Request
Selain
www-palvelin
Tietokanta
Kolmitasoinen sovellus
Idea: ohjelman logiikka on jaettu kolmelle eri tasolle:
Asiakas suorittaa edelleen kommunikoinnin asiakkaan kanssa
Asiakas on yhteydessä keskitason palvelimeen, joka suorittaa
ohjelman varsinaisen logiikan
Keskitason palvelin suorittaa logiikkansa mukaan tiedon
hakemisen varsinaisesta tietokannasta, johon se on yhteydessä
verkon avulla
n-kerroksen sovelluksissa idea on sama –ohjelman logiikka on
pilkottu vaan useammalle tasolle
Käytännössä palvelimella toimiva ohjelma on täysin riippumaton
käyttöliittymän toteutustavasta
Kolmitasoinen sovellus
Saavutettavia etuja:
Ohjelman helppo päivitettävyys -> päivitykset voidaan tehdä vain
ohjelmaa pyörittävään palvelimeen
Voidaan käyttää samaan aikaan useiden palvelimien tehoa
hyväksi pilkkomalla tarvittaessa ohjelman toiminnallisuus usealle
eri palvelimelle
Tietokannan resursseja käytetään tehokkaasti tietokantaan ollaan
yhteydessä vain vähän aikaa ja yhteys vapautetaan heti tiedon
vastaanottamisen jälkeen
Tietoturva paranee entisestään koska kaikki ohjelman logiikka on
kätketty samaan keskitettyyn paikkaan
Asiakkaiden ei tarvitse tietää ohjelman logiikkaa syvällisesti eli ne
eivät tarvitse ajureita
Kolmitasoinen sovellus
Tekniikoita kolmitasoisen sovelluksen koodaamiseen:
ASP
Serveri (esim.): IIS
PHP
(Active Server Pages)
(Hypertext Preprosessor)
Serveri (esim.): Apache HTTP-server, IIS, Abyss
CGI
(Common Gateway Interface)
JSP (Java Server Pages)
Serveri (esim.): Apache Tomcat
JAVA
Servletit
Serveri (esim.): Apache Tomcat
J2EE