Web Service Nedir

4
Planlama OCAK 2004 Windows & .NET Magazi ne www.winnetmag.com.tr 3 0 Planlama eb Service kavram›n› daha önce duydunuz, öyle de¤il mi? Peki ne oldu¤unu ve hangi durumlarda kullan›ld›¤›n› biliyor musu- nuz? Bu konudaki sorular›n›z› cevaplamak için geç kalm›say›lmazs›n›z. Bu yaz›da, Web Service kavram›n›n temellerini örnekleriyle birlikte in- celiyor olaca¤›z. Bu ay, ne zamand›r de¤inmek istedi¤im bir konu hakk›n- da bir eyler yaz›yor olman›n keyfini ya›yorum. Aram›zdaki programc›lar› saymazsak, gelece¤in anahtar teknolojilerinden biri olan Web Service’in ne oldu¤unun ve nas›l bir potansiyel ta›d›¤›n›n yeterince fark edilmemioldu¤unu gözlemliyorum. Bu yaz›y› kaleme almak istememin sebebi bu. Yaz›n›n sonu- na geldi¤inde, “Web Service Nedir?” ve “Web Service Ne ‹e Yarar?” sorular›n› rahatl›kla cevaplayabiliyo r olacaks›n›z. Ay - r›ca, inceleyece¤imiz senaryolar ile Web Service’in gerçek ha- yatta ne gibi durumlarda hayat kurtarabilece¤ini hep birlikte görece¤iz.  Web Service'in temelleri Web Service kavram›n›n ne oldu¤unu anlatmadan önce, ben- zer bir amaca hizmet eden daha köklü bir kavramdan bahset- mek istiyorum: API. API (Application Programming Interface), bir program›n i- levselli¤ini baka programlar›n da kullanabilme sini sa¤layan fonksiyonlar a verilen add›r. Bu fonksiyonlar› kullanan baka programc›lar, kendi programlar›na ayn› ilevselli¤i kolayca katabilir. API konusunu bir örnekle ayd›nlatmakta fayda var. Hepi- mizin yak›ndan tan›d›¤› ICQ program›n› ele alal›m. ICQ’nun iki temel fonksiyonu vard›r: Mesaj göndermek ve dosya gön- dermek. ICQ’nun teknik yap›s›n› inceledi¤imizde, büyük bir ihtimalle mesaj ve dosya gönderme ileriyle ilgilene n fonksi- yonlar› bar›nd›ran bir .DLL dosyas› ile kar›la›r›z. ICQ üzerinden mesaj ve dosya gönde- ren programlar yazmak isteyen program- c›lar olabilece¤ini düünen ICQ programc›lar›, ayn› ilevi ye- rine getiren fonksiyonlar bar›nd›ran “halka aç›k” bir .DLL dos- yas› daha haz›rlad›lar. Bu .DLL dosyas›, bizim gözümüzde bir API’dir. Biz bu API’yi kullanarak, (ICQ iletiim protokolünün düük seviyeli spesifikasyonlar›n› ö¤renmek zorunda kalmadan) son derece basit iki fonksiyon ça¤›rarak mesaj ve dosya göndere- biliriz. Kolay, öyle de¤il mi? Hemen ekleyelim, merak eden- ler ICQ API dosyalar›n› http://www.icq.com/api/ adresinden indirebilir.  API’lerin modas› geçti mi? Tek bir bilgisayar veya küçük a¤lar üzerinde çal›an uygula- malar söz konusu oldu¤unda API’ler, fonksiyon payla›m› ad›- na çok önemli bir görev üstlenmektedir. Ne var ki, günümüzde uygulamalar›n yap›s› h›zla de¤imektedir. 10 sene öncesiyle bugünü kar›lat›rd›¤›m›zda, DLL dosyalar›na gömülen API’lerin günümüz ihtiyaçlar›n› yeterince kar›layamad›¤›n› görüyoruz. Bunun birkaç sebebi var. Her eyden önce, eskiden masaüstünde çal›an uygulama- lar›n önemli bir k›sm›, yerini web tabanl› uygulamalara b›ra- k›yor. Elektronik sözlüklerin yerini online sözlüklerin almas› buna basit bir örnek olarak gösterilebilir. Daha büyük bir ör- nek ise, turizm irketlerinin acentelerine verigirii yapma- lar› için program da¤›tmak yerine web sitelerini açmas› olabilir. Web’e dayanan bu tür uygulamalara ait fonksiyonla- r›n klasik DLL API’leri ile acente programc›lar›na aç›lmas›, pek pratik ve uygulanabilir bir çözüm de¤ildir. Bir di¤er sebep ise ERP, CRM, E-Learning gibi büyük sis- temlerin, dünyan›n çeitli bölgelerine da¤›lm›genilokasyon- lardan ayn› anda çal››labilecek ekilde haz›rlanmas›d›r. Bu tür uygulamalarda merkezde yer alan veritabanlar›n›n (veya veritaban›na eriecek DLL API’lerinin) dünyan›n 4 bir köe- Kerem Köseo¤lu [email protected] .tr  Web Service'e dikkat! Web Service’in ne oldu¤unun ve nas›l bir potansiyel  ta ›d›¤›n›n yeterince fark edilmemi oldu¤unu gözlemliyoruz. W KEREM KÖSEOLU Windows & .NET Magazine'in katk›da bulunan yazarlar›ndand›r. Çözümevi firmas›nda analist programc› ve SAP dan›man› olarak çal› maktad›r. Kendisine keremk@ winnetmag.com.tr adresinden ulaabilirsiniz. ekil 1: ICQ’nun Çal› ma Prensibi. ekil 2: ICQ API’si.

