ศึกษาปฏิสัมพันธ์ของเครือข่ายในสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์: คุณลักษณะของการโต้ตอบ ระดับกับเลเยอร์

ฐานข้อมูลในสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์

โครงร่างการบรรยาย

1. ลูกค้าและเซิร์ฟเวอร์ เครือข่ายท้องถิ่น

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

3. โมเดลภาระงานในสถาปัตยกรรมไคลเอนต์/เซิร์ฟเวอร์

4. ระดับและรูปแบบของสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์

ที. คอนนอลลี่. ฐานข้อมูล การออกแบบ การใช้งาน และการสนับสนุน ทฤษฎีและการปฏิบัติ.: แปล. จากอังกฤษ – อ.: สำนักพิมพ์. วิลเลียมส์เฮาส์, 2549. – 1440 น.

1 ไคลเอนต์และเซิร์ฟเวอร์ของเครือข่ายท้องถิ่น

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

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

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

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

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

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

ฝั่งเซิร์ฟเวอร์ทำงานบนคอมเพล็กซ์ฮาร์ดแวร์เฉพาะทาง ซึ่งรวมถึงฮาร์ดแวร์ที่มีประสิทธิภาพ ชุดซอฟต์แวร์มาตรฐานที่จำเป็น ระบบการจัดการฐานข้อมูล และฐานข้อมูล

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

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

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

1) ฟังก์ชั่นการสนทนา (Presentation Logic, PL) หรือองค์ประกอบการสร้างภาพ ส่วนประกอบการแสดงภาพงานของแอปพลิเคชันจะให้ข้อมูลที่ผู้ใช้ป้อนโดยใช้วิธีการบางอย่าง รวมถึงการแสดงข้อมูลบนหน้าจอและการพิมพ์ องค์ประกอบการแสดงภาพสำหรับสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์จะถูกดำเนินการที่เวิร์กสเตชันของผู้ใช้เสมอ (เนื่องจากเขาจะต้องสังเกตผลลัพธ์ของโปรแกรม) ในการจัดระเบียบตรรกะการนำเสนอ ส่วนใหญ่จะใช้โมเดลส่วนต่อประสานผู้ใช้แบบกราฟิก GUI (ส่วนต่อประสานกราฟิกกับผู้ใช้) หรือส่วนต่อประสานเว็บ

2) ฟังก์ชันแอปพลิเคชันหรือเป็นส่วนหนึ่งของโค้ดแอปพลิเคชันพร้อมอัลกอริธึมการประมวลผลข้อมูล (Business Logic, BL) องค์ประกอบตรรกะที่ประยุกต์ใช้แก้ปัญหาอย่างใดอย่างหนึ่งที่เกี่ยวข้องกับการประมวลผลข้อมูลในสิ่งหนึ่งหรืออีกปัญหาหนึ่งได้จริง สาขาวิชาและแสดงถึงอัลกอริธึมสำหรับการตอบสนองของแอปพลิเคชันต่อการกระทำของผู้ใช้หรือเหตุการณ์ภายใน กฎการประมวลผลข้อมูล ส่วนประกอบนี้สามารถกระจายระหว่างส่วนไคลเอนต์และเซิร์ฟเวอร์ ในรูปแบบต่างๆขึ้นอยู่กับรุ่นที่ใช้ โดยทั่วไปรหัสนี้จะถูกตั้งโปรแกรมในภาษาการเขียนโปรแกรม ระดับสูง: C, C++, Visual Basic, Object Pascal ฯลฯ;

3) ฟังก์ชั่นการประมวลผลข้อมูลภายในแอปพลิเคชัน (Database Logic, DL) - นี่เป็นส่วนหนึ่งของรหัสแอปพลิเคชันที่เกี่ยวข้องกับการดึงและจัดการข้อมูล (DBMS เองจัดการข้อมูล) ภาษาย่อยคือ SQL

โครงสร้างแอปพลิเคชันไคลเอนต์-เซิร์ฟเวอร์ทั่วไป

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

5) ฟังก์ชั่นบริการที่มีบทบาทในการเชื่อมโยงระหว่างกลุ่มฟังก์ชั่นก่อนหน้า

3 โมเดลภาระงานในสถาปัตยกรรมไคลเอนต์/เซิร์ฟเวอร์

ระบบ "ไคลเอนต์-เซิร์ฟเวอร์" สามารถพึ่งพาการกระจายความรับผิดชอบหลายประเภทระหว่างไคลเอนต์และเซิร์ฟเวอร์:

·ไคลเอนต์ "อัจฉริยะ" (ไคลเอนต์แบบหนา - เซิร์ฟเวอร์แบบบาง);

·เซิร์ฟเวอร์ "อัจฉริยะ" (ไคลเอ็นต์แบบบาง - เซิร์ฟเวอร์แบบหนา);

· ระบบผสม

· ระบบหลายระดับ

DIV_ADBLOCK80">

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

