2.5. eveniment distribuit
În dezvoltarea de software, destul de des este necesar să fie notificat cu privire la orice evenimente care au loc în mod asincron, adică, în unele puncte arbitrare în timp. În sistemele distribuite, pot fi necesare pentru a utiliza astfel de notificări primite de la sistemul de la distanță. strâns legat și de evenimente cuplate slab - pot fi identificate două abordări la evenimente de manipulare. Atunci când este asociată îndeaproape eveniment există o notificare directă de către una dintre părți celeilalte părți. În timp ce această metodă poate fi utilizată, de exemplu, împreună cu un apel asincron unidirecțională, este caracteristic unui număr de deficiențe care limitează utilizarea acestuia în sisteme distribuite:
- Ambele componente ale sistemului trebuie să fie efectuate simultan;
- pentru notificarea mai multor componente ale aceluiași eveniment partea care face notificarea ar trebui să utilizeze mecanismul pentru menținerea unei liste de evenimente ale beneficiarilor;
- filtrare complicate și de logare eveniment.
Fig. 2.8. Abonații și editori slab cuplate evenimente
pot fi amplasate pe diferite computere atunci când se utilizează cuplate slab evenimente, abonați, editori și manager de eveniment. Evenimentul in sine poate fi realizat ca, de exemplu, un manager de eveniment de apel a înregistrat o metodă de obiect la distanță.
2.6. tranzacții distribuite
Tranzacție - o secvență de operații la orice date care fie reușește în totalitate, sau nu executat deloc. Dacă sunteți în imposibilitatea de a finaliza cu succes toate acțiunile revine la valorile inițiale ale tuturor schimbate în timpul tranzacției de date (derulare înapoi). Tranzacția trebuie să aibă următoarele calități.
- Atomicitate. Tranzacția se efectuează în conformitate cu principiul „totul sau nimic“.
- Coerența. După finalizarea cu succes sau rollback toate datele într-o stare consistentă, integritatea lor logică nu este compromisă.
- Izolație. Pentru obiecte în afara tranzacției nu sunt vizibile pentru starea intermediară, care poate primi date actualizate în tranzacție. Din punctul de vedere al obiectelor „externe“ la finalizarea cu succes a tranzacției, acestea ar trebui să aibă aceeași stare în care au existat înainte de a fi început.
- Constanța. În cazul succesului tranzacției modificările trebuie să fie permanente (adică stocate în memoria nevolatilă).
Fig. 2.9. tranzacție distribuită
Tranzacțiile sunt baza cererilor care lucrează cu baze de date, dar într-un sistem distribuit poate utiliza numai fi insuficient sistemele tranzacționale de management al bazelor de date. De exemplu, mai multe componente distribuite pot participa la un sistem de tranzacție distribuită. lucrează cu mai multe baze de date independente (fig. 2.9).
Se numește tranzacție distribuită. acoperind funcționarea mai multor componente ale unui sistem care interacționează distribuit. Fiecare dintre aceste componente pot lucra cu orice bază de date sau alte servicii, de exemplu, pentru a folosi o coadă de mesaje. sau chiar de a lucra cu fișiere. Când reveniți tranzacția, toate aceste operații trebuie să fie anulată. Pentru a face acest lucru necesită două condiții:
- mediu intermediar trebuie să sprijine operațiunile de gestionare distribuite între mai multe componente;
- Componentele distribuite ale sistemului nu ar trebui să lucreze cu orice servicii sau resurse care nu pot participa la tranzacție.
tranzacții distribuite sunt un element esențial pentru menținerea integrității datelor într-un sistem distribuit. Prin urmare, mediul lor de aplicare mai largă poate să conțină un mecanisme intermediare. care, dacă este necesar (și anumite costuri de timp de codificare) va permite utilizarea în cadrul tranzacțiilor distribuite de servicii externe care nu acceptă tranzacții. Un astfel de mecanism este numit un manager de resurse de compensare (compensare manager de resurse). Compensarea în acest caz, înseamnă o revenire la starea inițială a resursei în timp ce rulare înapoi o tranzacție.
În prezent, standardizarea se formează și un alt concept de unul asociat cu integritatea datelor de sprijin - activitatea economică (activitate de afaceri), în ceea ce privește sistemele distribuite. Activitățile sunt, de obicei o reflectare a unui proces real, de exemplu, achiziționarea de magazin, la comanda la confirmarea livrării prin curier. Activitățile pot include o tranzacție (înregistrarea comenzii cumpărătorului, comandați bunuri de la furnizor, și așa mai departe - pentru a confirma livrarea de către cumpărător). Spre deosebire de tranzacție, care se presupune că durata de viață scurtă, activitate poate dura foarte mult timp (de exemplu, o lună). Activitățile pot sprijini eliminarea modificărilor (de exemplu, înregistrarea mărfurilor returnate furnizorului în caz de eșec al cumpărătorului), prin utilizarea unor sarcini compensatorii.
2.7. Securitatea în sisteme distribuite
Pentru a asigura securitatea unui mediu de așteptare sistem distribuit ar trebui să ofere sprijin pentru trei funcții comune necesare pentru a crea sisteme sigure.
Caracteristicile de securitate pot fi furnizate de protocolul de transport utilizat de mediul intermediar, mediul în sine, sau ambele împreună.
2.8. protecție intermediară în Microsoft .NET Framework
Conceptul mediului de pregătire, furnizarea de servicii de nivel înalt pentru a îngloba Remoting, a apărut la mijlocul anilor '90, când a devenit clar că o parte independentă a cererii și a mediului de operare necesar pentru crearea de sisteme distribuite „strat“. CLR poate fi, de asemenea, văzută ca o parte a mediului „intermediar“ pentru punerea în aplicare a programelor pe cod gestionat. Este logic să se folosească. NET Framework ca bază pentru crearea de aplicații distribuite.
În momentul în. NET Framework Class Library există suport pentru cele patru mass-media intermediare pentru construirea de sisteme distribuite. Mai mult, acestea sunt enumerate în ordinea data de lansare mediu de pregătire.
- Microsoft Message Queuing miercuri (MSMQ) sprijină schimbul de mesaje între componente software pe baza de cozi.
- mediu pe bază de servicii Microsoft Enterprise dezvoltat anterior de Microsoft mediu, COM +, care permite utilizarea de site-uri de la distanță și a tranzacțiilor distribuite în rețeaua locală.
- ASP .NET Web Services Mediu vă permite să organizați apel la distanță pe baza unor standarde comune bazate pe XML.
- mediu de la distanță .NET a fost conceput ca un mediu intermediar universal pentru utilizarea de către site-uri de la distanță.
În versiunea. NET Framework 3.0 este destinat să introducă tehnologia WCF (Windows Communication Foundation), care combină toate aceste tehnologii pentru construirea unor sisteme distribuite. În plus față de aceste tehnologii, aplicații pe. NET Framework poate fi utilizat, de exemplu, apeluri la distanță bazate pe standardul XML RPC atunci când adăugați biblioteci suplimentare.