Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

18 03 2012 Burak Selim Senyurt Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)

1/6 buraksenyurt.com/post/Xml-Web-Servisleri-5-(Mimarinin-Temelleri-DISCO)-bsenyurt-com-dan.aspx
Balang Ariv letiim Photo Blog

<< Xml Web Servisleri - 4 ( Mimarinin Temelleri - WSDL) | Ado.Net 2.0 ve Sql Komutlarn Asenkron Olarak
Yrtmek - 3 >>
Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)
Perembe, 7 Ekim 2004 21:00 by bsenyurt
Deerli Okurlarm, Merhabalar.
Disco, Microsoft tarafndan gelitirilmi bir keif mekanizmasdr. Web servislerinin kullanlmas ile
ilgili en nemli sorun, istemci uygulamalar gelitiren yazlmclarn, ne tip web servisleri
olduundan ve bunlar nasl kullanacandan haberdar olamamasdr. Bu amala, web servislerini
yaynlayanlar, bu servislere ait eriim bilgilerini e-mail veya baka iletiim yollar ile, istemcileri
gelitiren yazlm tarafna gnderebilirler. Ancak Microsoft bu iin daha kolay yaplabilmesini
salamak amacyla, web servislerinin kefedilmelerine kolaylk getiren teknikler gelitirmitir. Bu
tekniklerden birisi, disco tekniidir. Disco tekniinin kilit noktas, disco uzantl XML tabanl
dosyalardr. Daha nceki makalelerimizde, Visual Studio.Net ile gelitirdiimiz istemci uygulamay
gz nne aldmzda, GeoMat.disco isimli bir dosyannda yer aldn grrz.
ekil 1. Disco Dosyamz.
Bu dosyann ierii XML tabanl olup aadaki gibidir.
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://localhost/GeoWebServis/GeoMat.asmx?wsdl"
docRef="http://localhost/GeoWebServis/GeoMat.asmx"
xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://localhost/GeoWebServis/GeoMat.asmx" xmlns:q1="http://ilk/servis/"
binding="q1:Geometrik_x0020_HesaplamalarSoap"
xmlns="http://schemas.xmlsoap.org/disco/soap/" /></discovery>
Bu dkman, kullanlan web servisine nasl eriileceine ve zellikle wsdl dkmannn nasl
isteneceine dair nemli bilgileri barndrr. <contactRef boumunda yer alan ref nitelii ile wsdl
dkmanna eriim ekli belirtilir. Ayn boumda, docRef nitelii ile web servisine ait asmx uzantl
dosyann bulunduu url bilgisine yer verilmektedir. Bununla birlikte, <soap boumunda, soap
mesajlamas iin kullanlan isim alanlarnn tanmlamalar yer almaktadr.





