Számítógép hálózatok 7/1 Bilicki Vilmos
Jan 24, 2016
Számítógép hálózatok
7/1
Bilicki Vilmos
Az előadók:
Dr. Bohus Mihály [email protected] Bilicki Vilmos [email protected]
A tantárgy célja
Számítógép hálózatok bemutatása, megismerése: alkalmazások szolgáltatások a hálózat felépítése a hálózat elemei hálózat tervezéssel, működtetéssel kapcsolatos
problémák megoldások bemutatása
Az tananyag felépítése
Top – down megközelítés alkalmazások, magas szintű szolgáltatások . . . alacsonyabb szintű szolgáltatások . . . fizikai összeköttetés
Ajánlott irodalom:
Könyv: Andrew Tanebaum: Számítógép Hálózatok
Árpád tér 2. I-em 52. 1 hét múlva
Online: http://www.inf.u-szeged.hu/informatika/
OKTATAS/BM/SZG1.rtf www.ietf.org
A mai előadás tartalma
Internet (DNS, SMTP,SNMP, HTTP, SHTTP, HTML, XML, Java, e-business)
Elosztott Információs Rendszerek: Alapok Címtárak (X500, NIS, AD) Csoportmunka (Groupware)
A számítógépes hálózatok osztályozása
Méret szerint: Lokális hálózatok (LAN, helyi hálózatok) Városi hálózatok (MAN) Nagy kiterjedésű hálózatok (WAN)
Technológia szerint: vezetékes (Wired) vezetékmentes (Wireless)
Megközelítés
Az alkalmazási réteggel foglalkozunk Feltételezzük egy olyan hálózat meglétét
mely transzparens adatátvitelt biztosit
Hálózatok hálózata Internet
A világ legnagyobb kliens/szerver alkalmazása A legnagyobb háttértároló A legnagyobb hiper-hivatkozásos dokumentum
2 millió lappal növekszik naponta
Forrás: The Standard
Története
Kezdetben kutató intézetek közötti kapcsolat Szolgáltatások: E-mail, telnet, ftp Robosztus rendszer megalkotása volt a cél
(katonai irányítási hálózat) Nem foglakoztak a biztonsággal
Titkosítás Problémák:
Titkosság – információ védelme illetéktelen felhasználóktól (konkurencia)
Hitelesség – a társ valóban az akinek mondja magát (csaló)
Letagadhatatlanság – aláírások (társ) Sértetlenség - Az üzenet nem lett módosítva
(rosszindulatú „jóakaró”) Típusok:
gyenge titkosítás (a szomszéd nem tudja elolvasni a tartalmát)
erős titkosítás (a legtöbb hivatalos szerv sem tudja elolvasni)
Hagyományos titkosítás
plaintext
Visszafejtő függvény
^˘°&^˘°&
ciphertextHelló
Kulcs (key)
DK(EK(P))=P
P EK(P)
EK()
K
Helló
Titkosító függvény
Kulcs (key)
DK()
P
K
Hagyományos Titkosítás
Az algoritmus nyilvános A kulcs titkos A feltörés munkaideje: munkatényező (work
factor) Kódfejtési módszerek:
titkosított szöveg alapú (chipertext only) (nyelvi jelleg)
ismert szöveg alapú (known plaintext) (login) választott nyílt szöveg alapú (chosen plaintext)
Titkosítási módok
Helyettesítő kódoló (substitution chiper) minden betű vagy betűcsoport egy másik betűvel
vagy betűcsoportal helyettesítődik (nyelvi jellegzetességek alapján viszonylag könnyen megfejthető betűkettősök, betűhármasok)
Keverő kódoló (transposition chiper) átalakítják az eredeti sorrendet
Mai algoritmusok
Titkos kulcsú algoritmusok (secret key) (szimmetrikus titkosítás) DES, IDEA, BLOWFISH
Nyilvános kulcsú algoritmusok (public key) (aszimmetrikus titkosítás) RSA, DSS, . . .
Kluccsere algoritmusok: Diffie-Hellman, Kerberos, . . .
Kivonatoló függvények (hash) MD5, SHA1, . . .
Összetett titkosítás, azonosítás: PGP, PEM,
Szimmetrikus Titkosítás
helyettesítés + keverés P – doboz (keverő) S – doboz (helyettesítő)
DES (Data Encryption Standard) 1977 IBM ma már nem tekinthető biztonságosnak (56 bites kulcs)
IDEA (International Data Encryption Algorithm) 1990 Lai, Massey biztonságosnak tekinthető (128 bites kulcs)
DES
Probléma
a kulcs eljuttatása a másik félhez, közös kulcs előállítása
megoldás nyilvános kulcsú titkosítás
Nyilvános kulcsú titkosítás
A kódoló és dekódoló kulcsok különböznek egymástól és egyikből a másikat nem lehet előállítani
Három követelmény:1. D(E(P))=P
2. D előállítása E alapján rendkívül nehéz feladat legyen
3. E feltörhetetlen legyen választott nyílt szöveg alapú támadással
Működése
RSA algoritmus 1978 MIT: Rivest Shamir Adleman Az algoritmus lépései:1. Válasszunk két nagy prím számot, p, q (lehetőleg
nagyobbak mint 10100)2. Számoljuk ki n = p x q és a z = (p-1)x(q-1)3. Válasszunk z-hez relatív prímet d4. Keressünk egy olyan e számot melyre:
e x d = 1 (mod z).5. P < n szegmensekre osztás6. Kódolt üzenet C = Pe (mod n)7. Visszafejtés P = Cd (mod n)
RSA
A titkosító és a visszafejtő algoritmus egymás inverzei.
Titkos kulcs (e,n), nyilvános kulcs (d,n) Hátrány 100-1000 –szer lassabb mint a
szimmetrikus titkosítás Mai tudásunk szerint biztonságos (egy 200
számjegyű szám faktorizálása 4 millárd év)
Hitelesség vizsgálat
A hitelesség vizsgálat (authetication) egy olyan módszer mely segítségével egy folyamat ellenőrizheti, hogy kommunikációs partnere valóban az akinek mondja magát.
Diffie-Hellman féle kulcscsere algoritmus Kerberos Hitelesség vizsgálat nyilvános kulcsú
titkosítással
Diffie-Hellman
Aliz X Bob Y
n, g, gx mod n
gy mod n
(gy mod n)x=gXY mod n (gx mod n)y=gxy mod n
Kerberos
1988, MIT Segítségével a munkaállomások felhasználói
biztonságosan hozzáférhetnek a hálózati erőforrásokoz (Windows 2000 native mode)
A jelszó sohasem kerül a hálózaton átvitelre ! Részei:
Hitelesség vizsgáló szerver (Authentication Server AS)
Jegyadó szerver (Ticket-Granting Server TGS) Bob a szerver (elvégzi az Aliz által kért munkát)
KTGS(A,KS), B, KS(t)
Kerberos működésA
liz
AS
TG
S
Bob
A1
KA(KS,KTGS(A,KS))2
3
KS(B,KAB), KB(A, KAB)4
KB(A,KAB), KAB(t)5
KAB(t+1)6
Nyilvános kulcsú hitelességvizsgálat
Aliz Bob
EB(A,RA)
EA(RA,RB,KS)
KS(RB)
1
2
3
Digitális aláírás
Feladata: A fogadó ellenőrizhesse a feladó valódiságát A küldő később ne tagadhassa le az üzenet
tartalmát A fogadó saját maga ne rakhassa össze az
üzenetet Típusai:
Titkos kulcsú aláírások Nyilvános Kulcsú aláírások Üzenet Pecsétek (Message Digest)
Titkos kulcsú aláírások Szereplők: Big Brother, Aliz, Bob RA – nagy véletlen szám a visszajátszások
elkerülésére
Aliz
Big
Bro
ther
Bob
A,KA(B,RA,t,P)
KB(A,RA,t,P,KBB(A,t,P))
Nyilvános kulcsú aláírások
Feltételezi :
D(E(P))=P, E(D(P))=P
Kivonatoló (Digest)
Gyakran csak hitelességvizsgálatra van szükség, titkosításra nem
Feltételek:1. Adott P-hez könyen számítható MD(P)2. Adott MD(P)-hez gyakorlatilag lehetetlen P-t
megtalálni3. Senki sem képes két különböző üzenetet generálni,
melyekhez ugyanaz az üzenet pecsét tartozik (legalább 128 bites pecsét)
Típusai: MD5, SHA1
MűködéseA
liz
BobP,DA(MD(P))
Pretty Good Privacy Kombinálja a hagyományos és a nyilvános
kulcsú titkosítás jó tulajdonságait Négy fajta RSA kulcs (348,512,1024,2048) IDEA 128 bites kulcs
MD5 RSA ZIP IDEA
RSA
Base64
KM
P
Aliz titkos kulcsa
Bob nyilvános kulcsa
Az Internet alapvető szolgáltatásai
DNS (Domain Name System) WWW (World Wide Web)
HTTP, SHTTP HTML XML DTD XSLT
FTP (File Transfer Protocol) TELNET (Terminal Emulation …) E-MAIL (Electronic Mail) SNMP (Simple Network Management Protocol)
Feladata: ASCII karakterláncok hálózati címekre és vissza konvertálása (max 255,63)
IP cím <-> Névtér leképezés Hierarchikus körzetalapú osztott
adatbázisrendszer Elsődleges Körzetek
Általános Országok
Alkörzetek
DNS
int com edu jp hu
sun
java fortreu-szeged
bme
Általános Országos
…
DNS erőforrás nyilvántartás
Minden körzethez tartozhatnak erőforrás bejegyzések (resource record)
Az erőforrás bejegyzések binárisan tárolódnak Típusok:
SOA – lista kezdete (ehhez a zónához tartozó paraméterek) A – Egy hoszt IP címe MX – levél csere NS – name server CNAME – körzet név HINFO – host leírás TXT - szöveg
DNS bejegyzés minta
Név szerverek A DNS névtér egymást nem fedő zónákra van
osztva Minden zóna tartalmazza a fa egy részét
Zónánként egy elsődleges név szerver Egy vagy több másodlagos név szerver
Hiteles bejegyzés – authorative record(eredeti) Gyorsító táras bejegyzés
cab.u-szeged.hu u-szeged.hu edu-server.net yale.edu cs.yale.edu
1 2 3 4
5678
u-szeged Edu Yale Yale CS
World Wide Web
Az Internet legnépszerűbb szolgáltatása Átviteli protokoll: HTTP, HTTPS, SHTTP Megjelenítés definiáló nyelv: HTML, CSS Adatleíró nyelv: XML Dinamikus weboldalak:
Szerver oldali programok (CGI, PHP, JSP, ASP, XSP)
Kliens oldali programok (JavaScript, VisualBasic, JavaApplet)
WWW
HTTP(Hyper Text Transfer Protocol)
Kliens-szerver modell Állapotmentes Megbízható átviteli közegre épül Új fogalmak:
Webszerver Proxy szerver
Kapcsolatorientált Részletes proxy specifikáció URI (Universal Resource Identifier)
<protokol>:<protokol specifikus rész> <protokol>://<azonosítás><elérési-útvonal>?<Lekérdezés> US-ASCII Más karaterek: %
HTTP üzenetek
Kérés (request) (GET, OPTIONS, POST, HEAD, TRACE)
Válasz (response) kezdő sor fejléc sorok üres sor az üzenet tartalma
PéldaGET / HTTP/1.1 Host: sirius.cab.u-szeged.hu HTTP/1.1 200 OKDate: Thu, 13 Dec 2001 16:55:37 GMTServer: Apache/1.3.20 (Unix) PHP/4.0.6Transfer-Encoding: chunkedContent-Type: text/html<HTML><HEAD> <TITLE>Irinyi Kabinet</TITLE></HEAD><body...</ADDRESS></BODY></HTML>
Adatátvitel
URL - ben kódolva: GET valami.html?h=12
POST segítségével:POST /teszt/ HTTP/1.1
Host: wiliam.u-szeged.hu
adat: research
Fejléc mezők
Kérés: Host If-Modified-Since User-Agent Adat: research …
Válasz: WWW-Authenticate Age Cache-Control Expires Content-Type
HTTP és a biztonság Nincs titkosítás ! Azonosítás:
Basic Authentication: UID Password Realm HTTP/1.1 401 Authorization Required Használata mellőzendő, veszélyes Ha mégis akkor: Csak generált jelszavakkal szabad
Digest Authentication: MD5, nonce biztonságos
HTTPS, SHTTP
Titkosítás, azonosítás, adatbiztonság SHTTP:
Új réteg a HTTP alatt TLS (Transport Layer Security)
SHTTP: A HTTP kibővítése új utasításokkal melyek
segítségével becsomagoljuk az eredeti HTTP csomagot.
HyperText Markup Language
Megjelenítésre koncentrál ASCII alapú Gépek számára nehezen értelmezhető Tag-ek segítségével épül fel a dokumentum
(<elem>) Böngésző elrejti a kódot Jelenleg HTML 4.01 Lehetséges nem lineárisan navigálni
(hyperlink)
Felépítése információ a HTML verziójáról fejrész (header) törzs (body)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//HU" "http://www.w3.org/TR/html4/strict.dtd"><HTML> <head> <TITLE>Ez a fejléc</TITLE>
<META http-equiv="Cache-Control" content="no-cache"><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
</head> <body> <p>Hello világ! </body></html>
Fontosabb utasítások
Adatbevitel
<form> action method
getpost
name <input> <select> <textarea>
CSS Cascading Style Sheets
Tartalom, formázás egyveleg HTML formázó készlet szegényes HTML a dokumentum szerkezetét adja A böngészőre volt bízva a megjelenítés Netscape, IE, új elemek Egységes megoldás CSS Tartalom, formázás elkülönül Nyílt szabvány Sok böngésző támogatja Stílust definiál Megkönnyíti a munkát
Példa
p.jobb {text-align: right}
p.kozep {text-align: center}
…
<p class=”jobb”>Ez a bekezdés jobbra lesz igazítva<p>
<p class=”bal”>Ez a bekezdés jobbra lesz igazítva<p>
eXtensible Markup Language
Problémák: SGML (bonyolult) HTML
Előre definiált elemkészlet Csak megjelenítés Hibakezelés (<li>, 30%)
Megoldás XML Nincs nyelvtana Nincs elemkészlete
Tetszőleges nyelvtan Tetszőleges elemkészlet Nagyon rugalmas
7 indok XML használatára
1. Meta nyelv
2. Szöveg alapú
3. Ideális struktúrált dokumentumaink számára
4. Megjelenítés semleges
5. Többnyelvű
6. Segít az üzleti alkalmazások integrálásában
7. Nyitott szabvány
Feladatok melyeket XML-el érdemes megoldani
Adatok elosztása cégen belül Konfigurációs állományok Ideiglenes adatok átvitele (EDI, B2B) Adatgyűjtés, feldolgozás Kliensfüggő kimenet
Feladatok melyekre nem az XML a legalkalmasabb
Nagy mennyiségű adat tárolása a merevlemezen
Olyan adatok kezelése egy alkalmazáson belül melyek nem kerülnek ki
Függvény hívásnál paraméterként
XML
Feladata az adatok strukturált leírása. XML az ASCII a 21. század számára Minimális formai követelmények XML feldolgozás:
DOM (Document Object Modell) alapú Memóriában tárolt fa
SAX (Simple API for XML) alapú elemzők Csak az aktuális elemet látjuk Események generálódnak Eseménykezelő metódusok
Példa:
<Feladat sorszam="14">
<vegrahajto>Kardos Katalin</vegrahajto>
<megbizo>Nagy Emese</megbizo>
<hatarido>2002.05.01</hatarido>
</Feladat>
DTD Document Type Definition
Definiálja a dokumentum: Szintaktikáját Szemantikáját
Öndokumentálás Nyelvtan Elemkészlet
Hibadetektálás (B2B)
<!ELEMENT ul (li)+> <!ELEMENT ol (li)+> <!ELEMENT li (#PCDATA)>
XML Shema
XML szintaxist használ A legismertebb adattípusokat támogatja Saját adattípusokat definiálhatunk XML névteret használ
XML Shema példa
<?xml version = "1.0" ?><schema xmlns =
"http://www.w3.org/2001/XMLSchema"> <element name = "Customer"> <complexType> <sequence> <element name = "FirstName" type = "string" /> <element name = "MiddleInitial" type = "string" /> <element name = "LastName" type = "string" /> </sequence> </complexType> </element></schema>
WWW - XSLT
Példa XSLT
<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="oldal">
<html><head>
<title><xsl:value-of select="cim" /></title></head>
<body><xsl:apply-templates />
</body></html>
</xsl:template></xsl:stylesheet>
Kliens Oldali Programozás
Feladata a webszerver tehermentesítése A felhasználói akciók lekezelése A helyszínen ellenőrizni a bevitelt Szervert nem igénylő megoldások (pl.:
számológép) Design eszköz Dinamikus weboldal (pl.: óra az oldalon) JavaScript VBScript Java Applet
JavaScript
A Netscape és a SUN fejlesztette ki Java-nál egyszerűbb, Netscape böngésző használja Közös tulajdonság a Java-val 4 betű Szintakszisát a C nyelvtől örökölte Objektum alapú -> lehetőség van objektumok
létrehozására de osztályokat típusokat nem definiálhatunk
A program szövege kerül interpretálásra (lassú, a kódot nem lehet elrejteni)
A váltózók típusa változó Integráns része a HTML lapnak A leggyakrabban használt kliens oldali szkriptnyelv
JavaScript és a HTML
A JavaScript kód helye: HTML törzs HTML fejléc Külső fájl
A kódban vegyesen szerepelhet függvény definíció és egyszerű utasítás
Célszerű a függvényeket a HTML fejrészébe definiálni
Futása: Eseményre, függvényhívás (függvények esetén) Betöltéskor (ha nem függvényt írtunk)
Példa JavaScript
<html><head><title>Teszt</title> <script language="JavaScript"> function Hivlak(){ Ujablak =
window.open("fájl2.htm","masik","width=300,height=200,scrollbars"); this.blur();Ujablak.focus(); } </script> </head><body> <a href="javascript:Hivlak()">Új ablak</a>
</body></html>
Szerver oldali programozás
Adatbázisok integrálása (JTS, JDBC, ODBC, EJavaBeans)
Transaction Processing monitor Háttérrendszerek integrálása (LDAP, NDS, …) Elosztott, hibatűrő rendszerek (RMI, JMS, Servlet) Skálázhatóság (Többszálú, komponensekből áll, RMI,
JMS,) A munkafolyamatok leképezése (EJavaBeans) Csoportmunka támogatás (struktúrálatlan adat, hosszú
folyamatok, szabályok, utak, feladatok) Adatbányászat
Szerver oldali programozás
Szkript nyelvek: Python Perl
Web orientált szkript nyelvek: PHP ASP XSP JSP
CGI (Common Gateway Interface)
CGI 1Szabványos bemenet
Szabványos kimenetFeldolgozás
HTTP (GET/POST)
1
2
Új p
roce
ss
CGI 2Szabványos bemenet
Szabványos kimenetFeldolgozás
Új process
HTTP (GET/POST)
CGI
Szabványos felület Gyakorlatilag bármely programozási nyelvet
használhatjuk Minden szkript saját környezeti változókkal
rendelkezik A környezeti változókon keresztül történik a
kommunikáció Érdemes a webszerverek nyújtotta
lehetőségeket kihasználni : mod_perl
CGI
Előnyei: egyszerű nyelv független a process-ek izolálva vannak nyitott szabvány architektúra független
Hátrányai: erőforrás igény nagy állapotmentes
FastCGI
a process-ek állandóak egy vagy több process, több szál socket-en keresztül kommunikál a web
szerverrel egyedi azonosítók az egyes kéréseknek
Java nyelv Egyszerű
a kezdők is könnyen boldogulnak vele (C,C++) Magasszintű
komplex feladatok egyszerűen megoldhatóak vele (hálózat kezelés, grafika)
Objetum orientált az alapoktól kezdve (a primitív adattípusok kivételével minden
objektum) elosztott rendszerek (komponens alapú fejlesztés,
újrafelhasználhatóság) Biztonságos, robosztus
fordításkor ellenőrzés nincs pointer (NULL pointerre hivatkozás, levegőbe lógó mutatók) nincs automatikus konverzió dinamikus szemétgyűjtés (memory leak)
Java nyelv
Platform független nem tartalmaz architektúra függő elemeket (az int, mérete …
nyelvi szinten definiált)
Interpretált, dinamikus gyors fejlesztési ciklus (nincs szükség make-re) class loader (package) virtuális gép byte kód (a hivatkozások csak futás időben oldódnak fel) 10-20-szor lassabb mint gépi kódú megfelelője
Többszálú Elosztott (a class loader képes hálózatról betölteni az
osztályt, RMI, …)
Hogyan működik?
JVM Java API
.java fájl javac osztaly.java osztaly.class java osztaly
Hello World!
/** * A HelloWorldApp osztály mely a szabványos kimenetre kiírja a Hello World üdvözletet. */
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Kiírja a szöveget.
} }
Java Servlet
Java technológiára épülő web komponens platform független, bytecode dinamikusan betölthető dinamikus tartalom előállítására alkalmas
egy tároló menedzseli (servlet engine) a web szerver vagy az alkalmazásszerver része, vagy önálló
alkalmazás saját web szerverrel (Tomcat) biztosítja azt a környezetet amelyen keresztül a kérések és a
válaszok (requset, response) lekezelhetőek tartalmazza és menedzseli a servlet-eket egész életfolyamatuk
alatt
Példaimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloWWW extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse
response) throws ServletException, IOException {
response.setContentType("text/html");PrintWriter out = response.getWriter();String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
out.println(docType +"<HTML>\n<HEAD><TITLE>Hello</TITLE></HEAD>\n" +
"<BODY>\n<H1>Hello WWW</H1>\n</BODY></HTML>");}}
Szerver oldalak
ASP -> ASP.NET JSP PHP
HTML váz + Szkript sorok
HTML oldal
Szerver oldal
Kliens oldal(HTML, JavaScrip, VBS, Flash, …)
ASP példa<%@ language="vbscript" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Untitled</title></head><body><ul><%for i=1 to 30%>
<li>Ez a <%=i%>. sor<%next%></ul><ul><%for i=1 to 30response.write (”<li>Ez a”&i&”. sor”)next%></ul></body></html>
E-MAIL Felhasználói ügynök (user agent) Üzenetkézbesítő ügynök (message transfer
agent) Üzenetkézbesítés:
SMTP (Simple Mail Trasfer Protocol) E-mail átjáró
POP3 (Post Office Protocol) IMAP (Interactive Mail Access Protocol) DMSP (Distributed Mail System Protocol)
SMTP
Egyszerű levéltovábbító protokoll Forrásgép - célgép, e-mail daemon, smtp nyelv Problémák: nem minden program tud 64 KBájtnál
hosszabb üzenetet kezelni Ezek kiküszöbölése: (RFC 1541) ESMTP-
EXTENDED SMTP. A parancs EHLO a HELO helyett. Visszautasítás esetén: csak a HELO mehet. Ha az EHLO elfogadva, akkor az új parancsok és paraméterek lépnek életbe.
E-mail átjáró
POP3 kilépés /belépés levél lehozás/törlés átmásolja a levelet ASCII szövegből áll az SMTP re hasonlít
IMAP Tulajdonság szerinti megjelenítés Levél marad a kiszolgálón
DMSP a leveleket szétkapcsolt állapotban lehet elolvasni
Elosztott információs rendszerek
Segítségével: Elosztott szolgáltatások Helyfüggetlenség Elosztott erőforrások Nyílt rendszerek Alkalmazás elosztás
Előnyei: Skálázható Olcsó Üzembiztos
Típusai: 1 rétegű 2 rétegű 3 rétegű
Egyrétegű (1 tier)
A megjelnitési réteg,az alkalmazási logikaés az erőforrás menedzselés monolitikus
Vékony kliensek Minden központosított
Két rétegű (2 - tier)
A kliensek függetlenek egymástól
A megjelenítési réteg a kliensen van
A kliensek kötve vannak a prezentációs réteghez
Bonyolult a tervezés és nehéz más platformra alkalmazni
Probléma:
A kliens kettő vagy több rendszert szeretne elérni
A rendszerek nem tudnak egymásról
A kliensre hárul a különböző rendszerek lekezlése
A Konzisztencia fenntartása !!
Megoldás: Középső réteg (MIDDLEWARE)
Három rétegű (3 - tier)
Bevezeti az üzleti logika réteget
Egyszerűsíti a tervezést Transzparens hozzáférés
az alatta lévő rendszerekhez
Elősegíti a rendszerközi együttműködést
Vékony kliens Skálázható Biztonságos
Távoli eljárásivás (SUN RPC)
Az egyik számítógépről programot szeretnénk futtatni egy másikon A kommunikáció üzenetekre korlátozódik (nincs
közös memória, ...) A különböző gépek különböző módon ábrázolhatják
az adatokat Hogyan találjuk meg a szolgáltatást a másik gépen? Hibák kezelése (a szerver nem működik, …) XDR (External Data Representation) Nem objektumorientált
Címtárak
A vállalatokban az információ több formában van tárolva
Egy információt több helyen több formában is tárolnak
Inkonzisztens állapot léphet fel (Nagy J. Lajos – Nagy János Lajos)
A különböző formátumokhoz különböző elérési protokollok tartoznak
Megoldás címtár
Címtár
X.500 Globális Címtár Szolgáltatás
ISO/ITU-T szabványok 1993-ból Nem mond semmit sem a belső működésről A kommunikációra és az információ
ábrázolásra koncentrál Komlex, Nehézsúlyú
X.500
Hierarchikus névtér Hogyan van az információ rendezve és hivatkozva
Információs modell Felépítés és forma
Funkcionális modell Hozzáférés és műveletek
Azonosítási modell Az információ védelme
Elosztott működési modell Az információ karbantartása és szinkronizálása szerverek
ezrein keresztül
X.500 Könyvtár Információs Fa
X.500 nem megoldás
A szerver szoftver komplex és túltervezett Nehéz együttműködni egyszerű címtárakkal
Kevés X.500 megvalósítás Nagy, komplex, erőforrás-igényes egy PC-hez
Erősen kötődik az OSI modellhez Megoldás: LDAP
LDAP – zsírmentes X.500
Működő kód (jobb mint a rideg szabványok) Több éve fejlesztik (RFC 1487 (1993):
LDAPv1; RFC 1777 (1995): LDAPv2; RFC 2251 (1997): LDAPv3)
Csak könyvtár-hozzáférési protokoll nem teljes címtár Csak azt specifikálja hogyan társalogjon a kliens
és a szerver Nem specifikálja a címtár működését
LDAP általános hozzáférési protokoll
LDAP tulajdonságok
X.500 mintát használja cn = Common Name mail = email o = Organization ou = Organization Unit c = Country objectclass = type of entry
Példa: objectclass = employee, dn = Dmitry Dimov, o = BEA
Systems, ou = E-Commerce, c = US URL-szerű szintakszis
ldap://ldap.bea.com /c = US, ou = E-Commerce
NIS (Network Information Services)
problémát okozott a közös felhasználói adatbázis karbantartása (kié a jó verzió)
1985 SUN -> Yellow Pages -> NIS RPC hívások UDP felett a rendszerhívásokat átirányítja a szerverre DBM fájlokat használ az információ tárolására (indexelt
fájlok) kulcs alapján könnyen kereshető az információ probléma a DBM fájlok binárisak -> nehezen érthető megoldás ASCII fájlokból időnként átkonvertáljuk DBM-be az
adatokat
NIS elemei
NIS domain név Master
egy lehet belőle
Slave működhetnek szerverként azonban az információt a
master-től kapják
Client egy IP álhálózatban kell lennie a szerverrel a kliensek üzenetszórással keresik a szervert
A NIS előnyei, hátrányai
egyszerűen karbantartható, egyszerű szöveges fájlokat kell módosítgatnunk
sok felhasználó és számítógép könnyen menedzselhető
időnként nagy a sávszélesség igénye nem biztonságos (véletlen domain név)!
NIS+ adattitkosítás RPC hitelesítés névmodell:
fa struktúra minden levél egy NIS+ objektum
könyvtár bejegyzés csoport hivatkozás tábla privát
org_dir – adminisztrációs táblák groups_dir – hozzáférés vezérlés táblák
Active Directory
Egy hálózati objektumtár amely kiszolgálja a klienseket és azok csoportjait a jogosultságaik alapján
Információt tárol minden hálózati objektumról Egy biztonsági csatorna az ACL és a
Domain kapcsolatok számára A rendszer adminisztráció központja Egy rendszer az objektumok replikálására
Felépítés
Adattárolás és partíciók
Schema data – Az objektumok leírását tartalmazza
Configuration data – A tartomány logikai felépítését tartalmazza
Domain data – A fa alatt lévő összes adat itt van eltárolva. Nincs replikálva. A GC segítségével férhetnek hozzá mások is.
Strukturális komponensek
Logikai felépítés: tartomány
egy logikai biztonsági egységsaját biztonsági szabályoksaját biztonsági viszonyok más tartományokkalolyan egységek szerint célszerű tartományokat
létrehozni melyeket együtt kell menedzselnia következő információkkal rendelkezik:
adat minden objektumról és a tároló objektumról az adott tartományban
adat a többi tartományról, fáról… a GC szerver helye
Strukturális komponensek (logikai felépítés)
tartomány fa amikor több tartomány közös sémát, biztonsági
viszonyokat és GC-t használ akkor fát képeznek. Egy közös névér alá tartoznak (ceg.com-> t1.ceg.com)
az elsőként létrehozott tartomány a gyökér tartomány ő tárolja a fának a sémáját, és a konfigurációs adatait.
a fa struktúra gyermek tartományok hozzáadásával alakul ki.
Strukturális komponensek (logikai felépítés)
Szervezeti Egységek (Organizational Units) a tartományokat és a gyermek tartományokat
szervezeti egységekre oszthatjuk a szervezeti egységek egymást tartalmazhatják egy tartomány általában egy vagy több szervezeti
egységet tartalmaz
NDS - Novell Directory Service hálózati objektumok kezelője fizikailag adatbázis fájlok a szerveren az NDS replikálható a szerverek között egyszerű rugalmas erőforráskezelés LDAP felület, azonosítás fa struktúra az objektumok tárolására (szerver
környezettől független UNIX, Windows, NetWare) konténer objektumok – objektum csoportokat menedzselhatünk
root organization organiztaional unit
NDS
Tartalmazás A különböző beállítások örklődhetnek a fa struktúrában
NWAdmin Egyszerű azonosítás Replikák használata
master – az első NDS szerver read-write - előléptethető read only – nem a kliensektől
kapják a frissítést subordinate - névfeloldás
NDS névtér
az objektum fában elfoglalt helyétől függ CN, O, OU, C név feloldás
NDS Wan kapcsolatok ha több mint 1000 objektumunk van egy fában , vagy
lassú megbízhatatlan kapcsolatunk van akkor több részre kell osztanunk (partition)
a particiók az NDS adatbázis logikai felosztását teszi lehetővé
alapesetben egy partició van a partició az általa tartalmazott legfelső konténer nevét
kapja meg a particiók külön szervereken tárolásával a terhelés
elosztható minden változás után 10s szinkronizáció (lassú 30 sec) replika gyűrű
NDS Wan
Csoportmunka (Groupware)
Olyan technikák gyűjteménye melyek támogatják a csoportmunkát
Komponensek: Dokumentum tár Munkamenet E-mail Konferencia Csoport ütemezés
Definició: Groupware = Lotus Notes A WEB újradefiniálta a csoportmunka rendszereket
SMTP, USENET, chat, Web konferencia B2B együttműködés weben keresztül elosztott
munkafolyamattal
Csoportmunka vs. SQL
SQL – strukturált adat Csoportmunka – strukturálatlan adathalmaz
(dokumentumok, képek, üzenőfalak, …) Csoportmunka – hosszú lefutási idejű tarnzakciók,
dokumentum verziók, kevés, komplex művelet
Dokumentum kezelés
Az Elektronikus képfeldolgozásból származik (tervrajzok, röntgenek szkennelése, …)
Dokumentum kezelés
Inkább dokumentumot mint képet kezel A dokumentum menedzselő rendszer a
dokumentumok leírását általában SQL adatbázisban tárolja magát a dokumentumot pedig a fájlrendszerben
A mai adatbázisokban már dokumentumokat is tárolhatunk BLOB
Segítségével egymással együttműködve lehet a dokumentumot szerkeszteni, publikálni
Dokumentum tár + munkafolyamat Több szabály: szerző, jóváhagyás, javítás
Munkafolyamat (Workflow)
Támogatja az általános munkafolyamatokat Feladat orientált (lehet ad hoc is) Integrálva van az egyéb alkalmazásokkal Sok kommunikációs technológiát támogat (e-
mail, MOM, ORB, RPC, RMI, JMS, …) Vizuális munkafolyamat definiáló eszköz Integráció LDAP címtárral
Munkafolyamat