250 likes | 383 Views
สถาปัตยกรรมเทียร์. TIER ARCHITECTURE. ความหมายของเทียร์. เทียร์ ( TIER ) คือโปรเซส (Process) ที่ใช้ในการจัดการงานใดงานหนึ่ง ดังนั้นในระบบหนึ่งจะมีเทียร์อย่างน้อยที่สุด 1 เทียร์ แต่จะมีจำนวนเท่าใดนั้นขึ้นอยู่กับ ทรัพยากรของแต่ละเครื่อง ลักษณะงานที่ทำ. สถาปัตยกรรมเทียร์.
E N D
สถาปัตยกรรมเทียร์ TIER ARCHITECTURE
ความหมายของเทียร์ • เทียร์ (TIER) คือโปรเซส (Process) ที่ใช้ในการจัดการงานใดงานหนึ่ง ดังนั้นในระบบหนึ่งจะมีเทียร์อย่างน้อยที่สุด 1 เทียร์ แต่จะมีจำนวนเท่าใดนั้นขึ้นอยู่กับ • ทรัพยากรของแต่ละเครื่อง • ลักษณะงานที่ทำ
สถาปัตยกรรมเทียร์ • เทียร์เดียว (Single tier) • สองเทียร์ (Two tier) • หลายเทียร์ (Multi tier)
สถาปัตยกรรมแบบเทียร์เดียวสถาปัตยกรรมแบบเทียร์เดียว • ใช้ในเครื่องคอมพิวเตอร์โดยส่วนใหญ่ โดยที่โปรแกรมนั้นสามารถทำงานได้ทุกอย่างในตัวของมันเอง ตั้งแต่การรับข้อมูล ประมวลผล แสดงผล ตลอดจนการบันทึกงานลงในแฟ้ม เช่น โปรแกรมMicrosoft word หรือ Access
สถาปัตยกรรมแบบสองเทียร์สถาปัตยกรรมแบบสองเทียร์ มีการแบ่งเทียร์ออกเป็นสองส่วน (Client/ Server) ซึ่งจะมีการทำงานประสานกันโดยอาศัยข้อตกตงทางการสื่อสารที่ได้ตกลงกันไว้ทั้งสองส่วน หน้าที่ของ Server คือทำหน้าที่ Background Process รับผิดชอบด้านการประมวลผลของระบบข้อมูลและในขณะที่ Client ทำหน้าที่ Foreground Process ที่รับผิดชอบทางด้านของ User Interface
สถาปัตยกรรมแบบหลายเทียร์สถาปัตยกรรมแบบหลายเทียร์ • ในกรณีของ 2 tiers นั้นถ้ามีการเปลี่ยนแปลงความสัมพันธ์ทำให้ไม่สามารถสื่อสารกันได้ หรือทำให้เกิดความไม่เข้าใจระหว่างรูปแบบของข้อมูลที่ใช้ในการสื่อสารกัน จะต้องมีการปรับปรุงหรือเปลี่ยนแปลงเทียร์ทั้งสองเพื่อให้สามารถสื่อสารกันได้ เช่น ในระบบหนึ่งเรามีฐานข้อมูล SQL และมีการพัฒนาโปรแกรมขึ้นมาเพื่อใช้งานฐานข้อมูลดังกล่าว แต่ต่อมามีการเปลี่ยนฐานข้อมูลจาก SQL เป็น Oracle ทำให้ต้องมีการเปลี่ยนแปลงหรืออปรับปรุงส่วนของ Client ใหม่เพื่อเข้าใจรูปแบบการสื่อสารที่เปลี่ยนแปลงไป เพื่อเป็นการแก้ไขปัญหานี้จึงได้เพิ่มเทียร์ที่อยู่ระหว่างกลาง (Application tier)
Middleware • ODBC • ADO • JDBC
การติดต่อฐานข้อมูล JDBC-ODBC
การติดต่อกับฐานข้อมูลการติดต่อกับฐานข้อมูล • Architecture Java Program Database JDBC : Java Database Connection Driver ผู้ผลิต DB จะสร้าง driver สำหรับติดต่อฐานข้อมูล โดยที่ driver จะแปลคำสั่งจาก JDBC ให้เป็นคำสั่งสำหรับเข้าใช้งาน DB ส่วนโปรแกรมจาวาจะส่ง sql ไปที่ JDBC แล้ว JDBC จะเปลี่ยนคำสั่งนั้นให้เป็นคำสั่งสำหรับ driver
การเริ่มต้นการติดต่อกับ MS Access • จะต้องมีฐานข้อมูล • สร้าง user DSN • ติดต่อด้วย Java Application DSN DB Java Application
สร้างฐานข้อมูลใน MS Access • สร้างฐานข้อมูล MyDb ใน Access • สร้าง table ชื่อ STUDENT มีโครงสร้างดังนี้
สร้างฐานข้อมูลใน MS Access • ป้อนข้อลงลง table ชื่อ STUDENT • บันทึกลงใน D:\Eventprogramming\MyDb.mdb
การสร้าง DSN • Start Control Panel Administrative Tools DataSource(ODBC)
เลือกรายการ Driver do Microsoft Acess (*.mdb) แล้วคลิกปุ่ม Finish
ป้อนคำว่า STUDENT Click Select เพื่อเลือกฐานข้อมูล
การ Loading JDBC Driver • สามารถทำได้ด้วยคำสั่ง Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
การเริ่มต้น Connect Connection c = DriverManager.getConnection ("jdbc:odbc:STUDENT"," "," "); Password Data Base Name User Name
Statements • Statement เป็น Interface สำหรับการสร้าง class ที่ทำหน้าที่ส่งประโยค sql ไปสู่ DB ผ่านทาง Connection ถ้ามีผลลัพธ์ ก็สามารถรับผลลัพธ์นั้นกลับเข้าสู่โปรแกรมเป็น resultset ซึ่ง Statement สามารถใช้งานได้ 3 รูปแบบ คือ • Statement สำหรับทำงานประโยค SQL ที่สร้างขึ้นครั้งเดียว • PrepareStatement สำหรับทำงานประโยค SQL ที่มีรูปแบบเดิมหลายครั้ง • CallableStatement สำหรับทำงานกับ Store Procedures
Statements (con.) • Statement s = c.createStatement( ); • ResultSet r = s.executeQuery (" ______ "); • s.executeQuery ("SQL"); ใช้ในกรณีที่ประโยค sql นั้นมีผลลัพธ์กลับมา • s.executeUpdate ("SQL"); ใช้ในกรณีที่ประโยค sql นั้นมีไม่ผลลัพธ์กลับมาแต่มีผลต่อฐานข้อมูล • s.execute ("SQL"); ใช้ในกรณีที่ไม่ทราบว่าประโยค sql นั้นมีผลลัพธ์กลับมาหรือไม่ซึ่งถ้ามีจะต้องใช้ getResultSet รับค่าที่คืนกลับ หรือใช้ getUpdateCount เพื่อตรวจสอบจำนวน record ที่เปลี่ยนแปลง SQL Statement
การทดสอบการเชื่อมต่อ • import java.sql.*; • import java.lang.*; • class DBTest { • public static void main (String st[ ]) throws Exception { • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); • Connection c = DriverManager.getConnection("jdbc:odbc:STUDENT","",""); • Statement s = c.createStatement( ); • ResultSet r = s.executeQuery ("SELECT * FROM STUDENT"); • while(r.next()) { • System.out.println(r.getInt(1) + ", " +r.getString(2) + ", " + • r.getString(3)); } • s.close(); • c.close(); • } • }
การทดสอบการเชื่อมต่อ • import java.sql.*; • import java.lang.*; • class DBTest{ • public static void main (String st[]) throws Exception{ • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); • Connection c = DriverManager.getConnection("jdbc:odbc:STUDENT","",""); • Statement s = c.createStatement(); • s.executeUpdate("INSERT INTO STUDENT VALUES(134,'LUPING','MBA.')"); • ResultSet r = s.executeQuery("SELECT * FROM STUDENT"); • while(r.next()){ • System.out.println(r.getInt(1) + ", " +r.getString(2) + ", " + • r.getString(3));} • s.close(); • c.close(); • } • }