Transcript of Web Service Nedir

8/9/2019 Web Service Nedir

http://slidepdf.com/reader/full/web-service-nedir 1/3

Planlama

OCAK 2004 Windows & .NET Magazine www.winnetmag.com.tr30

Planlama

eb Service kavram›n› daha önce duydunuz,öyle de¤il mi? Peki ne oldu¤unu ve hangidurumlarda kullan›ld›¤›n› biliyor musu-nuz? Bu konudaki sorular›n›z› cevaplamakiçin geç kalm›fl say›lmazs›n›z. Bu yaz›da,

Web Service kavram›n›n temellerini örnekleriyle birlikte in-celiyor olaca¤›z.

Bu ay, ne zamand›r de¤inmek istedi¤im bir konu hakk›n-da bir fleyler yaz›yor olman›n keyfini yafl›yorum. Aram›zdakiprogramc›lar› saymazsak, gelece¤in anahtar teknolojilerindenbiri olan Web Service’in ne oldu¤unun ve nas›l bir potansiyeltafl›d›¤›n›n yeterince fark edilmemifl oldu¤unu gözlemliyorum.Bu yaz›y› kaleme almak istememin sebebi bu. Yaz›n›n sonu-na geldi¤inde, “Web Service Nedir?” ve “Web Service Ne ‹fleYarar?” sorular›n› rahatl›kla cevaplayabiliyor olacaks›n›z. Ay-r›ca, inceleyece¤imiz senaryolar ile Web Service’in gerçek ha-yatta ne gibi durumlarda hayat kurtarabilece¤ini hep birlikte

görece¤iz.

 Web Service'in temelleriWeb Service kavram›n›n ne oldu¤unu anlatmadan önce, ben-zer bir amaca hizmet eden daha köklü bir kavramdan bahset-mek istiyorum: API.

API (Application Programming Interface), bir program›n ifl-levselli¤ini baflka programlar›n da kullanabilmesini sa¤layanfonksiyonlara verilen add›r. Bu fonksiyonlar› kullanan baflkaprogramc›lar, kendi programlar›na ayn› ifllevselli¤i kolaycakatabilir.

API konusunu bir örnekle ayd›nlatmakta fayda var. Hepi-mizin yak›ndan tan›d›¤› ICQ program›n› ele alal›m. ICQ’nun

iki temel fonksiyonu vard›r: Mesaj göndermek ve dosya gön-dermek. ICQ’nun teknik yap›s›n› inceledi¤imizde, büyük birihtimalle mesaj ve dosya gönderme iflleriyle ilgilenen fonksi-yonlar› bar›nd›ran bir .DLL dosyas› ilekarfl›lafl›r›z.

