SOA - ภาพรวม

Service Oriented Architecture (SOA) คืออะไร?

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

ประวัติศาสตร์

รายงานฉบับแรกที่เผยแพร่บน SOA โดยนักวิเคราะห์ Roy W.Schulte และ Yefim V.Natis ในปี 2539

ทำไมต้องใช้ SOA?

  • SOA ใช้กันอย่างแพร่หลายในตลาดซึ่งตอบสนองได้อย่างรวดเร็วและทำการเปลี่ยนแปลงอย่างมีประสิทธิภาพตามสถานการณ์ของตลาด

  • SOA เก็บรายละเอียดการใช้งานของระบบย่อยไว้เป็นความลับ

  • ช่วยให้ปฏิสัมพันธ์ของช่องทางใหม่กับลูกค้าคู่ค้าและซัพพลายเออร์

  • อนุญาตให้ บริษัท ต่างๆเลือกซอฟต์แวร์หรือฮาร์ดแวร์ที่ต้องการเนื่องจากทำหน้าที่เป็นอิสระของแพลตฟอร์ม

คุณสมบัติ

  • SOA ใช้อินเทอร์เฟซที่ช่วยแก้ปัญหาการผสานรวมที่ยุ่งยากในระบบขนาดใหญ่

  • SOA สื่อสารกับลูกค้าผู้ให้บริการและซัพพลายเออร์ด้วยข้อความโดยใช้ XML schema

  • ใช้การตรวจสอบข้อความเพื่อปรับปรุงการวัดประสิทธิภาพและตรวจจับการโจมตีด้านความปลอดภัย

  • เนื่องจากการนำบริการกลับมาใช้ใหม่จะมีต้นทุนการพัฒนาซอฟต์แวร์และการจัดการที่ต่ำ

ข้อดี

  • SOA อนุญาตให้นำบริการของระบบที่มีอยู่มาใช้ซ้ำเพื่อสร้างระบบใหม่

  • ช่วยให้สามารถเชื่อมต่อบริการใหม่หรืออัปเกรดบริการที่มีอยู่เพื่อตอบสนองความต้องการทางธุรกิจใหม่

  • สามารถเพิ่มประสิทธิภาพการทำงานของบริการและทำการอัพเกรดระบบได้อย่างง่ายดาย

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

  • บริษัท ต่างๆสามารถพัฒนาแอพพลิเคชั่นได้โดยไม่ต้องเปลี่ยนแอพพลิเคชั่นที่มีอยู่

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

ข้อเสีย

  • SOA ต้องใช้เงินลงทุนสูง (หมายถึงการลงทุนขนาดใหญ่ด้านเทคโนโลยีการพัฒนาและทรัพยากรมนุษย์)

  • มีค่าใช้จ่ายมากขึ้นเมื่อบริการโต้ตอบกับบริการอื่นซึ่งจะเพิ่มเวลาตอบสนองและโหลดเครื่องขณะตรวจสอบพารามิเตอร์อินพุต

  • SOA ไม่เหมาะสำหรับแอพพลิเคชั่น GUI (อินเทอร์เฟซผู้ใช้แบบกราฟิก) ซึ่งจะซับซ้อนขึ้นเมื่อ SOA ต้องการการแลกเปลี่ยนข้อมูลจำนวนมาก