สถาปัตยกรรมแบบกระจาย

ในสถาปัตยกรรมแบบกระจายส่วนประกอบจะถูกนำเสนอบนแพลตฟอร์มที่แตกต่างกันและส่วนประกอบต่างๆสามารถทำงานร่วมกันผ่านเครือข่ายการสื่อสารเพื่อให้บรรลุวัตถุประสงค์หรือเป้าหมายที่เฉพาะเจาะจง

  • ในสถาปัตยกรรมนี้การประมวลผลข้อมูลไม่ได้ จำกัด อยู่ที่เครื่องเดียว แต่จะกระจายไปยังคอมพิวเตอร์อิสระหลายเครื่อง

  • ระบบกระจายสามารถแสดงให้เห็นได้โดยสถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์ซึ่งเป็นฐานสำหรับสถาปัตยกรรมหลายชั้น ทางเลือกอื่นคือสถาปัตยกรรมนายหน้าเช่น CORBA และสถาปัตยกรรมเชิงบริการ (SOA)

  • มีเฟรมเวิร์กเทคโนโลยีหลายอย่างเพื่อรองรับสถาปัตยกรรมแบบกระจาย ได้แก่ . NET, J2EE, CORBA, .NET Web services, AXIS Java Web services และ Globus Grid services

  • มิดเดิลแวร์เป็นโครงสร้างพื้นฐานที่รองรับการพัฒนาและการเรียกใช้แอปพลิเคชันแบบกระจายอย่างเหมาะสม มีบัฟเฟอร์ระหว่างแอปพลิเคชันและเครือข่าย

  • ตั้งอยู่ตรงกลางของระบบและจัดการหรือสนับสนุนส่วนประกอบต่างๆของระบบแบบกระจาย ตัวอย่าง ได้แก่ จอภาพการประมวลผลธุรกรรมตัวแปลงข้อมูลและตัวควบคุมการสื่อสารเป็นต้น

มิดเดิลแวร์เป็นโครงสร้างพื้นฐานสำหรับระบบกระจาย

พื้นฐานของสถาปัตยกรรมแบบกระจายคือความโปร่งใสความน่าเชื่อถือและความพร้อมใช้งาน

ตารางต่อไปนี้แสดงความโปร่งใสในรูปแบบต่างๆในระบบกระจาย -

ซีเนียร์ ความโปร่งใสและคำอธิบาย
1

Access

ซ่อนวิธีการเข้าถึงทรัพยากรและความแตกต่างในแพลตฟอร์มข้อมูล

2

Location

ซ่อนตำแหน่งของทรัพยากร

3

Technology

ซ่อนเทคโนโลยีต่างๆเช่นภาษาโปรแกรมและระบบปฏิบัติการจากผู้ใช้

4

Migration / Relocation

ซ่อนทรัพยากรที่อาจถูกย้ายไปยังตำแหน่งอื่นที่ใช้งานอยู่

5

Replication

ซ่อนทรัพยากรที่อาจถูกคัดลอกในหลายตำแหน่ง

6

Concurrency

ซ่อนทรัพยากรที่อาจแชร์กับผู้ใช้รายอื่น

7

Failure

ซ่อนความล้มเหลวและการกู้คืนทรัพยากรจากผู้ใช้

8

Persistence

ซ่อนว่าทรัพยากร (ซอฟต์แวร์) อยู่ในหน่วยความจำหรือดิสก์

ข้อดี

  • Resource sharing - การแบ่งปันทรัพยากรฮาร์ดแวร์และซอฟต์แวร์

  • Openness - ความยืดหยุ่นในการใช้ฮาร์ดแวร์และซอฟต์แวร์ของผู้ขายที่แตกต่างกัน

  • Concurrency - การประมวลผลพร้อมกันเพื่อเพิ่มประสิทธิภาพ

  • Scalability - เพิ่มปริมาณงานโดยการเพิ่มทรัพยากรใหม่

  • Fault tolerance - ความสามารถในการทำงานต่อไปหลังจากเกิดข้อผิดพลาด

