Cuprins
- 1. Aplicatii distribuite 1
- 1.1 Introducere 1
- 1.2 Arhitectura unei aplicatii distribuite 1
- 1.3 Modele de programare a aplicatiilor distribuite 3
- 1.3.1 Modelul client-server 3
- 1.3.2 Apelul procedurilor la distanta (RPC) 3
- 1.3.3 Programarea distribuita obiect-orientata 5
- 1.4 Modele de programare distribuita obiect-orientata 6
- 1.4.1 DCOM 6
- 1.4.2 Java RMI 7
- 1.4.3 Microsoft .NET 7
- 1.4.4 CORBA 8
- 2.Tehnologia .NET 10
- 2.1 Introducere 10
- 2.2 Prezentare generala 10
- 2.3 Caracteristici ale platformei .NET 13
- 2.3.1 Dezvoltarea multilimbaj 14
- 2.3.2 Platforma si independenta fata de procesor 15
- 2.3.3 Managementul automat al memoriei 16
- 2.3.4 Trasaturi ale CLR-ului (Common Language Runtime) 18
- 2.3.5 Biblioteca de clase .NET Framework 20
- 2.3.6 Dezvoltarea aplicatiilor client 21
- 2.3.7 Dezvoltarea aplicatiilor server 23
- 2.4 .NET Remoting 25
- 2.4.1 Domeniul aplicatiei 26
- 2.4.2 Functionarea .NET Remoting 27
- 2.4.3 Canale (Channels) 28
- 2.4.4 Sink-uri 29
- 2.4.5 Sink-uri de formatare 30
- 3 Arhitectura si descrierea functionala a aplicatiei 32
- 3.1 Prezentarea aplicatiei 32
- 3.2 Structura aplicatiei 33
- 3.3 Comunicatia intre clienti si server 34
- 3.4 Baza de date 35
- 3.5 Modulul server 37
- 3.6 Modulul client 38
- 3.7 Modulul functionar 41
- 4. Rularea aplicatiei 44
- 4.1 Compilarea si rularea aplicatiei 44
- Concluzii 45
- Bibliografie 46
Extras din proiect
CAPITOLUL 1
Aplicatii distribuite
1.1 Introducere
In ultimii ani, programarea distribuita apare tot mai des ca solutie la problemele din domeniul tehnologiei informatiei, probleme aparute o data cu dezvoltarea vertiginoasa a Internetului si in general a industriei calculatoarelor si a industriei informatiei.
Programarea distribuita poate fi privita, intr-o forma simpla, ca impartirea unei aplicatii in mai multe subunitati de procesare care pot fi distribuite intr-o retea de calculatoare, si care lucreaza cooperativ pentru a realiza o sarcina bine definita. Motivele pentru care ar fi necesara aceasta impartire ar fi multe dar pot fi mentionate cele mai comune si importante dintre ele:
• Procesand sarcini in paralel prin impartirea problemei in parti mai mici se pot rezolva probleme mai complicate fara a apela la calculatoare mai complexe.
• Seturile mari de date sunt in general mai usor de administrat fiind localizate intr-un singur loc anume. Astfel utilizatorii sunt nevoiti sa se bazeze pe servere de date situate la distanta, pentru a accesa datele cerute.
• Agenti redundanti de procesare in retelele de calculatoare pot fi utilizati de catre sisteme care au nevoie de toleranta la erori. Astfel, daca unul dintre agenti se defecteaza, procesul poate continua.
1.2 Arhitectura unei aplicatii distribuite
O aplicatie distribuita este construita pe cateva straturi. La cel mai jos nivel, o retea conecteaza un grup de calculatoare gazda impreuna astfel incat acestea sa poata comunica intre ele. Protocoalele de retea ca TCP/IP permit comunicarea intre calculatoare oferind posibilitatea de a impacheta, de a adreasa, si de a trimite datele unui anumit calculator. Servicii de nivel mai inalt pot fi defininite peste protocolul de retea, ca de exemplu servicii de directoare sau protocoale de securitate. Aplicatia distribuita in sine, functioneaza deasupra acestor straturi, folosind serviciile de nivel mijlociu, protocoalele de retea cat si sistemele de operare, spre a realiza sarcini coordonate in retea.
Orice aplicatie care presupune interactiunea cu un utilizator, are ca parti principale o parte de prezentare (interfata cu utilizatorul), o parte de logica a aplicatiei (calculele si cursul aplicatiei), si o parte de date (datele necesare partii de logica). Aceste parti pot fi implementate de un singur program (aplicatie monolitica), sau pot fi implementate pe mai multe nivele. Aceasta ultima varianta se imparte, la randul ei, in doua variante de implementare:
• Aplicatii two-tier (aplicatii pe doua nivele). Aceste aplicatii grupeaza partea de prezentare si partea de logica a aplicatiei pe o masina client in timp ce partea de date este situata pe o masina server, tipul de aplicatii two-tier reprezentand de altfel modelul clasic client–server.
• Aplicatii three-tier (aplcatii pe trei nivele). In cazul aplicatiilor de tip three-tier, cele trei parti sunt separate conceptual, ele putand fi situate fiecare pe un calculator diferit. Aceasta varianta permite o flexibilitate mai mare a aplicatiilor deoarece clientul poate apela la serviciile mai multor servere pentru a satisface o cerere, iar serverul la randul sau poate apela serviciile altei componente server.
In principiu o aplicatie distribuita poate fi scrisa in orice limbaj care suporta comunicarea intre doua masini. In conditiile unei diversitati destul de ridicate a configuratiilor sistemelor de calcul, independenta de platforma a unui limbaj poate constitui un adevarat avantaj.
In ceea ce priveste modul in care se desfasoara comunicatia intre componentele unei aplicatii, exista mai multe variante printre care: modelul client-server, apelarea procedurii la distanta – RPC (Remote Procedure Call), etc.
1.3 Modele de programare a aplicatiilor distribuite
1.3.1 Modelul client-server
Comunicatia de tip client-server este una dintre primele aparute si cea mai utilizata pana in prezent. Acest model de comunicatie se bazeaza pe transferul de mesaje. Avantajul principal consta in eficienta executiei. Comunicatia are loc fara sa fie stabilita mai inainte o conexiune intre client si server, clientul trimitand o cerere iar serverul raspunzand cu datele solicitate. Dezavantajul comunicatiei de tip client-server consta in dificultatea de programare, programatorul trebuind sa apeleze explicit functiile de transfer de mesaje. Din acest motiv a fost necesara dezvoltarea unor alte modele de programare distribuita, care pornind tot de la transferurile de mesaje ca operatii de baza, sa ofere o interfata de programare mai simpla.
Preview document
Conținut arhivă zip
- Tehnologia NET.doc