คำว่า "Service Oriented Architecture" กลายเป็นศัพท์แสงที่ไร้ความหมายหรือไม่? [ปิด]


25

ฉันถูกถามในวันนี้ว่าฉันมีประสบการณ์กับ "Service Oriented Architecture" หรือไม่และฉันคิดว่าฉันทำ แนวคิดสำหรับฉันดูเหมือนสับสนมากฉันไม่รู้ว่าคุณจะตอบคำถามนั้นได้อย่างไร

ฉันใช้คำว่า Googling ในความพยายามที่จะให้คำจำกัดความสั้น ๆ ของแนวคิดและความแตกต่างจากสถาปัตยกรรมอื่น ๆ หลังจากอ่านบทความจำนวนหนึ่งแล้วเธรดทั่วไปที่ฉันดูเหมือนจะสามารถค้นหาได้คือระบบที่มีองค์ประกอบหลายอย่างที่พูดคุยกันผ่านอินเทอร์เฟซบางชนิดซึ่งอาจมีความต้องการเล็กน้อยสำหรับ XML / SOAP

ดูเหมือนว่าเกือบทุกแอปพลิเคชันสามารถกำหนดเป็น SOA ได้โดยเฉพาะแอปพลิเคชันบนเว็บ เทอมนี้ตกหลุมพราง "Web 2.0" และกลายเป็นคำที่มีความหมายไม่ว่าคุณต้องการให้มันหมายถึงอะไร?

ฉันจะออกจากฐานที่นี่หรือไม่ เมื่อพวกคุณได้ยินคำนี้มันมีความหมายอะไรกับคุณไหม? ถ้าเป็นเช่นนั้นฉันจะชอบคำจำกัดความสั้น ๆ ที่แสดงให้เห็นอย่างชัดเจนว่าอะไรคืออะไรและไม่ใช่ SOA โดยเฉพาะ


39
มันเป็นศัพท์แสงที่ไร้ความหมายเสมอ
Fosco

6
ในภาษาดัตช์ SOA หมายถึง STD
Joeri Sebrechts

1
SOA เป็นแนวคิด "ผู้ใช้จ่าย" หรือไม่ นั่นคือตามธรรมเนียมธุรกิจถือว่า IT เป็นค่าใช้จ่ายที่ควรจะลดลง สิ่งนี้สร้างอันตรายซ่อนเร้นเพราะธุรกิจไม่ทราบว่าไอทีจะถูกลดทอนลงจนกว่าจะมีผลกระทบต่อการผลิตทั่วทั้งองค์กร SOA เป็นวิธีการทำไอทีที่แผนกไอทีสามารถคำนวณได้อย่างชัดเจนว่าแต่ละแผนกใช้ทรัพยากรไอทีเท่าไร (เช่นการเงินการขายและทรัพยากรมนุษย์) และคิดค่าบริการอย่างเหมาะสม มันอาจจะไม่มีประสิทธิภาพสูง แต่มันเป็นความชั่วร้ายที่จำเป็น การไร้ความสามารถในการชาร์จผู้ใช้นำไปสู่ผลลัพธ์ที่สูญเสีย
rwong

1
ฉันไม่ได้ใช้ SOA (P) มากนัก แต่ฉันได้ยินว่า Service Oriented Architecture (SOA) เป็นตัวย่อของ Simple Object Access Protocol (SOAP) เมื่อหยุดการทำงานแบบ "Simple"
Andrew Grimm

2
เฮ้ผู้คนจ่ายเงินเป็นจำนวนมากสำหรับสิ่งนี้ อย่าสับสนกับสถานการณ์ที่มีความหมายและเฉพาะเจาะจง ฝ่ายบริหารต้องฟังดูเหมือนพวกเขารู้ว่าพวกเขากำลังพูดถึงอะไรและอยู่ในความล้ำสมัยของ buzzwords อย่าใช้วิธีการนั้นจากพวกเขา จะมีอะไรเหลืออีก?
JeffO

คำตอบ:


12

ฉันเชื่อว่าความหมายดั้งเดิมของ SOA นั้นขึ้นอยู่กับบริการที่มีอินเตอร์เฟสที่กำหนดไว้อย่างดีซึ่งสามารถใช้งานทางโปรแกรมได้ โฟกัสอยู่บนอินเตอร์เฟสเซอร์วิสแทนเทอร์มินัล UI การสื่อสารหรือฐานข้อมูล ส่วนสำคัญคือบริการที่ใช้บริการอื่น ๆ บริการ A สามารถโทร Service B รับผลลัพธ์และโทร Service C หรือ D คุณสามารถมีชุดของบริการพิเศษและสถาปนิกทางออกจากการรวมพวกเขาในวิธีที่แก้ปัญหาลูกค้า

