ฐานข้อมูลในสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์
โครงร่างการบรรยาย
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. ส่วนประกอบแอปพลิเคชันเครือข่าย
การใช้งานฟังก์ชั่นเหล่านี้ส่วนใหญ่มาจากซอฟต์แวร์ซึ่งสามารถแสดงในรูปแบบของส่วนประกอบที่เชื่อมต่อถึงกัน () โดยที่:
- ดูองค์ประกอบรับผิดชอบส่วนต่อประสานกับผู้ใช้
- ส่วนประกอบแอปพลิเคชันใช้อัลกอริทึมสำหรับการแก้ปัญหาเฉพาะ
- องค์ประกอบการควบคุมทรัพยากรให้การเข้าถึงทรัพยากรที่จำเป็น
ระบบสแตนด์อโลน (คอมพิวเตอร์ที่ไม่ได้เชื่อมต่อกับเครือข่าย) แสดงถึงส่วนประกอบเหล่านี้ทั้งหมด ทั้งในระดับต่างๆ (ระบบปฏิบัติการ ซอฟต์แวร์ยูทิลิตี้และยูทิลิตี้ แอพพลิเคชั่นซอฟต์แวร์) และในระดับแอพพลิเคชั่น (ซึ่งไม่ปกติสำหรับ โปรแกรมที่ทันสมัย). เครือข่ายเหมือนกัน - แสดงถึงส่วนประกอบเหล่านี้ทั้งหมด แต่โดยทั่วไปแล้วจะกระจายระหว่างโหนด งานลงมาเพื่อให้มั่นใจ เครือข่ายระหว่างส่วนประกอบเหล่านี้
สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์กำหนด หลักการทั่วไปการจัดปฏิสัมพันธ์ในเครือข่ายที่มี เซิร์ฟเวอร์โหนดที่ให้บริการฟังก์ชันเฉพาะบางอย่าง (บริการ) และ ลูกค้าผู้บริโภคของฟังก์ชันเหล่านี้
การนำไปปฏิบัติจริงของสถาปัตยกรรมดังกล่าวเรียกว่า เทคโนโลยีไคลเอ็นต์-เซิร์ฟเวอร์. แต่ละเทคโนโลยีจะกำหนดของตนเองหรือใช้กฎที่มีอยู่สำหรับการโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์ซึ่งเรียกว่า โปรโตคอลการแลกเปลี่ยน (โปรโตคอลการโต้ตอบ).
ในเครือข่ายใดๆ (แม้แต่แบบเพียร์ทูเพียร์) ที่สร้างขึ้นจากเทคโนโลยีเครือข่ายสมัยใหม่ ก็มีองค์ประกอบต่างๆ มากมาย การโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์ส่วนใหญ่มักขึ้นอยู่กับ สถาปัตยกรรมสองชั้น. เรียกว่าสองชั้น (two-tier, 2-tier) เนื่องจากความจำเป็นในการจำหน่าย สามขั้นพื้นฐาน ส่วนประกอบระหว่าง สองโหนด(ไคลเอนต์และเซิร์ฟเวอร์)
รูปที่ 2. สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์แบบสองชั้น
สถาปัตยกรรมสองชั้นถูกใช้ในระบบไคลเอนต์-เซิร์ฟเวอร์ โดยที่เซิร์ฟเวอร์ตอบสนองต่อคำขอของลูกค้าโดยตรงและทั้งหมด โดยใช้ทรัพยากรของตัวเองเท่านั้น เหล่านั้น. เซิร์ฟเวอร์ไม่เรียกใช้แอปพลิเคชันเครือข่ายของบุคคลที่สามและไม่สามารถเข้าถึงได้ ทรัพยากรของบุคคลที่สามเพื่อดำเนินการส่วนใดส่วนหนึ่งของคำขอ ()
ตำแหน่งของส่วนประกอบบนฝั่งไคลเอ็นต์หรือเซิร์ฟเวอร์จะกำหนดโมเดลพื้นฐานต่อไปนี้ของการโต้ตอบภายในสถาปัตยกรรมสองระดับ:
- เทอร์มินัลเซิร์ฟเวอร์— การนำเสนอข้อมูลแบบกระจาย
- ไฟล์เซิร์ฟเวอร์— การเข้าถึงฐานข้อมูลระยะไกลและทรัพยากรไฟล์
- เซิร์ฟเวอร์ฐานข้อมูล— การนำเสนอข้อมูลระยะไกล
- เซิร์ฟเวอร์แอปพลิเคชัน- แอปพลิเคชันระยะไกล
มีการนำเสนอรุ่นที่ระบุไว้พร้อมรูปแบบต่างๆ
รูปที่ 3 โมเดลการโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์
ในอดีต แบบจำลองการนำเสนอข้อมูลแบบกระจาย (แบบจำลองเทอร์มินัลเซิร์ฟเวอร์) เป็นรูปแบบแรกที่ปรากฏ มันถูกนำไปใช้บนคอมพิวเตอร์สากล (เมนเฟรม) ซึ่งทำหน้าที่เป็นเซิร์ฟเวอร์โดยมีเทอร์มินัลตัวอักษรและตัวเลขเชื่อมต่ออยู่ ผู้ใช้ป้อนข้อมูลจากแป้นพิมพ์เทอร์มินัล ซึ่งจากนั้นจะถ่ายโอนไปยังเมนเฟรมและประมวลผลที่นั่น รวมถึงการสร้าง "รูปภาพ" ของผลลัพธ์ “รูปภาพ” นี้ถูกส่งกลับไปยังผู้ใช้บนหน้าจอเทอร์มินัล
ด้วยการถือกำเนิดของคอมพิวเตอร์ส่วนบุคคลและเครือข่ายท้องถิ่น จึงมีการนำโมเดลเซิร์ฟเวอร์ไฟล์มาใช้ ซึ่งให้การเข้าถึงทรัพยากรไฟล์ รวมถึงฐานข้อมูลระยะไกล ในกรณีนี้ โฮสต์เครือข่ายเฉพาะคือไฟล์เซิร์ฟเวอร์ซึ่งมีไฟล์ฐานข้อมูลอยู่ ไคลเอนต์เรียกใช้แอปพลิเคชันที่รวมส่วนประกอบการนำเสนอและส่วนประกอบแอปพลิเคชัน (DBMS และแอปพลิเคชันโปรแกรม) โดยใช้ฐานข้อมูลระยะไกลที่เชื่อมต่อเป็นไฟล์ในเครื่อง ในกรณีนี้ โปรโตคอลการแลกเปลี่ยนแสดงถึงชุดของการเรียกระดับต่ำไปยังการดำเนินการระบบไฟล์
แบบจำลองนี้แสดงให้เห็นว่าไม่ได้ผลเนื่องจากปัญหาเกิดขึ้นเมื่อทำงานกับตารางฐานข้อมูลอย่างแข็งขัน แรงกดดันมหาศาลไปยังเครือข่าย วิธีแก้ปัญหาบางส่วนคือรองรับการจำลองแบบตารางและแบบสอบถาม ในกรณีนี้ ตัวอย่างเช่น เมื่อข้อมูลเปลี่ยนแปลง ตารางจะไม่อัปเดตทั้งหมด แต่จะอัปเดตเฉพาะส่วนที่แก้ไขเท่านั้น
ด้วยการถือกำเนิดของ DBMS เฉพาะทาง ทำให้เป็นไปได้ที่จะนำโมเดลการเข้าถึงฐานข้อมูลระยะไกลไปใช้ในรูปแบบอื่น นั่นคือโมเดลเซิร์ฟเวอร์ฐานข้อมูล ในกรณีนี้เคอร์เนล DBMS ทำงานบนเซิร์ฟเวอร์ โปรแกรมประยุกต์บนไคลเอนต์ และโปรโตคอลการสื่อสารมีให้โดยใช้ภาษา SQL แนวทางนี้เมื่อเปรียบเทียบกับไฟล์เซิร์ฟเวอร์ จะช่วยลดภาระเครือข่ายและการรวมอินเทอร์เฟซไคลเอ็นต์-เซิร์ฟเวอร์เข้าด้วยกัน อย่างไรก็ตาม ปริมาณการใช้เครือข่ายยังคงค่อนข้างสูง และยังเป็นไปไม่ได้เลยที่จะจัดการแอปพลิเคชันอย่างน่าพอใจ เนื่องจากฟังก์ชันต่างๆ ถูกรวมไว้ในโปรแกรมเดียว
ด้วยการพัฒนาและการดำเนินการตามกลไกการจัดเก็บในระดับเซิร์ฟเวอร์ฐานข้อมูลแนวคิดของ เซิร์ฟเวอร์ฐานข้อมูลที่ใช้งานอยู่. ในกรณีนี้ ฟังก์ชันบางอย่างของส่วนประกอบแอปพลิเคชันจะถูกนำไปใช้ในรูปแบบของขั้นตอนการจัดเก็บที่ดำเนินการบนฝั่งเซิร์ฟเวอร์ ส่วนที่เหลือของตรรกะของแอปพลิเคชันจะดำเนินการบนฝั่งไคลเอ็นต์ โปรโตคอลการโต้ตอบเป็นภาษาถิ่นที่สอดคล้องกันของภาษา SQL
ข้อดีของวิธีนี้ชัดเจน:
- สามารถบริหารจัดการฟังก์ชันแอปพลิเคชันแบบรวมศูนย์ได้
- ลดต้นทุนการเป็นเจ้าของระบบ (TOC, ต้นทุนรวมในการเป็นเจ้าของ) โดยการเช่าเซิร์ฟเวอร์แทนที่จะซื้อมัน
- การลดลงอย่างมากในการรับส่งข้อมูลเครือข่าย (เนื่องจากไม่ใช่การสืบค้น SQL ที่ถูกส่ง แต่เป็นการเรียกใช้ขั้นตอนที่เก็บไว้)
ข้อเสียเปรียบหลักคือเครื่องมือที่จำกัดในการพัฒนาขั้นตอนการจัดเก็บเมื่อเปรียบเทียบกับภาษาระดับสูง
การใช้งานส่วนประกอบแอปพลิเคชันบนฝั่งเซิร์ฟเวอร์แสดงถึงโมเดลต่อไปนี้ - แอปพลิเคชันเซิร์ฟเวอร์ การย้ายฟังก์ชันการทำงานของส่วนประกอบแอปพลิเคชันไปยังเซิร์ฟเวอร์จะช่วยลดข้อกำหนดในการกำหนดค่าไคลเอ็นต์และทำให้การดูแลระบบง่ายขึ้น แต่กลับเพิ่มความต้องการในด้านประสิทธิภาพของเซิร์ฟเวอร์ ความปลอดภัย และความน่าเชื่อถือ
ในปัจจุบัน มีแนวโน้มที่จะกลับไปสู่จุดที่สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์เริ่มต้นขึ้น - เพื่อรวมศูนย์คอมพิวเตอร์ตามโมเดลเทอร์มินัลเซิร์ฟเวอร์ ในการกลับชาติมาเกิดสมัยใหม่ เทอร์มินัลแตกต่างจากบรรพบุรุษที่เป็นตัวอักษรและตัวเลขตรงที่มีซอฟต์แวร์และฮาร์ดแวร์ขั้นต่ำ ความสามารถด้านมัลติมีเดีย(รวม. ส่วนติดต่อผู้ใช้แบบกราฟิก). การทำงานของเทอร์มินัลรับประกันโดยเซิร์ฟเวอร์ประสิทธิภาพสูง ซึ่งทุกอย่างตั้งอยู่ รวมถึงไดรเวอร์อุปกรณ์เสมือน รวมถึงไดรเวอร์ระบบย่อยวิดีโอ
รูปที่ 4. สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์สามระดับ
แนวโน้มอีกประการหนึ่งของเทคโนโลยีไคลเอ็นต์-เซิร์ฟเวอร์คือการใช้คอมพิวเตอร์แบบกระจายที่เพิ่มขึ้น พวกมันถูกนำไปใช้งานตามรุ่นของแอพพลิเคชั่นเซิร์ฟเวอร์ โดยที่แอพพลิเคชั่นเครือข่ายจะถูกแบ่งออกเป็นสองส่วนขึ้นไป ซึ่งแต่ละส่วนสามารถดำเนินการได้ คอมพิวเตอร์แยกต่างหาก. ส่วนเฉพาะของแอปพลิเคชันจะสื่อสารถึงกัน แลกเปลี่ยนข้อความในรูปแบบที่ตกลงไว้ล่วงหน้า ในกรณีนี้ สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์แบบสองระดับจะกลายเป็น สามชั้น (สามชั้น, 3 ชั้น).
ตามกฎแล้ว ลิงก์ที่สามในสถาปัตยกรรมสามระดับคือแอปพลิเคชันเซิร์ฟเวอร์ เช่น ส่วนประกอบมีการกระจายดังนี้ ():
- การนำเสนอข้อมูลอยู่ในฝั่งไคลเอ็นต์
- ส่วนประกอบแอปพลิเคชัน - บนเซิร์ฟเวอร์แอปพลิเคชันเฉพาะ (เป็นทางเลือก ทำหน้าที่ของมิดเดิลแวร์)
- การจัดการทรัพยากร - บนเซิร์ฟเวอร์ฐานข้อมูลซึ่งให้ข้อมูลที่ร้องขอ
รูปที่ 5 สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์หลายระดับ (N-tier)
สถาปัตยกรรมสามชั้นสามารถขยายออกไปได้ หลายชั้น (N-ชั้น, หลายชั้น)โดยการจัดสรรเซิร์ฟเวอร์เพิ่มเติม ซึ่งแต่ละเซิร์ฟเวอร์จะให้บริการของตนเองและใช้บริการของเซิร์ฟเวอร์อื่น ระดับที่แตกต่างกัน. ตัวอย่างเชิงนามธรรมของโมเดลมัลติลิงก์มีให้ที่
การเปรียบเทียบสถาปัตยกรรม
สถาปัตยกรรมสองชั้นนั้นง่ายกว่า เนื่องจากคำขอทั้งหมดให้บริการโดยเซิร์ฟเวอร์เดียว แต่ด้วยเหตุนี้ จึงมีความน่าเชื่อถือน้อยลง และทำให้มีความต้องการประสิทธิภาพของเซิร์ฟเวอร์สูงขึ้น
สถาปัตยกรรมสามชั้นมีความซับซ้อนมากกว่า แต่เนื่องจากฟังก์ชันต่างๆ มีการกระจายระหว่างเซิร์ฟเวอร์ระดับที่สองและสาม สถาปัตยกรรมนี้จึงแสดงถึง:
- ความยืดหยุ่นและความสามารถในการปรับขนาดในระดับสูง
- มีความปลอดภัยสูง(เพราะสามารถกำหนดการป้องกันได้สำหรับแต่ละบริการหรือระดับ)
- ประสิทธิภาพสูง(เนื่องจากมีการกระจายงานระหว่างเซิร์ฟเวอร์)
เทคโนโลยีไคลเอ็นต์-เซิร์ฟเวอร์
สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ถูกนำมาใช้ จำนวนมากเทคโนโลยีเครือข่ายที่ใช้ในการเข้าถึงต่างๆ บริการเครือข่าย. มาดูบริการ (และเซิร์ฟเวอร์) บางประเภทโดยย่อ
เว็บเซิร์ฟเวอร์ในขั้นต้น พวกเขาให้การเข้าถึงเอกสารไฮเปอร์เท็กซ์ผ่านทาง โปรโตคอล HTTP(โปรโตคอลการถ่ายโอนข้อความ Hupper) ตอนนี้พวกเขารองรับความสามารถขั้นสูงโดยเฉพาะการทำงานด้วย ไฟล์ไบนารี(รูปภาพ มัลติมีเดีย ฯลฯ) แอปพลิเคชันเซิร์ฟเวอร์ออกแบบมาเพื่อการแก้ปัญหาแบบรวมศูนย์ในสาขาวิชาเฉพาะ ในการดำเนินการนี้ ผู้ใช้มีสิทธิ์ ปล่อย โปรแกรมเซิร์ฟเวอร์ สำหรับการดำเนินการ การใช้แอพพลิเคชันเซิร์ฟเวอร์จะช่วยลดข้อกำหนดในการกำหนดค่าไคลเอ็นต์และทำให้การจัดการเครือข่ายโดยรวมง่ายขึ้น เซิร์ฟเวอร์ฐานข้อมูลเซิร์ฟเวอร์ฐานข้อมูลใช้ในการประมวลผลคำขอของผู้ใช้ ภาษา SQL. ในกรณีนี้ DBMS จะอยู่บนเซิร์ฟเวอร์ที่แอปพลิเคชันไคลเอนต์เชื่อมต่ออยู่ ไฟล์เซิร์ฟเวอร์ไฟล์เซิร์ฟเวอร์ ร้านค้าข้อมูลในรูปแบบของไฟล์และให้ผู้ใช้สามารถเข้าถึงได้ ตามกฎแล้ว ไฟล์เซิร์ฟเวอร์ยังให้การป้องกันการเข้าถึงโดยไม่ได้รับอนุญาตในระดับหนึ่งด้วย พร็อกซีเซิร์ฟเวอร์ประการแรก จะทำหน้าที่เป็นตัวกลาง ช่วยให้ผู้ใช้รับข้อมูลจากอินเทอร์เน็ตพร้อมทั้งปกป้องเครือข่าย ประการที่สอง จะจัดเก็บข้อมูลที่เข้าถึงบ่อยไว้ในหน่วยความจำแคช ดิสก์ภายในเครื่องส่งมอบให้กับผู้ใช้ได้อย่างรวดเร็วโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตอีกครั้ง ไฟร์วอลล์(ไฟร์วอลล์) ไฟร์วอลล์วิเคราะห์และกรองการรับส่งข้อมูลเครือข่ายเพื่อให้มั่นใจถึงความปลอดภัยของเครือข่าย เมลเซิร์ฟเวอร์ ให้บริการรับและส่งข้อความอีเมล์ เซิร์ฟเวอร์การเข้าถึงระยะไกล (RAS) ระบบเหล่านี้ให้การเชื่อมต่อกับเครือข่ายผ่านสายโทรศัพท์ พนักงานระยะไกลสามารถใช้ทรัพยากรของ LAN ขององค์กรได้โดยเชื่อมต่อโดยใช้โมเด็มปกตินี่เป็นเพียงส่วนหนึ่งของเทคโนโลยีไคลเอ็นต์-เซิร์ฟเวอร์ที่หลากหลายที่ใช้ในเครือข่ายทั้งในระดับท้องถิ่นและระดับโลก
ในการเข้าถึงบริการเครือข่ายบางอย่าง ไคลเอนต์จะถูกใช้ซึ่งมีความสามารถตามแนวคิดของ "ความหนา" โดยจะกำหนดการกำหนดค่าฮาร์ดแวร์และซอฟต์แวร์ที่ไคลเอ็นต์สามารถใช้ได้ ลองพิจารณาค่าขอบเขตที่เป็นไปได้:
ไคลเอนต์ "แบบบาง" คำนี้กำหนดไคลเอนต์ที่มีทรัพยากรการคำนวณเพียงพอที่จะเรียกใช้แอปพลิเคชันเครือข่ายที่จำเป็นผ่านทางเว็บอินเตอร์เฟสเท่านั้น ส่วนต่อประสานผู้ใช้ของแอปพลิเคชันดังกล่าวถูกสร้างขึ้นโดยวิธีการ คงที่ HTML (ไม่ได้จัดเตรียมการดำเนินการ JavaScript) ตรรกะของแอปพลิเคชันทั้งหมดจะถูกดำเนินการบนเซิร์ฟเวอร์
เพื่อให้ไคลเอ็นต์แบบบางทำงานได้ก็เพียงพอที่จะให้ความสามารถในการเปิดเว็บเบราว์เซอร์ในหน้าต่างที่ดำเนินการทั้งหมด ด้วยเหตุนี้ เว็บเบราว์เซอร์จึงมักถูกเรียกว่า "ไคลเอนต์สากล" ไคลเอนต์ "Thick" นี่คือเวิร์กสเตชันหรือคอมพิวเตอร์ส่วนบุคคลที่ใช้ดิสก์ไดรฟ์ของตัวเอง ระบบปฏิบัติการและมี ชุดที่จำเป็นซอฟต์แวร์. ถึง เซิร์ฟเวอร์เครือข่าย“อ้วน” ลูกค้าส่วนใหญ่มาเพื่อ บริการเพิ่มเติม(เช่น การเข้าถึงเว็บเซิร์ฟเวอร์หรือฐานข้อมูลองค์กร)
ไคลเอนต์ "หนา" ยังหมายถึงแอปพลิเคชันเครือข่ายไคลเอนต์ที่ทำงานภายใต้ระบบปฏิบัติการภายในเครื่อง แอปพลิเคชันดังกล่าวรวมส่วนประกอบการนำเสนอข้อมูล (อินเทอร์เฟซผู้ใช้แบบกราฟิก OS) และส่วนประกอบแอปพลิเคชัน (พลังการคำนวณของคอมพิวเตอร์ไคลเอนต์)
ใน เมื่อเร็วๆ นี้มีการใช้คำอื่นมากขึ้นเรื่อยๆ: “rich”-ลูกค้า ลูกค้า "รวย" เป็นการประนีประนอมระหว่างลูกค้า "หนา" และ "บาง" เช่นเดียวกับไคลเอ็นต์แบบธิน ไคลเอ็นต์แบบสมบูรณ์ก็เป็นตัวแทนเช่นกัน กุยอธิบายไว้แล้ว โดยใช้ XMLและรวมถึงฟังก์ชันการทำงานของไคลเอ็นต์ที่หลากหลาย (เช่น อินเทอร์เฟซแบบลากและวาง แท็บ หลายหน้าต่าง เมนูแบบเลื่อนลง ฯลฯ)
ตรรกะของแอปพลิเคชันของไคลเอนต์ "รวย" ก็ถูกนำไปใช้บนเซิร์ฟเวอร์เช่นกัน ข้อมูลถูกส่งไปที่ รูปแบบมาตรฐานแลกเปลี่ยนตาม XML เดียวกัน ( โปรโตคอลสบู่, XML-RPC) และถูกตีความโดยไคลเอ็นต์
โปรโตคอลไคลเอ็นต์แบบสมบูรณ์ที่ใช้ XML พื้นฐานบางส่วนมีดังต่อไปนี้:
- XAML (eXtensible Application Markup Language) - พัฒนาโดย Microsoft ใช้ในแอปพลิเคชันบนแพลตฟอร์ม .NET
- XUL (XML User Interface Language) เป็นมาตรฐานที่พัฒนาขึ้นภายใน โครงการมอซิลลา, ใช้แล้ว เช่น ใน โปรแกรมรับส่งเมล มอซิลลา ธันเดอร์เบิร์ดหรือเบราว์เซอร์ Mozilla Firefox
- เฟล็กซ์ - เทคโนโลยีมัลติมีเดียบน อิง XMLพัฒนาโดย Macromedia/Adobe
บทสรุป
ดังนั้น, แนวคิดหลักของสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์คือการแบ่งแอปพลิเคชันเครือข่ายออกเป็นหลายองค์ประกอบซึ่งแต่ละแห่งใช้ชุดบริการเฉพาะ ส่วนประกอบของแอปพลิเคชันดังกล่าวสามารถทำงานได้ คอมพิวเตอร์ที่แตกต่างกันทำหน้าที่เซิร์ฟเวอร์และ/หรือไคลเอ็นต์ สิ่งนี้จะปรับปรุงความน่าเชื่อถือ ความปลอดภัย และประสิทธิภาพ แอปพลิเคชันเครือข่ายและเครือข่ายโดยทั่วไป
คำถามควบคุม
- หลักคืออะไร ความคิดของเค-เอสปฏิสัมพันธ์?
- อะไรคือความแตกต่างระหว่างแนวคิดของ "สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์" และ "เทคโนโลยีไคลเอนต์-เซิร์ฟเวอร์"?
- แสดงรายการส่วนประกอบของการโต้ตอบ C-S
- องค์ประกอบการนำเสนอทำหน้าที่อะไรในสถาปัตยกรรม KS
- เครื่องมือการเข้าถึงฐานข้อมูลถูกนำเสนอเป็นส่วนประกอบแยกต่างหากในสถาปัตยกรรม KS เพื่อจุดประสงค์ใด
- เหตุใดตรรกะทางธุรกิจจึงถูกเน้นเป็นองค์ประกอบแยกต่างหากในสถาปัตยกรรม KS
- แสดงรายการโมเดลของการโต้ตอบระหว่างไคลเอนต์และเซิร์ฟเวอร์
- อธิบายโมเดลไฟล์เซิร์ฟเวอร์
- อธิบายโมเดลเซิร์ฟเวอร์ฐานข้อมูล
- อธิบายโมเดล "เซิร์ฟเวอร์แอปพลิเคชัน"
- อธิบายโมเดลเทอร์มินัลเซิร์ฟเวอร์
- แสดงรายการประเภทเซิร์ฟเวอร์หลัก
ที่อยู่ถาวรของหน้านี้:
เพื่อแก้ไขปัญหาเหล่านี้ จึงมีการใช้สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์หลายระดับ (สามระดับขึ้นไป)
สถาปัตยกรรมดังกล่าวจะกระจายโมดูลการประมวลผลข้อมูลได้อย่างชาญฉลาดยิ่งขึ้น กรณีจะดำเนินการในหนึ่งหรือหลายกรณี เซิร์ฟเวอร์แยกต่างหาก. เหล่านี้ โมดูลซอฟต์แวร์ทำหน้าที่ของเซิร์ฟเวอร์สำหรับการเชื่อมต่อกับผู้ใช้และไคลเอนต์สำหรับเซิร์ฟเวอร์ฐานข้อมูล นอกจากนี้ แอปพลิเคชันเซิร์ฟเวอร์ที่แตกต่างกันสามารถสื่อสารระหว่างกันเพื่อแบ่งระบบออกเป็นหน่วยการทำงานที่ทำหน้าที่เฉพาะเจาะจงได้แม่นยำยิ่งขึ้น
ตัวอย่างเช่น คุณสามารถเลือกเซิร์ฟเวอร์การจัดการบุคลากรที่จะทำหน้าที่ทั้งหมดที่จำเป็นสำหรับการบริหารงานบุคคล ด้วยการเชื่อมโยงฐานข้อมูลแยกต่างหาก คุณสามารถซ่อนรายละเอียดการใช้งานเซิร์ฟเวอร์นี้จากผู้ใช้ได้ ทำให้พวกเขาสามารถเข้าถึงเฉพาะฟังก์ชันสาธารณะเท่านั้น นอกจากนี้ ระบบดังกล่าวยังปรับให้เข้ากับเว็บได้ง่ายมาก เนื่องจากเป็นการง่ายกว่าในการพัฒนารูปแบบ HTML เพื่อให้ผู้ใช้เข้าถึงฟังก์ชันบางอย่างของฐานข้อมูล แทนที่จะเป็นข้อมูลทั้งหมด
ในสถาปัตยกรรมสามชั้น ไคลเอนต์ไม่ได้โอเวอร์โหลดด้วยฟังก์ชันการประมวลผลข้อมูล แต่มีบทบาทหลักในฐานะระบบในการนำเสนอข้อมูลที่มาจากแอปพลิเคชันเซิร์ฟเวอร์ อินเทอร์เฟซดังกล่าวสามารถใช้งานได้ วิธีการมาตรฐานเทคโนโลยีเว็บ - เบราว์เซอร์, CGI และ Java ซึ่งจะช่วยลดปริมาณข้อมูลที่ถ่ายโอนระหว่างไคลเอ็นต์และแอปพลิเคชันเซิร์ฟเวอร์ ทำให้คุณสามารถเชื่อมต่อได้ คอมพิวเตอร์ไคลเอนต์แม้กระทั่งบนสายที่ช้า เช่น สายโทรศัพท์ นอกจากนี้ ฝั่งไคลเอ็นต์อาจเรียบง่ายมากจนในกรณีส่วนใหญ่จะมีการนำไปใช้งาน เบราว์เซอร์สากล. แต่ถ้าคุณยังต้องเปลี่ยนขั้นตอนนี้ก็สามารถทำได้อย่างรวดเร็วและไม่ลำบาก สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์สามระดับช่วยให้สามารถกำหนดสิทธิ์ผู้ใช้ได้แม่นยำยิ่งขึ้น เนื่องจากพวกเขาได้รับสิทธิ์การเข้าถึงไม่ใช่ฐานข้อมูล แต่สำหรับฟังก์ชันบางอย่างของแอปพลิเคชันเซิร์ฟเวอร์ สิ่งนี้จะเพิ่มความปลอดภัยของระบบ (เมื่อเทียบกับสถาปัตยกรรมทั่วไป) ไม่เพียงแต่จากการโจมตีโดยเจตนา แต่ยังจากการกระทำที่ผิดพลาดของบุคลากรด้วย
ตัวอย่างเช่น พิจารณาระบบที่มีส่วนต่างๆ ทำงานบนหลายส่วน เพื่อนที่อยู่ห่างไกลจากเซิร์ฟเวอร์อื่น สมมติว่าได้รับระบบเวอร์ชันใหม่จากผู้พัฒนาเพื่อติดตั้งใน สถาปัตยกรรมสองชั้นจำเป็นต้องเปลี่ยนโมดูลระบบทั้งหมดพร้อมกัน หากยังไม่เสร็จสิ้น การโต้ตอบระหว่างไคลเอนต์เก่ากับเซิร์ฟเวอร์ใหม่อาจนำไปสู่ผลลัพธ์ที่คาดเดาไม่ได้ เนื่องจากนักพัฒนามักจะไม่นับรวมการใช้ระบบดังกล่าว ในสถาปัตยกรรมสามชั้น สถานการณ์จะง่ายขึ้น ความจริงก็คือด้วยการเปลี่ยนเซิร์ฟเวอร์แอปพลิเคชันและเซิร์ฟเวอร์จัดเก็บข้อมูล (ซึ่งทำได้ง่ายในเวลาเดียวกันเนื่องจากทั้งสองมักจะอยู่ใกล้กัน) เราจะเปลี่ยนชุดทันที บริการที่มีอยู่. ดังนั้นโอกาสที่จะเกิดข้อผิดพลาดเนื่องจากความไม่ตรงกันระหว่างเวอร์ชันของเซิร์ฟเวอร์และส่วนของไคลเอ็นต์จึงลดลงอย่างมาก ถ้าเข้า. เวอร์ชั่นใหม่หากบริการใดหายไปองค์ประกอบอินเทอร์เฟซที่ให้บริการในระบบเก่าก็จะไม่ทำงาน หากอัลกอริธึมของบริการมีการเปลี่ยนแปลง ก็จะทำงานได้อย่างถูกต้องแม้จะใช้อินเทอร์เฟซเก่าก็ตาม
ระบบไคลเอนต์ - เซิร์ฟเวอร์หลายระดับสามารถถ่ายโอนไปยังเทคโนโลยีเว็บได้อย่างง่ายดาย - ในการทำเช่นนี้ก็เพียงพอแล้วที่จะแทนที่ส่วนไคลเอนต์ด้วยเบราว์เซอร์สากลหรือเฉพาะและเสริมแอปพลิเคชันเซิร์ฟเวอร์ด้วยเว็บเซิร์ฟเวอร์และโปรแกรมเรียกขั้นตอนเซิร์ฟเวอร์ขนาดเล็ก . ในการพัฒนาโปรแกรมเหล่านี้คุณสามารถใช้ทั้งสองอย่างได้ เกตเวย์ทั่วไปอินเทอร์เฟซ (CGI) และอื่นๆ เทคโนโลยีที่ทันสมัยชวา
ควรสังเกตว่าในระบบสามระดับข้อมูลจำนวนมากจะถูกส่งผ่านช่องทางการสื่อสารระหว่างแอปพลิเคชันเซิร์ฟเวอร์และฐานข้อมูล อย่างไรก็ตาม สิ่งนี้ไม่ได้ทำให้การคำนวณช้าลงเนื่องจากการสื่อสาร องค์ประกอบที่ระบุสามารถใช้สายที่เร็วกว่าได้ สิ่งนี้ต้องใช้ความพยายามเพียงเล็กน้อยเนื่องจากเซิร์ฟเวอร์ทั้งสองมักจะตั้งอยู่ในสถานที่เดียวกัน ดังนั้นประสิทธิภาพโดยรวมของระบบจึงเพิ่มขึ้น - ขณะนี้คนสองคนกำลังทำงานอยู่ในงานเดียว เซิร์ฟเวอร์ที่แตกต่างกันและการสื่อสารระหว่างกันสามารถทำได้ผ่านสายที่เร็วที่สุดโดยมีค่าใช้จ่ายน้อยที่สุด จริงอยู่ที่มีปัญหาความสอดคล้องของการคำนวณร่วมกันซึ่งผู้จัดการธุรกรรมซึ่งเป็นองค์ประกอบใหม่ของระบบหลายระดับถูกเรียกร้องให้แก้ไข
เทคโนโลยีไคลเอ็นต์-เซิร์ฟเวอร์ถือเป็นหนึ่งใน “เสาหลัก” ที่ถูกต้องซึ่ง โลกสมัยใหม่ เครือข่ายคอมพิวเตอร์. แต่งานเหล่านั้นที่ได้รับการพัฒนานั้นค่อยๆ กลายเป็นเรื่องในอดีต และงานและเทคโนโลยีใหม่ๆ ก็ปรากฏขึ้นในที่เกิดเหตุ ซึ่งจำเป็นต้องคิดใหม่เกี่ยวกับหลักการของระบบไคลเอนต์-เซิร์ฟเวอร์ เทคโนโลยีหนึ่งดังกล่าวคือเวิลด์ไวด์เว็บ
การใช้เทคโนโลยี เอกสารไฮเปอร์เท็กซ์เพื่อสร้างภายใน โครงสร้างพื้นฐานข้อมูลบริษัทได้รับแรงกระตุ้นจากการพัฒนาอย่างรวดเร็วของระบบไคลเอนต์-เซิร์ฟเวอร์ทุกประเภท บางคนพยายามเปรียบเทียบเทคโนโลยีเว็บกับสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์ แต่สิ่งนี้ทำให้เข้าใจผิด เพราะในความเป็นจริง เว็บธุรกิจคือการพัฒนาสถาปัตยกรรมนี้ เราสามารถพูดได้ว่าระบบเว็บมีสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์ นั่นคือการใช้ไคลเอนต์เดียวคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์จำนวนมากได้ เว็บเบราว์เซอร์ที่ให้ ส่วนต่อประสานที่ใช้งานง่ายกับผู้ใช้ในการเข้าถึงข้อมูลเป็นเพียงส่วนยอดของภูเขาน้ำแข็งมากที่สุด ระดับสูง ระบบเว็บ. นอกเหนือจากอินเทอร์เฟซแล้ว ระบบข้อมูลใดๆ จะต้องมีระดับการประมวลผลและการจัดเก็บข้อมูล นักพัฒนาอินทราเน็ตมักมีปัญหาในการจัดตำแหน่งที่เหมาะสม งานเว็บกับองค์ประกอบอื่นๆ ของระบบ เช่น ฐานข้อมูล วิธีหนึ่งที่มีแนวโน้มในการแก้ปัญหานี้คือสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์หลายระดับ เพื่อให้เข้าใจถึงข้อดีของมัน เรามาดูระบบไคลเอนต์-เซิร์ฟเวอร์แบบเดิมๆ กันดีกว่า
สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์แบบคลาสสิก
คำว่า "ไคลเอนต์-เซิร์ฟเวอร์" หมายถึงสถาปัตยกรรมของชุดซอฟต์แวร์ที่ส่วนการทำงานโต้ตอบกันตามรูปแบบ "การร้องขอและการตอบกลับ" หากเราพิจารณาสองส่วนที่โต้ตอบของคอมเพล็กซ์นี้ หนึ่งในนั้น (ไคลเอนต์) ทำหน้าที่ที่ใช้งานอยู่นั่นคือมันเริ่มต้นคำขอและอีกส่วนหนึ่ง (เซิร์ฟเวอร์) ตอบกลับอย่างอดทน เมื่อระบบพัฒนาขึ้น บทบาทอาจมีการเปลี่ยนแปลง เช่น บางส่วน บล็อกโปรแกรมจะทำหน้าที่ของเซิร์ฟเวอร์ที่เกี่ยวข้องกับบล็อกหนึ่งและไคลเอนต์ที่เกี่ยวข้องกับบล็อกอื่นพร้อมกัน
โปรดทราบว่าระบบข้อมูลใดๆ จะต้องมีส่วนการทำงานหลักอย่างน้อยสามส่วน ได้แก่ โมดูลสำหรับการจัดเก็บข้อมูล การประมวลผลข้อมูล และอินเทอร์เฟซผู้ใช้ แต่ละส่วนเหล่านี้สามารถนำไปใช้ได้อย่างอิสระจากอีกสองส่วน ตัวอย่างเช่น โดยไม่ต้องเปลี่ยนโปรแกรมที่ใช้ในการจัดเก็บและประมวลผลข้อมูล คุณสามารถเปลี่ยนอินเทอร์เฟซผู้ใช้เพื่อให้ข้อมูลเดียวกันแสดงในรูปแบบของตาราง กราฟ หรือฮิสโตแกรม โดยไม่ต้องเปลี่ยนโปรแกรมการนำเสนอข้อมูลและจัดเก็บข้อมูล คุณสามารถเปลี่ยนโปรแกรมประมวลผลได้ เช่น โดยการเปลี่ยนอัลกอริทึม ค้นหาข้อความแบบเต็ม. สุดท้ายนี้ โดยไม่ต้องเปลี่ยนโปรแกรมสำหรับการนำเสนอและประมวลผลข้อมูล คุณสามารถเปลี่ยนซอฟต์แวร์สำหรับจัดเก็บข้อมูล การย้าย เช่น ไปยังระบบไฟล์อื่นได้
ในสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์แบบคลาสสิก สามส่วนหลักของแอปพลิเคชันจะต้องกระจายไปยังโมดูลฟิสิคัลสองโมดูล โดยทั่วไป ซอฟต์แวร์จัดเก็บข้อมูลจะอยู่บนเซิร์ฟเวอร์ (เช่น เซิร์ฟเวอร์ฐานข้อมูล) ส่วนต่อประสานกับผู้ใช้อยู่บนฝั่งไคลเอ็นต์ แต่การประมวลผลข้อมูลจะต้องมีการกระจายระหว่างไคลเอนต์และส่วนของเซิร์ฟเวอร์ นี่คือข้อเสียเปรียบหลักของสถาปัตยกรรมสองชั้นซึ่งมีหลายแบบ คุณสมบัติอันไม่พึงประสงค์ทำให้การพัฒนาระบบไคลเอ็นต์-เซิร์ฟเวอร์มีความซับซ้อนอย่างมาก
เมื่อแยกอัลกอริธึมการประมวลผลข้อมูล จำเป็นต้องซิงโครไนซ์พฤติกรรมของทั้งสองส่วนของระบบ นักพัฒนาทุกคนจะต้องมีข้อมูลที่ครบถ้วนเกี่ยวกับ การเปลี่ยนแปลงล่าสุดการเปลี่ยนแปลงที่เกิดขึ้นกับระบบและทำความเข้าใจการเปลี่ยนแปลงเหล่านี้ สิ่งนี้สร้างปัญหาอย่างมากในการพัฒนาระบบไคลเอนต์ - เซิร์ฟเวอร์การติดตั้งและการบำรุงรักษาเนื่องจากจำเป็นต้องใช้ความพยายามอย่างมากในการประสานงานการดำเนินการ กลุ่มที่แตกต่างกันผู้เชี่ยวชาญ การกระทำของนักพัฒนามักเกิดความขัดแย้งและทำให้การพัฒนาระบบช้าลงและบังคับให้พวกเขาเปลี่ยนองค์ประกอบสำเร็จรูปและผ่านการพิสูจน์แล้ว
เพื่อหลีกเลี่ยงความไม่สอดคล้องกันระหว่างองค์ประกอบต่างๆ ของสถาปัตยกรรม พวกเขาพยายามประมวลผลข้อมูลในหนึ่งในสองส่วนทางกายภาพ - ทั้งบนฝั่งไคลเอ็นต์ (ไคลเอนต์แบบหนา) หรือบนเซิร์ฟเวอร์ (ไคลเอนต์แบบบาง หรือสถาปัตยกรรมที่เรียกว่าไคลเอนต์ 2.5 ระดับ) เซิร์ฟเวอร์") แต่ละวิธีมีข้อเสีย ในกรณีแรก เครือข่ายมีการโอเวอร์โหลดอย่างไม่สมเหตุสมผล เนื่องจากข้อมูลถูกส่งผ่านเครือข่ายโดยไม่ได้รับการประมวลผล ดังนั้นจึงมีความซ้ำซ้อน นอกจากนี้ การสนับสนุนและการเปลี่ยนแปลงระบบทำได้ยากขึ้น เนื่องจากการแทนที่อัลกอริธึมการคำนวณหรือการแก้ไขข้อผิดพลาดจำเป็นต้องมีการแทนที่โปรแกรมอินเทอร์เฟซทั้งหมดพร้อมกัน มิฉะนั้นข้อผิดพลาดหรือข้อมูลไม่สอดคล้องกันอาจเกิดขึ้นได้ หากดำเนินการประมวลผลข้อมูลทั้งหมดบนเซิร์ฟเวอร์ (เมื่อเป็นไปได้) ปัญหาในการอธิบายขั้นตอนในตัวและการดีบักจะเกิดขึ้น ประเด็นก็คือภาษาสำหรับการอธิบายขั้นตอนในตัวมักจะเป็นแบบประกาศ ดังนั้น โดยหลักการแล้วไม่อนุญาตให้ การดีบักทีละขั้นตอน. นอกจากนี้ ระบบที่มีการประมวลผลข้อมูลบนเซิร์ฟเวอร์นั้นเป็นไปไม่ได้เลยที่จะถ่ายโอนไปยังแพลตฟอร์มอื่น ซึ่งเป็นข้อเสียเปรียบร้ายแรง
เครื่องมือการพัฒนาแอปพลิเคชันอย่างรวดเร็ว (RAD) ที่ทันสมัยที่สุดที่ใช้งานได้ ฐานข้อมูลต่างๆข้อมูล จะใช้กลยุทธ์แรก กล่าวคือ ไคลเอนต์แบบหนาจัดเตรียมอินเทอร์เฟซกับเซิร์ฟเวอร์ฐานข้อมูลผ่าน SQL แบบฝัง ตัวเลือกสำหรับการนำระบบไปใช้งานกับไคลเอนต์ "หนา" นี้ นอกเหนือจากข้อเสียที่ระบุไว้ข้างต้น มักจะให้ระดับความปลอดภัยที่ต่ำจนไม่อาจยอมรับได้ ตัวอย่างเช่น ในระบบธนาคาร ผู้ดำเนินการธุรกรรมทั้งหมดจะต้องได้รับสิทธิ์ในการเขียนลงในตารางหลักของระบบบัญชี นอกจากนี้แทบจะเป็นไปไม่ได้เลยที่จะถ่ายโอนระบบนี้ไปยังเทคโนโลยีเว็บเนื่องจากมีการใช้ซอฟต์แวร์ไคลเอนต์เฉพาะเพื่อเข้าถึงเซิร์ฟเวอร์ฐานข้อมูล
ดังนั้นโมเดลที่กล่าวถึงข้างต้นจึงมีข้อเสียดังต่อไปนี้
1. ลูกค้า "อ้วน":
2. เซิร์ฟเวอร์ "อ้วน":
เพื่อแก้ไขปัญหาเหล่านี้ จึงมีการใช้สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์หลายระดับ (สามระดับขึ้นไป)
สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับ
สถาปัตยกรรมดังกล่าวจะกระจายโมดูลการประมวลผลข้อมูลอย่างชาญฉลาดยิ่งขึ้น ซึ่งในกรณีนี้ทำงานบนเซิร์ฟเวอร์ที่แยกกันตั้งแต่หนึ่งเซิร์ฟเวอร์ขึ้นไป โมดูลซอฟต์แวร์เหล่านี้ทำหน้าที่ของเซิร์ฟเวอร์สำหรับอินเทอร์เฟซผู้ใช้และไคลเอนต์สำหรับเซิร์ฟเวอร์ฐานข้อมูล นอกจากนี้ แอปพลิเคชันเซิร์ฟเวอร์ที่แตกต่างกันสามารถสื่อสารระหว่างกันเพื่อแบ่งระบบออกเป็นหน่วยการทำงานที่ทำหน้าที่เฉพาะเจาะจงได้แม่นยำยิ่งขึ้น ตัวอย่างเช่น คุณสามารถเลือกเซิร์ฟเวอร์การจัดการบุคลากรที่จะทำหน้าที่ทั้งหมดที่จำเป็นสำหรับการบริหารงานบุคคล ด้วยการเชื่อมโยงฐานข้อมูลแยกต่างหาก คุณสามารถซ่อนรายละเอียดการใช้งานเซิร์ฟเวอร์นี้จากผู้ใช้ได้ ทำให้พวกเขาสามารถเข้าถึงเฉพาะฟังก์ชันสาธารณะเท่านั้น นอกจากนี้ ระบบดังกล่าวยังปรับให้เข้ากับเว็บได้ง่ายมาก เนื่องจากเป็นการง่ายกว่าในการพัฒนารูปแบบ HTML เพื่อให้ผู้ใช้เข้าถึงฟังก์ชันบางอย่างของฐานข้อมูล แทนที่จะเป็นข้อมูลทั้งหมด
ในสถาปัตยกรรมสามชั้น ธินไคลเอ็นต์ไม่ได้มีฟังก์ชันการประมวลผลข้อมูลมากเกินไป แต่มีบทบาทหลักในฐานะระบบในการนำเสนอข้อมูลที่มาจากแอปพลิเคชันเซิร์ฟเวอร์ อินเทอร์เฟซดังกล่าวสามารถใช้งานได้โดยใช้เครื่องมือเทคโนโลยีเว็บมาตรฐาน - เบราว์เซอร์, CGI และ Java ซึ่งจะช่วยลดปริมาณข้อมูลที่ถ่ายโอนระหว่างไคลเอ็นต์และแอปพลิเคชันเซิร์ฟเวอร์ ทำให้คอมพิวเตอร์ไคลเอ็นต์สามารถเชื่อมต่อได้แม้ผ่านสายที่ช้า เช่น สายโทรศัพท์ นอกจากนี้ฝั่งไคลเอ็นต์ยังสามารถทำได้ง่ายโดยส่วนใหญ่แล้วจะดำเนินการโดยใช้เบราว์เซอร์สากล แต่ถ้าคุณยังต้องเปลี่ยนขั้นตอนนี้ก็สามารถทำได้อย่างรวดเร็วและไม่ลำบาก สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์สามระดับช่วยให้สามารถกำหนดสิทธิ์ผู้ใช้ได้แม่นยำยิ่งขึ้น เนื่องจากพวกเขาได้รับสิทธิ์การเข้าถึงไม่ใช่ฐานข้อมูล แต่สำหรับฟังก์ชันบางอย่างของแอปพลิเคชันเซิร์ฟเวอร์ สิ่งนี้จะเพิ่มความปลอดภัยของระบบ (เมื่อเทียบกับสถาปัตยกรรมทั่วไป) ไม่เพียงแต่จากการโจมตีโดยเจตนา แต่ยังจากการกระทำที่ผิดพลาดของบุคลากรด้วย
ตามตัวอย่าง ให้พิจารณาระบบที่มีส่วนต่างๆ ทำงานบนเซิร์ฟเวอร์หลายเครื่องที่อยู่ห่างไกลจากกัน สมมติว่าผู้พัฒนาได้รับระบบเวอร์ชันใหม่เพื่อติดตั้งซึ่งในสถาปัตยกรรมสองระดับจำเป็นต้องเปลี่ยนโมดูลระบบทั้งหมดพร้อมกัน หากยังไม่เสร็จสิ้น การโต้ตอบระหว่างไคลเอนต์เก่ากับเซิร์ฟเวอร์ใหม่อาจนำไปสู่ผลลัพธ์ที่คาดเดาไม่ได้ เนื่องจากนักพัฒนามักจะไม่นับรวมการใช้ระบบดังกล่าว ในสถาปัตยกรรมสามชั้น สถานการณ์จะง่ายขึ้น ความจริงก็คือด้วยการเปลี่ยนเซิร์ฟเวอร์แอปพลิเคชันและเซิร์ฟเวอร์จัดเก็บข้อมูล (ซึ่งทำได้ง่ายในเวลาเดียวกันเนื่องจากทั้งสองมักจะอยู่ใกล้กัน) เราจะเปลี่ยนชุดบริการที่มีอยู่ทันที ดังนั้นโอกาสที่จะเกิดข้อผิดพลาดเนื่องจากความไม่ตรงกันระหว่างเวอร์ชันของเซิร์ฟเวอร์และส่วนของไคลเอ็นต์จึงลดลงอย่างมาก หากบริการหายไปในเวอร์ชันใหม่ องค์ประกอบอินเทอร์เฟซที่ให้บริการในระบบเก่าก็จะไม่ทำงาน หากอัลกอริธึมของบริการมีการเปลี่ยนแปลง ก็จะทำงานได้อย่างถูกต้องแม้จะใช้อินเทอร์เฟซเก่าก็ตาม
ระบบไคลเอนต์ - เซิร์ฟเวอร์หลายระดับสามารถถ่ายโอนไปยังเทคโนโลยีเว็บได้อย่างง่ายดาย - ในการทำเช่นนี้ก็เพียงพอแล้วที่จะแทนที่ส่วนไคลเอนต์ด้วยเบราว์เซอร์สากลหรือเฉพาะและเสริมแอปพลิเคชันเซิร์ฟเวอร์ด้วยเว็บเซิร์ฟเวอร์และโปรแกรมเรียกขั้นตอนเซิร์ฟเวอร์ขนาดเล็ก . สามารถใช้ทั้ง Common Gateway Interface (CGI) และเทคโนโลยี Java ที่ทันสมัยกว่าเพื่อพัฒนาโปรแกรมเหล่านี้
ควรสังเกตว่าในระบบสามระดับข้อมูลจำนวนมากจะถูกส่งผ่านช่องทางการสื่อสารระหว่างแอปพลิเคชันเซิร์ฟเวอร์และฐานข้อมูล อย่างไรก็ตาม สิ่งนี้ไม่ได้ทำให้การคำนวณช้าลง เนื่องจากสามารถใช้เส้นที่เร็วกว่าเพื่อเชื่อมต่อองค์ประกอบเหล่านี้ได้ สิ่งนี้ต้องใช้ความพยายามเพียงเล็กน้อยเนื่องจากเซิร์ฟเวอร์ทั้งสองมักจะตั้งอยู่ในสถานที่เดียวกัน ดังนั้นประสิทธิภาพโดยรวมของระบบจึงเพิ่มขึ้น - เซิร์ฟเวอร์สองเครื่องที่แตกต่างกันกำลังทำงานอยู่ในงานเดียวและการสื่อสารระหว่างกันสามารถทำได้ผ่านสายที่เร็วที่สุดด้วย ต้นทุนขั้นต่ำกองทุน จริงอยู่ที่มีปัญหาความสอดคล้องของการคำนวณร่วมกันซึ่งผู้จัดการธุรกรรมซึ่งเป็นองค์ประกอบใหม่ของระบบหลายระดับถูกเรียกร้องให้แก้ไข
ผู้จัดการธุรกรรม
คุณลักษณะของสถาปัตยกรรมหลายระดับคือการใช้ตัวจัดการธุรกรรม (MT) ซึ่งอนุญาตให้เซิร์ฟเวอร์แอปพลิเคชันหนึ่งสามารถสื่อสารกับเซิร์ฟเวอร์ฐานข้อมูลหลายเซิร์ฟเวอร์พร้อมกันได้ แม้ว่า เซิร์ฟเวอร์ออราเคิลมีกลไกในการดำเนินการธุรกรรมแบบกระจาย แต่ถ้าผู้ใช้เก็บข้อมูลบางส่วนไว้ในฐานข้อมูล Oracle ส่วนหนึ่งในฐานข้อมูล Informix และส่วนหนึ่งในไฟล์ข้อความ ผู้จัดการธุรกรรมก็เป็นสิ่งที่ขาดไม่ได้ MT ใช้เพื่อจัดการการดำเนินงานที่แตกต่างกันแบบกระจายและประสานงานการดำเนินการ ส่วนประกอบต่างๆระบบข้อมูล. ควรสังเกตว่าซอฟต์แวร์ที่ซับซ้อนเกือบทุกตัวต้องใช้ตัวจัดการธุรกรรม ตัวอย่างเช่น ระบบธนาคารจะต้องดำเนินการเปลี่ยนแปลงการแสดงเอกสารต่างๆ เช่น ทำงานไปพร้อมๆ กับข้อมูลที่จัดเก็บไว้ในฐานข้อมูลและในไฟล์ปกติ สิ่งเหล่านี้คือฟังก์ชันที่ MT ช่วยดำเนินการ
ตัวจัดการธุรกรรมคือโปรแกรมหรือชุดของโปรแกรมที่สามารถใช้เพื่อประสานงานการทำงานของส่วนประกอบต่างๆ ของระบบสารสนเทศ ตามหลักเหตุผล MT จะแบ่งออกเป็นหลายส่วน:
โดยทั่วไปแล้ว ตัวจัดการการสื่อสารจะรวมกับตัวจัดการการอนุญาต และตัวจัดการธุรกรรมจะทำงานร่วมกับตัวจัดการการล็อคและล็อค บันทึกของระบบ. ยิ่งไปกว่านั้น ผู้จัดการดังกล่าวไม่ค่อยรวมอยู่ในแพ็คเกจ เนื่องจากฟังก์ชันของมัน (การเก็บบันทึก การกระจายทรัพยากร และการดำเนินการควบคุม) มักจะดำเนินการโดยฐานข้อมูลเอง (เช่น Oracle)
ผู้จัดการธุรกรรมกลุ่มแรกปรากฏตัวในช่วงต้นทศวรรษที่ 70 (เช่น CICS); ตั้งแต่นั้นมาพวกเขาก็มีการเปลี่ยนแปลงทางอุดมการณ์เล็กน้อย แต่มีความสำคัญมากในด้านเทคโนโลยี การเปลี่ยนแปลงทางอุดมการณ์ที่ยิ่งใหญ่ที่สุดเกิดขึ้นในตัวจัดการการสื่อสาร เนื่องจากเทคโนโลยีเชิงวัตถุใหม่ (CORBA, DCOM ฯลฯ ) ปรากฏขึ้นในพื้นที่นี้ เนื่องจากสื่อการสื่อสารมีการพัฒนาอย่างรวดเร็วในอนาคตเราจึงสามารถคาดหวังได้ ใช้กันอย่างแพร่หลายผู้จัดการธุรกรรมประเภทต่างๆ
ดังนั้น สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์หลายระดับจึงสามารถลดความซับซ้อนของการประมวลผลแบบกระจายได้อย่างมาก ทำให้ไม่เพียงแต่มีความน่าเชื่อถือมากขึ้น แต่ยังเข้าถึงได้มากขึ้นอีกด้วย การถือกำเนิดของเครื่องมือ เช่น Java ช่วยให้แอปพลิเคชันเซิร์ฟเวอร์สื่อสารกับไคลเอนต์ได้ง่ายขึ้น และตัวจัดการธุรกรรมเชิงวัตถุช่วยให้มั่นใจได้ว่าแอปพลิเคชันเซิร์ฟเวอร์ทำงานร่วมกับฐานข้อมูล เป็นผลให้ข้อกำหนดเบื้องต้นทั้งหมดถูกสร้างขึ้นสำหรับการสร้างระบบข้อมูลแบบกระจายที่ซับซ้อนซึ่งใช้ข้อดีทั้งหมดของเทคโนโลยีสมัยใหม่อย่างมีประสิทธิภาพ
เนื้อหาสำหรับบทความนี้จัดทำโดย ASoft; โทร. 261-5724. สามารถติดต่อ Valery Korzhov ได้ที่
] ทำให้คุณสามารถแยกฟังก์ชั่นการจัดเก็บ ประมวลผล และนำเสนอข้อมูลออกไปได้มากขึ้น การใช้งานที่มีประสิทธิภาพความสามารถของเซิร์ฟเวอร์และไคลเอนต์
ในบรรดาสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับ สถาปัตยกรรมที่พบมากที่สุดคือสถาปัตยกรรมสามระดับ ( สถาปัตยกรรมสามชั้นสามชั้น) ซึ่งถือว่ามีส่วนประกอบของแอปพลิเคชันต่อไปนี้: แอปพลิเคชันไคลเอ็นต์ (โดยปกติเรียกว่า "ไคลเอ็นต์แบบบาง" หรือเทอร์มินัล) ที่เชื่อมต่อกับ แอปพลิเคชันเซิร์ฟเวอร์ซึ่งก็เชื่อมโยงไปถึงด้วย เซิร์ฟเวอร์ฐานข้อมูล [ , ].
ข้าว. 5.4.
ข้าว. 5.4.การแสดงสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับ
- เทอร์มินัลเป็นส่วนประกอบอินเทอร์เฟซ (โดยปกติจะเป็นแบบกราฟิก) ที่แสดงถึงระดับแรกซึ่งเป็นแอปพลิเคชันจริงสำหรับผู้ใช้ปลายทาง ระดับแรกไม่ควรมีการเชื่อมต่อโดยตรงกับฐานข้อมูล (ด้วยเหตุผลด้านความปลอดภัย) โหลดด้วยตรรกะทางธุรกิจหลัก (สำหรับเหตุผลด้านความสามารถในการขยาย) และจัดเก็บสถานะแอปพลิเคชัน (เพื่อเหตุผลด้านความน่าเชื่อถือ) ตรรกะทางธุรกิจที่ง่ายที่สุดสามารถและมักจะวางไว้ที่ระดับแรก: อินเทอร์เฟซการอนุญาต, อัลกอริธึมการเข้ารหัส, การตรวจสอบค่าที่ป้อนสำหรับความถูกต้องและการปฏิบัติตามรูปแบบ, การดำเนินการง่าย ๆ (การเรียงลำดับ, การจัดกลุ่ม, การนับค่า) ด้วยข้อมูลที่โหลดไว้แล้วใน เทอร์มินัล.
- เซิร์ฟเวอร์แอปพลิเคชันตั้งอยู่บนชั้นสอง ระดับที่สองประกอบด้วยตรรกะทางธุรกิจส่วนใหญ่ ภายนอกยังคงมีชิ้นส่วนที่ถูกส่งออกไปยังเทอร์มินัล รวมถึงขั้นตอนการจัดเก็บและทริกเกอร์ที่ฝังอยู่ในระดับที่สาม
- เซิร์ฟเวอร์ฐานข้อมูลให้การจัดเก็บข้อมูลและถูกย้ายไปยังระดับที่สาม โดยทั่วไปนี่คือ DBMS เชิงสัมพันธ์หรือเชิงวัตถุมาตรฐาน หากระดับที่สามเป็นฐานข้อมูลพร้อมกับขั้นตอนการจัดเก็บ ทริกเกอร์และสคีมาที่อธิบายแอปพลิเคชันในแง่ต่างๆ โมเดลเชิงสัมพันธ์จากนั้นชั้นที่สองจะถูกสร้างขึ้นเป็น อินเทอร์เฟซซอฟต์แวร์ซึ่งเชื่อมโยงส่วนประกอบไคลเอนต์กับตรรกะแอปพลิเคชันฐานข้อมูล
ในการกำหนดค่าทางกายภาพที่ง่ายที่สุด เซิร์ฟเวอร์แอปพลิเคชันสามารถใช้ร่วมกับ เซิร์ฟเวอร์ฐานข้อมูลบนคอมพิวเตอร์เครื่องหนึ่งซึ่งมีเทอร์มินัลตั้งแต่หนึ่งเครื่องขึ้นไปเชื่อมต่อผ่านเครือข่าย
ในการกำหนดค่าที่ “ถูกต้อง” (ในแง่ของความปลอดภัย ความน่าเชื่อถือ การปรับขนาด) เซิร์ฟเวอร์ฐานข้อมูลตั้งอยู่บนคอมพิวเตอร์เฉพาะ (หรือคลัสเตอร์) ซึ่งอย่างน้อยหนึ่งเครื่อง แอปพลิเคชันเซิร์ฟเวอร์ซึ่งในทางกลับกันเทอร์มินัลจะเชื่อมต่อผ่านเครือข่าย
ข้อดีของสถาปัตยกรรมนี้คือ [ , , , ]:
- ซอฟต์แวร์ไคลเอนต์ไม่ต้องการการดูแลระบบ
- ความสามารถในการขยายขนาด;
- ความสามารถในการกำหนดค่า – การแยกระดับออกจากกันทำให้คุณสามารถกำหนดค่าระบบใหม่ได้อย่างรวดเร็วและง่ายดายเมื่อเกิดความล้มเหลวหรือระหว่างการบำรุงรักษาตามกำหนดเวลาที่ระดับใดระดับหนึ่ง
- ความปลอดภัยสูง
- ความน่าเชื่อถือสูง
- ข้อกำหนดต่ำสำหรับความเร็วช่อง (เครือข่าย) ระหว่างเทอร์มินัลและ แอปพลิเคชันเซิร์ฟเวอร์;
- ข้อกำหนดต่ำสำหรับประสิทธิภาพและคุณลักษณะทางเทคนิคของเทอร์มินัล ส่งผลให้ต้นทุนลดลง
- ความซับซ้อนของส่วนของเซิร์ฟเวอร์และส่งผลให้ค่าใช้จ่ายในการดูแลและบำรุงรักษาเพิ่มขึ้น
- ความซับซ้อนที่สูงขึ้นในการสร้างแอปพลิเคชัน
- ยากขึ้นในการปรับใช้และบริหารจัดการ
- ข้อกำหนดประสิทธิภาพสูง แอปพลิเคชันเซิร์ฟเวอร์และ เซิร์ฟเวอร์ฐานข้อมูลและทำให้อุปกรณ์เซิร์ฟเวอร์มีราคาสูง
- ข้อกำหนดสูงสำหรับความเร็วของช่องสัญญาณ (เครือข่าย) ระหว่าง เซิร์ฟเวอร์ฐานข้อมูลและ แอปพลิเคชันเซิร์ฟเวอร์.
- ผลงาน;
- ชั้นการนำเสนอ
- ระดับลอจิก
- ชั้นข้อมูล;
- ข้อมูล.
ข้าว. 5.5.สถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์หลายระดับห้าระดับ
การนำเสนอประกอบด้วยข้อมูลทั้งหมดที่แสดงต่อผู้ใช้โดยตรง: หน้า HTML ที่สร้างขึ้น สไตล์ชีท รูปภาพ
เลเยอร์การนำเสนอครอบคลุมทุกสิ่งที่เกี่ยวข้องกับการสื่อสารของผู้ใช้กับระบบ หน้าที่หลักของเลเยอร์การนำเสนอ ได้แก่ การแสดงข้อมูลและการตีความข้อมูลที่ผู้ใช้ป้อน และแปลงเป็นการดำเนินการที่เหมาะสมในบริบทของตรรกะและข้อมูล
ระดับตรรกะประกอบด้วยฟังก์ชันหลักของระบบที่ออกแบบมาเพื่อให้บรรลุเป้าหมาย ฟังก์ชันเหล่านี้ประกอบด้วยการคำนวณตามอินพุตและข้อมูลที่จัดเก็บ การตรวจสอบองค์ประกอบข้อมูลทั้งหมดและคำสั่งการประมวลผลจากเลเยอร์การนำเสนอ และการส่งข้อมูลไปยังชั้นข้อมูล
เลเยอร์การเข้าถึงข้อมูลเป็นส่วนย่อยของฟังก์ชันที่ให้การโต้ตอบด้วย ระบบของบุคคลที่สามซึ่งดำเนินงานเพื่อประโยชน์ของแอปพลิเคชัน
ข้อมูลระบบมักจะถูกเก็บไว้ในฐานข้อมูล
5.1.6. สถาปัตยกรรมระบบแบบกระจาย
ระบบประเภทนี้มีความซับซ้อนมากขึ้นในแง่ของการจัดระบบ สาระการเรียนรู้แกนกลาง กระจาย ระบบคือการจัดเก็บสำเนาข้อมูลสำคัญในเครื่อง
ในทางแผนผัง สถาปัตยกรรมดังกล่าวสามารถแสดงได้ดังแสดงในรูปที่ 1 5.6.
ข้าว. 5.6.
ข้อมูลมากกว่า 95% ที่ใช้ในการจัดการองค์กรสามารถอยู่ในที่เดียวได้ คอมพิวเตอร์ส่วนบุคคลเพื่อให้มั่นใจถึงความเป็นไปได้ในการทำงานอิสระของเขา กระแสของการแก้ไขและการเพิ่มเติมที่สร้างขึ้นบนคอมพิวเตอร์เครื่องนี้มีน้อยมากเมื่อเทียบกับปริมาณข้อมูลที่ใช้ ดังนั้นหากคุณจัดเก็บข้อมูลที่ใช้อย่างต่อเนื่องบนคอมพิวเตอร์ด้วยตนเองและจัดการแลกเปลี่ยนการแก้ไขและการเพิ่มเติมข้อมูลที่เก็บไว้ระหว่างคอมพิวเตอร์เหล่านั้น ปริมาณการรับส่งข้อมูลที่ส่งทั้งหมดจะลดลงอย่างรวดเร็ว ทำให้สามารถลดข้อกำหนดสำหรับช่องทางการสื่อสารระหว่างคอมพิวเตอร์และมักใช้การสื่อสารแบบอะซิงโครนัสบ่อยขึ้น และด้วยเหตุนี้ จึงสร้างระบบข้อมูลแบบกระจายที่ทำงานได้อย่างน่าเชื่อถือซึ่งใช้การสื่อสารที่ไม่เสถียร เช่น อินเทอร์เน็ต การสื่อสารเคลื่อนที่ เชิงพาณิชย์ ช่องสัญญาณดาวเทียม. และการลดการรับส่งข้อมูลระหว่างองค์ประกอบต่างๆ จะทำให้ต้นทุนการดำเนินงานการเชื่อมต่อดังกล่าวมีราคาไม่แพงมาก แน่นอนว่าการนำระบบดังกล่าวไปใช้นั้นไม่ใช่เรื่องพื้นฐาน และต้องมีการแก้ไขปัญหาหลายประการ ซึ่งหนึ่งในนั้นคือการซิงโครไนซ์ข้อมูลอย่างทันท่วงที
เวิร์คสเตชั่นแต่ละเครื่องมีความเป็นอิสระ โดยมีเพียงข้อมูลที่จำเป็นในการทำงาน และรับประกันความเกี่ยวข้องของข้อมูลทั่วทั้งระบบผ่านการแลกเปลี่ยนข้อความกับเวิร์คสเตชั่นอื่นๆ อย่างต่อเนื่อง สามารถใช้การแลกเปลี่ยนข้อความระหว่างเวิร์กสเตชันได้ วิธีทางที่แตกต่างจากการส่งข้อมูลผ่านทาง อีเมลก่อนส่งข้อมูลผ่านเครือข่าย