เฉพาะตรรกะการนำเสนอข้อมูลเท่านั้นที่จะถูกนำมาใช้บนคอมพิวเตอร์ไคลเอนต์

ข้อดี:

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

· ง่ายต่อการตรวจสอบความสมบูรณ์ของข้อมูลบนเซิร์ฟเวอร์

· หากจำเป็น ตรรกะทางธุรกิจจะถูกแก้ไขจากส่วนกลาง โดยไม่ต้องเปลี่ยนไคลเอนต์

ข้อบกพร่อง:

· ความต้องการทรัพยากรเซิร์ฟเวอร์เพิ่มขึ้น โดยที่คำขอและการจัดการข้อมูลทั้งหมดถูกดำเนินการ

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

ข้อดีของระบบผสม:

· รหัสเซิร์ฟเวอร์พร้อมใช้งานกับไคลเอนต์จำนวนมากพร้อมกัน ซึ่งช่วยลดค่าใช้จ่ายเมื่อดำเนินการตามคำขอที่คล้ายกัน

· ประสิทธิภาพของไคลเอ็นต์ขึ้นอยู่กับการรับส่งข้อมูลเครือข่ายน้อยลง

ข้อบกพร่อง:

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

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

ข้อดีของระบบหลายระดับ:

· การแยกส่วนประกอบอินเทอร์เฟซ กฎเกณฑ์ทางธุรกิจ และการจัดเก็บข้อมูล ซึ่งเพิ่มประสิทธิภาพของเซิร์ฟเวอร์ฐานข้อมูลและการป้องกันจากการเข้าถึงโดยไม่ได้รับอนุญาต

· การปรับเปลี่ยนกฎเกณฑ์ทางธุรกิจแบบรวมศูนย์

ข้อบกพร่อง:

· ปริมาณการใช้เครือข่ายเพิ่มขึ้น

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

4 ระดับและแบบจำลองสถาปัตยกรรม"ไคลเอนต์เซิร์ฟเวอร์"

ในแง่ของปริมาณ ส่วนประกอบระบบไคลเอนต์เซิร์ฟเวอร์แบ่งออกเป็นสองระดับและสามระดับ

ระบบสองระดับประกอบด้วยไคลเอนต์และเซิร์ฟเวอร์เท่านั้น โมเดลสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์สองระดับประกอบด้วย:

1) รุ่นไฟล์เซิร์ฟเวอร์ (รุ่น FS);

2) รูปแบบการเข้าถึงระยะไกล (รุ่น RDA);

3) รุ่นเซิร์ฟเวอร์ที่ใช้งานอยู่ (รุ่น DBS)

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

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

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

เซิร์ฟเวอร์มีไฟล์ข้อมูลและรองรับการเข้าถึงไฟล์

ในโมเดลนี้ ไคลเอ็นต์จะติดต่อกับเซิร์ฟเวอร์เพื่อขอข้อมูล คำขอของลูกค้าถูกกำหนดไว้ในคำสั่ง NMD DBMS แปลคำขอนี้เป็นลำดับของคำสั่งไฟล์ ระบบจัดการไฟล์ (FMS) อ่านข้อมูลที่ร้องขอจากฐานข้อมูลและถ่ายโอนบล็อกข้อมูลนี้ทีละบล็อกไปยังแอปพลิเคชันไคลเอนต์ จากนั้นไคลเอนต์ DBMS จะวิเคราะห์ข้อมูลที่ได้รับ และหาก บล็อกที่ได้รับไม่มีคำตอบสำหรับคำขอ จากนั้นจะมีการตัดสินใจเกี่ยวกับการสูบข้อมูลบล็อกถัดไป เป็นต้น อันที่จริงโมเดล FS ถือว่า การดำเนินการอัตโนมัติซอฟต์แวร์ IP เปิดอยู่ รถยนต์ที่แตกต่างกันออนไลน์ ส่วนประกอบ IS โต้ตอบเนื่องจากการมีอยู่เท่านั้น ที่เก็บข้อมูลที่ใช้ร่วมกันข้อมูล. แน่นอนว่าพื้นที่จัดเก็บข้อมูลดังกล่าวควรเป็นฐานข้อมูลที่ออกแบบมาอย่างดีซึ่งจัดการโดย DBMS ที่รองรับโมเดล FS เช่น Informix SE DBMS DBMS ประเภทนี้ไม่ถือเป็น "เซิร์ฟเวอร์ที่แท้จริง"

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

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

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

ข้อเสียของสถาปัตยกรรมไฟล์เซิร์ฟเวอร์ได้แก่:

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

· คำสั่งการจัดการข้อมูลมีจำนวนจำกัด อันที่จริงนี่เป็นเพียงคำสั่งไฟล์เท่านั้น

· ประสิทธิภาพต่ำ (ขึ้นอยู่กับประสิทธิภาพของเครือข่าย เซิร์ฟเวอร์ ไคลเอนต์)

· ความสามารถในการเชื่อมต่อกับลูกค้าใหม่ไม่ดี