SOA มักสับสนกับ SaaS (ซอฟต์แวร์เป็นบริการ) ซึ่งหมายถึงรูปแบบการกำหนดราคาที่ผู้ใช้จ่ายสำหรับการใช้บริการที่สมัครเป็นสมาชิกแทนที่จะซื้อใบอนุญาตเป็นสำเนาของผลิตภัณฑ์ซอฟต์แวร์ ในการตอบวรรคสามในคำถามของคุณเว็บแอปพลิเคชั่นอาจไม่ใช่ SOA แต่สามารถเป็น SaaS ได้

คำนี้สูญเสียความหมายบางอย่างไปอย่างแน่นอน ในองค์กรที่ฉันทำงานคำว่า SOA มักใช้แทนกันกับ SaaS และอ้างอิงถึงทีมผู้เชี่ยวชาญด้านไอที ( เทคโนโลยีสารสนเทศซึ่งต่างจากการพัฒนาผลิตภัณฑ์ซอฟต์แวร์ ) ที่กำหนดค่าเซิร์ฟเวอร์และเราเตอร์และติดตั้งผลิตภัณฑ์ซอฟต์แวร์เพื่อทำงานกับพวกเขา บางคนมีชื่อเรื่อง "SOA Architect" แต่ไม่มีพวกเขาเกี่ยวข้องกับการออกแบบการออกแบบการใช้งานหรือการทดสอบซอฟต์แวร์


1
ฉันคิดว่าคุณโดนเล็บที่หัวนี่
reinierpost

1
+1 คุณสรุปในไม่กี่ย่อหน้าว่าหนังสือ SOA ทั่วไปทำอะไรในหน้า 800 ของปุย
ช่วง

4

ฉันทำสิ่งเดียวกันกับ googling SOA เพื่อดูว่าจริง ๆ แล้วคืออะไรและใช่ว่ามันถูกทารุณกรรมเพียงเล็กน้อย เมื่อฉันคิดถึง SOA ฉันคิดถึงสิ่งต่อไปนี้:

  1. โปรแกรมหัวขาดที่ค้นพบได้ ...
  2. ที่ใช้ประโยชน์จากการเชื่อมต่อไร้สัญชาติ (ala HTTP) ...
  3. การสื่อสารในรูปแบบที่เป็นอิสระจากแพลตฟอร์ม

SOA สามารถถูกเปรียบเทียบกับสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ (สถาปัตยกรรมบริการ stateful) และไลบรารีซึ่งเป็นโมดูลที่เชื่อมต่อกับโปรแกรมผ่านตัวเชื่อมโยง

ดังนั้นเมื่อมีคนพูดถึงมันฉันมักจะเอาเกลือเม็ดหนึ่งไปด้วย ฉันมักจะเรียกมันว่า "บริการเว็บ" ด้วยบริการบนเว็บสถาปัตยกรรมจึงมีความหมายว่า


2
มันอาจเป็นสถาปัตยกรรมเซิร์ฟเวอร์เซิร์ฟเวอร์หรือไม่
JeffO

3

คำจำกัดความที่เข้มงวดของ SOA นั้นผ่านพ้นเส้นค่าใช้จ่าย / ผลประโยชน์ตามทฤษฎีในหลายกรณี

นอกจากผลิตภัณฑ์ของคุณคือบริการที่คุณมักจะต้องการมุมมองที่แตกต่างกัน

นิยามที่ใช้งานได้ของ SOA หมายความว่าสถาปัตยกรรมโดยรวมของคุณเป็นมิตรกับบริการ ระบบที่สร้างขึ้นอย่างสมบูรณ์จากบริการปรมาณูไม่ใช่แผนที่ถูกต้องและบริการบางอย่างจะถูกจัดระเบียบตามหน้าที่ในขณะที่คนอื่นจะต้องรับผิดชอบเพียงคนเดียว ฉันอาจมีกล่องดำฉันอาจมีกระบวนการออฟไลน์ แต่ถ้ามีบริการที่ค้นพบซึ่งฉันสามารถทำงานที่มีความหมายได้นั่นคือคำจำกัดความขั้นต่ำของฉัน

นอกเหนือจากการถกเถียงกันว่ามันหมายถึงอะไรจริงแล้วแนวคิด (อะไรก็ตามที่มีความหมาย) นั้นได้รับความเดือดร้อนในหลาย ๆ วงโดยการนำไปใช้กับสถานที่ที่มันไม่เหมาะสม

