Professional Documents
Culture Documents
M i c r o s o ft . N et
k e r etre n d s z e r i s m e rteté s e
I n f o r m ati k a I. H á z i fel a d at
K é s z ítette: K o v á c s R o l a n d – S 2 3 9 N Q
2009.03.07.
[ I d e ír h atja b e a d o k u m e nt u m k i v o n atát, a m e l y re n d s z e ri nt a d o k u m e nt u m r ö v i d ö s s z e f o g l a l á s a. I d e
ír h atja b e a d o k u m e nt u m k i v o n atát, a m e l y re n d s z e ri nt a d o k u m e nt u m r ö v i d ö s s z e f o g l a l á s a. ]
Bemutatkozik a Microsoft .Net
• A probléma háttere
• A megoldás áttekintése
• Az assembly
• Memóriakezelés
• Együttműködés a COM-mal
• Tranzakciók a .Net-ben
• Strukturált kivitelezés
• A hozzáférés szabályozása
2. Az ASP.Net
• A probléma háttere
• A megoldás áttekintése
• Webes vezérlőelemek
• Állapotkezelés az ASP.NET-ben
• Biztonság az ASP.NET-ben
• Hitelesítés és engedélyezés
3. A .Net webszolgáltatások
• A probléma háttere
• A megoldás
1. A .Net objektumok
A .Net keretrendszer (.NET framework) olyan futtatási környezet, amely
lehetővé teszi, hogy programozók könnyen és gyorsan írjanak jó és robosztus
programokat, és segíti a programkód felügyeletét, telepítését és felülvizsgálatát
is. A fejlesztők által írt programok és komponensek e kereten belül futnak. A
.Net keretrendszer remek futtatási szolgáltatásokat nyújt : pl. automatikus
memóriakezelés és vele egyszerűbben elérhetők a rendszerszolgáltatások is.
Több kisegítő szolgáltatással is rendelkezik : ide tartozik az az egyszerű
internet- és adatbázis hozzáférés. A keretrendszer a programkód
újrafelhasználására is újfajta mechanizmust alkalmaz – egyszerűbben
használható, ugyanakkor nagyobb teljesítményű és rugalmasabb, mint pl.: a
COM. A .Net keretrendszeren belül egyszerűbb az alkalmazások telepítése, mert
nem igényel beállításokat a rendszerleíró adatbázisban. Ráadásul
szabványosított, rendszerszintű verziókezelést is támogat. Ezeknek a
szolgáltatásoknak mindegyike elérhető az összes .Net-kompatibilis
programozási nyelvben.
1. 1 A probléma háttere
Mint a legtöbb szoftverarchitektúra, a COM is egy bizonyos pontig segít,
belső szerkezete viszont immár akadályt, nem segítséget jelent. A COM két
legfőbb problémája a következő :
• minden alkalmazásban szilárd infrastruktúrára van szükség, pl :
osztálygyárakra és illesztési programcsomagolókra. Mind a fejlesztői
környezetben meg kell valósítani ezeket a mechanizmusokat, így azok mindig
kissé különböznek egymástól, nem kompatibilisek annyira egymással, mint mi
az szeretnénk.
• a COM az ügyfelet és a kiszolgálót tisztes távolságban tartja. Egymással
külső illesztőfelületeken érintkeznek, nem pedig belső megvalósításukon
keresztül. Sajnos az összes COM-illesztőfelület megvalósítása különbözik alig
észrevehető, de nehezen összehangolható módon.
A karakterláncokat máshogy kezeli minden programnyelv. Ha a Visual Basic-
ben írt COM-kiszolgálótól egy karakterláncot akarunk átadni a C++-ban írt
COM-ügyfélnek, valakinek el kell simítania a különbségeket, méghozzá
általában a C++ alkalmazásnak. A programozók aránytalanul sok időt töltenek
az ehhez hasonló különbségek elsimításával. Szeretnék ha egy szoftvert elég
lenne egyszer megírni ahhoz, hogy minden rendszeren fusson. A jövőben ezt
lehetne fejleszteni, a szoftverarchitektúrák rendszerek közötti együttműködését.
C L R nyelvfüggetlen
futtatórendszer
L é t e z ő m ű v e l ete k Ú j , c s a k a C L R által
(f ájl m e g n y itá s ) e l v é g z é s e s z o l g á ltat ott m ű v e l ete k,
C L R k ö z v etité s é v e l p é l d á u l a s z e m ét g y ű jté s
Operációs rendszer
1.2.1 ábra : Felügyelt programvégrehajtás a CLR-ben
1.3 Az assembly
A .Net keretrendszer a .Net kód, az erőforrások, és az adatok tárolására széles
körben alkalmazza az assemblyket. A .Net futtatórendszer csak az assemblyben
tárolt kódot hajtja végre. Ezen felül minden biztonsági funkció, név-feloldás és
verziókezelés az assemblyk szintjén valósul meg.
E g y f áj l o s a s s e m b l y T ö b b f áj l o s a s s e m b l y
b o o. dll
m o o. dll gra p hi c.jp g l o g o. b m p
m a n i f e s zt
m a n i f e s zt
m a n if e s zt
Tegyük fel, hogy egy privát assemblyt akarunk készíteni. A .Net rendszer
modellje ennél egyszerűbb nem is lehet. Lefordítunk egy egyszerű DLL-
assemblyt, majd az azt felhasználó ügyfélassemblly könyvtárába másoljuk.
Nincs szükség a bejegyzésre a rendeszleíró adatbázisban. A kód egyetlen része
sem változik meg a mi beavatkozásunk nélkül, így nem találhatjuk szembe
magunkat a jól ismert helyzettel : megosztva használt DLL-t valaki más
változatra cseréli, az általunk használt alkalmazás pedig lefagy.
Böngésző
2. A bongésző elküldi a kérést a kiszolgálónak
1 . A f el h a s z n á l ó b e irja a k ér é st a
b ö n g é s ző b e
4. A b ö n g é s z ő m e g f or m á z z a é s
m e g j e l e n iti a z o l d a lt a z ü g y f é l n é l.
Kiszolgáló
3. A k i s z o l g á l ó m e g k er e s i a k ért o l d a lt,
é s v i s s za k ül di az ü g yfélnek.
2. o l d a l
n. ol dal
o l dal
1.oldal
2.1.1 ábra : Statikus weboldalakat megjelenítő kiszolgáló
1 . A f el h a s z n á l ó b e irj a a k ér é st a
Kiszolgáló
b ö n g é s ző b e : 1 2 3 4 6 s z á m ú
b a n k s zá m la f or gal m a 3. A k i s z o l g á l ó h o z z áf ér a
s z á m l a i n f or m á c i ó h o z , é s l étre h o z z a a
4. A b ö n g é s z ő m e g f o r m á z z a é s
k ért a d at o k at tartal m a z ó o l d a lt.
m e g j e l e n iti a z o l d a lt a z ü g y f é l n é l.
Összefoglalva :
A webkiszolgálónak olyan futtatási környezetre van szüksége, amely
előregyártott megoldásokat biztosít az általános kiszolgálóoldali programozási
problémákra. Fontos, hogy könnyen programozható legyen, emellett az
alkalmazások felügyeletének és telepítésének is egyszerűnek kell lennie.
2.2 A megoldás áttekintése
A Microsoft 1997 őszén az IIS-en (Internet Information Server) belül
kiadott egy viszonylag egyszerű webes futtatókörnyezetet, az ASP-t (Active
Server Pages). A felhasználó által kért oldalakat az IIS szolgáltatta. Az ASP
lehetővé tette a programozók számára, hogy olyan programozott eljárásokat
írjanak, amelyek dinamikusan építik fel az IIS által szolgáltatott, statikus HTML
és parancsnyelvi programkód keverékéből álló oldalakat.
1 . A z ü g y f é l k éri a z el s ő o l d a lt 2. A k i s z o l g á l ó m e g k a p j a a k ér é st, é s
l étre h o z z a a S e s s i o n o b j e kt u m o t. A z a d at o k at
s üti k f or m á j á b a n a z ü g y f é l n é l tár o l j a.
3. A p r o g r a m o z ó a S e s s i o n o b j e kt u m b a n k e z e l i
M u n k a m e n et a z o n o s it ó s üti
a z a d at o k at.
5 . A k i s z o l g á l ó tra n s z p ar e n s m ó d o n e lő hi v j a a
s üti által a z o n o s it ott S e s s i o n o b j e kt u m ot.
6. A p r o g r a m o z ó k o l v a s s a a z a d at o k at a
4. A z ü g y f é l k ér i a m á s o d i k o l d a lt, S e s s i o n o b j e kt u m b ó l , a m e l y, a m e g f e l e lő
e n n e k s o r á n v i s s z a k ü l d i a s ütit. fel h a s z n á l ó a d atait tartal m a z z a.
7 . A z el s ő o l d a l o n v é g z ett m ű v e l et ei
al a p j á n a z ü g y f é l m e g k a p j a a m á s o d i k
o l d a lt.
programozónak ennek kezeléséhez hatékony és könnyen programozható
módszerre van szüksége.
2.4.1 ábra : A munkamenet állapotok kezelése
<ses s i o n S t ate
m o d e=”i n p r o c ”
state C o n n e cti o n S tri n g=”tc p i p=12 7. 0. 0. 1 : 4 2 4 2 4 ”
s q l C o n n e n cti o n S tri n g=”data s o u r c e=12 7. 0. 0. 1 ; u s e r
i d=sa; p a s s w o r d=”
c o o k i e l e s s=”fal s e ”
ti m e o ut=”2”
/>
2.4.2 ábra : Munkamenetállapot kezelési bejegyzések a web.config fájlban
2.5 Biztonság az ASP.NET-ben
A biztonság az elosztott programozás életfontosságú része. A hitelesítés
és engedélyezés műveletei elengedhetetlenek egy modern rendszerben.
Hitelesítés (authentication)
Az első biztonsággal kapcsolatos probléma : ki vagy te, és honnan
tudjam, hogy tényleg az vagy, akinek mondod magad ? A felhasználó
hitelesítése általában abban merül ki, hogy személyes adataival leellenőrzésre
kerül. Ha a hitelesítési adatok elegendőek a kiszolgáló számára, akkor tudjuk,
hogy a felhasználó kicsoda, és a belső logika segítségével meghatározhatjuk,
hogy milyen műveletek elvégzésére jogosult. Azt a felhasználót, akit a rendszer
nem hite lesit, névtelen felhasználónak (anonymus user) nevezzük.
1. Windows hitelesítés
Az ASP.NET támogatja a Windows hitelesítést, ami gyakorlatilag azt
jelenti, hogy a hitelesítési folyamat a webkiszolgáló infrastruktúrához, az
ISS-hez fordul, amelyen az ASP.NET is csücsül. Az IIS-ben előírhatjuk,
hogy a felhasználó böngészőjében párbeszéddoboz jelenjen meg, ahol a
felhasználóazonosítót és jelszót kell megadni. A hitelesítési adatoknak
egyértelműen azonosítaniuk kell egy felhasználói fiókot, amely az IIS
állomást is tartalmazó tartományban van nyilvántartva. A Windows
hitelesítés jól működik a csak Windows-t használó intranetekben.
MICROSOFT
PASSP OR T
w e b f ar m
Hozzáférés –engedélyezés (authorization)
3. Webszolgálatások a .Net-ben
M á s i k o k p e d i g a z, a m i a S O A P p r ot o k o l l erő s s é g e, h o g y n e m v o lta k
e d d i g i g a z á n j ó fe l ü l ete k m á s g é p e k e n v a g y h á l ó z at o k o n t örté nő
f ü g g v é n y h í v á s ra. A l e gt ö b b j ü k a d h o c j e ll e g ű v o lt, é s c s a k n é h á n y e m b e r tu dta
a z E D I -t, a z R P C -t é s a h a s o n l ó A P I -k at k e z e l n i. A w e b s z o l g á ltatá s o k s o k k a l
e g y s é g e s e b b k e r etre n d s z e rt tartal m a z n a k é s í g y s o k k a l e g y s z e rű b b ő ket
h a s z n á l n i.
E g y h ar m a d i k o k , a m i a w e b s z o l g á ltatá s o k at h a s z n o s s á te s z i: la z a
k a p c s o l at ot b i zt o s íta n a k a w e b s z o l g á ltatá s é s a z a zt h a s z n á l ó al k a l m a z á s k ö z ött.
E z a tulaj d o n s á g l e h ető s é g et b i zt o s ít, h o g y b ár m e l y i k et m e g l e h e s s e n v á lt o ztat ni
a m á s i k b e f o l y á s o l á s a n é l k ü l. E z a fl e x i b i litá s e g y r e f o nt o s a b b á v á l i k, m i v e l a
s z o ft v e r e k ö n á l l ó k o m p o n e n s e k b ő l é p ü l n e k fel.
Ü z l et m e n et f o l yt o n o s s á g te k i nteté b e n re n d k í v ü l i j e l e ntő sé g g e l b í r, h o g y a
v á l l al ati i n f or m á c i ó b á z i s m e n n y ir e p l atf or m - f ü g g etl e n, ill et v e, h o g y a d ott
e s et b e n e g y d o k u m e nt u m h o z ( p l: s z er ző d é s, m e g r e n d e lő ) tart o z ó a d at o k é s
ö s s z e f ü g g é s e k ( d i g itáli s l o g i k át ó l, k ó d o l á st ó l f ü g g etl e n ü l ) b e m u t at hat ó k é s
b i z o n y ít h at ó k l e g y e n e k. A f ü g g etl e n d i g itáli s re n d s z e r e k k o l l a b o r atí v
e g y ütt m ű k ö d é s ü k s o r á n s z a b v á n y o s e ljárá sr e n d b e n ( w e b s er v i c e ) a d j á k, v e s z i k
é s értel m e z i k e z e n X M L d o k u m e nt u m o k at é s a s z á m u k r a e lő írt m ű v e l ete k et
v é g r e h ajtjá k.
3.3 A probléma
Az egyszerűen programozható webhozzáférés azt jelentené, hogy a
fejlesztők a weben elérhető szolgáltatásokból építik fel az alkalmazásokat,
valahogy úgy, ahogy manapság építkeznek a helyi számítógépeken levő
előregyártott komponensekből. Tegyük fel a következő helyzetet. Egy
szövegszerkesztő program tervezője nem épít feltétlenül helyesírás ellenőrzőt a
programba, legfeljebb egy nagyon kezdetleges változatot. Így a felhasználónak
interneten kell néznie egy erre a célra fejlesztett programot. Azonban a webhely
használatához fizetni kell, és jelenleg csak ember használhatja a böngészője
segítségével. Ha az üzemeltető a programok számára is lehetővé tenné az
adatokhoz való hozzáférést, biztosan több pénzt keresne.
5 . A z A S P. N E T a z
3. A z A S P. N E T m e g h i v j a a z
ere d m é n y e k et X M L -
f or m át u m b a ala k itja, é s a o b j e kt u m m e g a d ott m e t ó d u s át
H T T P - p r ot o k o l l al v i s s z a k ü l d i
az ü g yfélnek A s a j át . N et o b j e kt u m
A z o b j e kt u m
v i s s zaa dja az 1 . m et ó d u s
ere d m é n y e k et a z
A S P. N E T - n e k .
.
3.4.1 ábra : Az
ASP.NET webszolgáltatásainak kiszolgálóoldali nézete
Proxyobjektum
3. A p r o x y o b j e kt u m a h i v á st
X M L f or m át u m b a a l a k itja é s
5. A z ü g yfél m e g ka pja a htt p p r ot o k o l l a l e l k ü l d i a
k i s z o l g á l ó h o z a z i nter n ete n
v i s s z atérité s i érté k et
k e r e s zt ü l.
a p r o x yt ó l
4. A p r o x y o b j e kt u m X M L
f or m át u m b a n m e g k a p j a a z
er e d m é n y e k et a htt p
p r ot o k o l l o n k e r e s zt ü l. E z t a
f ü g g v é n y v i s s z atéré s i érté k é v é
a l a k itja
Irodalomjegyzék :
• David S. Platt : Bemutatkozik a Microsoft .NET
• wikipédia