Web Hizmetlerinin Geliştirilmesine Yönelik Metodolojiler – Mobil Uygulamaların Geliştirilmesi, Web Hizmetleri, SOA Mimarisi - Teknoloji
İçeriğe atla

Web Hizmetlerinin Geliştirilmesi Metodolojileri – Mobil Uygulamaların, Web Hizmetlerinin, SOA Mimarisinin Geliştirilmesi

reklamlar

Coulouris dağıtık sistemleri “bir bilgisayar ağında bulunan donanım ve/veya yazılım bileşenlerinin mesaj alışverişi yoluyla iletişim kurduğu ve eylemlerini koordine ettiği sistemler” olarak tanımladı.

Bu kavram son yıllarda çeşitli faktörlerden dolayı popüler hale geldi. Dağıtık sistemlerin gelişimini destekleyen ilk faktör, yüksek hızlı yerel ağların ortaya çıkmasıydı. Bir diğer önemli faktör ise kişisel bilgisayarların performansındaki teknolojik ilerlemeler ve dağıtık uygulamaları destekleyecek yazılımların geliştirilmesiydi. Dağıtılmış sistemler Web ve İnternet kavramıyla bağlantılıdır. Web'in gelişmesi ve yeni alanların, etkileşimlerin, ihtiyaçların ve uygulamaların ortaya çıkmasıyla Web 2.0 kavramı ortaya çıkmıştır. Bu terim, Tim O'Reilly tarafından 2004 yılında Web tarihinde, kullanıcı topluluklarına ve sosyal ağlar, bloglar, wiki'ler veya folksonomiler gibi işbirliğini ve çevikliği teşvik eden özel bir hizmet yelpazesine dayanan ikinci nesle atıfta bulunmak için icat edildi. Kullanıcılar arasında bilgi alışverişi.

Hizmet odaklı (SOA) olarak kabul edilebilecek ilk mimariler, mimarinin farklı öğelerini birbirine bağlamak ve hizmetler oluşturmak için bir soyutlama katmanı görevi gören CORBA'ya (Ortak Nesne İstek Aracısı Mimarisi) dayanıyordu. Diğer ilk teknolojiler DCOM (Dağıtılmış Bileşen Nesne Modeli) veya RPC (Uzaktan Prosedür Protokolü) idi. Web üzerinde dağıtılmış sistemleri verimli bir şekilde tasarlama ve uygulama ihtiyacıyla birlikte, bazıları geliştirmenin kendisine (performans, kullanıcı deneyimi vb.) odaklanan ve diğerleri hizmetlerin yeniden kullanılabilirliğine ve uyumluluğuna dayalı olarak tamamlayıcı olan çeşitli zorluklar ortaya çıkar. Bu ihtiyaçlardan, farklı kullanıcıları bilgi sunucularıyla birbirine bağlamak için standartlaştırılmış mekanizmalar sağlayan Web Hizmetleri ortaya çıkar.

HİZMET ODAKLI MİMARİLER

SOA'ya (Hizmet Odaklı Mimari) göre bunlar, iş gereksinimlerini desteklemek için hizmetlerin kullanımını tanımlayan, amacı yazılım aracıları arasında mümkün olan minimum bağlantıyı elde etmek olan yazılım mimarileridir. Hizmet, hizmet tüketicisinin arzu ettiği nihai sonuca ulaşmak için hizmet sağlayıcı tarafından gerçekleştirilen iş birimidir. Hem hizmet sağlayıcı hem de hizmet tüketicisi, sahiplerinin değil, yazılım aracılarının oynadığı rollerdir. Genel anlamda hizmet odaklı mimari, bir şirketin çeşitli süreçleri organize etmesine ve kullanmasına olanak tanıyan bir yazılım çözümüdür. SOA ile yazılım uygulamaları artık devasa işlev ve süreç blokları olmaktan çıkıyor. Bunun yerine, bu uygulamalar birleştirilmiş modüler hizmetlerden oluşur. Bir hizmetin basit bir yazılım işlevi olduğunu unutmayın (CD'de oynatmanın iptal edilmesi gibi). İşletim sistemi, platform, programlama dili veya coğrafi konum ne olursa olsun, herhangi bir sistem tarafından isteğe bağlı olarak çalıştırılabilir.

SOA'da devrim yaratan şey, uzun süredir ortalıkta olan konseptin kendisi değil, WWW (World Wide Web) aracılığıyla uygulanabilmesidir. Web sayfalarının herhangi bir platforma yüklenmesi gibi, web hizmetleri de platformdan bağımsız olarak benzer şekilde çalışır.
evrensel standartlar.

FotoğrafSOA fikri, doğrudan veri ile onun işlenmesi arasında bir ilişki olduğunu öne süren nesne yönelimli programlamadan kaynaklanmaktadır. Böylece hizmetleri, temel platformdan ve programlama dilinden bağımsız arayüzler aracılığıyla resmi olarak tanımlarlar. Bu arayüzler, uygulamalarının özelliklerini gizler ve bu da onları uygulamadan bağımsız kılar. geliştirici ve programlama dili. Bu mimariler aracılığıyla, iş mantığını yansıtan ve aynı zamanda farklı özel veya üçüncü taraf sistemler arasındaki etkileşimi kolaylaştıran yüksek düzeyde ölçeklenebilir sistemler tasarlamak ve uygulamak mümkündür. Birisinin bizim için işi yapmasını istememizin nedeni, onların uzman olmasıdır. Bir hizmeti kullanmak genellikle bunu kendiniz yapmaktan daha ucuz ve daha etkilidir. Dolayısıyla çoğumuz her konuda uzman olamayacağımızı anlıyoruz. Aynı kural yazılım sistemleri oluşturmaya da uygulanabilir.