Matematik Mhendisi bir .NET Severin Yazlar...
Burak Selim Senyurt
Burak Selim Senyurt
18 03 2012 Burak Selim Senyurt Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)
2/6 buraksenyurt.com/post/Xml-Web-Servisleri-5-(Mimarinin-Temelleri-DISCO)-bsenyurt-com-dan.aspx
Bu bilgilere sahip olan bir disco dkman sayesinde, kullanlmak istenen web servisine nasl
eriilecei bilinebilir. Disco uzantl bu XML dosyalarnn, web servislerinin kefine asl katks, .net
framework ile gelen disco aracnn kullanmnda olmaktadr. Bu durumu daha iyi anlayabilmek iin
u senaryoyu gz nne almakta yarar var; bir ok web servisi barndrdan bir web sitemiz
olduunu dnelim. Web servisleri, IIS gibi sunucularda gelitirildiklerinden, yazlm olan web
servislerinin sayfamz kullanan istemcilere yaynlamak isteriz. Baka bir deyile web
servislerimizden haberdar olunmasn isteriz. Disco tekniini bu yaynlama ilemi iin kullanabiliriz.
lk olarak, gelitirdiimiz tm web servisleri iin birer disco dkman oluturmalyz. Daha sonra
sitemizin al sayfasnda ufak bir deiiklik ile bu disco dkmanlarna disco arac yardmyla
eriilmesini salamalyz. Bu noktadan sonra, istemci uygulamalar gelitirecek olan yazlmclarn
tek yapmas gereken, balang sayfamzn bulunduu url bilgisini parametre olarak disco aracna
bildirmek olacaktr. imdi bu senaryoyu geree evirecek bir alma yapalm.
rnein yerel sunucumuzda (localhost) iki web servisimiz olduunu dnelim. u aamada bu
servislerin nasl yazldnn fazla bir nemi yoktur. imdi bu servislere ait disco dkmanlarn
oluturmamz gerekiyor. Bir disco dkmann herhangibir metin editrnde yazabiliriz. Ancak XML
ieriini oluturmak zor gelebilir. Bunun iin, Asp.Net in imkanlarndan faydalanabiliriz. Asp.Net
bir web servisine ait disco dosyasn talep ettiimizde bu dosyay browser da otomatik olarak
retecektir. Bu bir web servisi iin wsdl dkmannn istenme ekli ile ayn prensiplere dayanr ve
aadaki gibi gerekletirilir.
http://localhost/GeoWebServis/GeoMat.asmx?disco
Browser da yazdmz bu url den sonra web servisimize ait disco dkman bilgilerini aadaki
gibi elde ederiz.
ekil 2. Disco bilgilerinin tarayc penceresinden elde edilmesi.
imdi tek yapmamz gereken bu XML ieriini disco uzantl bir dosya halinde, localhost a yani
inetpub\wwwroot\ klasr altna kopyalamak olacaktr. Burada dikkat etmemiz gereken bir nokta
vardr. Browser dan elde ettiimiz xml ieriini bir disco dosyasna kopylarken iaretlerini
kaldrmay unutmamalyz. Aksi takdirde disco aracn kullanrken hata mesajlar ile karlarz.
rneimizde bu ilk disco dkmann localhost a GeoMat.disco ismi ile kaydedelim. Ayn ilemi
sunucumuzda yer alan tm web servisleri iin gerekletirebiliriz. Bu ilemlerin ardndan,
localhost un al sayfas olan localstart.asp dosyasn herhangibir editor de aalm. Burada
Head taglar arasna aadaki ekelemeleri yapmamz gerekiyor.
<head>
<link type='text/xml' rel='alternate' href='GeoMat.disco'/>
imdi burada ufak bir ilem daha yapmamz gerekiyor. Head tagnda yer alan bu satrdan sadece
bir tane tanmlayabiliriz. Normalde aadaki gibi bir tanmlama yapldnda, belirtilen iki disco
dosyasnnda ele alnaca ve istemcide altrlan disco arac sayesinde indirilebileceini
dnebiliriz.
<link type='text/xml' rel='alternate' href='GeoMat.disco'/>
<link type='text/xml' rel='alternate' href='PerSor.disco'/>
Ancak sanlann aksine, disco arac belirtilen sayfadaki link taglarndan sadece ilkini altrr ve
bu link ile belirtilen disco dkmann ve buna bal wsdl dkmann indirir. Bu sorunu halletmek
iin, ilk olarak belirttiimiz GeoMat.disco dosyasnda <discoveryRef boumunu ref nitelii ile
birlikte eklememiz yeterli olacaktr.
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.xmlsoap.org/disco/">
Ara
Aradnz metni giriniz Aratr
Tag Bulutu
.Net Fr amewor k .Net Fr amewor k
4.0 .Net Remoting .Net Ria
Ser vices Ado.Net Ado.Net 2.0
Ado.Net Data Ser vices Ado.Net
Entity Fr amewor k Ado.Net Entity
Fr amewor k 4.0 Asp.Net
Asp.Net 2.0 Asp.Net 4.0
Async Bizspar k C# C#
C# 2 C# 2.0 C# 3.0 C#
4.0 C# Temelleri Design
Patter ns Design Pr inciples
Dynamic Dynamic Language
Runtime Entity Fr amewor k
Extension Methods Geliim
Atlyesi Html 5 Linq Linq
To Sql Micr osoft Micr osoft
Teknoloji Gnler i Mvp Nedir tv
Nedir tv?Com Nedir tv?Com
Syleiler i Non Soap Oledb
Oop Par allel Pr ogr amming
Plinq Reflection Rest
Restful Scr eencast Seminer
Silver light Soap Sql Task
Par allel Libr ar y Tpl
Tr ansactions Visual Studio
2010 Visual Studio 2010 Ultimate
Wcf Wcf 4.0 Wcf Data
Ser vices Wcf Eco System Wcf
Ria Ser vices Wcf Webhttp Ser vices
Webcast Webhttp Ser vices
Webiner Wf Wf 4.0
Windows Communication
Foundation Windows For ms
Windows Ser ver Appfabr ic
Wor kflow Foundation Wor kflow
Foundation 4.0 Wor kflow Ser vices
Wpf Xml Xml Web Ser vices
Kategoriler
.Net Framework 4.0
.Net Remoting
.Net RIA Services
Ado.Net
Ado.Net 2.0
Ado.Net Data Services
Ado.Net Entity
Framework
Ado.Net Sync Services
Asp.Net
Asp.Net - Asp.Net 2.0
Asp.Net - Asp.Net 4.0
Asp.Net - Asp.Net 4.0
Beta 2
BCL
Bing
Biztalk
C#
C# - C# 3.0
C# - C# 4.0
Data Structers,
18 03 2012 Burak Selim Senyurt Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)
3/6 buraksenyurt.com/post/Xml-Web-Servisleri-5-(Mimarinin-Temelleri-DISCO)-bsenyurt-com-dan.aspx
<discoveryRef ref="PerSor.disco"/>
<contractRef ref="http://localhost/GeoWebServis/GeoMat.asmx?wsdl"
docRef="http://localhost/GeoWebServis/GeoMat.asmx"
xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://localhost/GeoWebServis/GeoMat.asmx" xmlns:q1="http://ilk/servis/"
binding="q1:Geometrik_x0020_HesaplamalarSoap"
xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>
DiscoveryRef boumu ile, GeoMat. disco dosyasnn referans edebilecei baka disco dosyalarn
belirtmi oluruz. Dolaysyla, balang sayfasnn bulunduu adres, disco arac iin parametre
olduunda, bu adresteki link tagnda yer alan disco dosyasnn yannda bu dosyann referans
ettii dier disco dkmanlarda ele alnabilecektir. Akas kk bir hile yapm oluyoruz. imdi
tek yapmamz gereken istemci bilgisayarn komut satrnda aadaki ifadeyi altrmak olacaktr.
D:\disco /out:deneme http://localhost/
ekil 3. Yerel sunucudaki disco ve wsdl dkmanlarnn elde edilmesi.
Bu ilemin ardndan, deneme isimli klasre bakldnda, GeoMat ve PerSor web servislerini
kullanabilmemiz iin gerekli proxy snflarn oluturmakta kullanacamz wsdl dkmanlarnn disco
dkmanlar ile birlikte indirildiini ve kayt edildiini grrz.
ekil 4. ndirilen disco ve wsdl dkmanlar.
Artk bu noktadan sonra yapmamz gerekenler sadece wsdl dkmanlar yardmyla proxy snfmz
oluturmak ve kullanmak olacaktr. Bir sonraki makalemizde grnceye dek hepinize mutlu
gnler dilerim.
Burak Selim ENYURT
selim@bsenyurt.com
Tags:

