SOA "ในภาษาอังกฤษล้วน" คืออะไร? [ปิด]


112

ใครช่วยอธิบายเป็นภาษาอังกฤษธรรมดาว่า SOA คืออะไร? ฉันได้ยิน SOA ที่นี่ SOA ที่นั่น แต่ฉันไม่เข้าใจว่ามันคืออะไรและใช้เพื่ออะไร มันเป็นแนวคิดง่ายๆและพัฒนาต่อมาเป็นสิ่งที่ยิ่งใหญ่หรืออะไร?

เอกสารทั้งหมดรวมถึงวิกิเป็นนามธรรมเล็กน้อยหรือบางทีฉันก็งี่เง่าและไม่เข้าใจ มีคำแนะนำสำหรับคนงี่เง่าเกี่ยวกับเรื่องนี้หรือไม่?

มีอะไรอยู่เบื้องหลังตัวอักษรทั้งสามนี้?


7
ฉันคิดว่าคงจะดีเช่นกันถ้าผู้คนหยุดอธิบาย SOA ในเชิงนามธรรมในรูปแบบเฉพาะผู้ที่เข้าใจแล้วเท่านั้นที่สามารถเข้าใจและแสดงตัวอย่างการเขียนโค้ด "Hello, world" ได้ รหัสสาธิตพูดดังขึ้นและพูดไม่ชัด
ฟิล

@ ฟิล - ตรวจสอบคำตอบของฉัน ฉันพยายามใช้การเปรียบเทียบ
Niklas

มีคำแนะนำสำหรับคนงี่เง่าอยู่: amazon.com/Service-Oriented-Architecture-Dummies-Edition/dp/…
nullability

3
Amazon เป็นตัวอย่างที่สมบูรณ์แบบจริงๆ ในบางจุด Bezos ยืนยันว่าทุกส่วนของฐานรหัสของ Amazon ต้องเป็น API และตอบสนองต่อคำขอของเว็บ บทความที่นี่: apievangelist.com/2012/01/12/… . คุณจะเห็นสิ่งนี้เมื่อคุณเข้าสู่ระบบ - Amazon ใช้ OpenID สำหรับระบบล็อกอินของตัวเอง! เว็บไซต์ส่วนใหญ่ใช้ระบบในตัวสำหรับการเข้าสู่ระบบ ข้อดีอย่างหนึ่งคือฉันคิดว่าพวกเขาสามารถใช้การเข้าสู่ระบบเดียวกันสำหรับไซต์และบริการทั้งหมดของตนได้
Jordan Reiter

คำตอบ:


49

คุณอาจพบว่าบทความนี้ (SOA คืออะไร - SOA และ Web Services อธิบาย) มีประโยชน์

ทีเซอร์เล็กน้อย:

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

  • SOA มี 2 บทบาทคือผู้ให้บริการและผู้บริโภคบริการ ตัวแทนซอฟต์แวร์อาจมีบทบาททั้งสองอย่าง SOA ไม่ใช่แนวคิดใหม่ทั้งหมด - อย่างไรก็ตามบทความนี้เน้นที่ SOA เป็นหลักเมื่อใช้กับบริการเว็บ


6
อืมมม ... CORBA, IDL, ไคลเอนต์เซิร์ฟเวอร์ ... ฟังดูน่าเจ็บใจในยุค 80! ;-D
CesarGon

64

SOA เป็นตราสัญลักษณ์ใหม่สำหรับแนวคิดเก่า ๆ :

  • แบ่งรหัสของคุณเป็นโมดูลที่ใช้ซ้ำได้

  • ห่อหุ้มโมดูลในการตัดสินใจออกแบบใด ๆ ที่มีแนวโน้มที่จะเปลี่ยนแปลง

  • ออกแบบโมดูลของคุณในลักษณะที่สามารถใช้ร่วมกันในรูปแบบต่างๆที่เป็นประโยชน์ (บางครั้งเรียกว่า "ตระกูล" หรือ "สายผลิตภัณฑ์")