· ขาดเครื่องมือปกป้องข้อมูลที่พัฒนาขึ้น (เฉพาะในระดับระบบไฟล์)

ข้อดีที่ไม่ต้องสงสัย ได้แก่

· มีประสิทธิภาพสูงในการทำงานด้วย เล่มเล็กข้อมูลในโหมดผู้ใช้คนเดียว

·ความสะดวกในการควบคุมการเข้าถึงจากส่วนกลาง

· ราคาถูกการพัฒนา;

· ความเร็วสูงการพัฒนา;

· ไม่ ราคาสูงการอัปเดตและการเปลี่ยนแปลงซอฟต์แวร์

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

รูปแบบการเข้าถึงระยะไกล ไปยังข้อมูล อาร์ดีเอ ( ระยะไกล ข้อมูล เข้าถึง , อาร์ดีเอ )

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

ไคลเอนต์ลดน้ำหนักอย่างเห็นได้ชัดเมื่อเทียบกับรุ่น FS แต่ฟังก์ชั่นเซิร์ฟเวอร์ได้ขยายออกไปอย่างมาก ปริมาณการใช้เครือข่ายลดลง และข้อได้เปรียบที่สำคัญที่สุดของรุ่น RDA: ภาษา SQL ปรากฏขึ้นพร้อมชุดขยายคำจำกัดความของข้อมูลและการจัดการข้อมูล คำสั่งซึ่งรวมอินเทอร์เฟซไคลเอนต์และเซิร์ฟเวอร์เข้าด้วยกัน

โมเดลสถาปัตยกรรมการเข้าถึงข้อมูลระยะไกล

ข้อดีของรุ่น RDA:

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

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

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

ข้อเสียของรุ่น RDA:

· การรับส่งข้อมูลเครือข่ายยังคงสูง โดยเฉพาะอย่างยิ่งเมื่อ ปริมาณมากลูกค้าและของพวกเขา งานที่เข้มข้นโต้ตอบ;

· การทำซ้ำรหัสแอปพลิเคชันมากเกินไป เช่น การทำซ้ำตรรกะทางธุรกิจสำหรับลูกค้าแต่ละราย

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

โมเดลเซิร์ฟเวอร์ฐานข้อมูล (บางครั้งเรียกว่าเซิร์ฟเวอร์ที่ใช้งานอยู่)

รุ่นเซิร์ฟเวอร์ (เซิร์ฟเวอร์ฐานข้อมูล, DBS) เป็นแนวคิดตามที่ส่วนประกอบของแอปพลิเคชัน (ตรรกะทางธุรกิจ) ตั้งอยู่บางส่วนหรือทั้งหมดบนเซิร์ฟเวอร์ฐานข้อมูล (รูปที่ 4) ตรรกะทางธุรกิจถูกนำมาใช้ในรูปแบบของหน่วยโปรแกรมที่เก็บไว้ (SPU) ทริกเกอร์ และประเภทข้อมูลที่กำหนดเอง ซึ่งจัดเก็บไว้ในฐานข้อมูลและจัดการโดยเซิร์ฟเวอร์ ฐานข้อมูลยังรวบรวมข้อมูลและสร้างฐานข้อมูลเมตาดาต้า (MDB) แอปพลิเคชันไคลเอ็นต์จะติดต่อกับเซิร์ฟเวอร์ด้วยคำสั่งให้เรียกใช้ PreE และหากจำเป็น เซิร์ฟเวอร์จะดำเนินการและบันทึกการเปลี่ยนแปลงในฐานข้อมูล เซิร์ฟเวอร์ส่งคืนผลลัพธ์ของการร้องขอไปยังไคลเอนต์เพื่อส่งออกไปยังอุปกรณ์ต่อพ่วงหรือเพื่อดำเนินการส่วนหนึ่งของตรรกะทางธุรกิจที่อยู่บนไคลเอนต์ ด้วยวิธีการกระจายการประมวลผลข้อมูลนี้ ปริมาณการใช้เครือข่ายจะลดลงอย่างมาก

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

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

ส่วนใหญ่รองรับโมเดล DBS DBMS ที่ทันสมัย: Oracle, Sybase, Ingres, Informix, MS SQL Server ฟังก์ชั่นพวกเขามีอันที่แตกต่างกัน


ข้อดีของรุ่น DBS:

· ความเป็นไปได้ของการบริหารฟังก์ชันแอปพลิเคชันแบบรวมศูนย์

· ลดการรับส่งข้อมูลเครือข่ายเนื่องจากความสามารถในการเรียกขั้นตอนระยะไกล

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

ข้อบกพร่อง:

ฟังก์ชั่นเซิร์ฟเวอร์:

1. ติดตามเหตุการณ์ที่เกี่ยวข้องกับทริกเกอร์ที่อธิบายไว้

2. ให้การเปิดใช้งานทริกเกอร์โดยอัตโนมัติเมื่อมีเหตุการณ์ที่เกี่ยวข้องเกิดขึ้น