ICQ üzerinden mesaj ve dosya gönde-ren programlar yazmak isteyen program-

c›lar olabilece¤ini düflünen ICQ programc›lar›, ayn› ifllevi ye-rine getiren fonksiyonlar bar›nd›ran “halka aç›k” bir .DLL dos-yas› daha haz›rlad›lar. Bu .DLL dosyas›, bizim gözümüzde birAPI’dir.

Biz bu API’yi kullanarak, (ICQ iletiflim protokolünün düflükseviyeli spesifikasyonlar›n› ö¤renmek zorunda kalmadan) sonderece basit iki fonksiyon ça¤›rarak mesaj ve dosya göndere-biliriz. Kolay, öyle de¤il mi? Hemen ekleyelim, merak eden-ler ICQ API dosyalar›n› http://www.icq.com/api/ adresindenindirebilir.

 API’lerin modas› geçti mi?Tek bir bilgisayar veya küçük a¤lar üzerinde çal›flan uygula-malar söz konusu oldu¤unda API’ler, fonksiyon paylafl›m› ad›-na çok önemli bir görev üstlenmektedir. Ne var ki, günümüzdeuygulamalar›n yap›s› h›zla de¤iflmektedir. 10 sene öncesiylebugünü karfl›laflt›rd›¤›m›zda, DLL dosyalar›na gömülen

API’lerin günümüz ihtiyaçlar›n› yeterince karfl›layamad›¤›n›görüyoruz. Bunun birkaç sebebi var.

Her fleyden önce, eskiden masaüstünde çal›flan uygulama-lar›n önemli bir k›sm›, yerini web tabanl› uygulamalara b›ra-k›yor. Elektronik sözlüklerin yerini online sözlüklerin almas›buna basit bir örnek olarak gösterilebilir. Daha büyük bir ör-nek ise, turizm flirketlerinin acentelerine verifl girifli yapma-lar› için program da¤›tmak yerine web sitelerini açmas›olabilir. Web’e dayanan bu tür uygulamalara ait fonksiyonla-r›n klasik DLL API’leri ile acente programc›lar›na aç›lmas›,pek pratik ve uygulanabilir bir çözüm de¤ildir.

Bir di¤er sebep ise ERP, CRM, E-Learning gibi büyük sis-

temlerin, dünyan›n çeflitli bölgelerine da¤›lm›fl genifl lokasyon-lardan ayn› anda çal›fl›labilecek flekilde haz›rlanmas›d›r. Butür uygulamalarda merkezde yer alan veritabanlar›n›n (veyaveritaban›na eriflecek DLL API’lerinin) dünyan›n 4 bir köfle-

Kerem Köseo¤lu [email protected]

 Web Service'e dikkat!Web Service’in ne oldu¤unun ve nas›l bir potansiyel tafl›d›¤›n›n yeterince fark edilmemifl oldu¤unugözlemliyoruz.

W

KEREMKÖSEO⁄LUWindows & .NETMagazine'in katk›dabulunanyazarlar›ndand›r.Çözümevi firmas›ndaanalist programc›ve SAP dan›flman›

olarak çal›flmaktad›r.Kendisine [email protected].

fiekil 1: ICQ’nun Çal›flma Prensibi.

fiekil 2: ICQ API’si.

8/9/2019 Web Service Nedir

http://slidepdf.com/reader/full/web-service-nedir 2/3

Planlama | Konu

www.winnetmag.com.tr Windows & .NET Magazine OCAK 2004 30

sindeki programc›lara aç›lmas› güvenlikaç›s›ndan çok sak›ncal›d›r.

Platform say›s›ndaki art›fl ise, dile ge-tirmek istedi¤im son nokta. GünümüzdeUnix, Linux, Windows, MacOs gibi fark-l› iflletim sistemlerinin yan› s›ra; .NET,Java gibi farkl› uygulama platformlar› dasöz konusu. Her platform için ayr› birerAPI yazmak, uygulama gelifltiren firma-lar için son derece masrafl› ve zahmetlibir ifl olacakt›r.

Sonuç olarak flunu söyleyebiliriz:API’lerin modas› geçmedi. Ama günü-müz ihtiyaçlar› çerçevesinde, API’lerinde evrim geçirmesi gerekiyor.

