เวบ/อินเตอร์เน็ตเทคโนโลยี ระบบปฏฺบัติการและซอฟท์แวร์ ซอร์สโค๊ด/โอเพนซอร์ส เทคโนโลยีฐานข้อมูล ระบบเครือข่ายและความมั่นคง เอ็มไอเอส/อีบิสสิเนส อื่น ๆ เกี่ยวกับไอ.ที. อื่น ๆ ไม่เกี่ยวกับไอ.ที.

ระบบเครือข่ายและความมั่นคง

มารู้จัก Application Architecture กันดีกว่า

มารู้จัก Application Architecture กัน
อัปเดท ( 30 ตุลาคม 2547 ) , แสดง (53,738) , ความคิดเห็น (22) , พิมพ์  
 
ระบบเครือข่ายและความมั่นคง
ความรู้เบื้องต้นเกี่ยวกับเรื่องพอร์ท(Port Concept) port port port port และ port
เทคนิคการสแกนพอร์ทและวิธีป้องกัน หนึ่งในเทคนิคที่โด่งดังที่สุดที่ผู้โจมตีใช้ในการเจาะผ่านเข้าไปยังระบบได้ scan port
ความรู้พื้นฐานเกี่ยวกับ Firewall ระบบหนึ่งหรือกลุ่มของระบบที่บังคับใช้นโยบายการควบคุมการเข้าถึงของระหว่างเครือข่ายสองเครือข่าย
Network Address Translation (NAT) เมื่อจะ private IP เชื่อมต่อและใช้งานอินเทอร์เน็ต
ทำความรู้จักกับ VLAN/Virtual LAN เทคโนโลยีที่ใช้ในการจำลองสร้างเครือข่าย
เลือกใช้พรอกซี่ (Proxy) แบบไหนดี ? เมื่อมีหลายแบบก็ต้องเลือกใช้สักแบบ
MIME กับ อีเมล คู่หูที่ขาดกันมิได้ เมื่อระบบเครือข่ายไม่รู้จักไฟล์ แล้วจะส่งไปอย่างไร
WiMax เทคโนโลยีใหม่ที่กำลังจะมาถึง WiMax เทคโนโลยีใหม่ที่กำลังจะมาถึง
มารู้จัก Application Architecture กันดีกว่า มารู้จัก Application Architecture กัน
Internet 2 : อนาคต Internet จะเป็นอย่างไร Internet 2 : อนาคต Internet จะเป็นอย่างไร

Application Architecture คิดว่าใช้ทับศัพท์มันอธิบายความหมายได้กระชับพออยู่แล้ว จริงๆแล้วมันเป็นการใช้ Hardware ลักษณะการต่อ ที่แบ่งภาระงาน ในบทความนี้คุณจะได้พบกับ คำหลายๆ คำในด้าน Network เช่น Tier ,Client-server และอื่นๆ
ก่อนที่จะมาพูดถึง Application Architecture ขอพูดถึง Application Program ก่อน เจ้าตัวนี้แหละเป็น Keyword สำคัญเพื่อ จะแบ่งหมวดหมู่ของ Application Architecture โดยเจ้า Application Program มีอยู่ 4 ระดับคือ

1. Presentation logic นำผลที่ได้จาก Application logic มาแสดง
2. Application logic ทำประมวลผลต่าง ๆ ตามที่กำหนด เช่น เปรียบเทียบ, ตัดสินใจ ,ฟังก์ชั่นทางคณิตศาสตร์
3. Data access logic เป็นตัวที่เข้าถึงข้อมูลได้ จริง ทำการสืบค้น, แก้ไขจัดเก็บข้อมูลได้
4. Data storage เป็นที่เก็บข้อมูลจริงๆ

ขอยกตัวอย่าง เวบนี้นะครับ (ไม่ได้ไปไหนไกลเลย !@!!)