3. ตรวจสอบการทำงานของโปรแกรมภายในของแต่ละทริกเกอร์

4. รันขั้นตอนการจัดเก็บตามคำขอของผู้ใช้

5. เปิดตัวขั้นตอนการจัดเก็บจากทริกเกอร์

6. ส่งคืนข้อมูลที่จำเป็นไปยังไคลเอนต์

7. จัดเตรียมฟังก์ชันทั้งหมดของ DBMS: การเข้าถึงข้อมูล การควบคุมและการบำรุงรักษาความสมบูรณ์ของข้อมูลในฐานข้อมูล การควบคุมการเข้าถึง รับรองการทำงานที่ถูกต้องของผู้ใช้ทั้งหมดด้วยฐานข้อมูลเดียว

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

เซิร์ฟเวอร์แอปพลิเคชัน

เซิร์ฟเวอร์แอปพลิเคชัน (แอปพลิเคชัน เซิร์ฟเวอร์, เช่น) - ประเภทของสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์หลายระดับตามโครงร่างเซิร์ฟเวอร์ไคลเอนต์ - แอปพลิเคชัน

โมเดลนี้แนะนำเลเยอร์กลางเพิ่มเติมระหว่างไคลเอนต์และเซิร์ฟเวอร์ ระดับกลางนี้มีเซิร์ฟเวอร์แอปพลิเคชันหนึ่งรายการขึ้นไป ดังนั้นชื่อที่เหมือนกัน - "รุ่นเซิร์ฟเวอร์แอปพลิเคชัน" AS (Application Server)

ในโมเดลนี้ ส่วนประกอบ IS ทั้งหมดจะถูกแบ่งระหว่างนักแสดงสามคน

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

แบบจำลองเซิร์ฟเวอร์แอปพลิเคชัน

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

เซิร์ฟเวอร์ฐานข้อมูลในรุ่นนี้จัดการกับฟังก์ชัน DBMS โดยเฉพาะ

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

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

ข้อดีของรุ่น AS:

· เพิ่มประสิทธิภาพการทำงานโดยการออฟโหลดเซิร์ฟเวอร์

การลดต้นทุนการดำเนินงาน IP;

· ความสามารถในการทำให้ตรรกะทางธุรกิจซับซ้อนโดยไม่สูญเสียประสิทธิภาพ

· ปรับปรุงคุณสมบัติการพกพาและความสามารถในการปรับขนาดของ IS ผ่านการใช้งาน ภาษามาตรฐานการเขียนโปรแกรม เช่น C, C++, Borland Pascal, Small Talk, Java เพื่อใช้ตรรกะทางธุรกิจส่วนใหญ่

· ซอฟต์แวร์ไคลเอนต์ไม่ต้องการการดูแลระบบ

· ความสามารถในการกำหนดค่า – การแยกระดับออกจากกันทำให้คุณสามารถกำหนดค่าระบบใหม่ได้อย่างรวดเร็วและง่ายดายเมื่อเกิดความล้มเหลวหรือเมื่อ การบำรุงรักษาตามกำหนดเวลาที่ระดับใดระดับหนึ่ง

· มีความปลอดภัยสูง

·ความน่าเชื่อถือสูง

· ข้อกำหนดต่ำสำหรับความเร็วช่องสัญญาณ (เครือข่าย) ระหว่างไคลเอนต์และเซิร์ฟเวอร์แอปพลิเคชัน

ข้อกำหนดด้านประสิทธิภาพต่ำและ ข้อกำหนดทางเทคนิคลูกค้าส่งผลให้มูลค่าลดลง

ข้อบกพร่อง:

· ความซับซ้อนของส่วนของเซิร์ฟเวอร์ และส่งผลให้ค่าใช้จ่ายในการดูแลระบบและการบำรุงรักษาเพิ่มขึ้น

· ความซับซ้อนที่สูงขึ้นในการสร้างแอปพลิเคชัน

· ยากต่อการปรับใช้และบริหารจัดการ

· ความต้องการสูงประสิทธิภาพของแอพพลิเคชั่นเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูล จึงมีต้นทุนสูง อุปกรณ์เซิร์ฟเวอร์;

· ข้อกำหนดสูงสำหรับความเร็วช่องสัญญาณ (เครือข่าย) ระหว่างเซิร์ฟเวอร์ฐานข้อมูลและเซิร์ฟเวอร์แอปพลิเคชัน

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

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

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

  1. ฟังก์ชั่นการป้อนข้อมูลและการแสดงผล (ให้การโต้ตอบกับผู้ใช้);
  2. ฟังก์ชันประยุกต์เฉพาะสำหรับสาขาวิชาที่กำหนด
  3. ฟังก์ชั่นการจัดการทรัพยากร ( ระบบไฟล์, ฐานข้อมูล ฯลฯ)

รูปที่ 1. ส่วนประกอบแอปพลิเคชันเครือข่าย

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

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

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

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

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

