Hình 3.13 Mô hình phân lớp dữ liệu
Với mô hình này ta tách biệt các thành phần dữ liệu:
- Dữ liệu thống kê: là các dữ liệu đã được thống kê, xử lý theo mục đích và lưu vào cơ sở dữ liệu được Web Server trả về cho tầng ứng dụng (bên phía Client) để thực hiện các công việc liên quan đến hiển thị đồ họa trên nền bản đồ tương ứng với dữ liệu nhận được.
- Dữ liệu bản đồ: dữ liệu được Map Server lấy từ OpenStreetMap (OSM) sau đó thông qua Open Layers để xử lý và hiển thị bản đồ lên thành bản đồ. Tại tầng bản đồ ngoài việc hiển thị bản đồ còn cung cấp các thông tin liên quan đến bản đồ như tọa độ, mức độ zoom hỗ trợ cho quá trình vẽ các vật thể đồ họa tại chương trình Flash ở tầng ứng dụng.
Theo đó, khi Client có yêu cầu về viêc hiển thị đồ họa trên nền bản đồ thì sẽ lấy các dữ liệu cần thiết là dữ liệu thống kê và dữ liệu bản đồ. Dữ liệu thống kê sẽ được WebServer lấy từ cơ sở dữ liệu và trả về dữ liệu tương ứng với yêu cầu từ phía người dùng. Dữ liệu bản đồ cũng sẽ được lấy theo yêu cầu người dùng. Khi có yêu cầu Map Server sẽ kiểm tra xem liệu có sẵn dữ liệu bản đồ trong cơ sở dữ liệu không. Nếu có, Map Server sẽ lấy dữ liệu đó và trả về cho người dùng và nếu không sẽ lấy dữ liệu cần thiết từ
các máy tính xung quanh nó qua giao thức chia sẻ hoặc sẽ lấy trực tiếp từ Server dữ liệu của Open Street Map. Dữ liệu bản đồ được gửi thông qua Open Layers sẽ được hiển thị theo cách mong muốn của người dùng và chứa các thông tin về tọa độ và mức zoom của bản đồ. Các dữ liệu cần thiết đó được chuyển tới cho chương trình Flash được sử dụng để hiển thị đồ họa.
Việc sử dụng mô hình phân lớp dữ liệu sẽ giúp cho việc xử lý yêu cầu linh hoạt hơn. Khi có sự thay đổi về yêu cầu hiển thị bản đồ hay biểu đồ thì sẽ chỉ có sự thay đổi trên tầng tương ứng mà không có ảnh hưởng gì đến tầng còn lại. Đồng thời phân lớp dữ liệu sẽ giúp giảm tải trong việc xử lý cho Web Server do chỉ phải xử lý các thông tin liên quan đến dữ liệu thống kê và xây dựng biểu đồ, các phần việc xử lý và hiển thị bản đồ sẽ do Map Server xử lý.