Professional Documents
Culture Documents
Web Service Nedir
Web Service Nedir
Web Service Nedir
W
eb Service kavram›n› daha önce duydunuz, c›lar olabilece¤ini düflünen ICQ programc›lar›, ayn› ifllevi ye-
öyle de¤il mi? Peki ne oldu¤unu ve hangi rine getiren fonksiyonlar bar›nd›ran “halka aç›k” bir .DLL dos-
durumlarda kullan›ld›¤›n› biliyor musu- yas› daha haz›rlad›lar. Bu .DLL dosyas›, bizim gözümüzde bir
nuz? Bu konudaki sorular›n›z› cevaplamak API’dir.
iç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›zdaki
programc›lar› saymazsak, gelece¤in anahtar teknolojilerinden
biri olan Web Service’in ne oldu¤unun ve nas›l bir potansiyel
tafl›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 ‹fle
Yarar?” sorular›n› rahatl›kla cevaplayabiliyor olacaks›n›z. Ay-
r›ca, inceleyece¤imiz senaryolar ile Web Service’in gerçek ha-
fiekil 2: ICQ API’si.
yatta ne gibi durumlarda hayat kurtarabilece¤ini hep birlikte
görece¤iz. Biz bu API’yi kullanarak, (ICQ iletiflim protokolünün düflük
seviyeli spesifikasyonlar›n› ö¤renmek zorunda kalmadan) son
Web Service'in temelleri derece basit iki fonksiyon ça¤›rarak mesaj ve dosya göndere-
Web Service kavram›n›n ne oldu¤unu anlatmadan önce, ben- biliriz. Kolay, öyle de¤il mi? Hemen ekleyelim, merak eden-
zer bir amaca hizmet eden daha köklü bir kavramdan bahset- ler ICQ API dosyalar›n› http://www.icq.com/api/ adresinden
mek istiyorum: API. indirebilir.
API (Application Programming Interface), bir program›n ifl-
levselli¤ini baflka programlar›n da kullanabilmesini sa¤layan API’lerin modas› geçti mi?
fonksiyonlara verilen add›r. Bu fonksiyonlar› kullanan baflka Tek bir bilgisayar veya küçük a¤lar üzerinde çal›flan uygula-
programc›lar, kendi programlar›na ayn› ifllevselli¤i kolayca malar söz konusu oldu¤unda API’ler, fonksiyon paylafl›m› ad›-
katabilir. na çok önemli bir görev üstlenmektedir. Ne var ki, günümüzde
API konusunu bir örnekle ayd›nlatmakta fayda var. Hepi- uygulamalar›n yap›s› h›zla de¤iflmektedir. 10 sene öncesiyle
mizin yak›ndan tan›d›¤› ICQ program›n› ele alal›m. ICQ’nun bugünü karfl›laflt›rd›¤›m›zda, DLL dosyalar›na gömülen
iki temel fonksiyonu vard›r: Mesaj göndermek ve dosya gön- API’lerin günümüz ihtiyaçlar›n› yeterince karfl›layamad›¤›n›
dermek. ICQ’nun teknik yap›s›n› inceledi¤imizde, büyük bir görüyoruz. Bunun birkaç sebebi var.
ihtimalle mesaj ve dosya gönderme iflleriyle ilgilenen fonksi- Her fleyden önce, eskiden masaüstünde çal›flan uygulama-
yonlar› bar›nd›ran bir .DLL dosyas› ile lar›n önemli bir k›sm›, yerini web tabanl› uygulamalara b›ra-
karfl›lafl›r›z. k›yor. Elektronik sözlüklerin yerini online sözlüklerin almas›
KEREM
KÖSEO⁄LU buna basit bir örnek olarak gösterilebilir. Daha büyük bir ör-
Windows & .NET nek ise, turizm flirketlerinin acentelerine verifl girifli yapma-
Magazine'in katk›da lar› için program da¤›tmak yerine web sitelerini açmas›
bulunan olabilir. Web’e dayanan bu tür uygulamalara ait fonksiyonla-
yazarlar›ndand›r.
r›n klasik DLL API’leri ile acente programc›lar›na aç›lmas›,
Çözümevi firmas›nda
analist programc›
pek pratik ve uygulanabilir bir çözüm de¤ildir.
ve SAP dan›flman› Bir di¤er sebep ise ERP, CRM, E-Learning gibi büyük sis-
olarak çal›flmaktad›r. temlerin, dünyan›n çeflitli bölgelerine da¤›lm›fl genifl lokasyon-
Kendisine keremk@ lardan ayn› anda çal›fl›labilecek flekilde haz›rlanmas›d›r. Bu
fiekil 1: ICQ’nun Çal›flma Prensibi. winnetmag.com.tr
tür uygulamalarda merkezde yer alan veritabanlar›n›n (veya
adresinden
ICQ üzerinden mesaj ve dosya gönde- ulaflabilirsiniz.
veritaban›na eriflecek DLL API’lerinin) dünyan›n 4 bir köfle-
ren programlar yazmak isteyen program-
sindeki programc›lara aç›lmas› güvenlik Buraya kadar anlafl›lmayan bir fley mümkün k›l›yorsa, internete aç›k bir fle-
aç›s›ndan çok sak›ncal›d›r. yok san›r›m. fiimdi, meteoroloji örne¤i- kilde çal›flan büyük uygulamalar›n fonk-
Platform say›s›ndaki art›fl ise, dile ge- ni sürdürelim. siyonlar›n› di¤er programc›lara açmay›
tirmek istedi¤im son nokta. Günümüzde Örnek meteoroloji kurumumuzdan da Web Service’ler mümkün k›lmakta-
Unix, Linux, Windows, MacOs gibi fark- birçok televizyon kanal›, Internet sitesi d›r.
l› iflletim sistemlerinin yan› s›ra; .NET, ve denizcilik iflletmesi, sürekli olarak
Java gibi farkl› uygulama platformlar› da canl› veri talep edecektir. Üstelik bu ku- Sadece veri paylafl›m› m›?
söz konusu. Her platform için ayr› birer rumlar, meteoroloji verilerini kendi BT Az önce incelemifl oldu¤umuz meteoro-
API yazmak, uygulama gelifltiren firma- sistemlerinden otomatik olarak çekmek loji örne¤inde, Web Service’in çal›flma
lar için son derece masrafl› ve zahmetli isteyecektir. Dolay›s›yla “Kardeflim o ka- prensibini ve veri paylafl›m›n›n Web Ser-
bir ifl olacakt›r. dar Web sitesi yapt›rd›k, girin al›n iste- vice üzerinden nas›l gerçeklefltirilebile-
Sonuç olarak flunu söyleyebiliriz: di¤inizi!” demek, talebi ce¤ini görmüfl olduk.
API’lerin modas› geçmedi. Ama günü- karfl›lamayacakt›r. fiimdi bir baflka örnekle Web Service
müz ihtiyaçlar› çerçevesinde, API’lerin San›r›m nereye do¤ru gitti¤imi tah- konusunda ufkumuzu biraz daha genifl-
de evrim geçirmesi gerekiyor. min ettiniz. Evet, meteoroloji kurumu- letelim.
Merak etmeyin, geçirdiler de. nun yapmas› gereken fley, herkese aç›k Üretim yapan büyük bir flirketin prog-
bir API haz›rlamakt›r. Bu API sayesinde ramc›s› olarak, bir siparifl takip progra-
Web Service Nedir? her kurum meteoroloji verilerine elekt- m› yazd›¤›m›z› varsayal›m. Program›n,
Art›k hepimiz API’nin ne anlama geldi- ronik olarak eriflebilmeli ve elde etti¤i saf bayilerden gelen sipariflleri sistemimize
¤ini bildi¤imize göre, “Internet ça¤›n›n veriyi kendi altyap›s›na uygun bir flekil- kaydetmek ve üretim - sevkiyat depart-
API’leri” diye nitelendirilebilecek olan de kullanabilmelidir. manlar›na otomatik olarak mesaj gön-
Web Service kavram›na geçebiliriz. Hayali meteoroloji kurumunun yap- dermek gibi görevleri olsun.
Tek cümleyle ifade edecek olursak, mas› gereken fley, bir Web Service haz›r-
Web Service “‹nternet üzerinden kullan›- lamakt›r.
labilen platform ba¤›ms›z API” olarak ni- Web Service’ler, az önce inceledi¤imiz
telendirilebilir. dinamik Web sayfalar› ile neredeyse ta-
San›r›m birço¤umuz ASP, PHP, JSP gi- mamen ayn› prensiple çal›flmaktad›r.
bi dinamik web sayfalar›n›n nas›l çal›fl- Aradaki tek fark, üretilen ç›kt›n›n bir
t›¤›n› biliyoruz, öyle de¤il mi? Bu tip HTML sayfas› de¤il, programlar›n kolay-
sayfalar, her bir t›klamada kullan›c›dan ca anlayabilece¤i bir XML doküman› ol-
birtak›m veriler al›r, ald›¤› verileri sunu- mas›d›r.
cu taraf›nda dinamik olarak ifller ve kul- Meteoroloji kurumu, HTML ç›kt› üre-
lan›c›ya o anda haz›rlanm›fl bir HTML ten “hava.asp” dosyas›n›n yan›nda, XML
sayfas› gönderir. format›nda ç›kt› üreten bir “hava.asmx”
Örnek olarak, hayali bir meteoroloji dosyas› haz›rlad›¤›nda, veri talebinde
kurumunun web sitesini ele alal›m. Bu bulunan her kurumun talebini kolayca
sitede büyük bir ihtimalle “hava.asp” ad› karfl›layabilecektir.
bir sayfa olacakt›r. Siteye giren bir ziya- fiekil 5: Operatörümüz, yüzlerce kalemden oluflan
sipariflleri hatas›z girmeye çal›fl›rken.
retçi ‹stanbul’un hava durumunu ö¤ren-
mek istedi¤inde, “hava.asp?il_kodu=34” Normal flartlarda, program›m›za flir-
linkine t›klar. Meteoroloji sunucusu bu ket operatörleri siparifl geldikçe veri gi-
iste¤i de¤erlendirerek il kodunun 34 ol- rifli yapacakt›r.
du¤unu görür, veritaban›ndan 34 plaka- Sistem güzel gözükse de bir süre son-
l› il olan ‹stanbul’a ait hava bilgilerini fiekil 4: Meteoroloji sitemiz, dinamik olarak ra, büyük bayiler bu iflten yavafl yavafl s›-
üretilen Web sayfalar›ndan olufluyor.
çeker ve bu bilgileri doldurarak olufltur- k›lmaya bafllayacakt›r. Operatörlerin veri
du¤u HTML dosyas›n› ziyaretçiye gönde- Örne¤in bir online haber sitesi, mete- giriflini yavafl ve hatal› yapt›¤›ndan flika-
rir. Dinamik Web uygulamalar›n oroloji kurumunun Web Service’ini 30 yet ederek, kendi BT sistemlerinden oto-
tamam›, bu basit prensip üzerine kuru- dakikada bir otomatik olarak ça¤›r›p, matik olarak siparifl yaratmak
ludur. kendi veritaban›n› güncelleyen küçük istediklerini söyleyeceklerdir.
bir program yazacakt›r. Bu sayede, ken- Teknik anlam›yla, bizden siparifl ya-
di ziyaretçileri “Hava / Yol Durumu” lin- ratabilecekleri bir API talep edeceklerdir.
kine t›klad›¤›nda güncel verilerle Do¤ru tahmin ettiniz. Biz de bayileri-
karfl›lafl›r. mize “siparis.asmx” ad›nda bir Web Ser-
Web Service’leri neden “Online API” vice haz›rlayarak problemi çözece¤iz.
diye nitelendirdi¤imi san›r›m hepimiz Üstelik Web Service’ler platform ba¤›m-
daha net bir flekilde görmüfl olduk. Bir s›z standartlara dayand›klar› için, bir ba-
fiekil 3: Meteoroloji sitemiz, dinamik olarak üreti- masaüstü program›n›n fonksiyonlar›n› yinin Java, bir di¤erinin .NET, ötekinin
len Web sayfalar›ndan olufluyor. di¤er programc›lara açmay› nas›l API’ler ise Delphi ile yaz›lm›fl uygulamalar kul-