ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

БСрвисы ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² WCF

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для построСния распрСдСлСнных срСдств ΠΊΠ°ΠΊ WCF ΠΈΠ»ΠΈ .Net Remoting ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΠΈΡ€ΠΎΠ³Π° ΠΈΠ· ΡΠ»ΠΎΠ΅Π², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ слой ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… уровнях. Π’ΠΎ Π΅ΡΡ‚ΡŒ инфраструктура WCF состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π³Π»Π°Π²Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ: Service Model Layer ΠΈ Channel Layer. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΠ°ΠΌΠΎΠΌΡƒ сСрвису ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

БСрвисы ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² WCF (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Windows Communication Foundation (WCF) — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² ΡΠΎΡΡ‚Π°Π² .NET Framework. Он ΡΠ²Π»ΡΠ΅Ρ‚ся логичСским Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚, Π² Ρ‡Π°ΡΡ‚ности Π²Π΅Π±-сСрвисов, .Net Remoting ΠΈ DCOM. WebSphere Integration Developer ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Eclipse 3.0 SCA ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΡΠ΅Ρ€Π²ΠΈΡΠ½Ρ‹ΠΉ интСрфСйс ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ ΠΎΡΠ½ΠΎΠ²Π΅ WCF Π»Π΅ΠΆΠΈΡ‚ SOA, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ интСрфСйсС для получСния абстрактных Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…/исходныз ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ВсС это описываСтся Π² ΡΠ·Ρ‹ΠΊΠ΅ WSDL (Web Service Description Language) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ выставлСно Π²Π²Π΅Ρ€Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… mex-endpoints (Metadata Exchange Endpoints). Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ «ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅» сСрвиса. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ ΠΊ ΠΈΠ½Ρ‚СрфСйсу, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ описаниС сСрвиса ΠΈ Π²ΡΠ΅Ρ… Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ прокси-класс для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. БСрвис описываСтся Π² ΡΠ·Ρ‹ΠΊΠ΅ WCF, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ с Java/Python/Ruby ΠΈ Ρ‚. ΠΏ. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ прокси-классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ссылку Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ сСрвиса.

Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… WCF MS.Net дСйствуСт тСхнология ΠΈ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Π±-слуТб, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° сСрвисов. ΠžΡΠ½ΠΎΠ²Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ схСмы, «Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ «, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° построСния Ρ„Π°Π±Ρ€ΠΈΠΊ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ назначСния.

Π€Π°Π±Ρ€ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сСрвисного Ρ‚ΠΈΠΏΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Ρ‹Ρ… рСсурсов, Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… инструмСнтов ΠΈ ΠΏΠ°Ρ‚Π΅Ρ€Π½ΠΎΠ² VSIP для создания Π½Π° ΠΈΡ… ΠΎΡΠ½ΠΎΠ²Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π“Ρ€ΡƒΠΏΠΏΠ° Ρ€&Ρ€ Microsofts создаСт Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, схСмы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ стандарты ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. Π€Π°Π±Ρ€ΠΈΠΊΠ° сСрвисов Π΄Π°Π΅Ρ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Global Bank. К Π½ΠΈΠΌ относятся ASP.Net для примСнСния Π² WCF.

Π€Π°Π±Ρ€ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΡΠ΅Ρ€Π²ΠΈΡΠΎΠ² Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… элСмСнтов ΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° сСрвисов Π² MS.Net. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ WCF зависит ΠΎΡ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ (endpoint), Ρ‡Ρ‚ΠΎ составляСт связь «Address — Binding — Contract», «ΠΠ’Π‘». КаТдая ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ:

" Address" содСрТит Π² ΡΠ΅Π±Π΅ мСсто располоТСния ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ адрСсу;

" Binding" Π·Π°Π΄Π°Π΅Ρ‚ привязку ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ транспорт, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ взаимодСйствиС. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ WCF Π΅ΡΡ‚ΡŒ ряд классовпривязок (BasicHttpBinding Π·Π° HTTP, NetTcpBinding) Π·Π° Ρ‚ранспортом TCP; опСрация «Contract» Π·Π°Π΄Π°Π΅Ρ‚ взаимодСйствиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡΠ΅Ρ€Π²ΠΈΡΠ° ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ связь с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ опСрациями сСрвиса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ строит класс-прокси Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π° ΡΠ΅Ρ€Π²ΠΈΡΠ½ΠΎΠΉ сторонС задаСтся мноТСство ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сСрвисов Π½Π° ΡΠ΅Ρ€Π²ΠΈΡΠ½ΠΎΠΉ сторонС. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, сСрвисная сторона распрСдСлСнного прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ осущСствляСт соСдинСниС с Ρ‚ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, которая Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Для построСния распрСдСлСнных срСдств ΠΊΠ°ΠΊ WCF ΠΈΠ»ΠΈ .Net Remoting ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΠΈΡ€ΠΎΠ³Π° ΠΈΠ· ΡΠ»ΠΎΠ΅Π², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ слой ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… уровнях. Π’ΠΎ Π΅ΡΡ‚ΡŒ инфраструктура WCF состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π³Π»Π°Π²Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ: Service Model Layer ΠΈ Channel Layer. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΠ°ΠΌΠΎΠΌΡƒ сСрвису ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠ²Π½ΡŽ. ΠšΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (Channel Layer) икапсулируст Π² ΡΠ΅Π±Π΅ ΠΊΠ°Π½Π°Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мноТСство: ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ транспорт TCP, Http, Named Pipes ΠΈ Ρ‚. Π΄. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡΡ‚ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ содСрТит ΠΏΠΎΠ΄ΡƒΡ€ΠΎΠ²Π½ΠΈ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой описаниС сообщСний, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ слуТбами с Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° спСцифицироватся ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ этих спСцификаций ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠΎΠ½ Ρ„Π°ΠΊΡ‚ΠΎΠΌ.

WCF содСрТат Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²:

  • 1) сСрвисов для описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСрвисом. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° сСрвиса ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ…, ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сСрвиса, ΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;
  • 2) Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ сСрвисы. Π­Ρ‚ΠΎ относится ΠΊΠ°ΠΊ ΠΊ Π·Π°ΠΏΡ€ΠΎΡΡƒ Π½Π° ΡΠ΅Ρ€Π²ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ ΠΊ ΠΎΠΊΡ‚Π΅Ρ‚Ρƒ сСрвиса. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ — int, string ΠΈ Π΄Ρ€., Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ .Net понимаСтся ΠΊΠ°ΠΊ сСриализация ΠΈ Π΄ΠΈΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ². Π’ ΡΠ»ΡƒΡ‡Π°Π΅ примСнСния комплСксных Ρ‚ΠΈΠΏΠΎΠ² — Customers, Order ΠΈ Π΄Ρ€., Π½ Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ сСриалиализации ΠΈ Π΄ΠΈΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°ΠΈΠΈ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²;
  • 3) сообщСний, ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΌ SOAP ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания сообщСния Π² ΡΠ·Ρ‹ΠΊΠ΅ XML.