ที่คุณเห็นอยู่ตอนนี้ ผ่าน Internet Explorer ที่คุณใช้ ถ้าเทียบกับ Application Program ที่พูดถึงมันก็คือ Presentation logic ซื่งเป็นชั้นบนสุด ไกล้ user ที่สุด นำผลที่ได้จาก Application logic ก็คือ HTML มาแสดงผล และ รับคำสั่งจาก User ส่งให้ Application logic เพื่อประมวลผลด้วย ส่วนต่อไป Application logic ก็คือ Web Application ซึ่งเขียน เพื่อประมวลผลต่างๆ ตามต้องการ ถ้าพูดถึงเวบนี้ Application logic ถูกพัฒนาด้วย ASP.net สามารถกำหนดรูปแบบการทำงานได้ ประมวลผลต่าง ๆ ตามที่กำหนด เช่น เปรียบเทียบ, ตัดสินใจ ,ฟังก์ชั่นทางคณิตศาสตร์ ติดต่อฐานข้อมูล เป็นต้น แต่ตัว ASP.net มันก็ไม่ใช่ DBMS(โปรแกรมจัดการฐานข้อมูล) มันเข้าถึงหรือจัดเก็บข้อมูลตรง ๆ ไม่ได้ ต้องผ่านตัวกลาง ซึ่งก็คือ Data access logic ซึ่งในที่นี้เป็น MS SQL หรือ MS Access เป็น ฐานข้อมูล ดังนั้นต้องติดต่อผ่านตัวกลาง ที่ MS SQL จัดเตรียมไว้ให้ เช่น OLEDB หรือจะมอง Data access เป็นตัว DBMS(โปรแกรมจัดการฐานข้อมูล) ทั้งก้อนเลยก็ได้ เห็นได้ว่า ตัว Data access logic เป็นตัวที่เข้าถึงข้อมูลได้จริง ๆ แต่มันก็ไม่ได้เก็บข้อมูลนั้น ๆ เอง มันไม่ใช่ Hardware มันไม่รู้เลยว่า Sector ของ Harddisk เป็นอย่างไร แต่ตัวที่เก็บข้อมูลจริง เป็นอะไรไปไม่ได้นอกจาก Data storage ซึ่งจะเป็น Hardware (กว่าจะโม้จบ ไม่รู้ว่างง กันหรือเปล่า เข้าใจว่าคงจะงงกันถ้วนหน้า)
  
 


ต่อไปก็จะพูดถึง Application Architecture
Application Architecture มี 3 แบบแบ่งตาม Application Program คือ

1. Host-based Architecture
2. Client-based Architecture
3. Client-Server Architecture
ต้องขยายความสักหน่อย

1. Host-based Architecture
เป็น Architecture แบบแรก ๆ การทำงานทุกอย่างจะอยู่ที่ Server และ Client ทำหน้าที่เป็นเพียง Terminal ทำหน้าที่ แสดงผล และรับข้อมูลจาก User เท่านั้น ภาระงานการประมวลผลยกให้ Host ทั้งหมด โดย เครื่อง Terminal จะเป็น Terminal จริง ๆ หรือ PC ที่จำลองตัวเองเป็น Terminal ก็ได้ 2 แบบนี้ต่างกันตรงที่ ถ้า Host ปิด(Down) Terminal จริง ๆ จะไม่สามารถทำงานใด ๆ ได้เลย แต่ถ้าเป็น PC ที่จำลองเป็น Terminal จะยังสามารถทำงานเป็น PC ธรรมดาได้ เราควรใช้ Host-based Architecture เมื่อต้องการควบคุมข้อมูลหรือ ฐานข้อมูลเพียงที่เดียว และ งานมีขนาดใหญ่มาก

ข้อดี :
1. เมื่อเป็น Centralized control จะทำให้ง่ายต่อการ Code, Debug โปรแกรม
ข้อเสีย :
1. เกิดคอขวดที่ Server เนื่องจากงานทั้งหมดถูกทำที่ Server ซึ่งจะส่งผลให้มี Performance จำกัด
2. Upgrade ยุ่งยาก และมีราคาแพง(Mainframe)
** สถาปัตยกรรมแบบนี้จะเรียกเครื่องแม่ข่ายว่า Host ซึ่งมีความหมายเดียวกันกับ คำว่า Server

2. Client-based Architecture การทำงานทุกอย่างจะอยู่ที่ Client และ Server ทำหน้าที่เป็น Data Storage แบบนี้ไม่ค่อยเป็นที่นิยม เนื่องจากคอขวดของระบบอยู่ที่เครือข่ายเพราะสถาปัตยกรรมแบบนี้ ใช้ Bandwidth ค่อนข้างสูง

ยกตัวอย่างเช่น ต้องการ Query ข้อมูลใช้ภาษา SQL ตัวข้อมูลจริง ต้อง Load ผ่าน Network มาที่เครื่อง Client ทั้งก้อนเพื่อประมวลผล ในการ update ก็เช่นกัน ต้องส่งข้อมูลทั้งก้อน ไปที่ Server ในการใช้จริง จะมี Client หลาย เครื่องคอขวดของระบบจะเกิดที่ เครือข่าย (Network) ซึ่งแออัดไปด้วยข้อมูล

