Ana içeriğe atla

Web Servisleri – Bölüm 1

Web servisleri,  web üzerinden servis veren program parçalarıdır. Bir kullanıcının, HTTP protokolü üzerinden web servisini kullanmasına RPC (Remote Procedure Call) denmektedir. HTTP üzerinden yapılan bu çağrımlara karşı SOAP (Simple Obect Access Protocol) dediğimiz protokol ile XML çıktıları üretilir. Bu sayede standart bir veri paylaşım aracı olan XML ile istediğimiz verileri alıp kullanırız. SOAP standartları, W3C standartlar komitesi tarafından belirlenmiştir. Bütün bu standartları uygulamaya geçiren SOAP sayesinde web servisine, platformdan bağımsız çağırımlar yapılabilmektedir. Yani .NET ortamında geliştirilen bir web servisine JAVA ile geliştirilen bir programdan ulaşmak mümkündür.
SOAP dışında bazı standartlar da vardır, bunlar XML, WSDL, DISCO ve UDDI olarak sıralanabilir. XML, web servislerinin veriyi sunmak için kullandığı bir standarttır. WSDL (Web Service Description Language), web servisinin sunduğu arayüzü tanımlamak için kullanılır, bir web servisinde bulunan fonksiyonların hangi parametreleri aldığını ve ürettiği bilginin türünü bu standartlar ile belirtiriz. DISCO (Dıscovery Protocol) sayesinde ise bir sunucuda paylaşıma açılmış bütün web servislerinin organizasyonu sağlanır. UDDI (Universal Description, Discovery and Integration) standartları, internet üzerinde paylaşıma açılmış ve uygulamalar tarafından kullanılabilecek web servislerinin organizasyonunu sağlar.


Web servisleri günümüzde önemli yer tutmaktadır. TC Kimlik No sorgulama, merkez bankasından anlık doviz kurlarının çekilmesi, örneğin bir şirketsiniz uzak şubelerinize anlık master verilerin sunulması web servisleri ile rahatlıkla sağlanır. İhtiyaca göre  ya web ortamından ya da windows ortamından çağrılabilirler.

Web Servis Hazırlanması
Yeni  bir web servis hazırlanması için File->New Web Site buradan pencere açılır (Bkz Şekil 1). “ASP.Net Web Service” seçeneği seçilir. Dil seçimi ise isteğe bağlı olarak tercih edilebilir. Dosyanın kaydedildiği yer de seçildikten sonra pencere kapatılır.
image
Şekil 1. Web Servisi Yaratılması
Karşımıza web servisimize ait basit bir method gelir. Bu method ekrana sadece “Hello World” yazdırır. Bu methodu silip kendimize illeri getiren method  oluşturacağız (Bkz Şekil 2). İlleri  sunmak  için ilk önce access de yeni bir database mdb (iller.mdb) dosyası ve bu dosyada sehirler tablosu yaratıp, iller ekleyeceğiz.
image
Şekil 2. Web Servis Kodu
Bu kodlar Service.vb dosyasında olması gereken kodlardır ve bir metot belirtir. Bilinen ado.net kütüphanesine ait kodlar kullanılarak ilk önce veritabanına bağlantı sağlanmıştır. Sonra, adapter nesnesi ile bir sorgulama cümlesi yazılıp bu sorguya uyan veriler datasete(verikümesine) aktarılmıştır. Metodun geri dönüş veritipi dataset olacak. Yani bu metot sonlandığı zaman geri dönüş olarak bir dataset gönderecektir. Şimdi F5'E basarak bu Web Servisimizi test edebiliriz.
Şekil 3’de Web Servisimize ait oluşturulmuş olan bütün metotlar bu sayfada görüntülenir ve hangisini test edileceği buradan seçilir. Bizim örneğimizde sadece bir tane metod olduğundan karşımıza çıkan metoda tıklıyoruz. Karşımıza gelen yeni sayfadanda Invoke butonuna tıklıyoruz. Bu aşamalardan sonra karşımıza ado.net kütüphanesine ait kodlar ile verileri çektiğimiz datasetin içeriği görülecektir.Tabikide burada açılacak olan sayfa bir xml sayfasıdır. Dolayısıyla verilerde xml üzerinden gelecektir.
image
image 
Şekil 3. Web Servisi Test
Şekil 3’de görüldüğü gibi dataset verileri xml şeklinde görüntülenir ve testimizin başarılı olduğu bu şekilde anlaşılır. Bu aşamalardan sonra Web Servisimiz herhangi bir ortamdan (web, windows, mobile vb.) çağrılabilir duruma gelmiştir.
Emin Serkan BAYDAR

