ระเบียบวิธีสำหรับการพัฒนาบริการเว็บ - การพัฒนาแอปพลิเคชันมือถือ บริการเว็บ สถาปัตยกรรม SOA - เทคโนโลยี
ข้ามไปที่เนื้อหา

วิธีการในการพัฒนาบริการเว็บ - การพัฒนาแอปพลิเคชันมือถือ บริการเว็บ สถาปัตยกรรม SOA

โฆษณา

Coulouris ให้นิยามระบบแบบกระจายว่าเป็น “ระบบที่ส่วนประกอบฮาร์ดแวร์และ/หรือซอฟต์แวร์ที่มีอยู่ในเครือข่ายคอมพิวเตอร์สื่อสารและประสานการกระทำด้วยการแลกเปลี่ยนข้อความ”

แนวคิดนี้ได้รับความนิยมในช่วงไม่กี่ปีที่ผ่านมาเนื่องจากปัจจัยหลายประการ ปัจจัยแรกที่ส่งเสริมการพัฒนาระบบแบบกระจายคือการเกิดขึ้นของเครือข่ายท้องถิ่นความเร็วสูง ปัจจัยสำคัญอีกประการหนึ่งคือความก้าวหน้าทางเทคโนโลยีในประสิทธิภาพของคอมพิวเตอร์ส่วนบุคคลและการพัฒนาซอฟต์แวร์เพื่อรองรับแอพพลิเคชั่นแบบกระจาย ระบบแบบกระจายเชื่อมโยงกับแนวคิดของเว็บและอินเทอร์เน็ต ด้วยวิวัฒนาการของเว็บ และการเกิดขึ้นของพื้นที่ใหม่ การโต้ตอบ ความต้องการ และแอปพลิเคชัน แนวคิดของ Web 2.0 ก็ถือกำเนิดขึ้น คำนี้บัญญัติขึ้นโดย Tim O'Reilly ในปี 2004 เพื่ออ้างถึงรุ่นที่สองในประวัติศาสตร์ของเว็บโดยอิงตามชุมชนผู้ใช้และบริการพิเศษที่หลากหลาย เช่น เครือข่ายโซเชียล บล็อก วิกิ หรือแนวคิดทางสังคมที่ส่งเสริมการทำงานร่วมกันและความคล่องตัว การแลกเปลี่ยนข้อมูลระหว่างผู้ใช้

สถาปัตยกรรมแรกที่ถือได้ว่ามุ่งเน้นการบริการ (SOA) นั้นมีพื้นฐานมาจาก CORBA (Common Object Request Broker Architecture) ซึ่งทำหน้าที่เป็นเลเยอร์นามธรรมเพื่อเชื่อมโยงองค์ประกอบต่างๆ ของสถาปัตยกรรมและสร้างบริการ เทคโนโลยีแรกเริ่มอื่น ๆ ได้แก่ DCOM (Distributed Component Object Model) หรือ RPC (Remote Procedure Protocol) ด้วยความจำเป็นในการออกแบบและใช้งานระบบแบบกระจายบนเว็บอย่างมีประสิทธิภาพ ความท้าทายหลายประการจึงเกิดขึ้น บางส่วนมุ่งเน้นไปที่การพัฒนาตัวเอง (ประสิทธิภาพ ประสบการณ์ผู้ใช้ ฯลฯ) และอื่นๆ ที่เสริมกัน ขึ้นอยู่กับการนำกลับมาใช้ใหม่และความเข้ากันได้ของบริการ จากความต้องการเหล่านี้ Web Services จึงเกิดขึ้นซึ่งมีกลไกที่เป็นมาตรฐานในการเชื่อมต่อผู้ใช้ที่แตกต่างกันกับเซิร์ฟเวอร์ข้อมูล

สถาปัตยกรรมที่เน้นการบริการ

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

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

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

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

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

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

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

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

– ประการที่สี่ SOA ต้องมีกลไกที่ช่วยให้ผู้บริโภคค้นพบผู้ให้บริการในบริบทของบริการที่ผู้บริโภคต้องการ กลไกต้องมีความยืดหยุ่นและต้องไม่ใช่รีจิสทรีแบบรวมศูนย์

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

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

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