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.
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.
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
Yorum Gönder