ในเครือข่ายใดๆ (แม้แต่แบบเพียร์ทูเพียร์) ที่สร้างขึ้นจากเทคโนโลยีเครือข่ายสมัยใหม่ ก็มีองค์ประกอบต่างๆ มากมาย การโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์ส่วนใหญ่มักขึ้นอยู่กับ สถาปัตยกรรมสองชั้น. เรียกว่าสองชั้น (two-tier, 2-tier) เนื่องจากความจำเป็นในการจำหน่าย สามขั้นพื้นฐาน ส่วนประกอบระหว่าง สองโหนด(ไคลเอนต์และเซิร์ฟเวอร์)

รูปที่ 2. สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์แบบสองชั้น

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

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

  • เทอร์มินัลเซิร์ฟเวอร์— การนำเสนอข้อมูลแบบกระจาย
  • ไฟล์เซิร์ฟเวอร์— การเข้าถึงฐานข้อมูลระยะไกลและทรัพยากรไฟล์
  • เซิร์ฟเวอร์ฐานข้อมูล— การนำเสนอข้อมูลระยะไกล
  • เซิร์ฟเวอร์แอปพลิเคชัน- แอปพลิเคชันระยะไกล

มีการนำเสนอรุ่นที่ระบุไว้พร้อมรูปแบบต่างๆ

รูปที่ 3 โมเดลการโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์

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

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

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

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

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

ข้อดีของวิธีนี้ชัดเจน:

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

ข้อเสียเปรียบหลักคือเครื่องมือที่จำกัดในการพัฒนาขั้นตอนการจัดเก็บเมื่อเปรียบเทียบกับภาษาระดับสูง

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

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

รูปที่ 4. สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์สามระดับ

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

ตามกฎแล้ว ลิงก์ที่สามในสถาปัตยกรรมสามระดับคือแอปพลิเคชันเซิร์ฟเวอร์ เช่น ส่วนประกอบมีการกระจายดังนี้ ():

  1. การนำเสนอข้อมูลอยู่ในฝั่งไคลเอ็นต์
  2. ส่วนประกอบแอปพลิเคชัน - บนเซิร์ฟเวอร์แอปพลิเคชันเฉพาะ (เป็นทางเลือก ทำหน้าที่ของมิดเดิลแวร์)
  3. การจัดการทรัพยากร - บนเซิร์ฟเวอร์ฐานข้อมูลซึ่งให้ข้อมูลที่ร้องขอ

รูปที่ 5 สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์หลายระดับ (N-tier)

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

การเปรียบเทียบสถาปัตยกรรม

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

สถาปัตยกรรมสามชั้นมีความซับซ้อนมากกว่า แต่เนื่องจากฟังก์ชันต่างๆ มีการกระจายระหว่างเซิร์ฟเวอร์ระดับที่สองและสาม สถาปัตยกรรมนี้จึงแสดงถึง:

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

เทคโนโลยีไคลเอ็นต์-เซิร์ฟเวอร์

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

เว็บเซิร์ฟเวอร์ในขั้นต้น พวกเขาให้การเข้าถึงเอกสารไฮเปอร์เท็กซ์ผ่านทาง โปรโตคอล HTTP(โปรโตคอลการถ่ายโอนข้อความ Hupper) ตอนนี้พวกเขารองรับความสามารถขั้นสูงโดยเฉพาะการทำงานด้วย ไฟล์ไบนารี(รูปภาพ มัลติมีเดีย ฯลฯ) แอปพลิเคชันเซิร์ฟเวอร์ออกแบบมาเพื่อการแก้ปัญหาแบบรวมศูนย์ในสาขาวิชาเฉพาะ ในการดำเนินการนี้ ผู้ใช้มีสิทธิ์ ปล่อย โปรแกรมเซิร์ฟเวอร์ สำหรับการดำเนินการ การใช้แอพพลิเคชันเซิร์ฟเวอร์จะช่วยลดข้อกำหนดในการกำหนดค่าไคลเอ็นต์และทำให้การจัดการเครือข่ายโดยรวมง่ายขึ้น เซิร์ฟเวอร์ฐานข้อมูลเซิร์ฟเวอร์ฐานข้อมูลใช้ในการประมวลผลคำขอของผู้ใช้ ภาษา SQL. ในกรณีนี้ DBMS จะอยู่บนเซิร์ฟเวอร์ที่แอปพลิเคชันไคลเอนต์เชื่อมต่ออยู่ ไฟล์เซิร์ฟเวอร์ไฟล์เซิร์ฟเวอร์ ร้านค้าข้อมูลในรูปแบบของไฟล์และให้ผู้ใช้สามารถเข้าถึงได้ ตามกฎแล้ว ไฟล์เซิร์ฟเวอร์ยังให้การป้องกันการเข้าถึงโดยไม่ได้รับอนุญาตในระดับหนึ่งด้วย พร็อกซีเซิร์ฟเวอร์ประการแรก จะทำหน้าที่เป็นตัวกลาง ช่วยให้ผู้ใช้รับข้อมูลจากอินเทอร์เน็ตพร้อมทั้งปกป้องเครือข่าย ประการที่สอง จะจัดเก็บข้อมูลที่เข้าถึงบ่อยไว้ในหน่วยความจำแคช ดิสก์ภายในเครื่องส่งมอบให้กับผู้ใช้ได้อย่างรวดเร็วโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตอีกครั้ง ไฟร์วอลล์(ไฟร์วอลล์) ไฟร์วอลล์วิเคราะห์และกรองการรับส่งข้อมูลเครือข่ายเพื่อให้มั่นใจถึงความปลอดภัยของเครือข่าย เมลเซิร์ฟเวอร์ ให้บริการรับและส่งข้อความอีเมล์ เซิร์ฟเวอร์การเข้าถึงระยะไกล (RAS) ระบบเหล่านี้ให้การเชื่อมต่อกับเครือข่ายผ่านสายโทรศัพท์ พนักงานระยะไกลสามารถใช้ทรัพยากรของ LAN ขององค์กรได้โดยเชื่อมต่อโดยใช้โมเด็มปกติ

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

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

