Makale Özeti

Web Servisleri

Makale

 

 

.NET kavramı ile birlikte programlanabilir bir web ortamına girişimizi yapıyoruz. Web’in programlanabilmesi demek şu anda en zor olan işlerden biri olan programların entegrasyonunun kolaylaşması anlamına geliyor. Web servislerinin bize bu noktada sağladığı ise belirli standartlar üzerinde ortak bir platformu kullanan ve birbirleri ile konuşabilen uygulamalar.

 

Web servisleri daha önceden kullandığımız program modülleri gibi tek başlarına belirli bir işi yerine getirmek üzere yapılmış programlar. Bu servisleri kullananların programın detaylarını  bilmelerine gerek yok ancak servisler nasıl kullanacaklarına dair kontrat olarak adlandırılan belirli arayüzler içeriyorlar. Bu kontratlar sağlanan servisleri mesajlar şeklinde nasıl cağrılacağını ve geri dönen sonuçların tanımlarını içeriyor.  Örneğin Passport.com da kullanılan  authentication servisi nasıl mesajlar kabul ediyor (username ve password ve/veya o an sahip olduğumuz token) ve authentication nasıl anlaşılıyor bilgisi bu kontratların içinde bulunuyor.

 

Kontrat içerisinde servisin yapabildikleri, mesaj sıralaması, kullandığı protokoller bulundugu ölçüde Web servisi kullanıcıları farklı şekillerde kendi uygulamaları için bu servisleri kullanabiliyorlar. Kontrat değişse dahi  kullanım bilgileri içerisinde olduğu için eger geriye doğru uyumlu ise kullanıcı programları problemsiz çalışmaya devam ediyor.

 

 

Tabi ki bütün bunları yapabilmek için kullanılan teknoloji XML. Kontratları tanımlayan (SCL) Service Contract Language tamamen XML grameri üzerine oturtulmuş bir yapı. DISCO (Discovery)  tanımı web servisleri kontratlarını yayınlayabilmek ve kullanıcıların bunları bulabilmesi için geliştirilmiş bir protokol ve gene XML tabanlı. Neticede SOAP, SCL, Disco  gibi protokolller uygulama geliştiricilere web servisini kullanmak için yardımcı olmak üzere tasarlanmış protokoller. Yazılımcılar bu protokolleri ve syntax lerini bilmek zorunda değiller çünkü geliştirme araçları (VS.NET)  zaten bu yapıları tanıyor ve interface i yazılımcıya gösteriyor.

 

.NET Framework içerisinde servisler önemli bir yer tutuyor. Bunlar Sistem üzerinde çalışan Common Language Runtime (CLR) üzerinde temen classalrı kullanan ve Winforms ve Webforms ile direkt haberleşen bir yapıda bulunuyor.

 

Web Servisleri ise yanlızca Web isin tasarlanmış olduğu için Winforms un yanısıra ASP+ ın bir parçası gibi bağımsız çalışan ve iyi tanımlanmış programlar olark bulunuyor.

 

 

Servis altyapısı herhangi bir .NET dili için temel class ları ve programlama araçlarını sağlıyor, böylece farklı dillerde farklı class lar kullanmadığınız için her ortamda aynı hata ayıklama, kurulum, ve  analiz araçlarını kullandığınız için .NET ortamında öğrenme zamanı çok daha kısalıyor.

 

 

 

 

 

Frameworkün içinde bulunan class  libraryleri standart olarak tüm dillerde kullanılıyor. Böylece farklı dillerde farklı integer, string vs gibi yapılarla karşılaşıp bunları birbirine çevirmek zorunda kalmıyorsunuz.

 

 

Neticede .NET Framework Web servisleri için olması gereken şeyi, yani standart bir yapıyı getiriyor,  Web servisleri de ihtiyaçları olan diger standartları bunların üzerine kurarak gereken altyapıyı tamamlıyor.

 

 

ASP+ ile birlikte karşımıza çıkan Webform ları, uygulamalarda Visual basic ile elde ettiğimiz üretkenliği web üzerinde de kullanabilmemizi sağlıyor. Web formları ASP ve HTML  kullanarak kendi kontrolleri ile web uygulamalarını masa üstü uygulamaları gibi geliştirebilmemizi sağlıyor. Web Formaları üzerinde kullanılan kontroller standart HTML olarak yazılmış kontroller. Böylelikle veri bağlama, listeleme, görüntüleme ve veri girişi tasarımlarını daha hızlı yapabiliyoruz.

 

ASP+ aynı zamanda web servislerini programlayabilmemiz için de gelişmiş bir programlama modeli getiriyor. ASP ve VB (veya C# veya C++ veya COBOL …… ) kullanarak HTML, SOAL, SCL, XML vb protokolleri hhiç öğrenmeden web servislerini kullanabiliyoruz.

 

 

 

Bir web servisi yaratmak için ASP+ ta  bir asmx dosyası yaratmamız gerekiyor. Bu dosyadaki public class içine WebMethod attribute ile tanımlayacağımız Web Servisi metodunu  ekliyoruz. Bu metodlar ise ASMX dosyasına gelen HTTP istekleri ile harekete geçiyor. ASP+ ın güzel bir özelliği de Bu class ın metadatasını inceleyip SCL dosyasını kullanıcı tarafından istendiğinde otomatik olarak üretebilmesi.

 

Web servisi kullanıcıları ise SOAP, HTTP GET, HTTP POST gibi yöntemlarle isteklerini gönderiyorlar.

 

Bu arada kullanıcı için bir proxy yaratılıyor ve bu proxy web servisine giden istekler ve gelen cevapları kendi üzerine alarak uygulama ile konuşuyor. Böylelikle uygulama servisi ölçeklenebilir bir şekilde kullanabiliyor. Bu model aynı zamanda stateless bir yapı üzerine oturtulmuş, bu da ölçeklenebiliriliği arttırıyor.

 

Sonuçta bütün bu protokoller, standartlar ve programlama disiplinlerinin getirdiği basit ve esnek bir Web servisi geliştirme ortamı yaratıyor. Geliştirme ortamında protokolleri bilmeniz gerekmiyor, sadece normal bir ASP sayfası yazarmış gibi Servisinizi ve gine aynı şekilde bunu kullanan sayfayı yazıyorsunuz. Bu da Web servisi geliştirme konusunda büyük bir rahatlık sağlıyor.  Web servislerine gelince, şu anda görülen  tüm uygulamaların internet üzerine taşınacağı  ve birbirleri ile konuşmak zorunda olacağı, Web servisleri ise iki probleme de çözüm getirerek geleceğin uygulama standardı olmayı garantiliyor.