“Servis Odaklı Mimari” terimi anlamsız bir jargon mu oldu? [kapalı]


25

Bugün "Servis Odaklı Mimari" konusunda deneyimim olup olmadığını ve benim düşündüğüm halde sorulmuştu. Bana göre bu kavram çok karışık görünüyor, bu soruyu dürüstçe nasıl cevaplayabileceğinizi bilmiyorum.

Kavramın net bir tanımını ve diğer mimarilerden nasıl farklılaştığını anlamak için Googling'e başvurdum. Üzerindeki birkaç makaleyi okuduktan sonra, bulabildiğim en yaygın iş parçacığı, belki de XML / SOAP için hafif bir tercihi olan, bir tür arabirim üzerinde birbirleriyle konuşan çok bileşenli bir sistemdir.

Hemen hemen her uygulama SOA, özellikle bir web uygulaması olarak tanımlanabilir gibi görünüyor. Bu terim "Web 2.0" tuzağına düştü ve ne demek istiyorsan onu ifade eden bir terim oldu mu?

Burada tabandan mı çıktım? Siz terimi duyduğunuzda, size özel bir şey ifade ediyor mu? Öyleyse, neyin ve neyin özel olarak SOA olmadığını açıkça gösteren kısa bir tanımı seviyorum.


39
Her zaman anlamsız bir jargondu.
Fosco,

6
Hollanda'da, SOA STD demektir.
Joeri Sebrechts,

1
SOA "kullanıcı öder" bir kavram mıdır? Yani, geleneksel olarak, işletmeler BT'yi en aza indirilmesi gereken bir maliyet olarak görürler. Bu, gizli bir tehlike yaratır, çünkü işletmeler, kurum genelinde üretkenlik etkileninceye kadar BT'nin ne kadar geri alınabileceğini bilmiyor. SOA, BT departmanının her departman tarafından (Finans, Satış ve İnsan Kaynakları gibi) BT kaynağının ne kadar tüketildiğini tam olarak hesaplayabilmesi ve uygun şekilde ücretlendirebilmesi için BT'yi yapmanın bir yoluydu. Çok verimsiz olabilir, ancak gerekli bir kötülüktür. Kullanıcının ücretlendirilmemesi, Lose-Lose sonucuna yol açar.
rwong

1
SOA'yı (P) çok fazla kullanmamıştım, ancak Servis Odaklı Mimari'nin (SOA) Basit Nesne Erişim Protokolü'nün (SOAP) "Basit" olmaktan vazgeçtiği bir backronym olduğunu duydum.
Andrew Grimm

2
Hey, insanlar bunun için çok para ödüyorlar. Durumu, anlamları ve özellikleriyle karıştırmayın. Yönetim, ne hakkında konuştuklarını bildikleri gibi görünmeli ve konuşmaların üstünlüğünü korumalıdır. Onlardan bu şekilde alma. Başka ne kalacaktı?
JeffO

Yanıtlar:


12

SOA'nın asıl anlamının, programatik olarak tüketilebilecek iyi tanımlanmış arayüzleri olan servislere dayandığını düşünüyorum . Odak UI terminalleri, iletişim veya veritabanları yerine servis arayüzleri üzerinde idi. Önemli olan diğer hizmetleri tüketen hizmetlerdi. Servis A Servis B'yi arayabilir, sonucu alabilir ve Servis C veya D'yi arayabilir. Bir dizi uzmanlık hizmetine sahip olabilir ve bunları müşteri problemini çözecek şekilde birleştirerek bir çözüm üretebilirsiniz.

SOA genellikle SaaS (hizmet olarak yazılım) ile karıştırılır; bu, kullanıcının yazılım ürününün bir kopyasını almak için bir lisans satın almak yerine, abone olduğu hizmetin kullanımında ödediği fiyatlandırma modelini ifade eder. Sorunuzdaki üçüncü paragrafa cevap vermek için, bir Web uygulaması muhtemelen SOA değil, SaaS olabilir.

Terim kesinlikle bazı anlamlarını yitirdi. Çalıştığım organizasyonda, SOA terimi genellikle SaaS ile birbirinin yerine kullanılır ve sunucuları ve yönlendiricileri yapılandıran ve üzerinde çalışacak yazılım ürünleri yükleyen bir BT uzmanları ekibine ( yazılım ürün geliştirme yerine bilgi teknolojisi) atıfta bulunur. Bazılarının "SOA Architect" gibi başlıkları vardır, ancak hiçbirinin yazılımı tasarlama, tasarlama, uygulama veya test etme ile ilgisi yoktur.


1
Sanırım kafanın üzerindeki tırnağa çarptın.
reinierpost

1
+1. SOA kitabının 800 sayfalık kabartmada neler yaptığını birkaç paragrafta özetlediniz.
prasopes

4

SOA'nın gerçekte ne olduğunu görmek için aynı şeyi googling yaptım ve evet biraz kötüye kullanıldı. SOA'yı düşündüğümde aşağıdakileri düşünüyorum:

  1. Keşfedilebilir başsız bir program ...
  2. Bu, durumsuz bağlantıdan (ala HTTP) yararlanıyor ...
  3. Platformdan bağımsız formatlarda iletişim kurma

