You are on page 1of 3

Planlama

Kerem Köseo¤lu keremk@winnetmag.com.tr


Planlama

Web Service'e dikkat!


Web Service’in ne oldu¤unun ve nas›l bir potansiyel
tafl›d›¤›n›n yeterince fark edilmemifl oldu¤unu
gözlemliyoruz.

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-

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


Planlama | Konu

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-

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


Planlama | Konu

lan›yor olmas› bizi hiç ilgilendirmeye-


cek.
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›
fiekil 5: Bayiler siparifllerini Web Service
üzerinden gönderirken, operatörümüzün de ve hata yapma riskini artt›ran spesifikasyon klasörleri vermek yerine, 2-3 sayfadan
biraz soluklanacak vakti kal›yor. 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
Bayinin yapmas› gereken tek fley ken- için gereken süreyi ve eme¤i azaltt›¤› için maliyetleri düflürür.
di bünyesindeki sisteme, siparifl söz ko-
nusu oldu¤u zaman bizim Web
sanki flirket operatörümüz siparifl takip
spot, spot, spot, spot, spot, spot, program›na girip veri girifli yapm›fl gibi
gerekli kay›tlar› atar.
spot, spot, spot, spot, spot, spot, Hoflunuza gitti, öyle de¤il mi?
spot, spot, spot, spot, spot, spot, Sonuç
spot, spot, spot, spot, spot, spot, Sonuç olarak flunu söyleyebiliriz ki, Web
Service, genifl çapl› uygulamalar›n›z›
spot, spot, spot, spot, spot, spot, Dünya üzerindeki di¤er programc›lara
ucuz, zahmetsiz ve platform ba¤›ms›z bir
spot, spot, spot, spot, spot, spot, flekilde açman›z› sa¤layan anahtar tek-
spot, spot, spot, spot, spot, spot, nolojidir. BT projelerinizde sistemlerin
yap›s›n›, fonksiyonlar›n Web Service
spot, spot, spot, spot, spot, spot, üzerinden de kolayca ça¤›r›labilece¤i fle-
kilde tasarlaman›z, orta ve uzun vadede
spot, spot, spot, kesinlikle lehinize olacakt›r.
Bir baflka yaz›da görüflünceye dek,
hoflça kal›n!
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- Web Service örnekleri
paris.asmx sayfas›n› malzeme kodu ve “.Net üzerinde Web Service nas›l gelifltirilir?” veya “.Net içerisinden bir Web Service’i
siparifl miktar› ile ça¤›rmas› yeterlidir. nas›l ça¤›rabilirim?” gibi teknik sorular, bu yaz›n›n konusunun d›fl›nda kal›yor. Yine de,
Bunu, Internet Explorer penceresinde sizlere deneme yapma amac›yla eriflebilece¤iniz baz› aç›k Web Service’lerinin adresleri-
elle “www.bizimfirma.com/sipa- ni paylaflmak istiyorum.
ris.asmx?urun=conta&miktar=50” adre- • Microsoft UDDI - http://test.uddi.microsoft.com/visualstudio/ : Microsoft, bu sitede pro-
sini yazarak yapabilece¤i gibi, söz 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-
konusu adresi kendi programlar›ndan
narak, uygulamalar›n›za Web’de arama yapma, imla düzeltme gibi özellikler kata-
birinden otomatik olarak ça¤›rarak da
bilirsiniz.
yapabilir (buradaki adres basit bir örnek
• GlobalWeather - http://live.capescience.com/wsdl/GlobalWeather.wsdl : Bu Web
olarak verilmifltir, normal flartlarda Web
Service’i kullanarak Dünya’daki birçok bölgenin hava durumunu ö¤renebilirsiniz.
Service adreslerinin format› daha farkl›-
d›r). Siparis.asmx sayfas›, kendisini ça¤›-
Internet üzerinde arama yaparak çok daha fazlas›n› bulabilece¤inizi de hat›rlatmak
ran bayiye sipariflin onayland›¤›n›
isterim.
söyleyen bir XML doküman› gönderir ve

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

You might also like