Xml Web Services, Disco, Discovery
Categories:

XML Web Services
Actions:

E-mail | del.icio.us | Permalink | Yorumlar (0) | Comment RSS
likili yazlar
Xml Web Servisleri - 3 ( Mimarinin Temelleri - SOAP)
Deerli Okurlarm, Merhabalar. Bu makalemizde, Xml Web Servislerinin mimarisine daha yaknda bakma...
Xml Web Servislerine Giri - 1
Bu makalemizde, ksaca bir XML Web Servisinin ne olduuna, ne ie yaradna deinecek ve basit b...
Algorithms
Deneyimler
Eitimler
Enterprise Library
Journal
Kitap Tavsiyelerim
LINQ
LINQ To SQL
NedirTv?
Parallel Programming
Parallel Programming -
PLINQ
Parallel Programming -
TPL
Podcasts
Pre Beta
Seminerler
Silverlight 4.0
SOA
Tasarm
Kalplar(Design Patterns)
Tasarm
Prensipleri(Design
Principles)
Tek Fotoluk Ipucu
Teknik D Konular
T-Sql
Visual Studio
WCF
WCF 4.0
WCF 4.0 - WCF 4.0 Beta
1
WCF 4.0 - WCF 4.0 Beta
2
WCF 4.0 - WCF 4.0 RC
WCF Eco System
WCF Eco System - WCF
Data Services
WCF Eco System - WCF
RIA Services
WCF Eco System - WCF
WebHttp Services
WCF reniyorum
WF
WF 4.0
WF 4.0 - WF 4.0 Beta 1
WF 4.0 - WF 4.0 Beta 2
WF 4.0 - WF 4.0 RC
Windows Azure
Windows Forms
Windows Mobile
Windows Server
AppFabric
Windows Server
AppFabric - Velocity
Project
Windows Services
Workflow Foundation
reniyorum
WPF
XML
XML Web Services
Zenith Biliim
Ariv
Currently rated 5.0 by 7 people
18 03 2012 Burak Selim Senyurt Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)
4/6 buraksenyurt.com/post/Xml-Web-Servisleri-5-(Mimarinin-Temelleri-DISCO)-bsenyurt-com-dan.aspx
Xml Web Servisleri - 4 ( Mimarinin Temelleri - WSDL)
Deerli Okurlarm, Merhabalar. stemciler, web servisleri ile aralarndaki iletiimi, alt...
Yorumlar kapal.
2012
Mart (7)
ubat (11)
Ocak (9)
2011
Aralk (8)
Kasm (11)
Ekim (8)
Eyll (7)
Austos (8)
Temmuz (12)
Haziran (11)
Mays (2)
Nisan (2)
Mart (1)
Ocak (1)
2010
Aralk (30)
Kasm (6)
Ekim (8)
Eyll (10)
Austos (9)
Temmuz (10)
Haziran (12)
Mays (11)
Nisan (14)
Mart (20)
ubat (11)
Ocak (15)
2009
Aralk (12)
Kasm (20)
Ekim (18)
Eyll (8)
Austos (20)
Temmuz (15)
Haziran (15)
Mays (16)
Nisan (18)
Mart (2)
ubat (2)
Ocak (3)
2008
Aralk (1)
Ekim (4)
Eyll (2)
Austos (1)
Temmuz (2)
Haziran (3)
Mays (2)
Nisan (3)
Mart (4)
ubat (4)
Ocak (4)
2007
18 03 2012 Burak Selim Senyurt Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)
5/6 buraksenyurt.com/post/Xml-Web-Servisleri-5-(Mimarinin-Temelleri-DISCO)-bsenyurt-com-dan.aspx
Aralk (4)
Kasm (4)
Ekim (4)
Eyll (4)
Austos (5)
Temmuz (5)
Haziran (4)
Mays (5)
Nisan (4)
Mart (5)
ubat (4)
Ocak (3)
2006
Aralk (4)
Kasm (3)
Ekim (4)
Eyll (3)
Austos (2)
Temmuz (4)
Haziran (3)
Mays (3)
Nisan (4)
Mart (5)
ubat (4)
Ocak (3)
2005
Aralk (1)
Kasm (2)
Ekim (2)
Eyll (4)
Austos (2)
Temmuz (4)
Haziran (6)
Mays (1)
Nisan (3)
Mart (3)
ubat (2)
Ocak (2)
2004
Aralk (3)
Kasm (3)
Ekim (5)
Eyll (16)
Austos (3)
Temmuz (5)
Haziran (4)
Mays (3)
Nisan (5)
Mart (4)
ubat (8)
Ocak (18)
2003
Aralk (21)
Kasm (9)
18 03 2012 Burak Selim Senyurt Xml Web Servisleri - 5 (Mimarinin Temelleri - DISCO)
6/6 buraksenyurt.com/post/Xml-Web-Servisleri-5-(Mimarinin-Temelleri-DISCO)-bsenyurt-com-dan.aspx
Privacy
Dependency Injec
Mark Seemann (Paper
$31.35
neriyorum
1 2 3 4 5 >
Blogroll
Mike Taulty's Blog
Uur Umutluolu
Scott Hanselman's Co...
ScottGu's Blog
Rich Strahl
Aaaron Skonnard
The Moth
Geeks With Blogs
NedirTv?Com
Ercan Bozkurt WeBlog
Arda etinkaya
Emre Artrk Ile Bir...
Chronicles Of A Deve...
Tamer Oz
KodefuGuru
Shawn Wildermuth
lkay lknur
Osman okakolu
Powered by BlogEngine.NET 1.5.0.7 | Design by Michael Sivers Sign in

You might also like