หลักการความละเอียดของบริการ
ในวิศวกรรมซอฟต์แวร์และสถาปัตยกรรมซอฟต์แวร์ความละเอียดของบริการเป็นประเด็นการออกแบบในระบบที่ใช้บริการ รวมถึงสถาปัตยกรรมเชิงบริการ (SOA)และ สถาปัตยกรรม ไมโครเซอร์วิสโดยหมายถึงขอบเขตและความสอดคล้องของฟังก์ชันการทำงานที่ห่อหุ้มโดยบริการและขอบเขตของความรับผิดชอบ ความละเอียดของบริการส่งผลต่อวิธีการกำหนดบริการ วิธีการสื่อสารระหว่างบริการ และวิธีการกระจายฟังก์ชันการทำงานทั่วทั้งระบบ ใน SOA มักจะมีการกล่าวถึงในระหว่างการสร้างแบบจำลองเชิงบริการเพื่อสร้างสมดุลระหว่างการนำกลับมาใช้ใหม่และการแยกส่วน ในสถาปัตยกรรมไมโครเซอร์วิส ความละเอียดเป็นปัจจัยหลักในการกำหนดความสามารถในการใช้งานอย่างอิสระ ค่าใช้จ่ายในการดำเนินงาน และความซับซ้อนของการสื่อสารระหว่างบริการ[ 1 ] [ 2 ]
คำนิยาม
ความละเอียดของบริการเป็นทั้งประเด็นที่เกี่ยวข้องกับโดเมนแอปพลิเคชัน ( ความละเอียดทางธุรกิจ ) และ ประเด็นการออกแบบ อินเทอร์เฟซซอฟต์แวร์ ( ความละเอียดทางเทคนิค ) เป็นคุณสมบัติของสัญญา บริการ ที่ผู้ให้บริการเปิดเผย เกี่ยวข้องกับความหมายและไวยากรณ์ของเนื้อหาข้อความขาเข้า (คำขอ) และขาออก (การตอบกลับ) ซึ่งสามารถมองได้ว่าเป็นตัวอย่างของรูปแบบการบูรณาการระดับองค์กร ทั่วไปสองแบบ คือข้อความคำสั่งและข้อความเอกสารตามคำจำกัดความ การดำเนินการบริการแบบหยาบจะมีขอบเขตที่กว้างกว่าบริการแบบละเอียด แม้ว่าคำศัพท์จะเป็นคำที่สัมพันธ์กันก็ตาม แบบแรกมักต้องการความซับซ้อนในการออกแบบที่เพิ่มขึ้น แต่สามารถลดจำนวนการเรียกที่จำเป็นในการทำงานให้เสร็จสมบูรณ์ได้[ 3 ]
เกณฑ์
เนื่องจากข้อผิดพลาดของการประมวลผลแบบกระจายการหาขนาดที่เหมาะสมจึงเป็นเรื่องยาก[ 4 ]ไม่มีคำตอบง่ายๆ เพียงคำตอบเดียว แต่มีเกณฑ์อยู่หลายประการ (ดูด้านล่าง) เป้าหมายหลักของการสร้างแบบจำลองบริการและการออกแบบขนาดคือการบรรลุการเชื่อมโยงแบบหลวมๆและความเป็นโมดูลาร์ซึ่งเป็นหลักการสำคัญสองประการของ SOA [ 5 ]และเพื่อจัดการกับข้อกำหนดทางสถาปัตยกรรมที่สำคัญ อื่น ๆ
ปัจจัยหลายอย่างมีอิทธิพลต่อความละเอียดของบริการ[ 6 ]ปัจจัยสำคัญสี่ประการที่ควรพิจารณาเมื่อออกแบบความละเอียดที่เหมาะสม ได้แก่ ประสิทธิภาพ ขนาดข้อความ การทำธุรกรรม และฟังก์ชันทางธุรกิจ
ฟังก์ชันทางธุรกิจ
ตามหลักการแล้ว การดำเนินการบริการแต่ละอย่างควรสอดคล้องกับฟังก์ชันทางธุรกิจเพียงอย่างเดียว แต่หากการดำเนินการเดียวสามารถทำหน้าที่ได้หลายอย่างโดยไม่เพิ่มความซับซ้อนในการออกแบบหรือเพิ่มขนาดข้อความ ความทั่วไปนี้จะช่วยลดต้นทุนในการใช้งานและการดำเนินการได้
ผลงาน
การเข้าถึงเว็บเซอร์วิสนั้นทำจากระยะไกล และการเรียกใช้เว็บเซอร์วิสจะสร้างภาระเครือข่ายเพิ่มขึ้น การลดจำนวนคำขอใช้บริการจะช่วยลดภาระดังกล่าวลง
ขนาดข้อความ
บริการที่มีรายละเอียดมากอาจส่งข้อมูลมากกว่าบริการที่มีรายละเอียดมาก รวมถึงข้อมูลที่ไม่จำเป็นสำหรับงานนั้นๆ ซึ่งจะทำให้การประมวลผลข้อความในฝั่งปลายทางซับซ้อนขึ้น และอาจส่งผลเสียต่อประสิทธิภาพ การลดขนาดข้อความอาจต้องเพิ่มการดำเนินการที่มีรายละเอียดมากขึ้น
ลักษณะคุณภาพการบริการ รวมถึงลักษณะการทำธุรกรรม
เพื่อให้เข้าใจได้ชัดเจนยิ่งขึ้น การดำเนินการบริการแต่ละครั้งควรทำธุรกรรมระดับระบบเพียงครั้งเดียว และปล่อยให้ความสมบูรณ์ของข้อมูลข้ามขอบเขตบริการเป็น หน้าที่ของ ตรรกะทางธุรกิจในผู้ใช้บริการ วิธีนี้ยังช่วยลดความซับซ้อนในการแก้ไขข้อผิดพลาด และโดยทั่วไปแล้วช่วยให้การออกแบบง่ายขึ้นด้วย
มีเกณฑ์การตัดสินใจอีกมากมายสำหรับการค้นหาความละเอียดที่เหมาะสม ไม่มีค่าที่เหมาะสมที่สุดทั่วโลก เกณฑ์การเชื่อมโยงดังกล่าว 16 รายการได้รับการรวบรวมจากเอกสารใน[ 7 ]
ลวดลาย
เนื่องจากไม่มีรูปแบบเดียวที่เหมาะกับทุกสถานการณ์ การออกแบบระดับความละเอียดของบริการจึงได้รับประโยชน์จากงานรูปแบบที่มีอยู่มากมายในระบบกระจายประเภทต่างๆ โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับบริการ ตลอดจนงานรูปแบบที่เกี่ยวข้องกับการออกแบบ API (เช่น การออกแบบ API ในการเขียนโปรแกรมเชิงวัตถุ) และการบูรณาการระดับองค์กร ภาพรวมของภาษาดังกล่าวมีให้ดูได้ที่นี่
ระดับความละเอียดของบริการในสถาปัตยกรรมไมโครเซอร์วิส
ในสถาปัตยกรรมไมโครเซอร์วิส ความละเอียดของบริการมีผลต่อการทดสอบ การปรับใช้ ประสิทธิภาพ และความน่าเชื่อถือ ไมโครเซอร์วิสที่มีความละเอียดสูงมากมักจะทดสอบและปรับใช้ได้ง่ายกว่า แต่ก็มักจะมีประสิทธิภาพต่ำกว่าและความน่าเชื่อถือโดยรวมลดลงเนื่องจากการสื่อสารระหว่างบริการที่เพิ่มขึ้นและการจัดลำดับการทำงานของบริการที่ซับซ้อนมากขึ้น[ 2 ]บริการที่มีความละเอียดต่ำจะมีลักษณะที่ตรงกันข้าม โดยทั่วไปแล้วจะมีความแข็งแกร่งและความน่าเชื่อถือสูงกว่าโดยการลดค่าใช้จ่ายในการสื่อสารและความซับซ้อนในการประสานงาน แต่ก็ทดสอบและปรับใช้ได้ยากกว่าเพราะการแก้ไขจะส่งผลกระทบต่อขอบเขตการทำงานที่กว้างขึ้น[ 2 ]ระดับความละเอียดของบริการที่เหมาะสมจะถูกกำหนดโดยปัจจัยขับเคลื่อนทางธุรกิจ การตัดสินใจด้านสถาปัตยกรรมมักเริ่มต้นด้วยการระบุปัจจัยขับเคลื่อนเหล่านี้ จากนั้นจึงปรับลักษณะทางสถาปัตยกรรม เช่น ประสิทธิภาพ ความสามารถในการขยายขนาด ความน่าเชื่อถือ หรือความยืดหยุ่นในการปรับใช้ เพื่อสนับสนุนปัจจัยเหล่านั้น[ 2 ]
ลิงก์ภายนอก
- กรอบแนวคิดระดับความละเอียดของบริการ
- การระบุระดับความละเอียดของบริการในพจนานุกรมบริการ
- EA สำหรับการทำอาหาร - ระดับความละเอียดของบริการ
- กรณีศึกษาของ IEEE เกี่ยวกับบทบาทของระดับความละเอียดของบริการในการนำสถาปัตยกรรมบริการเชิงบริการ (SOA) ไปใช้ให้ประสบความสำเร็จ
- ความรู้ด้านสถาปัตยกรรมในสถาปัตยกรรมอ้างอิงโครงสร้างพื้นฐาน SOA (กรณีศึกษา SOA)
- เว็บไซต์ Getting Web Service Granularity Rightให้ข้อมูลเกี่ยวกับหลักการ Service Granularity Principle และคำแนะนำที่เป็นประโยชน์เกี่ยวกับวิธีการทำให้ถูกต้อง
- คู่มือผู้ปฏิบัติงาน SOA
- การแก้ปัญหาความท้าทายด้านระดับความละเอียดของบริการ
- ส่วนต่อประสานแบบหยาบ
- กรอบตัวชี้วัดสำหรับการประเมินระดับความละเอียดของบริการ SOA
- แคตตาล็อกเครื่องมือ Service Cutter และเกณฑ์การเชื่อมต่อบน GitHub