ทั้งหมดนี้เป็นหลักการพัฒนาซอฟต์แวร์ที่เป็นพื้นฐานโดยส่วนใหญ่เป็นคำอธิบายโดย David Parnas เป็นครั้งแรก

มีอะไรใหม่ใน SOA คือ

  • คุณกำลังทำบนเครือข่าย

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


43

ฉันเห็นคำตอบมากมายที่อธิบายถึงสถาปัตยกรรมเชิงบริการ (SOA) โดยใช้คำศัพท์และศัพท์เทคนิคขั้นสูง ฉันอยากจะอธิบายให้คนธรรมดาเข้าใจโดยใช้การเปรียบเทียบในภาษาอังกฤษธรรมดา

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

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


ใส่คำอธิบายภาพที่นี่


การเปรียบเทียบ
ลองนึกภาพบ้านในชนบทที่ในหลาย ๆ ด้านเป็นส่วนหนึ่งของชุมชนขนาดใหญ่เช่นในเมืองหรือในเมือง เมืองนี้มีระบบที่ซับซ้อนในการจัดหาน้ำและไฟฟ้าการจัดการสุขาภิบาลการขนส่งและสาธารณูปโภคอื่น ๆ บ้านเป็นของผู้บริโภคในรูปแบบนี้ที่เมือง (หรือชุมชน) เป็นผู้ให้บริการและท่อระบายน้ำสายไฟ, เส้นใยแสง ฯลฯ เป็นโครงสร้างพื้นฐานในการที่พวกเขาสื่อสาร

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

ฉันหวังว่าสิ่งนี้จะทำให้ใครบางคนได้เห็นภาพ SOA ที่ดีขึ้น


27

สมมติว่าคุณมีพ่อครัวสี่คน ใน SOA คุณคิดว่าพวกเขาเกลียดกันดังนั้นคุณจึงพยายามที่จะให้พวกเขาพูดคุยกันให้น้อยที่สุด

คุณจะทำอย่างไร? ก่อนอื่นคุณต้องกำหนดบทบาทและส่วนต่อประสาน - ปรุง 1 จะทำสลัดปรุง 2 จะทำซุปปรุง 3 จะทำสเต็ก ฯลฯ จากนั้นคุณจะวางจานที่จัดไว้อย่างดีบนโต๊ะ (ดังนั้นสิ่งเหล่านี้คือ อินเทอร์เฟซ) และพูดว่า "ทุกคนโปรดใส่ผลงานของคุณลงในจานที่คุณกำหนดอย่าสนใจใครอื่น"

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

นอกจากนี้ยังหมายความว่าคุณสามารถรวมอาหาร (บริการ) ใหม่ได้ตามต้องการ ตัวอย่างเช่นคุณอาจใช้ของหวานเพื่อเสิร์ฟในร้านกาแฟหรือแค่เอาซุปไปรวมกับขนมปังที่คุณซื้อจาก บริษัท อื่นเพื่อให้ได้เมนูที่ถูกกว่าหรือให้ร้านอาหารอื่น ๆ ใช้สลัดของคุณรวมกับอาหารของพวกเขาเป็นต้น .

หนึ่งในการติดตั้ง SOA ที่ประสบความสำเร็จมากที่สุดคือที่ Amazon เนื่องจากการออกแบบของพวกเขาพวกเขาสามารถรวมโครงสร้างพื้นฐานทั้งหมดใหม่และขายเป็น Amazon Web Service

* นี่เป็นเพียงลักษณะเดียวของ SOA


17

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

IMHO, SOA มีความหมายเฉพาะในระดับองค์กรและไม่มีความหมายสำหรับแอปพลิเคชันเดียว

ในหลาย ๆ องค์กรแต่ละแผนกมีชุดแอปพลิเคชันระดับองค์กรของตัวเองซึ่งบอกเป็นนัยว่า

  1. คุณลักษณะที่คล้ายกันถูกนำมาใช้หลายครั้ง

  2. ข้อมูล (เช่นข้อมูลลูกค้าหรือพนักงาน) ต้องใช้ร่วมกันระหว่างแอปพลิเคชันต่างๆ

  3. แอปพลิเคชันมีแผนกเป็นศูนย์กลาง