SOA, İstemci-Sunucu mimarisi (dürüst bir hizmet mimarisi) ve programlara bir linker aracılığıyla bağlı modüller olan kütüphanelerle karşılaştırılabilir.

Bu yüzden insanlar bunun hakkında konuştuğunda genellikle bir tane tuzla alırım. Ben de sadece "web servisleri" demeye meyilliyim. Web servisleri ile mimarlık ima edilir.


2
Sunucu-Sunucu mimarisi olabilir mi?
JeffO,

3

SOA'nın katı tanımları, çoğu durumda teorik olarak maliyet / fayda hattından çok uzaktır.

Ürününüz hizmetlerin kendisi değilse, genellikle farklı bir bakış açısına ihtiyaç duyarsınız.

Kullanılabilir bir SOA tanımı, genel mimarinizin servis dostu olduğu anlamına gelir. Tamamen atomik servislerden inşa edilmiş bir sistem genellikle doğru plan değildir ve bazı servisler işlevsel olarak organize olurken, diğerleri tek bir sorumluluk alır. Kara kutularım olabilir, çevrimdışı işlemlerim olabilir, ancak anlamlı bir çalışma yapabileceğim keşfedilebilir bir hizmet koleksiyonu varsa, asgari tanımım budur.

Gerçekte ne anlama geldiği konusundaki tartışmanın yanı sıra, kavram (ne anlama gelirse), basitçe uymayan yerlere uygulanarak birçok çevrede acı çekti.

Örneğin, bir kara kutu işlemi olması amaçlanan ve paralellik yoluyla segmentasyon ve dağıtım yoluyla ölçeklenmeyen bir şey inşa ediyorsam, kara kutuya maruz bırakma / konuşma hizmetine sahip olabilirim, ancak bazı insanlar hizmetleri servisin içine koymak için çalışmaya devam ediyor Kutu.

Kesin bir teknik tanım olarak her zaman tanımlanmamıştır, ancak fikir uygun olduğu yere değmez.


3

Yönetimin SOA'da satıldığı birkaç şirket sistemi üzerinde çalışmak için büyük şansım oldu. Bir geliştirici olarak sistemlere bakıyorum ve bir web servisinin arkasında bir şeyler yapan bir yazılım görüyorum. Bunların hiçbiri, hizmetleri arayan müşterileri için önemli olmayan veya bunlarla ilgili olmayacak ve gerçekte belgelerinin herhangi bir yerinde "SOA" kısaltmasına sahip olmayan çeşitli dillerde ve mimarilerde yazılmış olabilir.

Ancak yönetim "SOA" istiyor !!! Bu nedenle, önceki "JEE" etiketlerinin üstüne uygulanan "SOA" etiketlerinin bulunduğu belirli bir büyük şirketten gerçekten pahalı sunucular satın aldı. .... kaptın bu işi. Sonuç olarak, biz geliştiriciler olarak, ekranın etrafındaki itty-bittty ikonlarını sürükleyip bırakarak oturup, yarısı çalışan EBO3 fasulyeleri, yay bileşenleri vb. .

Öyleyse tavsiyem, SOA hakkında soru sormanız durumunda, "Evet SOA yaptım, Hizmet Odaklı bir Mimariyi, işleri yapmak için kullanan birçok sistem yazdım. Hangi SOA teknolojisini soruyorsunuz?" Deyin. Ve eğer parlayan gözlerle konuşmaya başlarlarsa ve bir SOA BİLEŞENLERİ, DRAG VE DAMLA hakkında hüzünlü bir bakış açısı ve gelişimini nasıl kolaylaştırdığı hakkında. Yavaşça geri çekilin ve göz teması kurmayın!


2

Sanırım biraz mantıklı gelebilir: Birincisi ihtiyaç duyulduğunda çağrılan "köle" modülleri varken, diğeri ise bağımsız olarak çalışan ve isteklerinize cevap veren, muhtemelen birbirleriyle konuşurken, birbirleriyle konuşarak hizmet / servis süreçleri olduğunda başka bir deyişle kendi hayatı. Bu yaklaşımla büyük, ölçeklenebilir, fiziksel olarak dağıtılmış bir sisteme sahip olabilirsiniz. Örneğin, mobil telefon alanında bazılarını gördüm. Ama bu sadece bir tahmin.

(Şimdi Wikipedia'nın SOA hakkında söylediklerini görelim ... Whoa.)


Yani özetlemek için. Mimarisi SOA, birden fazla işlem varsa, her bir işlem ayrı bir iş yürütüyorsa ve birbirleriyle bir şekilde konuşuyorlarsa?
JohnFx

@JohnFx: Evet. Bu şekilde, yüksek oranda ölçeklenebilir ve yüksek oranda kullanılabilir / yedek sistemler oluşturmak daha kolaydır.
mojuba
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.