Web Service Nedir
-
Upload
dr-kerem-koseoglu -
Category
Documents
-
view
220 -
download
0
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,