Merak etmeyin, geçirdiler de.

 Web Service Nedir?Art›k hepimiz API’nin ne anlama geldi-¤ini bildi¤imize göre, “Internet ça¤›n›nAPI’leri” diye nitelendirilebilecek olanWeb Service kavram›na geçebiliriz.

Tek cümleyle ifade edecek olursak,Web Service “‹nternet üzerinden kullan›-labilen platform ba¤›ms›z API” olarak ni-telendirilebilir.

San›r›m birço¤umuz ASP, PHP, JSP gi-bi dinamik web sayfalar›n›n nas›l çal›fl-

t›¤›n› biliyoruz, öyle de¤il mi? Bu tipsayfalar, her bir t›klamada kullan›c›danbirtak›m veriler al›r, ald›¤› verileri sunu-cu taraf›nda dinamik olarak ifller ve kul-lan›c›ya o anda haz›rlanm›fl bir HTMLsayfas› gönderir.

Örnek olarak, hayali bir meteorolojikurumunun web sitesini ele alal›m. Busitede büyük bir ihtimalle “hava.asp” ad›bir sayfa olacakt›r. Siteye giren bir ziya-retçi ‹stanbul’un hava durumunu ö¤ren-mek istedi¤inde, “hava.asp?il_kodu=34”linkine t›klar. Meteoroloji sunucusu bu

iste¤i de¤erlendirerek il kodunun 34 ol-du¤unu görür, veritaban›ndan 34 plaka-l› il olan ‹stanbul’a ait hava bilgileriniçeker ve bu bilgileri doldurarak olufltur-du¤u HTML dosyas›n› ziyaretçiye gönde-rir. Dinamik Web uygulamalar›ntamam›, bu basit prensip üzerine kuru-ludur.

Buraya kadar anlafl›lmayan bir fleyyok san›r›m. fiimdi, meteoroloji örne¤i-ni sürdürelim.

Örnek meteoroloji kurumumuzdanbirçok televizyon kanal›, Internet sitesive denizcilik iflletmesi, sürekli olarakcanl› veri talep edecektir. Üstelik bu ku-rumlar, meteoroloji verilerini kendi BTsistemlerinden otomatik olarak çekmekisteyecektir. Dolay›s›yla “Kardeflim o ka-dar Web sitesi yapt›rd›k, girin al›n iste-di¤inizi!” demek, talebikarfl›lamayacakt›r.

San›r›m nereye do¤ru gitti¤imi tah-min ettiniz. Evet, meteoroloji kurumu-nun yapmas› gereken fley, herkese aç›k

bir API haz›rlamakt›r. Bu API sayesindeher kurum meteoroloji verilerine elekt-ronik olarak eriflebilmeli ve elde etti¤i saf veriyi kendi altyap›s›na uygun bir flekil-de kullanabilmelidir.

Hayali meteoroloji kurumunun yap-mas› gereken fley, bir Web Service haz›r-lamakt›r.

Web Service’ler, az önce inceledi¤imizdinamik Web sayfalar› ile neredeyse ta-mamen ayn› prensiple çal›flmaktad›r.Aradaki tek fark, üretilen ç›kt›n›n bir

HTML sayfas› de¤il, programlar›n kolay-ca anlayabilece¤i bir XML doküman› ol-mas›d›r.

Meteoroloji kurumu, HTML ç›kt› üre-ten “hava.asp” dosyas›n›n yan›nda, XMLformat›nda ç›kt› üreten bir “hava.asmx”dosyas› haz›rlad›¤›nda, veri talebindebulunan her kurumun talebini kolaycakarfl›layabilecektir.

Örne¤in bir online haber sitesi, mete-oroloji kurumunun Web Service’ini 30dakikada bir otomatik olarak ça¤›r›p,kendi veritaban›n› güncelleyen küçükbir program yazacakt›r. Bu sayede, ken-di ziyaretçileri “Hava / Yol Durumu” lin-kine t›klad›¤›nda güncel verilerlekarfl›lafl›r.

Web Service’leri neden “Online API”diye nitelendirdi¤imi san›r›m hepimizdaha net bir flekilde görmüfl olduk. Birmasaüstü program›n›n fonksiyonlar›n›di¤er programc›lara açmay› nas›l API’ler