Arayüzler son derece önemlidir, eğer iyi tanımlanmamışsa veya çalışmıyorsa sistem çalışmaz. Daha fazla arayüzü entegre etmek pahalıdır ve aynı zamanda dağıtılmış uygulamalarda hata olasılığını da artırır. Uzak arayüzler çoğu dağıtılmış uygulamanın en yavaş kısmıdır. Bütün bunlarla birlikte her uygulama için yeni arayüzler oluşturmak yerine genel arayüzlerin tüm uygulamalar için yeniden kullanılması daha mantıklıdır.

Dolayısıyla, yalnızca birkaç genel arayüzümüz olduğundan, mesajlara uygulamaya özel anlambilim eklemeliyiz. Arayüzlerimiz aracılığıyla her türlü mesajı gönderebiliriz ancak bir mimarinin servis odaklı olduğunu söylemek için uyulması gereken bazı kurallar vardır.

– Sorunun çözümü servis sağlayıcının sorumluluğunda olduğundan öncelikle mesajlar öğretici değil açıklayıcı olmalıdır. Mesela bir restorana gidip garsona ne içmek istediğinizi ve tercihlerinizi söylemeniz durumuna benzer ama aşçıya yemeklerinizi nasıl hazırlayacağınızı adım adım anlatmamamız gerekiyor.

- İkinci olarak, servis sağlayıcılar eğer mesajları ilgili herkesin anlayabileceği bir formatta, yapıda ve kelime dağarcığında yazılmamışsa, talebinizi anlayamayacaktır. Bu nedenle, mesajların sözcük dağarcığının ve yapısının sınırlandırılması bir durumdur.
Etkili iletişim için gereklidir. Mesaj ne kadar sınırlı olursa anlaşılması da o kadar kolay olur.

- Üçüncüsü, uzatma ihtimali hayati önem taşıyor. Dünya sürekli değişen bir yer ve yazılımın yaşadığı ortam da öyle. Bu değişiklikler sistem yazılımında ve tüketicilerde ilgili değişiklikleri gerektirir. hizmetlerin, sağlayıcıların ve paylaştıkları mesajların listesi. Mesajlar genişletilebilir değilse tüketiciler ve sağlayıcılar hizmetin belirli bir sürümüne kilitlenecek. Kısıtlama ve genişletilebilirlik birbiriyle derinden ilişkilidir, ikisine de ihtiyacınız vardır ve birini artırmak diğerini azaltmak anlamına gelir. İdeal olan doğru dengeyi yakalamaktır.

– Dördüncüsü, bir SOA'nın, tüketicinin aradığı hizmet bağlamında bir hizmet sağlayıcıyı keşfetmesine olanak tanıyan bir mekanizmaya sahip olması gerekir. Mekanizma esnek olmalı ve merkezi bir kayıt defteri olmamalıdır.

- Beşinci, Durumsuz hizmet: Bir tüketicinin bir sağlayıcıya gönderdiği her mesaj, sağlayıcının onu işlemesi için gerekli tüm bilgileri içermelidir. Bu kısıtlama, hizmet sağlayıcıyı daha ölçeklenebilir hale getirir çünkü sağlayıcının istekler arasında durum bilgisini saklamasına gerek yoktur. Her isteğin genel olarak ele alınabilmesi nedeniyle buna “seri üretim hizmeti” denilebilir. Bu kısıtlama aynı zamanda herhangi bir izleme yazılımının bağımsız bir isteği inceleyip amacını çıkarabilmesi nedeniyle daha fazla görünürlük sağlar. Bu aynı zamanda ara durumlar olmadığından kısmi arızalardan kolayca kurtulmaya olanak tanır ve hizmeti daha güvenilir hale getirir.

- Altıncı, bağımsız istekler (değişiklik yapmayanlar): bir yazılım aracısı tarafından alınan yinelenen istekler, tek bir istekle aynı etkiye sahiptir. Bu gereklilik, sağlayıcıların ve tüketicilerin genel güvenilirliği artırmasına olanak tanır. hizmet, bir arıza meydana geldiğinde isteğin tekrarlanması yeterlidir.

Yani SOA'nın bir araç değil, yeni, daha dinamik ve daha az bağımlı uygulamalar oluşturmaya yönelik bir dizi standart olduğunu söyleyebiliriz. SOA, farklı hizmetler arasındaki iş mantığına ve bilgilere sistematik bir şekilde erişimi kolaylaştırır ve ayrıca birkaç uzak hizmeti tek bir hizmet oluşturacak şekilde düzenleyebilir. Çoğunluğu Tanımlar, bir sonraki bölümde göreceğimiz Web Servislerinin servis odaklı bir mimarinin uygulanmasında kullanımını tanımlar. Ancak herhangi bir hizmet tabanlı teknoloji kullanılarak da uygulanabilir.