3. Client-Server Architecture การทำงานจะแบ่งกันทำ โดยงานใดอยู่ใกล้ User ก็จะนำไปไว้ในฝั่ง Client เช่น Presentation logic และ Application logic ส่วนงานที่เกี่ยวข้องกับ Server เช่น Data storage และ Data access logic จะนำไปไว้ในฝั่ง Server ในการ Update ข้อมูล Application logic จะส่ง SQL ไปที่ Server เพื่อให้ Update record ให้ ดังนั้น Traffic จะน้อยกว่าแบบ Client-based

ข้อดี :
1. Performance ดีกว่าแบบอื่น ๆ เนื่องจากกระจายงานกันทำ
ข้อเสีย :
1. การพัฒนา SOFTWARE ยากกว่าเพราะต้อง Debug ข้าม Network
2. ในการแบ่งงานกันทำ บางครั้ง Application logic กับ Data access logic มาจากคนละยี่ห้อกัน จึงอาจไม่ Match กัน ทำให้ต้องมี Middleware เกิดขึ้น

ใหน ๆ พูดถึง Application Architecture แล่ว ขอต่ออีกนิด กับ Middleware และTier อีกสักหน่อยนะครับ

Middleware เป็น SOFTWARE ที่ทำหน้าที่ให้มาตรฐานในการแปลงระหว่าง SOFTWARE จากผู้ผลิตต่าง ๆ (ทำหน้าที่คล้ายล่าม) เช่น จัดการการส่งคำขอต่าง ๆ ระหว่าง Client กับ Server โดยมันจะเป็นตัวกลางในการรับส่ง เมื่อมีการเปลี่ยนแปลง ทั้ง Client และ Server จะไม่ได้รับผลกระทบใด ๆ เพราะการเปลี่ยนแปลงเกิดขึ้นที่ Middleware (ได้แก่ ODBC,JDBC เป็นต้น)

Tier เป็น Client-Server Architecture ที่มีการ แบ่ง Application Program ตามภาระงานของแต่ละส่วน

- Two-Tier Architecture จะมองเป็นสอง Component คือ Client(ทำ Presentation, Application) กับ Server(ทำ Data storage, Data access) ตัวอย่างดังรูปด้านล่าง

- Three-Tier Architecture มองเป็นสาม Component หลัก อาจประกอบด้วย Client, Middleware, Appliaction Server ,Database Server หรืออื่นๆ ตัวอย่างดังรูปด้านล่าง

 

- N-Tier Architecture จะมีมากกว่า สาม Component ประกอบด้วย Client, Server ที่ทำงานต่างๆ, Database Server แบ่งภาระงาน บางครั้ง อาจมี เครื่องที่ทำในส่วนของ Appliaction Logic 2 ตัวเลยก็ได้ ตัวอย่างดังรูปด้านล่าง

** Thin client คือ Client ที่มี Application Program อยู่ไม่มากหรือไม่มีเลย เช่น Web browser
** Thick client คือ Client ที่ทำ Application Program ทุกอย่าง(คล้าย ๆ Client Base)

หวังเป็นอย่างยิ่งว่าบทความนี้คงมีประโยชน์บ้างนะครับ ถ้าผิดพลาดประการใดต้องขออภัยด้วยนะครับ



เขียนโดย : จักรกฤษณ์ แร่ทอง

Tiger
19 May 2005 , 10:42 PM
พึ่งได้เข้าเว็บ มาอ่าน เป็นครั้งแรก ดีครับ มีความรู้เพิ่มขึ้นอีกแล้วเรา

rawitee
23 Aug 2005 , 02:08 PM
อยากทราบว่า Bisiness Logic อยู่ส่วนไหนค่ะ

จักรกฤษณ์
24 Aug 2005 , 08:05 AM
ถ้ามอง Bisiness Logic ซึ่งอยู่สูงกว่า Application Program ทั้งหมด เพราะมันเป็นระบบงาน มันจะถูกวิเคราะห์ และ นำพัฒนาเป็น Application Logic เป็นหลักครับ แต่ส่วนต่าง ๆ ทั้ง 4 ก็เกี่ยวข้องด้วยครับ

por
14 ธ.ค. 2548 , 09:23 PM
อยากได้ข้อมูลของ client-base architecture ไม่ทราบว่าจะไปหามาได้จากไหนค่ะ