ด้วย SOA มีแนวคิดที่จะให้บริการที่ใช้ซ้ำได้ทั่วทั้งองค์กรเพื่อให้สามารถสร้างและประกอบแอปพลิเคชันได้ สัญญาของ SOA คือ

  1. ไม่จำเป็นต้องนำคุณสมบัติที่คล้ายกันมาใช้ซ้ำแล้วซ้ำอีก (เช่นให้บริการลูกค้าหรือพนักงาน)

  2. อำนวยความสะดวกในการรวมแอปพลิเคชันเข้าด้วยกันและการเข้าถึงข้อมูลหรือคุณสมบัติทั่วไป

  3. ความพยายามในการพัฒนาองค์กรเป็นศูนย์กลาง

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

นี่คือมุมมอง 1000 ฟุตของ SOA อย่างไรก็ตามมันไม่ได้หยุดเพียงแค่นี้ มีแนวคิดอื่น ๆ ที่เสริม SOA เช่น Business process orchestration (BPM), Enterprise Service Bus (ESB), Complex Event Processing (CEP) เป็นต้นพวกเขาทั้งหมดจะจัดการกับปัญหาของIT / business alignmentนั่นคือจะมี IT ได้อย่างไร สามารถสนับสนุนธุรกิจได้อย่างมีประสิทธิภาพ


1
ใช่ แต่มีคนอื่นต้องการให้คุณซื้อหรือใช้เสาหินเพื่อควบคุมทุกอย่างเช่น Oracle SOA หรือใช้ Microsoft WCF จะไม่มีเสาหินเสมอไปหรือ?
จอห์นนี่

WCF และ Oracle SOA เป็นการพึ่งพาเทคโนโลยีที่ไม่เกี่ยวข้องกับโซลูชัน SOA แนวคิดนี้มีพื้นฐานมาจากบริการที่ดูแลรักษาง่ายและเป็นอิสระไม่ใช่เทคโนโลยีเฉพาะบางอย่าง
BentOnCoding

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

10

SOA เป็นคำย่อของ Service Oriented Architecture

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

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

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

การฝึก SOA ช่วยให้สามารถใช้งานซ้ำได้ในระดับสูงโดยบังคับใช้ DRY [อย่าทำซ้ำตัวเอง] ซึ่งส่งผลให้เกิดซอฟต์แวร์ที่บำรุงรักษาได้สูง การบำรุงรักษาเป็นสิ่งแรกที่สถาปัตยกรรมซอฟต์แวร์นึกถึง - SOA ให้สิ่งนั้นแก่คุณ


6

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

ดังนั้นคุณจึงกำหนดโปรโตคอลที่คุณจะใช้สำหรับการโต้ตอบ (เช่นอาจเป็นบริการเว็บ SOAP) และปล่อยให้ "ระบบที่ทำบางอย่าง - ธุรกิจ - ทำงาน" ของคุณโต้ตอบกับบริการขนาดเล็กเพื่อให้บรรลุ "เป้าหมายใหญ่" .


2
โปรดอย่าเดาคำถามเกี่ยวกับสถาปัตยกรรม Stackoverflow เป็นสถานที่สำหรับรับคำตอบจากผู้เชี่ยวชาญไม่ใช่การเดาแบบสุ่มจากบทความที่คุณดูเมื่อปีที่แล้ว เป็นเรื่องน่าเศร้าที่คำตอบนี้ได้รับการโหวตใด ๆ
BentOnCoding

5

ฉันขอแนะนำให้คุณอ่านบทความโดย Thomas Erl และ Roger Sessions สิ่งนี้จะช่วยให้คุณสามารถจัดการกับ SOA ได้อย่างชัดเจน สิ่งเหล่านี้เป็นแหล่งข้อมูลที่ดีเช่นกันดู SOA ที่อธิบายไว้สำหรับเจ้านายของคุณสำหรับคำอธิบายคนธรรมดา