ตัวอย่างเช่นถ้าฉันกำลังสร้างบางสิ่งบางอย่างที่มีความหมายว่าเป็นกระบวนการกล่องดำและปรับขนาดแบบขนานไม่แบ่งส่วนและการกระจายฉันอาจมีบริการที่จะเปิดเผย / พูดคุยกับกล่องดำ แต่บางคนพยายามให้บริการภายใน กล่อง.

ในฐานะที่เป็นคำจำกัดความทางเทคนิคที่เข้มงวดมันไม่ได้ถูกนิยามไว้เสมอ แต่ความคิดนั้นไม่ได้เกิดขึ้นโดยที่ไม่สมควร


3

ฉันมีโชคลาภที่จะทำงานกับสองระบบขององค์กรที่มีการจัดการการขายใน SOA ในฐานะนักพัฒนาฉันมองไปที่ระบบและฉันเห็นซอฟต์แวร์มากมายที่อยู่เบื้องหลังบริการบนเว็บที่ทำสิ่งต่างๆ มันอาจถูกเขียนด้วยภาษาและสถาปัตยกรรมที่หลากหลายซึ่งไม่ใช่สิ่งที่จะสำคัญหรือเกี่ยวข้องกับลูกค้าที่เรียกใช้บริการและไม่ใช่ของจริงที่มีตัวย่อ "SOA" ที่ใดก็ได้ในเอกสารของพวกเขา

แต่ฝ่ายบริหารต้องการ "SOA" !!! ดังนั้นพวกเขาจึงซื้อเซิร์ฟเวอร์ที่มีราคาแพงมากจาก บริษัท ขนาดใหญ่ที่มีสติกเกอร์ "SOA" ติดอยู่ด้านบนของสติ๊กเกอร์ "Web Service" ก่อนหน้าซึ่งถูกนำไปใช้บนสุดของสติ๊กเกอร์ "JEE" ก่อนหน้าซึ่งมีการใช้งานด้านบนของ .... คุณเข้าใจแล้ว และด้วยเหตุนี้เราในฐานะนักพัฒนาซอฟต์แวร์ได้ลากและวางไอคอน itty-bitty รอบ ๆ หน้าจอเพื่อสร้าง "SOA" "ส่วนประกอบ" ซึ่งใช้งานได้ครึ่งหนึ่งและถ้าเราทำมันด้วยสิ่งที่ง่ายเช่นถั่ว EBJ3 ส่วนประกอบสปริง ฯลฯ .

ดังนั้นคำแนะนำของฉันคือถ้าคุณถูกถามเกี่ยวกับ SOA ให้พูดว่า "ใช่ฉันได้ทำ SOA แล้วฉันได้เขียนระบบมากมายที่ใช้ประโยชน์จาก Service Orientated Architecture เพื่อทำสิ่งต่างๆ และหากพวกเขาเริ่มพูดคุยด้วยดวงตาที่เปล่งประกายและมีไหวพริบเกี่ยวกับองค์ประกอบ SOA, DRAG และ DROP และวิธีที่ทำให้การพัฒนาง่ายขึ้น ถอยกลับอย่างช้าๆและหลีกเลี่ยงการสบตา!


2

ฉันคิดว่ามันอาจจะสมเหตุสมผลสักหน่อย: สิ่งหนึ่งคือเมื่อคุณมีโมดูล "ทาส" ที่เรียกว่าเมื่อจำเป็นและอีกอย่างคือเมื่อคุณมีกระบวนการบริการ / ภูตทำงานอย่างอิสระและตอบสนองต่อคำขอของคุณ ชีวิตของตัวเองในคำอื่น ๆ ด้วยวิธีนี้คุณสามารถมีระบบที่ใหญ่และปรับขนาดได้ ฉันเคยเห็นบางอย่างในพื้นที่ของโทรศัพท์มือถือเช่น แต่นี่เป็นเพียงการคาดเดา

(ตอนนี้เรามาดูสิ่งที่ Wikipedia พูดเกี่ยวกับSOA ... โอ้โห)


ดังนั้นเพื่อสรุปมัน สถาปัตยกรรมคือ SOA หากมีมากกว่าหนึ่งกระบวนการที่กำลังทำงานอยู่โดยที่แต่ละกระบวนการทำงานที่แตกต่างกันและพวกเขาคุยกันด้วยวิธีใด?
JohnFx

@JohnFx: ใช่ วิธีนี้ง่ายต่อการสร้างระบบที่ปรับขนาดได้และมีความพร้อมใช้งานสูง / มีความซ้ำซ้อน
mojuba
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.