Rounnachai
20 ธ.ค. 2548 , 09:30 AM
พึ่งเคยเข้าเว็บนี้เป็นครั้งแรกเว็บนี้ดีมากครับให้ความรู้เยอะแยะมากมาย

เอก
20 ม.ค. 2549 , 02:32 PM
data Dictionary Storage -Indexing -Hashing มันคืออะไรหรอครับช่วยตอบด้วนนะครับ

จักรกฤษณ์ แร่ทอง
26 ม.ค. 2549 , 08:02 AM
-Indexing -Hashing ถ้าอยู่ในเรื่องของ data Dictionary เป็นเทคนิคในการจัดเรียงข้อมูลและค้นหา ที่นำมาใช้กับตัวจัดการฐานข้อมุล(DBMS)ครับ โจทก์มันมีอยู่ว่าทำอย่างไรจึงค้นหาได้เร็ว ถ้ามีข้อมูลจะนวนมหาศาล ผมแนะนำว่าลองศึกษาเพิ่มเติมในเรื่อง Data Structure และ Algorithm ก่อนเพื่อทราบถึง Index -Hash Function ก่อน แล้วค่อยศึกษาเพิ่มว่าใน DBMS นะมาใช้อย่างไร และก็จะพบว่า -Indexing -Hashing เป็นแค่ส่วนนึงของเทคนิคที่ใช้เท่านั้น --- ขอบคุณครับ

Ben
03 ก.พ. 2549 , 10:34 PM
อยากได้ข้อมูล Firebird database หาข้อมูลได้ที่ไหนคะ

นา
23 มี.ค. 2549 , 09:56 AM
อยากได้ข้อมูลเพิ่มเติม N-Tier Architecture

chalida
02 เม.ย. 2549 , 08:16 AM
พี่ค่ะช่วยลิสต์ให้หน่อยได้ไหมค่ะว่าโปรแกรมการจัดการฐานข้อมูลมีอะไรบ้างค่ะ คือว่าต้องทำรายงานแล้วยังไม่ค่อยทราบดีเรื่องSoftware เท่าไหร่ค่ะ รบกวนพี่ช่วยให้ข้อมูลหน่อยได้ไหมค่ะ/ ขอบคุณมากค่ะ

จักรกฤษณ์
05 เม.ย. 2549 , 09:53 AM
ที่นิยมใช้กันก็มี SQL Server ,MS Access ,Oracle ,MySQL ,Interbase ,DB2 ,Sybase ,Informix , Mimer SQL ,DBF / FoxPro ,Pervasive ประมาณนี้ครับ

zea_wizard
13 ก.ย. 2549 , 06:32 PM
อยากทราบข้อมูล sybase ใครมีข้อมูล หรือทราบแหล่งข้อมูลที่น่าสนใจ กรุณาตอบด้วยน๊า จาเปนพระคุรอย่างยิ่งเรย เพราะจาเอาไปใช้ทำรายงานวิชา database น่ะ

boui
27 ก.ย. 2549 , 11:10 AM
web application ถือว่าอยู่ใน สถาปัตยกรรมแบบไหนคับ

ปัทมาวดี บุญมาก
12 ธ.ค. 2549 , 06:52 AM
เครือข่ายแบบ client และ server มีข้อดีข้อเสียอย่างไร

ian
07 มิ.ย. 2550 , 12:03 PM
อยากทราบ Server, Work station, Clicent, Terminal ทำหน้าที่อะไร

นู๋ นันท์
27 ส.ค. 2553 , 07:31 PM
ขอบคุณมาก ค่ะ ความรู้ ส่วนนี้ คงจะเป็น ประโยชน์ ในการสอบ ของ หนู มากๆ เลย ล่ะ ค่ะ

Aum
25 ก.พ. 2554 , 02:46 AM
สุูดยอดเลยครับ

janya_sattanako
27 ก.พ. 2554 , 01:10 PM
thx 2 much, so much, very much

someone
06 ส.ค. 2554 , 10:28 AM
ที่บริษัทให้ศึกษาเรื่องของ application architecture concept มันมีอะไรบ้างที่สำคัญค่ะ

อ้น
30 ส.ค. 2554 , 11:19 AM
เม้นๆ
1 2

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ เกี่ยวกับบทความนี้
ชื่อของคุณ  : *     อีเมล : *    
ความคิดเห็น : *    
      อีเมลล์จะไม่ถูกเปิดเผย (นโยบายข้อมูลส่วนบุคคล)

Copyright © 2002 - 2018 by www.NEXTPROJECT.net All rights reserved. Policy