mümkün k›l›yorsa, internete aç›k bir fle-kilde çal›flan büyük uygulamalar›n fonk-siyonlar›n› di¤er programc›lara açmay›da Web Service’ler mümkün k›lmakta-d›r.

Sadece veri paylafl›m› m›?Az önce incelemifl oldu¤umuz meteoro-loji örne¤inde, Web Service’in çal›flmaprensibini ve veri paylafl›m›n›n Web Ser-vice üzerinden nas›l gerçeklefltirilebile-ce¤ini görmüfl olduk.

fiimdi bir baflka örnekle Web Servicekonusunda ufkumuzu biraz daha genifl-letelim.

Üretim yapan büyük bir flirketin prog-

ramc›s› olarak, bir siparifl takip progra-m› yazd›¤›m›z› varsayal›m. Program›n,bayilerden gelen sipariflleri sistemimizekaydetmek ve üretim - sevkiyat depart-manlar›na otomatik olarak mesaj gön-dermek gibi görevleri olsun.

Normal flartlarda, program›m›za flir-ket operatörleri siparifl geldikçe veri gi-

rifli yapacakt›r.Sistem güzel gözükse de bir süre son-

ra, büyük bayiler bu iflten yavafl yavafl s›-k›lmaya bafllayacakt›r. Operatörlerin verigiriflini yavafl ve hatal› yapt›¤›ndan flika-yet ederek, kendi BT sistemlerinden oto-matik olarak siparifl yaratmakistediklerini söyleyeceklerdir.

Teknik anlam›yla, bizden siparifl ya-ratabilecekleri bir API talep edeceklerdir.

Do¤ru tahmin ettiniz. Biz de bayileri-mize “siparis.asmx” ad›nda bir Web Ser-

vice haz›rlayarak problemi çözece¤iz.Üstelik Web Service’ler platform ba¤›m-s›z standartlara dayand›klar› için, bir ba-yinin Java, bir di¤erinin .NET, ötekininise Delphi ile yaz›lm›fl uygulamalar kul-

fiekil 4: Meteoroloji sitemiz, dinamik olarak 

üretilen Web sayfalar›ndan olufluyor.

fiekil 5: Operatörümüz, yüzlerce kalemden oluflan

sipariflleri hatas›z girmeye çal›fl›rken.

fiekil 3: Meteoroloji sitemiz, dinamik olarak üreti-

len Web sayfalar›ndan olufluyor.

8/9/2019 Web Service Nedir

http://slidepdf.com/reader/full/web-service-nedir 3/3

Planlama | Konu

OCAK 2004 Windows & .NET Magazine www.winnetmag.com.tr30

lan›yor olmas› bizi hiç ilgilendirmeye-cek.

Bayinin yapmas› gereken tek fley ken-di bünyesindeki sisteme, siparifl söz ko-nusu oldu¤u zaman bizim Web

Service’imizin otomatik olarak ça¤›r›la-

ca¤› bir fonksiyon eklemektir. Örne¤i-mizde bayimizin siparifl yaratmas› için,bizim sunucumuz üzerinde yer alan si-paris.asmx sayfas›n› malzeme kodu vesiparifl miktar› ile ça¤›rmas› yeterlidir.

Bunu, Internet Explorer penceresindeelle “www.bizimfirma.com/sipa-ris.asmx?urun=conta&miktar=50” adre-sini yazarak yapabilece¤i gibi, sözkonusu adresi kendi programlar›ndanbirinden otomatik olarak ça¤›rarak dayapabilir (buradaki adres basit bir örnek

olarak verilmifltir, normal flartlarda WebService adreslerinin format› daha farkl›-d›r). Siparis.asmx sayfas›, kendisini ça¤›-ran bayiye sipariflin onayland›¤›n›söyleyen bir XML doküman› gönderir ve

sanki flirket operatörümüz siparifl takipprogram›na girip veri girifli yapm›fl gibigerekli kay›tlar› atar.

Hoflunuza gitti, öyle de¤il mi?

Sonuç

