สัญญาบริการมาตรฐาน
สัญญาบริการมาตรฐานเป็นหลักการออกแบบซอฟต์แวร์[ 1 ]ที่นำมาใช้ภายในกรอบแนวคิดการออกแบบที่มุ่งเน้นบริการ เพื่อรับประกันว่าสัญญาบริการ[ 2 ]ภายในคลังบริการ[ 3 ] (ระดับองค์กรหรือโดเมน) จะเป็นไปตามชุดมาตรฐานการออกแบบเดียวกัน[ 4 ]ซึ่งอำนวยความสะดวกให้สัญญาบริการมาตรฐานทั่วทั้งคลังบริการ[ 5 ]
วัตถุประสงค์
ความคล่องตัวที่สัญญาไว้โดยสถาปัตยกรรมที่เน้นบริการ (SOA)มักจะวัดในแง่ของระดับการนำกลับมาใช้ใหม่ของบริการที่บรรจุอยู่ภายใน อย่างไรก็ตาม การนำกลับมาใช้ใหม่นี้เกี่ยวข้องโดยตรงกับวิธีที่สัญญาบริการกำหนดความสามารถของบริการ บริการที่สร้างขึ้นบนบริบทการทำงานที่อาจนำกลับมาใช้ใหม่ได้[ 6 ]แต่มีสัญญาที่ไม่ถ่ายทอดการนำกลับมาใช้ใหม่นี้อย่างถูกต้อง จะไม่สามารถบรรลุศักยภาพในการนำกลับมาใช้ใหม่ได้
ภายในโซลูชันที่มุ่งเน้นการบริการ สัญญาบริการถือเป็นสิ่งประดิษฐ์พื้นฐาน เนื่องจากเป็นสื่อกลางเดียวที่บริการต่างๆ โต้ตอบกันหรือกับโปรแกรมผู้บริโภคอื่นๆ สิ่งนี้สร้างความจำเป็นอย่างยิ่งที่จะต้องกำหนดมาตรฐานสัญญาบริการเพื่อให้สามารถนำบริการกลับมาใช้ใหม่และประกอบใหม่ได้มากที่สุดเท่าที่จะเป็นไปได้ เพื่อให้บรรลุเป้าหมายนี้ จำเป็นต้องนำหลักการออกแบบสัญญาบริการมาตรฐานมาใช้ เนื่องจากการประยุกต์ใช้จะส่งผลให้เกิดสัญญาบริการมาตรฐานที่อิงตามมาตรฐานการออกแบบ[ 7 ]ตามที่กำหนดไว้ในรายการบริการ
เป้าหมายหนึ่งคือการลดความจำเป็นในการแปลงข้อมูลเมื่อบริการสองบริการโต้ตอบกัน ซึ่งสามารถทำได้หากสัญญาบริการใช้โมเดลข้อมูลมาตรฐาน เช่นXML schemaหากบริการได้รับการนำไปใช้เป็นเว็บเซอร์วิสนอกจากนี้ยังช่วยให้บริการสามารถทำงานร่วมกันได้มากขึ้น เป้าหมายสำคัญอีกประการหนึ่งของรูปแบบการออกแบบนี้คือการใช้วิธีการมาตรฐานในการแสดงความสามารถของบริการ เพื่อให้สามารถเข้าใจวัตถุประสงค์และความสามารถได้ง่ายในระหว่างการออกแบบ[ 8 ]
แอปพลิเคชัน
สัญญาบริการทางเทคนิค[ 9 ]โดยทั่วไปประกอบด้วย เอกสาร WSDL , แผนผัง XML และเอกสารนโยบาย ดังนั้น หลักการนี้จึงจำเป็นต้องนำไปใช้ในสามส่วนของสัญญาบริการดังที่อธิบายไว้ด้านล่าง:
การกำหนดมาตรฐานการแสดงออกเชิงฟังก์ชัน
การดำเนินงานของบริการจำเป็นต้องได้รับการกำหนดโดยใช้หลักเกณฑ์การตั้งชื่อที่เป็นมาตรฐาน ซึ่งรวมถึงชื่อข้อความขาเข้าและขาออก ตลอดจนชื่อประเภทที่เกี่ยวข้องด้วย การทำเช่นนี้จะช่วยเพิ่มความถูกต้องในการตีความสัญญาบริการ ซึ่งจะส่งผลให้สามารถนำบริการกลับมาใช้ซ้ำและทำงานร่วมกันได้มากขึ้น เมื่อสัญญาบริการระบุความสามารถไว้อย่างชัดเจน โอกาสที่จะเกิดการซ้ำซ้อนของบริการก็จะลดลงด้วย
การกำหนดมาตรฐานแบบจำลองข้อมูล
บริการสองบริการที่แลกเปลี่ยนข้อความโดยใช้ข้อมูลประเภทเดียวกัน เช่น ใบสั่งซื้อ อาจสร้างแบบจำลองข้อมูลตามสคีมาที่แตกต่างกัน ซึ่งต้องมีการแปลงแบบจำลองข้อมูล เห็นได้ชัดว่าสิ่งนี้เพิ่มภาระงานและขัดขวางการทำงานร่วมกันและการนำบริการกลับมาใช้ใหม่ เพื่อหลีกเลี่ยงการแปลงนี้ หลักการสัญญาบริการมาตรฐานจึงต้องการแบบจำลองข้อมูลมาตรฐาน ซึ่งช่วยสร้างสถาปัตยกรรมแสดงข้อมูลมาตรฐานที่สามารถนำกลับมาใช้ใหม่ได้ทั่วทั้งองค์กรเพื่อกำหนดความสามารถของบริการมาตรฐาน การรวมศูนย์สคีมาสนับสนุนวัตถุประสงค์ของรูปแบบการออกแบบมาตรฐานแบบจำลองข้อมูล[ 10 ] โดยตรง ซึ่งสนับสนุนการสร้างสคีมาที่ควบคุมจากส่วนกลาง
การกำหนดมาตรฐานนโยบาย
นโยบายการให้บริการแสดงถึงข้อกำหนดในการใช้งานบริการ ดังนั้น เพื่อให้บริการสามารถนำกลับมาใช้ใหม่ได้ ข้อกำหนดด้านพฤติกรรมของบริการจะต้องแสดงออกมาอย่างสม่ำเสมอโดยใช้สำนวนนโยบายที่เป็นมาตรฐานตามคำศัพท์มาตรฐานของอุตสาหกรรม การกำหนดมาตรฐานประเภทนี้ช่วยส่งเสริมการแยกนโยบายออกจากสัญญาบริการไปเป็นเอกสารนโยบายแต่ละฉบับ ซึ่งอำนวยความสะดวกในการกำกับดูแลจากส่วนกลาง ในบางกรณี นโยบายสองฉบับ แม้จะมีโครงสร้างทางไวยากรณ์แตกต่างกัน อาจมีความหมายเหมือนกัน ดังนั้น มาตรฐานการออกแบบจึงต้องกำหนดโครงสร้างนโยบายที่ยอมรับได้
ข้อควรพิจารณา
การประยุกต์ใช้หลักการออกแบบนี้ขึ้นอยู่กับมาตรฐานการออกแบบในระดับสินค้าคงคลังบริการ ซึ่งต้องใช้ทรัพยากรเพิ่มเติมทั้งในแง่ของเวลาและความพยายาม ประการที่สอง เพื่อประยุกต์ใช้หลักการออกแบบนี้อย่างมีประสิทธิภาพ สัญญาจริงจะต้องแยกออกจากตรรกะและการใช้งานบริการอย่างชัดเจน เพื่อให้สามารถอิงตามมาตรฐานอุตสาหกรรมได้ ซึ่งสามารถทำได้โดยการใช้รูปแบบการออกแบบสัญญาแบบแยกส่วน[ 11 ]นอกจากนี้ยังต้องปฏิบัติตามแนวทาง 'สัญญามาก่อน' เพื่อให้ตรรกะพื้นฐานใช้เฉพาะโมเดลข้อมูลมาตรฐานเท่านั้น ยิ่งไปกว่านั้น ข้อกำหนดสำหรับโมเดลข้อมูลส่วนกลางอาจส่งผลให้เกิดการส่งข้อมูลที่ซ้ำซ้อนระหว่างบริการ เนื่องจากข้อมูลจริงที่บริการต้องการอาจเป็นเพียงส่วนย่อยของข้อมูลที่กำหนดไว้ในสคีมามาตรฐานที่กำหนดให้กับบริการ
ลิงก์ภายนอก
- แนวคิด SOA
- คำศัพท์เฉพาะของ SOA