ข้อเสีย

  • Complexity - มีความซับซ้อนมากกว่าระบบรวมศูนย์

  • Security - ไวต่อการโจมตีจากภายนอกมากขึ้น

  • Manageability - ต้องใช้ความพยายามมากขึ้นในการจัดการระบบ

  • Unpredictability - การตอบสนองที่คาดเดาไม่ได้ขึ้นอยู่กับองค์กรของระบบและภาระของเครือข่าย

ระบบส่วนกลางเทียบกับระบบกระจาย

เกณฑ์ ระบบรวมศูนย์ ระบบกระจาย
เศรษฐศาสตร์ ต่ำ สูง
ความพร้อมใช้งาน ต่ำ สูง
ความซับซ้อน ต่ำ สูง
ความสม่ำเสมอ เรียบง่าย สูง
ความสามารถในการปรับขนาด แย่ ดี
เทคโนโลยี เป็นเนื้อเดียวกัน ต่างกัน
ความปลอดภัย สูง ต่ำ

สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์

สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์เป็นสถาปัตยกรรมระบบแบบกระจายที่พบมากที่สุดซึ่งแยกย่อยระบบออกเป็นสองระบบย่อยหลักหรือกระบวนการทางตรรกะ -

  • Client - นี่เป็นกระบวนการแรกที่ส่งคำขอไปยังกระบวนการที่สองคือเซิร์ฟเวอร์

  • Server - นี่เป็นกระบวนการที่สองที่รับคำขอดำเนินการและส่งคำตอบกลับไปยังลูกค้า

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

สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์สามารถแบ่งออกเป็นสองรุ่นตามการทำงานของไคลเอนต์ -

รุ่น Thin-Client

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

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

  • ข้อเสียที่สำคัญคือทำให้เกิดภาระการประมวลผลจำนวนมากทั้งบนเซิร์ฟเวอร์และเครือข่าย

รุ่นลูกค้าหนา / อ้วน

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

  • เหมาะสมที่สุดสำหรับระบบ C / S ใหม่ที่ทราบความสามารถของระบบไคลเอนต์ล่วงหน้า

  • ซับซ้อนกว่าแบบจำลองไคลเอ็นต์แบบบางโดยเฉพาะสำหรับการจัดการ ต้องติดตั้งแอปพลิเคชันเวอร์ชันใหม่บนไคลเอนต์ทั้งหมด

ข้อดี

  • การแยกความรับผิดชอบเช่นการนำเสนอส่วนติดต่อผู้ใช้และการประมวลผลตรรกะทางธุรกิจ

  • การนำส่วนประกอบเซิร์ฟเวอร์กลับมาใช้ใหม่และศักยภาพในการทำงานพร้อมกัน

  • ลดความยุ่งยากในการออกแบบและการพัฒนาแอปพลิเคชันแบบกระจาย

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

  • นอกจากนี้ยังใช้ทรัพยากรอย่างมีประสิทธิภาพเมื่อลูกค้าจำนวนมากเข้าถึงเซิร์ฟเวอร์ที่มีประสิทธิภาพสูง

ข้อเสีย

  • ขาดโครงสร้างพื้นฐานที่แตกต่างกันเพื่อรับมือกับการเปลี่ยนแปลงข้อกำหนด

  • ภาวะแทรกซ้อนด้านความปลอดภัย

  • ความพร้อมใช้งานของเซิร์ฟเวอร์ที่ จำกัด และความน่าเชื่อถือ

  • ความสามารถในการทดสอบและความยืดหยุ่นที่ จำกัด

  • ลูกค้าอ้วนด้วยการนำเสนอและตรรกะทางธุรกิจร่วมกัน

สถาปัตยกรรมหลายชั้น (สถาปัตยกรรม n-tier)

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

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

ระดับการนำเสนอ

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

