XML Ve WEB Servisleri

XML ve WEB SERVİSLERİ
XML Nedir?
XML, hem insanlar hem bilgi işlem sistemleri tarafından kolayca okunabilecek dokümanlar oluşturmaya yarayan bir işaretleme dilidir. W3C tarafından tanımlanmış bir standarttır. Bu özelliği ile veri saklamanın yanında farklı sistemler arasında veri alışverişi yapmaya yarayan bir ara format görevi de görür. SGML ’in basitleştirilmiş bir alt kümesidir. Günümüzde birçok yazılım, diğer yazılımlarla veri alışverişini XML formatı üzerinden yapmaktadır. Ayrıca XML ’i esas format olarak kullanan uygulamalara rastlamak mümkündür. Rastgele veri erişimine uygun olmadığından veri tabanı amaçlı kullanılmaktadır. Microsoft’un geliştirdiği.NET teknolojisinde kullanılan Data Set nesneleri XML formatındadır. Ayrıca XML, ofis uygulamalarının alt yapısı haline getirilmiştir. İçeriğin, doküman yapısının ve şeklin ayrı ele alınması XML’ i içerik yönetim sistemlerinin ideal formatı haline getirilmiştir.

P2P Model
Peer To Peer ya da P2P olarak tanımlanır. Peer eş, denk demektir. İki veya daha fazla istemci arasında veri paylaşmak için kullanılan bir ağ protokolüdür. Eşler, sunucuları veya sabit bilgisayarlar tarafından merkezi koordinasyon ihtiyacı olmadan, işlemci gücü, disk depolama veya ağ bant genişliği gibi kendi kaynaklarının bir kısmını, doğrudan diğer ağ katılımcıları için kullanılabilir yapabilir. Sadece sunucuların tedarikçi ve istemcilerin tüketici olduğu geleneksel istemci-sunucu modelinin aksine, eşler, hem tedarikçi hem de tüketicidir. Peer To Peer yazılımlarıyla, kullanıcılar her türlü dijital içeriklerini uygulamaları kullananlarla paylaşabilirler. Bu işlem bu tanımıyla yasal olsa da, paylaşılan içerikler telif haklarıyla korunan ve parayla satılan içerikler olduğunda bu içeriklerin paylaşılması ve paylaşan kişilerden edinilmesi illegal hale gelir. Ancak yasadışı hale gelen yazılımlar ve teknoloji değil, bunun kötüye kullanımıdır.

SOAP Nedir?
SOAP (Basit Nesne Erişim Protokolü) dağıtık uygulamalarda ve web servislerinin haberleşmesinde kullanılmak üzere tasarlanan, RPC modelini kullanan, istemci/sunucu mantığına dayalı bir protokoldür. Daha genel olarak SOAP, web üzerinden fonksiyonları kullanmak için geliştirilmiş bir sistemin XML tabanlı kurallar topluluğudur. SOAP ile ilgili bütün mesajlar XML formatında iletilir ve temel olarak bir SOAP mesajı 3 şekilde oluşabilir:

·         Metot Çağırımı
·         Cevap Mesajı
·         Hata Mesajı

WSDL ve Kullanımı
İstemcinin Web servisleri ile anlaşabilmesi için istemcinin üstünde bir Proxy nesnesinin var olması gerekmektedir. Bu dosya yardımıyla istemci Web servisine ait bilgileri temin etmesi sağlanmaktadır. Bu Proxy dosyası ise.NET ortamında oluşturulup kullanılmaktadır. İstemci Web servisi ile bağlantı kurmak istediğinde sunucudan WSDL uzantılı bir doküman talep edilecektir. Daha sonra sunucudan indirilen dosya yardımıyla aradaki bağlantıyı sağlayacak Proxy nesnesi elde edilmiş olmaktadır.
WSDL (Web Service Description Language- Web Servisleri Tanımlama Dili) dosyaları ile Proxy sınıfı arasında bir bağ bulunmaktadır. WSDL dokümanları XML tabanlı olduklarından sunucudan indirilmeleri uzun sürmemektedir. İlk olarak istemciden istek geldiğinde indirilir daha sonraları sadece değişiklik yapıldığında indirilmektedir. WSDL dokümanı, geliştirilen servise ait tüm bilgileri içermektedir. Kullanılan metotlar, bu metotların aldığı değişkenler ve geriye ne tür değerler döndürdüğü gibi bilgileri sunar. Temel olarak bir WSDL dokümanı 4 ana kısımdan oluşmaktadır.

Types (Tipler): XML standartlarına uygun olarak tanımlanmış veri tipleridir.
Messages (Mesajlar): İşlemin veri elemanlarını tanımlanmaktadır.
portType (Port Tipi): Web servislerindeki işlevleri açıklanmakta ve mesajların oluşturulması sağlanmaktadır.
Binding (Bağlama): Her bir port için mesajın formatı ve protokolleri tanımlanmaktadır.  

 J2EE Nedir?
