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 ต้องการการแลกเปลี่ยนข้อมูลจำนวนมาก