Communication Foundation – Elosztott programozás Microsoft.NET környezetben

Hernyák Zoltán

Eszterházy Károly Főiskola, Matematikai és Informatikai Intézet

Új Széchenyi Terv logó.

A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046 számú Kelet-magyarországi Informatika Tananyag Tárház projekt keretében készült. A tananyagfejlesztés az Európai Unió támogatásával és az Európai Szociális Alap társfinanszírozásával valósult meg.

A Kelet-magyarországi Informatika Tananyag Tárház logója.

Magyarország megújul logó.

Nemzeti Fejlesztési Ügynökség http://ujszechenyiterv.gov.hu/ 06 40 638-638

Az EU logója.

2011


Tartalom

Előszó
1. Programozási modellek
1.1. Szekvenciális programozás
1.2. Párhuzamos programozás
1.2.1. Szálak kommunikációja
2. Szálkezelés C# nyelven
2.1. Leállás ellenőrzése
2.2. Leállás ellenőrzése passzív várakozással
2.3. Leállás okának felderítése
2.4. Szálindítás példányszint használatával
2.5. Komplex probléma
3. A párhuzamos programozás alapproblémái
3.1. Komplex probléma
4. Étkező filozófusok
4.1. Holtpont
4.2. Kiéheztetés
5. Termelő-fogyasztó probléma
5.1. Megvalósítás
5.2. Megoldás
5.3. Befejezési probléma
5.4. Leállítás adminisztrálása
5.5. A gyűjtő kódjának kiegészítése
5.6. Komplex feladat
5.7. Szemafórok
5.8. Termelő-fogyasztó implementálása szemafórokkal
5.9. Összefoglalás
6. A párhuzamos és elosztott működés
6.1. Osztályozás
6.2. Adatcsatorna
6.3. Elágazás
6.4. Eldöntés tétele elágazással
6.5. Minimumkeresés elágazással
6.6. Rendezés párhuzamosan
6.7. Asszociatív műveletek
7. Hálózati kommunikáció
7.1. Üzenetküldés címzése
7.1.1. IP-cím megállapítása
7.1.2. Beállítások beolvasása
7.1.3. Konfigurációs XML fájl
7.1.4. A teljes portnyitási kód
7.2. A kommunikáció megvalósítása
7.2.1. Streamek
7.2.2. Egyszerű kommunikáció a streamen keresztül
7.2.3. Protokoll
7.2.4. A kliens
7.2.5. A kommunikáció
7.3. Többszálú szerver
7.3.1. Többszálú szerver problémái
7.3.2. Szerver oldali túlterhelés elleni védekezés
7.3.3. A kliens kommunikációs szálak kezelése
7.3.4. A kliens szálak racionalizálása
7.3.5. Olvasási timeout kezelése
7.3.6. Bináris Stream
7.4. Összefoglalás
8. .NET Remoting
8.1. A DLL hozzáadása a szerverhez
8.2. Az interfész implementálása
8.3. A szerver portnyitása
8.4. Singleton, Singlecall
8.5. Példányszintű mezők
8.6. A szolgáltatás összerendelése
8.7. Többszálúság
8.8. A kliens kódja
8.9. Egyedi példányok
8.10. A megoldás
8.11. Kliens-aktivált példány
8.12. Összefoglalás
9. Szerializáció
9.1. Bináris szerializáció
9.2. Saját típus szerializációja
9.2.1. Serializable
9.2.2. Optional
9.2.3. NonSerialized
9.3. Lista manuális szerializációja
9.4. Lista automatikus szerializációja
9.5. Rekurzív szerializáció
9.6. Összefoglalás
10. Web Service
10.1. A webszolgáltatások
10.1.1. Első webszolgáltatásunk
10.1.2. SOAP-beküldés
10.1.3. SOAP-válasz
10.1.4. XML-szerializáció
10.1.5. A WSDL és a UDDI
10.1.6. Kliens írása
10.1.7. Sessionkezelés
10.1.8. Összefoglalás
11. Communication Foundation
11.1. SOA
11.2. Üzenetek forgalmazása
11.2.1. Kérés-válasz
11.2.2. Egyutas
11.2.3. Duplex
11.2.4. Streaming
11.2.5. Pub-sub
11.2.6. Adott sorrendű hívás
11.3. A WCF felépítése
11.4. „C” – A szerződés
11.4.1. Szerver oldali szerződés
11.4.2. Kliens oldali proxy
11.4.3. ServiceContract részletezése
11.4.4. OperationContract részletezése
11.4.5. Adatszerződés
11.4.6. A DataContract és a DataMember attribútumok
11.4.7. Verziókövetés
11.4.8. Üzenetszerződés
11.5. „B” – kötések
11.5.1. BasicHttpBinding
11.5.2. WebHttpBinding
11.5.3. wsHttpBinding
11.5.4. wsDualHttpBinding
11.5.5. wsFederationHttpBinding
11.5.6. netTcpBinding
11.5.7. netNamedPipeBinding
11.5.8. netPeerTcpBinding
11.5.9. netMsmqBinding
11.5.10. msmqIntegrationBinding
11.6. Viselkedés
11.6.1. Szolgáltatásszintű viselkedés
11.7. „A” – címek
11.8. Végpontok
11.9. Szerver
11.9.1. Self-hosting
11.9.2. Konfigurációs fájl
11.10. Kliens
11.11. Loginalapú szerver
11.11.1. Csak sikeres belépés után
11.11.2. A megoldás vázlata
11.11.3. A titkosítás
11.11.4. A szolgáltatás konfigurálása
11.11.5. A bejelentkezés függvénye
11.11.6. Az „olvasatlanDarab” függvény
11.11.7. Az „utolsoUzenetSorszam” függvény
11.11.8. A „letoltes” függvény
11.11.9. A „statuszBeallitas” függvény
11.11.10. Az „uzenetBekuldes” függvény
11.11.11. A „kilepes” függvény
11.11.12. A tesztelés előkészítése
11.12. Loginalapú kliens
11.12.1. Sorrendi teszt
11.12.2. Bejelentkezés egy felhasználóval
11.12.3. Bejelentkezés két felhasználóval párhuzamosan
11.13. Titkosítás ellenőrzése
11.14. Egyéb WCF-tulajdonságok
Zárszó
Irodalomjegyzék