Для обСспСчСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² с ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ систСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ языки WSDL ΠΈ XSD, Π² ΡΡ‚ΠΎΠΌ случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ‚ΠΈΠ½Π°ΠΌΠΈ CLR ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ систСму Ρ‚ΠΈΠΏΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Вакая Π·Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² Ρ‚Ρ€ΠΈ этапа.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° слуТбы поставляСтся класс с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² WCF Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ [ServiceContract], [OperationContract], [FaultContract], [MessageContract] ΠΈ [DataContract].

ΠŸΡ€ΠΈ написании клиСнтского ΠΊΠΎΠ΄Π° Π² ΡΠ΅Ρ€Π²ΠΈΡΠ΅ приводятся Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° посрСдством Visual Studio ΠΈΠ»ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ svcutil. exe, которая Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΡƒΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ сСрвиса для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ WSDL Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

На ΡΡ‚Π°ΠΏΠ΅ выполнСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² ΠΈΠ½Ρ‚СрфСйсС сСрвиса, WCF сСриализуСт Ρ‚ΠΈΠΏΡ‹ CLR ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ XML ΠΈ ΠΏΠΎΡΡ‹Π»Π°Π΅Ρ‚ сообщСниС Π² ΡΠ΅Ρ‚ΡŒ для привязки ΠΈ ΡΡ…Π΅ΠΌΡ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, согласованной с WSDL. ΠŸΡ€ΠΈ этом ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ конструкции: Π΄Π²Π΅ со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ .NET ΠΈ Π΄Π²Π΅ со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ XML. Π‘ΠΎ ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ .NET имССтся Ρ‚ΠΈΠΏ CLR, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности, Π½ΠΎ ΡΡ‚ΠΎ дСлаСтся лишь послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ создан ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘ΠΎ ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ XML задаСтся XSD-описаниС структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ осущСствляСтся лишь послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ создан экзСмпляр XML (XML Instance). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания WCF сСрвиса ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈ Π°ΠΏΡ€ΠΎΠ±ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ студСнтом КНУ И. Π Π°Π΄Π΅Ρ†ΡŒΠΊΠΈΠΌ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… магистровской диссСртации (2012).

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