ระดับแอปพลิเคชัน (Business Logic, Logic Tier หรือ Middle Tier)

ระดับแอปพลิเคชันจะประสานแอปพลิเคชันประมวลผลคำสั่งตัดสินใจเชิงตรรกะประเมินผลและทำการคำนวณ ควบคุมการทำงานของแอปพลิเคชันโดยดำเนินการประมวลผลโดยละเอียด นอกจากนี้ยังย้ายและประมวลผลข้อมูลระหว่างสองชั้นโดยรอบ

ชั้นข้อมูล

ในชั้นนี้ข้อมูลจะถูกจัดเก็บและเรียกใช้จากฐานข้อมูลหรือระบบไฟล์ จากนั้นข้อมูลจะถูกส่งกลับไปเพื่อประมวลผลแล้วกลับไปยังผู้ใช้ ประกอบด้วยกลไกการคงอยู่ของข้อมูล (เซิร์ฟเวอร์ฐานข้อมูลการแชร์ไฟล์ ฯลฯ ) และจัดเตรียม API (Application Programming Interface) ให้กับระดับแอปพลิเคชันซึ่งมีวิธีการจัดการข้อมูลที่จัดเก็บไว้

Advantages

  • ประสิทธิภาพที่ดีกว่าวิธีการสำหรับลูกค้ารายย่อยและง่ายกว่าในการจัดการมากกว่าแนวทางลูกค้ารายใหญ่

  • เพิ่มความสามารถในการนำกลับมาใช้ใหม่และความสามารถในการปรับขนาด - เมื่อความต้องการเพิ่มขึ้นสามารถเพิ่มเซิร์ฟเวอร์เพิ่มเติมได้

  • ให้การสนับสนุนมัลติเธรดและยังช่วยลดปริมาณการใช้งานเครือข่าย

  • ให้การบำรุงรักษาและความยืดหยุ่น

Disadvantages

  • ความสามารถในการทดสอบที่ไม่น่าพอใจเนื่องจากไม่มีเครื่องมือทดสอบ

  • ความน่าเชื่อถือและความพร้อมใช้งานของเซิร์ฟเวอร์ที่สำคัญยิ่งขึ้น

รูปแบบสถาปัตยกรรมนายหน้า

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

  • ไคลเอนต์และเซิร์ฟเวอร์ไม่โต้ตอบกันโดยตรง ไคลเอนต์และเซิร์ฟเวอร์มีการเชื่อมต่อโดยตรงกับพร็อกซีซึ่งสื่อสารกับโบรกเกอร์คนกลาง

  • เซิร์ฟเวอร์ให้บริการโดยการลงทะเบียนและเผยแพร่อินเทอร์เฟซกับโบรกเกอร์และลูกค้าสามารถร้องขอบริการจากโบรกเกอร์แบบคงที่หรือแบบไดนามิกโดยการค้นหา

  • CORBA (Common Object Request Broker Architecture) เป็นตัวอย่างการใช้งานที่ดีของสถาปัตยกรรมนายหน้า

ส่วนประกอบของรูปแบบสถาปัตยกรรมนายหน้า

ส่วนประกอบของรูปแบบสถาปัตยกรรมนายหน้าจะกล่าวถึงผ่านหัวต่อไปนี้ -

Broker

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

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

  • จะเก็บรักษาข้อมูลการลงทะเบียนของเซิร์ฟเวอร์รวมถึงฟังก์ชันการทำงานและบริการตลอดจนข้อมูลตำแหน่งที่ตั้ง

  • มี API สำหรับไคลเอ็นต์เพื่อร้องขอเซิร์ฟเวอร์เพื่อตอบสนองการลงทะเบียนหรือยกเลิกการลงทะเบียนส่วนประกอบเซิร์ฟเวอร์การถ่ายโอนข้อความและการระบุตำแหน่งเซิร์ฟเวอร์

Stub

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