การสร้าง SOA

รูปแบบการออกแบบ SOA

บรรลุความสมบูรณ์ใน SOA

ทำไม SOA ของคุณควรเป็นเหมือน VW Beetle

SOA อธิบายสำหรับเจ้านายของคุณ

ประสิทธิภาพการบริการ WCF


4

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

ดังนั้นคุณจึงซื้อ SOA ของ Oracle และ Oracle กลายเป็นเจ้านายของทุกส่วนของคุณ ผู้เล่นคนอื่น ๆ ทั้งหมดที่เข้ามาจะต้องทำงานกับ SOA ผ่านบริการ (บริการบนเว็บหรืออะไรก็ตามที่มี) เสาหิน Oracle ดูแลทุกอย่าง (เสาหินไม่ได้หมายถึงการเสื่อมเสีย) โอ้ใช่คุณมี ASP.NET MVC ที่ด้านหน้าหรืออย่างอื่น

สิ่งสำคัญคือการเคลื่อนย้ายสิ่งต่างๆเข้าและออกจากระบบโดยไม่มีผลกระทบและรักษาผู้จำหน่าย Oracle SOA, Microsoft WCF เป็นสมองของมันทั้งหมด ทุกอย่างล้วนเป็นสิ่งที่ไม่เหมือนใครของเหลวสิ่งต่างๆที่เคลื่อนเข้าและออกโดยไม่มีผลกระทบแม้แต่น้อยหรือไม่มีเลยแม้แต่การบริการของมนุษย์ไม่ใช่แค่คอมพิวเตอร์

สำหรับฉันมันหมายถึงบริการทางเว็บจำนวนมาก (หรืออะไรก็ตามที่เราเรียกว่าบริการเหล่านี้ในอนาคต) พร้อมส่วนหน้าที่ดี และถ้าคุณเป็นเจ้าของฐานข้อมูลเพียงแค่กดฐานข้อมูลและเลิกกังวลเกี่ยวกับ buzzwords ไม่เป็นไร.



3

คุณเห็นไหม .. SOA ย่อมาจาก Service Oriented Architecture .... พูดง่ายๆคือคุณเขียนโค้ดที่มีลักษณะทั่วไปเช่นมันทำบางอย่างที่สามารถใช้กับแอพพลิเคชั่นจำนวนมากได้ ... อาจจะคล้าย ๆ สมุดที่อยู่หรืออาจเป็นเครื่องคิดเลข และคุณเปิดรหัสนี้บน IIS ดังนั้นคุณจึงให้บริการผ่านรหัสของคุณ คุณจึงเป็นผู้ให้บริการ ตอนนี้มีคนต้องการใช้รหัสที่คล้ายกันแล้วเขาก็ไม่ต้องเขียนโค้ดอีก เขาใช้รหัสของคุณผ่านบริการเว็บ ดังนั้นเขาจึงกลายเป็นผู้บริโภคบริการ ดังนั้นการสร้างโปรแกรมโดยใช้บริการดังกล่าวจึงเรียกว่า SOA และมีการเชื่อมต่อแบบหลวม ๆ เนื่องจากผู้ให้บริการและผู้บริโภคอาจมีการโต้ตอบกันแม้ว่าพวกเขาจะใช้ภาษาโปรแกรมต่างกันก็ตาม หวังว่าคุณจะเข้าใจ.


3

จากบล็อก ittoolbox

ต่อไปนี้สรุปความเหมือนและความแตกต่างของเทคนิคการออกแบบในอดีต:

• SOA เทียบกับการเขียนโปรแกรมแบบมีโครงสร้าง o ความคล้ายคลึงกัน: ส่วนใหญ่คล้ายกับการเรียกรูทีนย่อยที่พารามิเตอร์ถูกส่งผ่านและการทำงานของฟังก์ชันจะแยกออกจากตัวเรียกเช่นลิงก์ CICS และดำเนินการและคำสงวนของ COBOL CALL Copybooks ใช้เพื่อกำหนดโครงสร้างข้อมูลซึ่งโดยทั่วไปจะกำหนดเป็น XML schema สำหรับบริการ o ความแตกต่าง: SOA เชื่อมโยงกันอย่างหลวม ๆ ซึ่งหมายความว่าการเปลี่ยนแปลงบริการมีผลกระทบน้อยกว่าต่อผู้บริโภค (โปรแกรม "การโทร") และบริการต่างๆสามารถทำงานร่วมกันได้ในภาษาและแพลตฟอร์มต่างๆ

• SOA เทียบกับ OOA / OOD o ความคล้ายคลึงกัน: Encapsulation, Abstraction และ Defined Interfaces o ความแตกต่าง: SOA อยู่คู่กันอย่างหลวม ๆ โดยไม่มีลำดับชั้นหรือการสืบทอด, abstractions ระดับต่ำ - ระดับชั้นเทียบกับบริการทางธุรกิจ

• SOA เทียบกับการพัฒนาตามส่วนประกอบดั้งเดิม (CBD) - เช่น CORBA, DCOM, EJB o ความคล้ายคลึงกัน: ใช้ซ้ำโดยการประกอบส่วนประกอบอินเทอร์เฟซการเรียกระยะไกล o ความแตกต่าง: การนำมาตรฐานมาใช้อย่างกว้างขวาง XML Schemas เทียบกับ Marshaled Objects, Service Orchestration, การออกแบบเพื่อนำกลับมาใช้ใหม่ ง่ายกว่าบริการเน้นธุรกิจเทียบกับไอทีเน้นบริการธุรกิจเป็นรายละเอียดหลักสูตร (ขอบเขตกว้าง ๆ )

• SOA (สำหรับการรวม) เทียบกับ Enterprise Application Integration (EAI) o ความคล้ายคลึงกัน: แนวทางปฏิบัติที่ดีที่สุด (อินเทอร์เฟซที่กำหนดไว้อย่างดีสคีมามาตรฐานสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์) อินเทอร์เฟซที่ใช้ซ้ำได้สคีมาทั่วไป o ความแตกต่าง: มาตรฐานการนำไปใช้และเครื่องมือที่ได้รับการปรับปรุง


3

เมื่ออ่านคำตอบข้างต้นแล้วฉันคิดว่า SOA คือสิ่งที่นักพัฒนา (อย่างน้อยก็ดี) ได้ทำตั้งแต่วันแรก


2

นอกจากนี้ยังสามารถใช้แทน "Struct of Arrays" (ตรงข้ามกับ "Array of Structs") ซึ่งเป็นหัวข้อทั่วไปในการเขียนโปรแกรมคู่ขนาน (โดยเฉพาะ SIMD) แต่ฉันเดาว่านั่นไม่ใช่สิ่งที่คุณหมายถึงที่นี่!


ลงคะแนนรุนแรงเล็กน้อยโดยไม่คอมเม้น !!
ทอม

2
@Downvoters: คำถามไม่ได้ให้บริบทเพียงพอที่จะพิสูจน์คำตอบของ Toms เพียงเพราะคนอื่น ๆ เป็นอัมพาตโดยคำว่า SOA ในบริบทของสถาปัตยกรรมการบริการไม่ได้ทำให้ผิด
Sebastian Mach

1
@phresnel แท็กนั้นมากและหากคุณสามารถวางเมาส์เหนือสิ่งนั้นได้ในเวลาสั้น ๆ คุณจะเห็นคำอธิบายที่ชัดเจนของบริบทของ quesiton
BentOnCoding

4
@Robotsushi: และหากคุณสามารถค้นคว้าแท็กได้อย่างรวดเร็วคุณจะเห็นว่ามีการเพิ่มคำอธิบายมากกว่าหนึ่งปีหลังจากที่ Toms ตอบ
Sebastian Mach

