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