Yorumlar

Bu blogdaki popüler yayınlar

UML ve Modelleme – Bölüm 4 (Class (Sınıf) Diyagramları)

Bir önceki makalemizde UML modellemede kullanılan ilk diyagram olan Use Case diyagramını incelemiştik. Bu makalemizde nesne tabanlı programlamada kullanılan sınıflar ve sınıfların arasındaki ilişkileri modelleyebileceğimiz diyagramlar olan Class(Sınıf) diyagramlarını inceleyeceğiz. UML’de sınıflar, nesne tabanlı programlama mantığı ile tasarlanmıştır. Sınıf diyagramının amacı bir model içerisinde sınıfların tasvir edilmesidir. Nesne tabanlı uygulamada, sınıfların kendi özellikleri (üye değişkenler), işlevleri (üye fonksiyonlar) ve diğer sınıflarla ilişkileri bulunmaktadır. UML’de sınıf diyagramlarının genel gösterimi aşağıdaki gibidir. Şekil 1. Class Diyagram Şekil1’de görüldüğü üzere bir dikdörtgeni 3 parçaya bölüyoruz. En üst bölüm sınıf adını, orta kısım özellik listesini (üye değişkenler) ve en son kısım, işlev listesini (üye fonksiyonlar) göstermektedir. Çoğu diyagramlarda alt iki bölüm çıkarılır. Genelde tüm özellik ve işlevler gösterilmemektedir. Ama

Yazılım Maliyet Tahmineleme Tecrübeleri

Yazılım mühendisliğinde maliyet hesabı her zaman problem olmuştur. "Bu iş kaç Adam/Gün tutar?" sorusuyla sıkça karşılaşıyoruz. Adam/gün veya Adam/ay ölçütleri bir kaynağın/kişinin belirtilen zaman dilimindeki iş gücü anlamına gelir. Tabi bu noktada yine kafa karışıklıkları başlar. 6 A/G'lik bir işi hızlandıralım diye 2 kişi ile yapmaya çalışsak ve kaynak/kod, modül, altyapı, insan vb. her bir şeyi bir kenara bıraksak, matematiksel basit formülle 6/2=3 A/G'de biter? Gerçek hayat böyle değil, öncelikle bunu anlamamız lazım. Hep şu örnek verilir; "Aynı bebeği 2 kadın birlikte daha kısa sürede doğurur mu?" Eğer bunun cevabı "Evet" ise (veya bir gün böyle bir durum ortaya çıkarsa), yazımı değiştirmem gerekecek:) Mevzu gerçekten derin...Maliyet hesabı; bulunduğunuz firmanın yazılım süreçlerini hangi methodlarla uyguladığına, ilgili işin o dönemdeki aciliyetine, (şirket yönetiminin baskısına:)) vb. bir çok duruma bağlı olabilir. Örneğin; bizim firmada e

UML ve Modelleme – Bölüm 3 (Use Case Diyagramlar)

Önceki iki makalemizde ( 1 , 2 ) UML’e genel olarak değinip ve modellemede kullanacağımız dokuz diyagram hakkında bilgiler vermiştik. Bu makalemizde Use Case diyagramından detaylı bahsedeceğiz. Öncelikle, genel Use case diyagramının tanımını hatırlayalım. “Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” Ivar Jacobson Senaryo tanımı için der ki: “Aktörle sistem arasında gerçekleştirilen, sonucunda aktöre farkedilir getirisi/ faydası oluşan etkileşimli diyalogdur. ” UML Use Case Diyagramları  sistemin işlevselliğini açıklamak amacıyla kullanılır. Sistemin birbirinden ayrı özelliklerinin detaylarını göstermekten ziyade, Use Case Diyagramlar, tüm mevcut işlevselliği göstermek için kullanılabilir. Buradaki en önemli noktalardan biri,   Use Case Diyagramlar temelde sequence diyagram ve akış diyagramlarından farklıdır. Use Case diyagramlar dört ana elemandan oluşmaktadır. Aktörler , Sistem (Proje kapsamını belirtir) , Use Caseler ve bunlar ara