ไคลเอนต์ "แบบบาง" คำนี้กำหนดไคลเอนต์ที่มีทรัพยากรการคำนวณเพียงพอที่จะเรียกใช้แอปพลิเคชันเครือข่ายที่จำเป็นผ่านทางเว็บอินเตอร์เฟสเท่านั้น ส่วนต่อประสานผู้ใช้ของแอปพลิเคชันดังกล่าวถูกสร้างขึ้นโดยวิธีการ คงที่ HTML (ไม่ได้จัดเตรียมการดำเนินการ JavaScript) ตรรกะของแอปพลิเคชันทั้งหมดจะถูกดำเนินการบนเซิร์ฟเวอร์
เพื่อให้ไคลเอ็นต์แบบบางทำงานได้ก็เพียงพอที่จะให้ความสามารถในการเปิดเว็บเบราว์เซอร์ในหน้าต่างที่ดำเนินการทั้งหมด ด้วยเหตุนี้ เว็บเบราว์เซอร์จึงมักถูกเรียกว่า "ไคลเอนต์สากล" ไคลเอนต์ "Thick" นี่คือเวิร์กสเตชันหรือคอมพิวเตอร์ส่วนบุคคลที่ใช้ดิสก์ไดรฟ์ของตัวเอง ระบบปฏิบัติการและมี ชุดที่จำเป็นซอฟต์แวร์. ถึง เซิร์ฟเวอร์เครือข่าย“อ้วน” ลูกค้าส่วนใหญ่มาเพื่อ บริการเพิ่มเติม(เช่น การเข้าถึงเว็บเซิร์ฟเวอร์หรือฐานข้อมูลองค์กร)
ไคลเอนต์ "หนา" ยังหมายถึงแอปพลิเคชันเครือข่ายไคลเอนต์ที่ทำงานภายใต้ระบบปฏิบัติการภายในเครื่อง แอปพลิเคชันดังกล่าวรวมส่วนประกอบการนำเสนอข้อมูล (อินเทอร์เฟซผู้ใช้แบบกราฟิก OS) และส่วนประกอบแอปพลิเคชัน (พลังการคำนวณของคอมพิวเตอร์ไคลเอนต์)

ใน เมื่อเร็วๆ นี้มีการใช้คำอื่นมากขึ้นเรื่อยๆ: “rich”-ลูกค้า ลูกค้า "รวย" เป็นการประนีประนอมระหว่างลูกค้า "หนา" และ "บาง" เช่นเดียวกับไคลเอ็นต์แบบธิน ไคลเอ็นต์แบบสมบูรณ์ก็เป็นตัวแทนเช่นกัน กุยอธิบายไว้แล้ว โดยใช้ XMLและรวมถึงฟังก์ชันการทำงานของไคลเอ็นต์ที่หลากหลาย (เช่น อินเทอร์เฟซแบบลากและวาง แท็บ หลายหน้าต่าง เมนูแบบเลื่อนลง ฯลฯ)

ตรรกะของแอปพลิเคชันของไคลเอนต์ "รวย" ก็ถูกนำไปใช้บนเซิร์ฟเวอร์เช่นกัน ข้อมูลถูกส่งไปที่ รูปแบบมาตรฐานแลกเปลี่ยนตาม XML เดียวกัน ( โปรโตคอลสบู่, XML-RPC) และถูกตีความโดยไคลเอ็นต์

โปรโตคอลไคลเอ็นต์แบบสมบูรณ์ที่ใช้ XML พื้นฐานบางส่วนมีดังต่อไปนี้:

บทสรุป

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