J2EE, Java’nın çok katmanlı kurumsal uygulama geliştirme standardıdır. J2EE, standart ve modüler bileşenlerden oluşan bir yapının karmaşık işlemler yapmadan, otomatik olarak geliştirilmesini sağlar.  Çok sayıda makine, sunucu, veri tabanı ve uygulamadan oluşan bir ortamın uyumlu çalışması için bir alt yapı oluşturur. Sadece bir kaç kişilik bir ekibiyle geliştirilen basit uygulamalar, sadece bir veri tabanı, bir sunucu ve az sayıda kullanıcıdan oluşan ağlar için yapılan sistemler için J2EE çok anlamlı gelmeyebilir. Ancak çok sayıda veri tabanı, çok sayıda makine, çok sayıda sunucu birbirinden farklı yeteneklere ve gereksinmelere sahip çok sayıda kullanıcıdan oluşan büyük sistemler için uygulama geliştirmek oldukça karmaşık bir hal almaktadır. Hatta sistemden beklenen işlevler ve kullanıcı sayısı büyüdükçe basit mimariler bile tek makinenin tek sunucunun ve tek veri tabanının kaldıramayacağı hale gelir. Bu durumlarda zorluk asıl işlevlerin gerçekleştirilmesinden daha çok bir işlevleri gerçekleştirilmesin de kullanılan bileşenlerin entegrasyonun da çıkmaktadır. Bu tip ortamlarda 'dağıtık' uygulama geliştirme kavramı devreye girmektedir. Dağıtık sistemler, bütün sistemin ayrı makinelere, hatta ayrı networklere dağıtıldığı, birbirileriyle iletişim kuran bileşenlerden oluşan sistemlerdir. J2EE, bu tip ortamlarda yapılacak işlemleri kolaylaştırmakta, hatta bazı işlemleri otomatik olarak yapmaktadır.

Web Servislerin Birlikte Çalışabilirliği
Web servisleri, birlikte çalışabilirlik esasları çerçevesinde bilgisayarlar arasında bir ağ üzerinde iletişimi ve uyumluluğu sağlamak için tasarlanmış yazılım bileşenleri olarak tanımlanabilir. Uygulama bütünleştirmesi olarak tanımlanabilir. Uygulama bütünleştirmesi ve birlikte çalışabilirlik konusunda ortaya çıkabilecek problemlerin çözümüne dayalı bir yöntem olarak web servisleri, ortak olarak kullanılan ağ protokolleri sayesinde servis keşfi, yayınlama ve erişim yeteneklerini sunmaktadır. Günümüzde birbiriyle haberleşecek sistemleri gerçekleştirmek için web servisleri, diğer teknolojilere göre birçok avantaj sağlamaktadır. Genişletilmiş İşaretleme Dili kullanımı sayesinde platformlar arası etkin olarak mesajlaşma tabanlı bilgi paylaşımını içermektedir. En önemli avantajlarından biri de standartların kullanımıdır. Web servisleri, açık internet standartlarına dayanır. Web servis standartlarını; Web Servisi Tanımlama Dili, Basit Nesne Erişim Protokolü ve Evrensel Keşfetme, Tanımlama ve Bütünleştirme olarak sıralayabiliriz. Bu noktada web servis standartları hakkında kısaca bilgi vermekte yarar vardır. Web servislerini tanımlamak için XML tabanlı WSDL kullanılmaktadır. SOAP, XML tabanlı dağıtık ortamlarda bilgi alışverişini diğer bir ifade ile bir web servisine erişimi sağlayan bir protokoldür. UDDI ise, web servislerinin yayınlanması, keşfedilmesi ve birlikte çalışabilirliği için standart metod sağlamaktadır. Böylelikle istenilen servise verimli ve hızlı bir şekilde ulaşılabilmesi için servise yönelik mimari esaslarına bağlı olarak keşfetme işlemi üzerine odaklanılmıştır.

Web Servis Güvenliği
Günümüz uygulamalarında gittikçe artan bir ihtiyaçta uygulamaların entegre olması ve verilerin paylaşılmasıdır. Uygulama veya veri tabanı seviyesinde birçok güvenlik standardı bulunurken bu yeni gelişen entegrasyon katmanında standartlar ve yaklaşımlar yeni yeni oluşmaya başlamıştır. Makalede bu konu üzerine yoğunlaşacaktır.
 Web servisleri konusunda dünya genelinde kabul görmüş organizasyonlar listelenecek olursa;
1.OASIS (The Organization for the Advancement of Structured Information Standards)
2.W3C (The World Wide Web Consortium)
3.WS-I (The Web Services Interopability Organization)
4.IETF (The Internet Engineering Task Force)

Neden Web Servislerinde Güvenliğe Dikkat Edilmeli?
1. Web servisleri, uygulamaların API 'lerine ve hedef uygulamalara erişim sağladığından birçok güvenlik açıklıkları bulunmaktadır.
2. Web servislerinin dağıtık ve uçtan-uca yapısı, tehdit ve güvenlik açıklıklarının bir uygulamadan başka uygulamalara atlamalarına neden olabilmektedir.
3. İnternet ortamında çok daha fazla kullanıcı, çok daha fazla bilgi, belge, hacker vs. dolaşmaktadır.


Yorumlar

Bu blogdaki popüler yayınlar

VLSI Devre Tasarımı

Yapay Sinir Ağlarına Giriş

İnsan Bilgisayar Etkileşimi