วันพฤหัสบดีที่ 10 กุมภาพันธ์ พ.ศ. 2554

Distributed System คือะไร?


จุดประสงคข์ของ Distributed System คือะไร?

Distributed System คือการสร้าง System ขึ้นมาจาก Component เล็ก ๆ ที่แต่ละ Component สามารถทำงานเสร็จสมบูรณ์ได้ในตัวของมันเอง นำประกอบกันขึ้นเป็นระบบใหญ่ระบบเดียว (Component Based นั่นเอง) จุดประสงค์ของ Distributed System มีอยู่ด้วกัน 3 ข้อด้วยกัน คือ

1. Availability คือ เราต้องการให้ระบบของเราทำงานได้ใกล้เคียง 24 x 7 มากที่สุด Distributed System ทำตรงจุดได้ เนื่องจากว่า ระบบของเราประกอบด้วย Component ต่าง ๆ ทำงานร่วมกัน ถ้ามี Component ใด ๆ ตายไป ส่วนอื่นก็ยังสามารถทำงานต่อไปได้ หรืออาจใช้ความสามารถในการทำ Clustering ของ Application Server เข้าช่วย

2. Scalability คือ ระบบของเรา วันนี้มีคนใช้ 100 คน วันหน้า ถ้าคนใช้เพิ่มเป็น 1000 คน ระบบของเราต้องสามารถรองรับได้ ใน Distributed System ก็สามารถทำได้โดยการเพิ่ม Component เข้าไป หรือทำ Cluster

3. Mainainability เนื่องจากว่า ระบบของเราประกอบขึ้นจาก Component ย่อย ๆ ก็สามารถทำให้เราดูแลจัดการระบบของเราได้ง่าย Application Server หลาย ๆ ตัว ก็สามารถที่จะ Monitor และ Tuning ตัว EJB แต่ละตัวที่รันอยู่ใน Application Server ได้ค่อนข้างละเอียด

นี่ก็เป็น Concept ทั่ว ๆ ไปนะครับ ถ้าเราจะพัฒนา Distributed System ขึ้นมา การใช้ EJB ก็จช่วยลดเวลาในการพัฒนา Distributed System ได้ค่อนข้างเยอะ Developer จะสามารถ Focus ไปที่ Business Logic ได้ ในขณะที่ Application Server จะจัดการ Service ต่าง ๆ ในระดับ Low-Level ให้ เช่น

- Transparency: Client ของ EJB ไม่จำเป็นต้องรู้แน่ชัดว่า Component ที่เราต้องการใช้งานอยู่ที่ไหน Client สามารถอ้างถึง EJB ที่ต้องการใช้ด้วยชื่อ
- Declarative Decurity: สามารถกำหนด Security Constraint ได้โดยการ Config และกำหนดได้ในระดับ Method เลยว่า ใครสามารถใช้ Method ไหน บน EJB ตัวไหนได้บ้าง
- Declarative Transaction: สามารถรกำหนด Behavior ของ EJB ในการทำงานใน Transaction ได้โดยการ Config
- Component Pooling: EJB เป็น Managed Object ซึ่ง Life-Cycle ของมัน ถูกจัดการโดย Container เราไม่จำเป็นต้องสนใจในการสร้าง และ Destroy ตัว EJB, Container สามารถขใช้ EJB จำนวนน้อย ๆ ในการทำงานให้กับ Client จำนวน ๆ มาก ๆ ได้ หรือถ้า Request เข้ามาเยอะ ตัว Container ก็สามารถ Instantiate EJB ขึ้นมาช่วยกันทำงาน ให้เพียงพอกับ Request ที่เข้ามาได้