คำถามควบคุม

  1. หลักคืออะไร ความคิดของเค-เอสปฏิสัมพันธ์?
  2. อะไรคือความแตกต่างระหว่างแนวคิดของ "สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์" และ "เทคโนโลยีไคลเอนต์-เซิร์ฟเวอร์"?
  3. แสดงรายการส่วนประกอบของการโต้ตอบ C-S
  4. องค์ประกอบการนำเสนอทำหน้าที่อะไรในสถาปัตยกรรม KS
  5. เครื่องมือการเข้าถึงฐานข้อมูลถูกนำเสนอเป็นส่วนประกอบแยกต่างหากในสถาปัตยกรรม KS เพื่อจุดประสงค์ใด
  6. เหตุใดตรรกะทางธุรกิจจึงถูกเน้นเป็นองค์ประกอบแยกต่างหากในสถาปัตยกรรม KS
  7. แสดงรายการโมเดลของการโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์
  8. อธิบายโมเดลไฟล์เซิร์ฟเวอร์
  9. อธิบายโมเดลเซิร์ฟเวอร์ฐานข้อมูล
  10. อธิบายโมเดล "เซิร์ฟเวอร์แอปพลิเคชัน"
  11. อธิบายโมเดลเทอร์มินัลเซิร์ฟเวอร์
  12. แสดงรายการประเภทเซิร์ฟเวอร์หลัก

ที่อยู่ถาวรของหน้านี้:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ดังนั้นโมเดลที่กล่าวถึงข้างต้นจึงมีข้อเสียดังต่อไปนี้