Sonuç olarak flunu söyleyebiliriz ki, WebService, genifl çapl› uygulamalar›n›z›Dünya üzerindeki di¤er programc›laraucuz, zahmetsiz ve platform ba¤›ms›z birflekilde açman›z› sa¤layan anahtar tek-nolojidir. BT projelerinizde sistemlerinyap›s›n›, fonksiyonlar›n Web Serviceüzerinden de kolayca ça¤›r›labilece¤i fle-kilde tasarlaman›z, orta ve uzun vadedekesinlikle lehinize olacakt›r.

Bir baflka yaz›da görüflünceye dek,hoflça kal›n!

fiekil 5: Bayiler siparifllerini Web Serviceüzerinden gönderirken, operatörümüzün de

biraz soluklanacak vakti kal›yor.

 Web Service kullanman›n avantajlar›Uygulamalar›m›za Web Service’ler dahil etmemizin say›s›z avantaj› vard›r. Bunlar

aras›nda, kiflisel tecrübelerim sonucu onaylam›fl olduklar›m› sizlerle paylaflmak istiyorum.• .Net, Java gibi modern uygulama platformlar› üzerinde kolayca gelifltirilebilirler.

• Web Service’ler platform ba¤›ms›zd›r. Örne¤in; .Net ile haz›rlanan bir Web Service

Delphi’den, Java ile haz›rlanan bir Web Service bir ASP sayfas›ndan kolayca

ça¤›r›labilir.

• Web Service’ler iflletim sisteminden de ba¤›ms›zd›r. Bir Windows makinesinden Linux

üzerinde bar›nd›r›lan bir Web Service’i kolayca ça¤›rabiliriz.

• Bir uygulaman›n fonksiyonlar›n›, internet üzerinden çok genifl bir kullan›c› kitlesine

açmak mümkündür.

• HTTP üzerinden çal›flt›¤› için, sistemleri d›flar›ya güvenlikten pek fazla ödün verme-

den açmak mümkün olur. Firewall’lar, uygulamalar aras›nda veri paylaflmak

istedi¤imizde bize engel olmaz.

• Gelecekte söz konusu olabilecek entegrasyon projelerinde, programc›lara uzun, s›k›c›

ve hata yapma riskini artt›ran spesifikasyon klasörleri vermek yerine, 2-3 sayfadan

oluflan Web Service adres listeleri verme flans›m›z olur.

• Her platform ba¤›ms›z teknolojide oldu¤u gibi, Web Service’ler de ürünü gelifltirmek

için gereken süreyi ve eme¤i azaltt›¤› için maliyetleri düflürür.

 Web Service örnekleri“.Net üzerinde Web Service nas›l gelifltirilir?” veya “.Net içerisinden bir Web Service’i

nas›l ça¤›rabilirim?” gibi teknik sorular, bu yaz›n›n konusunun d›fl›nda kal›yor. Yine de,

sizlere deneme yapma amac›yla eriflebilece¤iniz baz› aç›k Web Service’lerinin adresleri-

ni paylaflmak istiyorum.

• Microsoft UDDI - http://test.uddi.microsoft.com/visualstudio/ : Microsoft, bu sitede pro-

gramc›lar›n test amac›yla kullanabilecekleri birçok Web Service bar›nd›r›yor.

• Google Web API’s - http://www.google.com/apis/: Google’›n Web Service’lerini kulla-

narak, uygulamalar›n›za Web’de arama yapma, imla düzeltme gibi özellikler kata-

bilirsiniz.

• GlobalWeather - http://live.capescience.com/wsdl/GlobalWeather.wsdl : Bu Web

Service’i kullanarak Dünya’daki birçok bölgenin hava durumunu ö¤renebilirsiniz.

Internet üzerinde arama yaparak çok daha fazlas›n› bulabilece¤inizi de hat›rlatmak

isterim.

spot, spot, spot, spot, spot, spot,spot, spot, spot, spot, spot, spot,spot, spot, spot, spot, spot, spot,

spot, spot, spot, spot, spot, spot,spot, spot, spot, spot, spot, spot,spot, spot, spot, spot, spot, spot,spot, spot, spot, spot, spot, spot,spot, spot, spot, spot, spot, spot,spot, spot, spot,