พร็อกซีจะซ่อน IPC (การสื่อสารระหว่างกระบวนการ) ที่ระดับโปรโตคอลและดำเนินการจัดเก็บค่าพารามิเตอร์และยกเลิกการจัดเก็บผลลัพธ์จากเซิร์ฟเวอร์

Skeleton

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

มันได้รับการร้องขอ, คลายแพ็กคำขอ, unmarshals อาร์กิวเมนต์ของเมธอด, เรียกใช้บริการที่เหมาะสมและยังรวบรวมผลลัพธ์ก่อนที่จะส่งกลับไปยังไคลเอนต์

Bridge

บริดจ์สามารถเชื่อมต่อเครือข่ายสองเครือข่ายที่แตกต่างกันโดยอาศัยโปรโตคอลการสื่อสารที่แตกต่างกัน เป็นสื่อกลางของโบรกเกอร์ต่างๆรวมถึงโบรกเกอร์ DCOM, .NET remote และ Java CORBA

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

Broker implementation in CORBA

CORBA เป็นมาตรฐานสากลสำหรับ Object Request Broker ซึ่งเป็นตัวกลางในการจัดการการสื่อสารระหว่างอ็อบเจ็กต์แบบกระจายที่กำหนดโดย OMG (กลุ่มการจัดการอ็อบเจ็กต์)

สถาปัตยกรรมเชิงบริการ (SOA)

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

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

คุณสมบัติของ SOA

สถาปัตยกรรมที่มุ่งเน้นบริการมีคุณสมบัติดังต่อไปนี้ -

  • Distributed Deployment - เปิดเผยข้อมูลขององค์กรและตรรกะทางธุรกิจเป็นหน่วยการทำงานที่เรียกว่าบริการอย่างหลวม ๆ คู่ค้นพบโครงสร้างเป็นไปตามมาตรฐานหยาบหยาบไร้สัญชาติ

  • Composability - รวบรวมกระบวนการใหม่จากบริการที่มีอยู่ซึ่งเปิดเผยในรายละเอียดที่ต้องการผ่านอินเทอร์เฟซการร้องเรียนที่กำหนดไว้อย่างดีเผยแพร่และมาตรฐาน

  • Interoperability - แบ่งปันความสามารถและนำบริการที่ใช้ร่วมกันมาใช้ซ้ำในเครือข่ายโดยไม่คำนึงถึงโปรโตคอลหรือเทคโนโลยีการใช้งาน

  • Reusability - เลือกผู้ให้บริการและเข้าถึงทรัพยากรที่มีอยู่ซึ่งเปิดเผยเป็นบริการ

การทำงานของ SOA

รูปต่อไปนี้แสดงให้เห็นว่า SOA ทำงานอย่างไร -

Advantages

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

  • ส่วนประกอบของบริการแต่ละส่วนไม่ขึ้นอยู่กับบริการอื่น ๆ เนื่องจากคุณลักษณะของบริการไร้สัญชาติ

  • การใช้งานบริการจะไม่ส่งผลกระทบต่อการใช้บริการตราบเท่าที่ไม่มีการเปลี่ยนแปลงอินเทอร์เฟซที่เปิดเผย

  • ลูกค้าหรือบริการใด ๆ สามารถเข้าถึงบริการอื่น ๆ โดยไม่คำนึงถึงแพลตฟอร์มเทคโนโลยีผู้ขายหรือการใช้งานภาษา

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

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

  • ช่วยเพิ่มความสามารถในการปรับขนาดและให้การเชื่อมต่อมาตรฐานระหว่างระบบ

  • การใช้ 'บริการทางธุรกิจ' อย่างมีประสิทธิภาพและประสิทธิผล

  • การรวมจะง่ายขึ้นมากและปรับปรุงความสามารถในการทำงานร่วมกันภายใน

  • ความซับซ้อนเชิงนามธรรมสำหรับนักพัฒนาและกระตุ้นให้กระบวนการทางธุรกิจใกล้ชิดกับผู้ใช้มากขึ้น