440 likes | 929 Views
บทที่ 5. Application Architecture Design. การออกแบบสถาปัตยกรรม แอปพลิเคชั่น วิชา การออกแบบและพัฒนาซอฟต์แวร์อ เพียรทิพย์. 1. การกำหนดความต้องการของระบบ 2. การวิเคราะห์ความต้องการของระบบใหม่ DFD คำอธิบายขั้นตอนการทำงาน ER. 1. การออกแบบฟอร์มและรายงาน
E N D
บทที่ 5 Application Architecture Design การออกแบบสถาปัตยกรรมแอปพลิเคชั่น วิชา การออกแบบและพัฒนาซอฟต์แวร์อ เพียรทิพย์
1.การกำหนดความต้องการของระบบ1.การกำหนดความต้องการของระบบ • 2. การวิเคราะห์ความต้องการของระบบใหม่ • DFD • คำอธิบายขั้นตอนการทำงาน • ER 1.การออกแบบฟอร์มและรายงาน 2. การออกแบบส่วนประสานงานกับผู้ใช้ (User Interface) 3. การออกแบบฐานข้อมูลระดับตรรกะ (แปลง ER เป็น แบบจำลองข้อมูลเชิงสัมพันธ์ และการนอร์มัลไลซ์) 1.การออกแบบฐานข้อมูลในระดับกายภาพ 2. การออกแบบ Application ขั้นตอนการออกแบบระบบ 14.2
หัวข้อการบรรยาย • ความแตกต่างระหว่างการออกแบบ Software และการออกแบบApplication • แนะนำระบบงานแบบรวมศูนย์ (Single-location Systems) • แนะนำระบบงานแบบกระจาย (Distributed System Design) • แนะนำระบบเครือข่ายแบบต่าง ๆ (Network Technology) • รูปแบบระบบงานแบบกระจายบนระบบเครือข่ายแบบต่าง ๆ • ทำความรู้จักกับ Tier Architecture
ความแตกต่างระหว่างการออกแบบ Software กับการออกแบบ Aplication • การออกแบบ Software คือ การออกแบบการทำงานภายในตัวโปรแกรม เช่นขั้นตอนในการประมวลผล วิธีการประมวลผล โดยแสดงให้เห็นถึงข้อมูลที่นำเข้าสู่การประมวลผล การตรวจเช็คข้อมูล การส่งผลลัพธ์ที่ได้จากขึ้นตอนนั้นไปสู่ขึ้นตอนใด เพื่อให้เห็นโครงร่างการทำงานภายในโปรแกรมก่อนที่จะเขียนโปรแกรม • การออกแบบ Application คือ การออกแบบว่าจะให้ระบบงานที่ได้ออกแบบไว้ในขั้นตอนก่อนหน้า ททำงานอยู่บนระบบคอมพิวเตอร์ลักษณะใด โดยพิจารณาเปรียบเทียบข้อดีข้อเสียของระบบคอมพิวเตอร์ต่าง ๆ ที่จะนำระบบงานที่ออกแบบไว้ไปใช้งานบนระบบคอมพิวเตอร์แบบนั้น ๆ
แนะนำระบบงานแบบรวมศูนย์ (Stand-alone system) • รวมการทำงานของระบบทั้งหมดไว้ภายในเครื่องเดียวกัน ทั้งส่วนของ Application และส่วนของฐานข้อมูล • ผู้ใช้แต่ละคนไม่สามารถใช้งานระบบได้จากคอมพิวเตอร์เครื่องอื่นนอกจากเครือ่งที่ติดตั้งระบบงานเท่านั้น • ถ้ามีผู้ใช้หลายคนจะต้องรอให้เครื่องว่างก่อนถึงจะใช้งานได้ ทำงานพร้อมกันไม่ได้
แนะนำงานแบบกระจาย (Distributed system) • ระบบงานแบบกระจาย (Distributed System) เป็นระบบงานที่แบ่งแยกองค์ประกอบต่าง ๆ (Data, Process, Interface) ของระบบไปยังเครื่องคอมพิวเตอร์เครื่องอื่น ๆ เพื่อให้เครื่องคอมพิวเตอร์เหล่านั้นแบ่งเบาภาระการทำงานของระบบโดยเชื่อมโยงกันผ่านเครือข่าย • รูปแบบการกระจายส่วนประกอบต่าง ๆ ของระบบงานแบ่งได้ดังนี้ • การกระจายการนำเสนอ (Distributed Presentation) • การกระจายฟังก์ชันงาน (Distributed Function) • การกระจายข้อมูล (Distributed Data) • การกระจายการประมวลผล (Distributed Processing)
Client ส่งคำร้องขอส่วนแสดงผล Server ส่งส่วนแสดงผลไปยัง Client Client Server การกระจายการนำเสนอ (Distributed Presentation) • เป็นการกระจายการนำเสนอของระบบงาน เช่น ส่วน User Interface ไปยัง เครื่องคอมพิวเตอร์เครื่องต่าง ๆ • เครื่อง Server จะทำหน้าที่ในการจัดเก็บข้อมูลต่าง ๆ ไว้ภายในฐานข้อมูล • การจัดการการเข้าถึงข้อมูลและการประมวลผลคำสั่งเพื่อดำเนินการกับข้อมูลในฐานข้อมูล ยังคงเป็นหน้าที่ของเครื่อง Server • แอปพลิเคชั่นสำหรับจัดการงานต่าง ๆ จะรันบนเครื่อง Server • User Interface ส่วนติดต่อกับผู้ใช้ของแอปพลิเคชั่น จะถูกส่งไปแสดงผลยังเครื่อง Client
การกระจายการนำเสนอ(Distributed Presentation) • ข้อดี • สามารถเรียกดูข้อมูลที่ต้องการได้โดยไม่ต้องไปยังเครื่องที่เก็บระบบงาน • ผู้ใช้หลายคนสามารถเรียกใช้งานได้พร้อม ๆ กัน • ผู้ออกแบบสามารถพัฒนาระบบได้อย่างอิสระโดยไม่ต้องสนใจผลข้างเคียงที่จะเกิดขึ้นกับเครื่อง Client • ข้อเสีย • เครื่อง Server ที่ทำหน้าที่เก็บข้อมูลและประมวลผลยังคงทำงานหนักเช่นเดิม • ปัญหาด้านความหนาแน่นของการจราจรของข้อมูลที่ส่งไปมาระหว่างเครื่องคอมพิวเตอร์หากมีมากจะทำให้การแสดงผลที่เครื่อง Client ช้าลง
การกระจายฟังก์ชันงาน(Distributed Function) • เป็นการกระจายฟังก์ชันงานบางส่วนจากเครื่องที่เป็นศูนย์กลางไปไว้บนเครื่อง Client คือ Application บางส่วนของระบบจะเก็บไว้ที่เครื่อง Client • โดยที่การทำงานของเครื่อง Client จะครอบคลุมงานในส่วนของการแสดงผลหรือPresentationทั้งหมด • โดยใช้Application ที่ถูกเก็บไว้บนเครื่อง Clientเป็นเครื่องมือในการติดต่อรับข้อมูลจากเครื่องที่เป็นศูนย์กลาง • หน้าทีหลักของเครื่องที่เป็นศูนย์กลาง คือ บริหาร ดูแล และจัดการข้อมูลเพียงอย่างเดียว
การกระจายฟังก์ชันงาน(Distributed Function) • ข้อดี • ช่วยลดการทำงานของเครื่องคอมพิวเตอร์ที่เป็นศูนย์กลางของระบบงาน เนื่องจากฟังก์ชั่นงานถูกแบ่งไปยังเครื่องที่ต้องการใช้งานอยู่แล้ว • ข้อเสีย • เครื่องคอมพิวเตอร์หลักยังคงต้องรองรับการทำงานจากเครื่อง Client ทุกเครื่อง ถ้ามีข้อมูลที่เครื่อง Server ต้องดูแลและจัดการมีอยู่มาก การทำงานของระบบก็จะล่าช้า
การกระจายข้อมูล (Distributed Data) • เป็นการกระจายข้อมูลบางส่วนที่เก็บไว้บนเครื่อง Server ไปยังเครื่อง Client หรือ Serverอื่น • เพื่อแบ่งเบาภาระในการดูแล และจัดการข้อมูลของเครื่องServer • ตัวอย่างเช่น ระบบงานธนาคาร มีการกระจายข้อมูลไปเก็บไว้ที่ Site ซึ่งเป็นศูนย์กลางของแต่ละภาค Database Database Database Computer Network
การกระจายข้อมูล (Distributed Data) • ข้อดี • เพิ่มประสิทธิภาพของระบบเนื่องจากคอมพิวเตอร์หลักไม่ต้องรองรับงานจำนวนมาก • ลดความหนาแน่นของการจราจรบนเครือข่าย • การประมวลผลโดยรวมของของระบบดีขึ้น เนื่องจากข้อมูลถูกจัดเก็บไว้ใกล้กับจุดที่ต้องการใช้ข้อมูลนั้น ทำให้ใช้เวลาในการส่งผ่านข้อมูลน้อยลง • ข้อเสีย • Software และ Technology ที่ใช้ในการควบคุมการกระจายมีความซับซ้อน และมีราคาสูง • หากข้อมูลถูกจัดเก็บไม่สอดคล้องกับเครื่องที่ต้องการใช้งาน จะส่งผลให้การค้นหาช้าลง
การกระจายการประมวลผล(Distributed Processing) • เป็นการกระจายที่รวมเอาข้อดีของการกระจายฟังก์ชันงานและการกระจาย ข้อมูลเข้าด้วยกัน • ในระบบแบบกระจายการประมวลผลนี้ฟังก์ชันงานและข้อมูลที่สัมพันธ์กันจะได้รับการแยกไปอยู่ตามหน่วยประมวลผลต่าง ๆ ในระบบ • เพื่อให้หน่วยประมวลผลนั้น ๆ ใช้ในการประมวลผล โดยไม่ต้องพึ่งพาข้อมูลหรือฟังก์ชันงานจากคอมพิวเตอร์ศูนย์กลางเลย
การกระจายการประมวลผล(Distributed Processing) • ข้อดี • งานของระบบไม่ขึ้นต่อกัน (Independent) สามารถทำงานพร้อม ๆ กันได้ • เพิ่มความเร็วในการประมวลผล • ข้อเสีย • การทำงานของระบบจัดการฐานข้อมูลมีความซับซ้อนกันมาก • ต้องพิจารณาในการแบ่งแยกฟังก์ชันและข้อมูลอย่างละเอียดถี่ถ้วน
แนะนำระบบเครือข่าย จำแนกตามขนาดทางภูมิศาสตร์ • ระบบเครือข่าย LAN : Local Area Network การเชื่อมต่อระบบเครือข่ายที่เครื่องคอมพิวเตอร์อยู่ในพื้นที่ใกล้กัน เช่น การเชื่อมต่อในตึกเดียวกัน การเชื่อมต่อในมหาวิทยาลัย การเชื่อมต่อในหน่วยงานต่างๆ • ระบบเครือข่าย WAN : การเชื่อมต่อ Lanเข้าด้วยกันในกรณีที่ระยะทางในการเชื่อมต่อระหว่างวง Lanทั้งสองห่างกันมาก • ระบบเครือข่าย MAN : WAN ย่อมาจากคำว่า (Wide Area Network)-ระบบเครือข่ายขนาดใหญ่ เป็นระบบเน็ตเวิร์กที่มีการติดต่อสื่อสารกันในระดับประเทศ หรือติดตสื่อสารกันได้ทั่วทุกมุมโลก
แนะนำระบบเครือข่ายจำแนกตามระดับความปลอดภัยของข้อมูลแนะนำระบบเครือข่ายจำแนกตามระดับความปลอดภัยของข้อมูล • อินเทอร์เน็ต(Internet) คือ เครือข่ายนานาชาติ ที่เกิดจากเครือข่ายขนาดเล็กมากมาย รวมเป็นเครือข่ายเดียวทั้งโลก หรือเครือข่ายสื่อสาร ซึ่งเชื่อมโยงระหว่างคอมพิวเตอร์ทั้งหมดที่ต้องการเข้ามาในเครือข่าย • อินทราเน็ต(Intranet) คือ ระบบเครือข่ายภายในองค์กร เป็นบริการ และการเชื่อมต่อคอมพิวเตอร์เหมือนกันอินเทอร์เน็ต แต่จะเปิดให้ใช้เฉพาะสมาชิกในองค์กรเท่านั้น เช่น อินทราเน็ตของธนาคารแต่ละแห่ง หรือระบบเครือข่ายมหาดไทย ที่เชื่อมศาลากลางทั่วประเทศ เป็นต้น • เอ็กทราเน็ต (Extranet) หรือ เครือข่ายภายนอกคือระบบเครือข่ายซึ่งเชื่อมเครือข่ายภายในองค์กร หรือ อินทราเน็ต (Intranet) เข้ากับระบบคอมพิวเตอร์ที่อยู่ภายนอกองค์กร
รูปแบบ Application ที่มีอยู่ในระบบเครือข่ายต่าง ๆ • LAN (Local Area Network) • ระบบ File Server • ระบบ Client Server • WAN (Wide Area Network) • ระบบ Web Based • ระบบ Web Service
ระบบไฟล์เซิร์ฟเวอร์(File Server) • ลักษณะการประมวลผล : • เครื่อง Server : ทำหน้าที่ให้บริการข้อมูลและทรัพยากรให้เครื่อง Client เท่านั้น • เครื่อง Client : จะจัดการเกี่ยวกับการดำเนินการกับข้อมูลทุกอย่าง • ลักษณะการร้องขอข้อมูล เมืองเครื่อง Client ขอข้อมูลไป Server จะส่งไฟล์ข้อมูลทั้งไฟล์มาให้เครื่อง Client
ระบบไฟล์เซิร์ฟเวอร์(File Server) ข้อดี • เครื่อง Server ไม่รับภาระหนักเพราะทำหน้าที่ขนถ่ายไฟล์ข้อมูลให้เครื่อง Client เท่านั้น ข้อเสีย • เครื่อง Client รับภาระหนัก กับการโปรเซสข้อมูล • ต้องใช้เครื่อง Client ที่มีประสิทธิภาพเพื่อให้สามารถรัน Application ต่าง ๆ ได้อย่างรวดเร็ว • เมื่อ Client ร้องขอข้อมูลไปยังเครื่อง Server จะมีการส่งไฟล์ทั้งไฟล์ไปยังเครื่อง Client ส่งผลให้การจราจรบนเครือข่ายหนาแน่นและทำงานช้าลง ในกรณีที่ Client มีจำนวนมาก
ระบบไคลเอนต์เซิร์ฟเวอร์(Client Server) • เป็นรูปแบบที่นิยมมากในปัจจุบัน • Server จะทำหน้าที่จัดเก็บฐานข้อมูล ควบคุมการเข้าถึงข้อมูล ประมวลผลการร้องขอข้อมูล และควบคุมความถูกต้องของข้อมูล • Client จะทำหน้าที่จัดการการแสดงผล User Interface รวมถึงการแสดงผลข้อมูลบนจอภาพด้วย
ระบบ Client/Server ร้องขอข้อมูลต่าง ๆ ส่งเฉพาะข้อมูลที่ Client ต้องการ Client Server • จากรูป • ผู้ใช้จะติดต่อสื่อสารกับ Application บนเครื่อง Client • Client จะแปลความต้องการของผู้ใช้เป็นภาษา SQL ที่ Server เข้าใจ • จากนั้นส่งคำสั่งไปยัง Server ซึ่งจะประมวลผลตามคำสั่งของ Client • แล้วส่งเฉพาะข้อมูลที่ Client ต้องการกลับไป
ระบบ Client/Server • ข้อดี • ลดต้นทุนในการขยายระบบ เมื่อมีจำนวนผู้ใช้มากขึ้น เนื่องจากไม่ต้องจัดหาอุปกรณ์คอมพิวเตอร์ในส่วนของ Server ซึ่งมีราคาสูง • ลดปริมาณข้อมูลที่ต้อการขนส่งลง เพราะ Server จะส่งกลับเฉพาะข้อมูลที่ Client ต้องการเท่านั้น • แอพพลิเคชั่นที่กระจายบน Client ต่างๆ สามารถใช้ข้อมูลร่วมกันได้ ทำให้ประหยัดพื้นที่ในการจัดเก็บข้อมูลเป็นการใช้ทรัพยากรให้เกิดประโยชน์สูงสุด และไม่เกิดการซ้ำซ้อน • ข้อเสีย • เนื่องจากเครื่อง Server ต้องรองรับงานจากเครื่อง Client ทุก ๆ เครื่อง ดังนั้นเครื่อง Server จึงต้องทำงานหนัก
ระบบWeb Based Application • Application จะถูกติดตั้งไว้บนหน้าเว็บเพจ ซึ่งสามารถติดต่อกับฐานข้อมูลได้ (อาจสร้างด้วยภาษา PHP, ASP ,Java) • Application เหล่านี้ ถูกประมวลผลภายใน Web Server • โดยอาศัยข้อมูลที่อยู่ใน Web Database • การทำงานของ Web Server เริ่มจากการรับคำร้องขอใช้บริการจากเครือ่ง Client • จากนั้นนำข้อมูลคำร้องขอไปประมวลผลร่วมกับภาษาโปรแกรมที่เขียนขึ้น • เพื่อคัดเลือกข้อมูลตามความต้องการของ Client • แล้วนำข้อมูลที่ค้นหาได้ส่งกลับไปที่ Client
ระบบ Web BasedApplication • ข้อดี • ผู้ใช้สามารถเข้าถึงระบบงานขององค์กรผ่านระบบอินเทอร์เน็ตได้ • ขอบเขตของผู้ใช้กว้างมากขึ้น • ข้อเสีย • จำเป็นต้องมีระบบรักษาความปลอดภัยที่รัดกุม • ระบบ Web Based เป็นระบบที่รอการเรียกจากผู้ใช้ จึงทำให้ผู้ที่ไม่รู้จัก URL ขององค์กรไม่สามารถเข้าถึงหน้าเว็บขององค์กรได้
ระบบ Web Service • เว็บเซอร์วิส (Web Service หรือ XML Web Service)Web Services คือ แอพพลิเคชัน หรือ โปรแกรมที่ทำงานอย่างใดอย่างหนึ่งในลักษณะให้บริการ (Service) ที่จะถูกเรียกใช้งานจากแอพลิเคชันอื่นๆ ในรูปแบบ RPC (Remote Procedure Call) หรือระบบสั่งงานระยะไกล • ทำให้ Web Application เข้าถึงข้อมูลที่ให้บริการโดย Application อื่นผ่านเครือข่ายอินเทอร์เน็ตได้ โดยที่แต่ละ Application ไม่จำเป็นต้องมีสภาพแวดล้อมเหมือนกันก็ได้
ทำความรู้จักกับ Tier Architecture • เป็นการแบ่งภาระการทำงานของ Application ออกเป็นระดับชั้น • แต่ละระดับชั้นจะมีการติดต่อสื่อสารซึ่งกันและกัน • การแบ่งหน้าที่การทำงานของ Application เป็นระดับชั้นจะพิจารณาจากความซับซ้อนของระบบและโอกาสที่จะเกิดการเปลี่ยนแปลงของระบบ
Tier Architecture แบ่งออกเป็น 4 ระดับชั้น ดังนี้ One-tier Architecture Two-tier Architecture Three-tier Architecture N-tier Architecture
One-tier Architecture • Application ประมวลผลอยู่ในเครื่องคอมพิวเตอร์เพียงเครื่องเดียว (Stand Alone) • ไม่มีการแบ่งภาระการประมวลผลทั้งทางด้านข้อมูล (Data) และการนำเสนอ (Presentation) • ข้อดี • พัฒนา Application ที่ทำงานแบบ One-Tier นั้นทำได้ง่ายและเร็ว • ข้อเสีย • หากระบบขนาดใหญ่จะทำงานได้ช้า จึงไม่ได้รับความนิยมในปัจจุบัน
Two-tier Architecture • มีการแบ่งภาระการทำงานของแอปพลิเคชั่นออกเป็น 2 ระดับชั้น • Application Layer • Data Layer Application Layer: อยู่ที่ฝั่ง Client หน้าที่ -Presentation Logic -Application Logic Data Layer : Database Server
Two-tier Architecture • Application Layer ทำหน้าที่ดังนี้ • นำเสนอ (Presentation) ส่วนติดต่อกับผู้ใช้ทางจอภาพ (GUI) • ทำหน้าที่ด้าน Application Logic คือ • ติดต่อกับฐานข้อมูลซึ่งอยู่ในระดับชั้น Data Layer เพื่อดำเนินการกับข้อมูลตามคำสั่งที่ได้รับจากผู้ใช้ • การติดต่อกับฐานข้อมูลใน Data Layer จะต้องอาศํย Driver ของฐานข้อมูล เช่น ODBC หรือ Middleware อื่นที่ให้บริการการติดต่อกับฐานข้อมูล • ควบคุมการทำงานของระบบให้เป็นไปตามเงื่อนไขทางธุรกิจ (Business Rule: เงื่อนไขของโปรแกรมที่เขียนขึ้นสำหรับการทำงานต่าง ๆ )
Two-tier Architecture • Data Layer • จะมีเครื่องแม่ข่าย (Server) ทำหน้าที่จัดเก็บข้อมูลเรียกว่า Database Server • คอยรับคำร้องขอข้อมูลจากเครื่องลูกข่าย (Client) จาก Application Layer Server: ทำหน้าที่จัดเก็บข้อมูลและคอยรับคำร้องขอข้อมูลจาก Client Client : ทุกเครื่องจะต้องติดตั้งโปรแกรมไว้ เพื่อทำหน้าที่ในการติดต่อกับผู้ใช้และติดต่อกับฐานข้อมูล
ข้อดี & ข้อเสีย • ข้อดี • ลดภาระการทำงานของคอมพิวเตอร์ที่ทำหน้าที่เก็บข้อมูล(Database Server) ใน Data Layer • เหมาะกับระบบงานขนาดกลางและไม่ซับซ้อน • ข้อเสีย • กรณีเป็นระบบขนาดใหญ่ จะทำให้ Client ทำงานหนักเกินไป • หาก Application มีการเปลี่ยนแปลง จะต้องเสียเวลาในการติดตั้งตัว Application เพิ่มเติม เนื่องจากต้องติดตั้งให้กับ Client ทุกเครื่อง
Three-tier Architecture • แบ่งภาระการทำงานของแอปพลิเคชั่นออกเป็น 3 ระดับ ดังนี้ • Presentation Layer • ทำหน้าที่นำเสนอหรือแสดงผล User Interface ติดต่อกับผู้ใช้ผ่านทางจอภาพคอมพิวเตอร์ที่เครื่อง Client • Business Rule Layer หรือ Middle Tier • ทำหน้าที่ควบคุมการทำงานกับข้อมูลให้เป็นไปตามเงื่อนไขทางธุรกิจ (เงื่อนไขของโปรแกรมที่พัฒนาขึ้น) • ติดต่อกับ Database Server • เครื่องคอมพิวเตอร์ที่ทำหน้าที่ในระดับนี้เรียกว่า Application Server • Data Layer • จัดเก็บและจัดการข้อมูลใน Database Server แล้วส่งข้อมูลคืนกลับไปให้กับ Business Rule Layer ทำงานต่อไป
Three-tier Architecture Presentation Layer: Client: -Presentation Logic Business Rule Layer: Application Server: -Business Logic Data Layer: Database Server
ข้อดี & ข้อเสีย • ข้อดี • หากมีการเปลี่ยนแปลงในบาง Layer จะส่งผลกระทบต่อ Layer อื่นน้อยมาก • สนับสนุนหลักการ Reusability ในบางส่วน เช่น Business Rule สามารถนำไปใช้ใหม่ได้ • คอมพิวเตอร์แต่ละตัวรับภาระน้อยลง ทำให้รองรับการทำงานในปริมาณมากๆ ได้ • ข้อเสีย • ออกแบบและพัฒนา Application ค่อนข้างยาก เนื่องจากต้องผสมผสานเทคโนโลยีหลายอย่างให้สามารถทำงานร่วมกันได้
N-tier Architecture • เป็นสถาปัตยกรรมที่มีมากกว่า 3 ระดับ โดยอาจจะเพิ่มเครื่องคอมพิวเตอร์ที่เป็น Application Server ในส่วนของ Application Layer ให้เป็น 2 เครื่องได้ • ตัวอย่างเช่น Web-based Application • แบ่งเป็นหลาย Layer • Web Browser (Client) ex. PC, PDA, Mobile • Application Layer (Web Server) • Business Logic Layer • Web Database Server
N-tier Architecture Application Layer: Web Server -Presentation Logic Client / Web Browser: Business Rule Layer: Application Server / Web Server -Business Logic Data Layer: Web Database Server
แบบฝึกหัด • จงอธิบายความหมายและความแตกต่างระหว่าง • ระบบ File Server • ระบบ Client Server • จงอธิบายความหมายของ • Two-tier Architecture • Three-tier Architecture