ฉันคิดว่าหากคุณไม่แน่ใจในบริบทของคำถามคุณจะไม่สามารถให้คำตอบจากผู้เชี่ยวชาญได้ คำถามง่ายๆในความคิดเห็นเกี่ยวกับลักษณะของคำถามจะช่วยไขปริศนานี้ได้อย่างรวดเร็ว
BentOnCoding

2

SOA เป็นคำศัพท์ที่คิดค้นโดยผู้ขายเทคโนโลยีเพื่อช่วยขายเทคโนโลยีที่เกี่ยวข้องกับ Enterprise Service Bus แนวคิดก็คือคุณสร้างแอปพลิเคชันบนเกาะเล็ก ๆ ของคุณในองค์กร (เช่นระบบบัญชีระบบควบคุมสต็อก ฯลฯ ) ทั้งหมดเปิดเผยบริการเพื่อให้สามารถปรับแต่งได้อย่างยืดหยุ่นใน 'แอปพลิเคชัน' หรือกลายเป็นส่วนหนึ่งของธุรกิจที่มีขอบเขตรวมขององค์กร ตรรกะ.

โดยทั่วไปแล้วโบลล็อกเก่า ๆ ที่แทบจะไม่เคยใช้งานได้เลยเพราะมันคิดถึงประเด็นที่ว่าสาเหตุที่เทคโนโลยีเป็นวิธีที่อยู่ในองค์กรนั้นขึ้นอยู่กับวัฒนธรรมวิวัฒนาการประวัติศาสตร์ของ บริษัท และการล็อคในนั้นสูงมาก ความพยายามที่จะปรับโครงสร้างเทคโนโลยีจะล้มเหลว


1

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


1

สถาปัตยกรรมแอปพลิเคชันแบบดั้งเดิมคือ:

  • ส่วนต่อประสานผู้ใช้
  • สิ่งที่ไม่ได้กำหนด (การนำไปใช้งาน) ที่ห่อหุ้ม / ซ่อนอยู่หลังอินเทอร์เฟซผู้ใช้

หากคุณต้องการเข้าถึงข้อมูลโดยใช้โปรแกรมคุณอาจต้องใช้การคัดลอกหน้าจอ

SOA ดูเหมือนว่าสำหรับฉันจะเป็นสถาปัตยกรรมที่เน้นการเปิดเผยข้อมูลและ / หรือ API ที่เครื่องอ่านได้แทนที่จะเปิดเผย UI


1

SOA หรือ Service-Oriented Architecture เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่แอปพลิเคชันหรือระบบสร้างขึ้นจากบริการซอฟต์แวร์พื้นฐาน (และมักจะแจกจ่าย) ที่สอดคล้องกับชุดคุณลักษณะเฉพาะ ได้แก่ :

  1. อินเทอร์เฟซนโยบายและสัญญาตาม
  2. ความโปร่งใสของสถานที่
  3. อิสระ
  4. บทคัดย่อ
  5. นำมาใช้ใหม่
  6. composable
  7. ไร้สัญชาติ
  8. ค้นพบ
  9. Extensible
  10. คู่อย่างหลวม ๆ

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

โดยทั่วไปแล้วบริการจะถูกนำมาใช้เป็นบริการบนเว็บ (แต่ไม่ได้ใช้วิธีใดวิธีหนึ่งเท่านั้นกล่าวคือทำงานผ่านโปรโตคอล HTTP ของเว็บที่แพร่หลายและนำไปใช้โดยใช้ SOAP แบบ XML หรือกระบวนทัศน์ REST ที่มีน้ำหนักเบา (และเป็นที่นิยมมากกว่า)


1

ขึ้นอยู่กับว่าคุณเป็นใคร!

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

คุณควรอ่าน100-SOA-Questions [pdf]

ไชโย


1

Service Oriented Architecture (SOA) เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่สร้างแอปพลิเคชันเป็นชุดของชิ้นส่วนที่เสียบปลั๊กได้ซึ่งแต่ละส่วนสามารถนำกลับมาใช้โดยแอปพลิเคชันอื่นได้

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