1. ลูกค้า "อ้วน":

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

  • การใช้งานมีความซับซ้อนมากขึ้น เนื่องจากภาษาอย่าง PL/SQL ไม่เหมาะสำหรับการพัฒนาซอฟต์แวร์ดังกล่าวและไม่มีเลย กองทุนที่ดีการดีบัก;
  • ประสิทธิภาพของโปรแกรมที่เขียนด้วยภาษาเช่น PL/SQL นั้นต่ำกว่าโปรแกรมที่สร้างในภาษาอื่นอย่างมาก ซึ่งมีความสำคัญสำหรับระบบที่ซับซ้อน
  • โปรแกรมที่เขียนด้วยภาษา DBMS มักจะไม่ทำงานอย่างน่าเชื่อถือ ข้อผิดพลาดอาจทำให้เซิร์ฟเวอร์ฐานข้อมูลทั้งหมดล้มเหลว
  • โปรแกรมผลลัพธ์ไม่สามารถพกพาไปยังระบบและแพลตฟอร์มอื่นได้อย่างสมบูรณ์
  • เพื่อแก้ไขปัญหาเหล่านี้ จึงมีการใช้สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์หลายระดับ (สามระดับขึ้นไป)

    สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับ

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

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

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

    ระบบไคลเอนต์ - เซิร์ฟเวอร์หลายระดับสามารถถ่ายโอนไปยังเทคโนโลยีเว็บได้อย่างง่ายดาย - ในการทำเช่นนี้ก็เพียงพอแล้วที่จะแทนที่ส่วนไคลเอนต์ด้วยเบราว์เซอร์สากลหรือเฉพาะและเสริมแอปพลิเคชันเซิร์ฟเวอร์ด้วยเว็บเซิร์ฟเวอร์และโปรแกรมเรียกขั้นตอนเซิร์ฟเวอร์ขนาดเล็ก . สามารถใช้ทั้ง Common Gateway Interface (CGI) และเทคโนโลยี Java ที่ทันสมัยกว่าเพื่อพัฒนาโปรแกรมเหล่านี้

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

    ผู้จัดการธุรกรรม

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

    ตัวจัดการธุรกรรมคือโปรแกรมหรือชุดของโปรแกรมที่สามารถใช้เพื่อประสานงานการทำงานของส่วนประกอบต่างๆ ของระบบสารสนเทศ ตามหลักเหตุผล MT จะแบ่งออกเป็นหลายส่วน:

  • Communication Manager ควบคุมการแลกเปลี่ยนข้อความระหว่างส่วนประกอบของระบบข้อมูล
  • Authorization Manager ให้การรับรองความถูกต้องของผู้ใช้และการตรวจสอบสิทธิ์การเข้าถึงของพวกเขา
  • ผู้จัดการธุรกรรมจัดการการดำเนินงานแบบกระจาย
  • Log Manager จะตรวจสอบการกู้คืนและการย้อนกลับของการดำเนินการแบบกระจาย
  • Lock Manager ช่วยให้มั่นใจได้ถึงการเข้าถึงข้อมูลที่ใช้ร่วมกันอย่างถูกต้อง
  • โดยทั่วไปแล้ว ตัวจัดการการสื่อสารจะรวมกับตัวจัดการการอนุญาต และตัวจัดการธุรกรรมจะทำงานร่วมกับตัวจัดการการล็อคและล็อค บันทึกของระบบ. ยิ่งไปกว่านั้น ผู้จัดการดังกล่าวไม่ค่อยรวมอยู่ในแพ็คเกจ เนื่องจากฟังก์ชันของมัน (การเก็บบันทึก การกระจายทรัพยากร และการดำเนินการควบคุม) มักจะดำเนินการโดยฐานข้อมูลเอง (เช่น Oracle)

    ผู้จัดการธุรกรรมกลุ่มแรกปรากฏตัวในช่วงต้นทศวรรษที่ 70 (เช่น CICS); ตั้งแต่นั้นมาพวกเขาก็มีการเปลี่ยนแปลงทางอุดมการณ์เล็กน้อย แต่มีความสำคัญมากในด้านเทคโนโลยี การเปลี่ยนแปลงทางอุดมการณ์ที่ยิ่งใหญ่ที่สุดเกิดขึ้นในตัวจัดการการสื่อสาร เนื่องจากเทคโนโลยีเชิงวัตถุใหม่ (CORBA, DCOM ฯลฯ ) ปรากฏขึ้นในพื้นที่นี้ เนื่องจากสื่อการสื่อสารมีการพัฒนาอย่างรวดเร็วในอนาคตเราจึงสามารถคาดหวังได้ ใช้กันอย่างแพร่หลายผู้จัดการธุรกรรมประเภทต่างๆ

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

    เนื้อหาสำหรับบทความนี้จัดทำโดย ASoft; โทร. 261-5724. สามารถติดต่อ Valery Korzhov ได้ที่

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

    ในบรรดาสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับ สถาปัตยกรรมที่พบมากที่สุดคือสถาปัตยกรรมสามระดับ ( สถาปัตยกรรมสามชั้นสามชั้น) ซึ่งถือว่ามีส่วนประกอบของแอปพลิเคชันต่อไปนี้: แอปพลิเคชันไคลเอ็นต์ (โดยปกติเรียกว่า "ไคลเอ็นต์แบบบาง" หรือเทอร์มินัล) ที่เชื่อมต่อกับ แอปพลิเคชันเซิร์ฟเวอร์ซึ่งก็เชื่อมโยงไปถึงด้วย เซิร์ฟเวอร์ฐานข้อมูล [ , ].

    ข้าว. 5.4.


    ข้าว. 5.4.การแสดงสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับ

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

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

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

    ข้อดีของสถาปัตยกรรมนี้คือ [ , , , ]:

    • ซอฟต์แวร์ไคลเอนต์ไม่ต้องการการดูแลระบบ
    • ความสามารถในการขยายขนาด;
    • ความสามารถในการกำหนดค่า – การแยกระดับออกจากกันทำให้คุณสามารถกำหนดค่าระบบใหม่ได้อย่างรวดเร็วและง่ายดายเมื่อเกิดความล้มเหลวหรือระหว่างการบำรุงรักษาตามกำหนดเวลาที่ระดับใดระดับหนึ่ง
    • ความปลอดภัยสูง
    • ความน่าเชื่อถือสูง
    • ข้อกำหนดต่ำสำหรับความเร็วช่อง (เครือข่าย) ระหว่างเทอร์มินัลและ แอปพลิเคชันเซิร์ฟเวอร์;
    • ข้อกำหนดต่ำสำหรับประสิทธิภาพและคุณลักษณะทางเทคนิคของเทอร์มินัล ส่งผลให้ต้นทุนลดลง
    • ความซับซ้อนของส่วนของเซิร์ฟเวอร์และส่งผลให้ค่าใช้จ่ายในการดูแลและบำรุงรักษาเพิ่มขึ้น
    • ความซับซ้อนที่สูงขึ้นในการสร้างแอปพลิเคชัน
    • ยากขึ้นในการปรับใช้และบริหารจัดการ
    • ข้อกำหนดประสิทธิภาพสูง แอปพลิเคชันเซิร์ฟเวอร์และ เซิร์ฟเวอร์ฐานข้อมูลและทำให้อุปกรณ์เซิร์ฟเวอร์มีราคาสูง
    • ข้อกำหนดสูงสำหรับความเร็วของช่องสัญญาณ (เครือข่าย) ระหว่าง เซิร์ฟเวอร์ฐานข้อมูลและ แอปพลิเคชันเซิร์ฟเวอร์.
    1. ผลงาน;
    2. ชั้นการนำเสนอ
    3. ระดับลอจิก
    4. ชั้นข้อมูล;
    5. ข้อมูล.


    ข้าว. 5.5.สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับห้าระดับ

    การนำเสนอประกอบด้วยข้อมูลทั้งหมดที่แสดงต่อผู้ใช้โดยตรง: หน้า HTML ที่สร้างขึ้น สไตล์ชีท รูปภาพ

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

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

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

    ข้อมูลระบบมักจะถูกเก็บไว้ในฐานข้อมูล

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

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

    ในทางแผนผัง สถาปัตยกรรมดังกล่าวสามารถแสดงได้ดังแสดงในรูปที่ 1 5.6.


    ข้าว. 5.6.

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

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