Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
8Activity
0 of .
Results for:
No results containing your search query
P. 1
Web Service Nedir

Web Service Nedir

Ratings: (0)|Views: 1,685 |Likes:
Published by KeremKoseoglu
Windows .NET Magazine tarafından yayınlanmıştır.
Windows .NET Magazine tarafından yayınlanmıştır.

More info:

Published by: KeremKoseoglu on May 11, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/31/2012

pdf

text

original

 
Planlama
OCAK 2004 Windows & .NET Magazinewww.winnetmag.com.tr
30
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 birliktegö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 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’nuniki 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ülenAPI’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 keremk@winnetmag.com.tr
 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⁄LU
Windows & .NETMagazine'in katk›dabulunanyazarlar›ndand›r.Çözümevi firmas›ndaanalist programc›ve SAPdan›flman›olarak çal›flmaktad›r.Kendisine keremk@winnetmag.com.tradresindenulaflabilirsiniz.
fiekil 1:
ICQ’nun Çal›flma Prensibi.
fiekil 2:
ICQ API’si.
 
Planlama
| Konu
www.winnetmag.com.trWindows & .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 buiste¤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ç›kbir 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 birHTML 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’lermü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 oluflansipariflleri hatas›z girmeye çal›fl›rken.
fiekil 3:
Meteoroloji sitemiz, dinamik olarak üreti-len Web sayfalar›ndan olufluyor.

Activity (8)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Kadir Budak liked this
Kadir Budak liked this
ufukuz liked this
impul liked this
Aydoğan Dikici liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->