2006/12/04

Kiến trúc WebGIS

Bất cứ công nghệ WebGIS nào cũng phải thỏa mãn trước hết kiến trúc 3-tier thông dụng của môt ứng dụng Web. Tùy thuộc vào từng công nghệ riêng biệt của từng hãng mà chúng có khả năng phát triển, mở rộng thành kiến trúc đa tầng (n-tier) hay không. Kiến trúc 3-tier được mô tả như sau :

Chúng gồm 3 thành phần cơ bản, đại diện cho 3 tầng :

1) Database (Data tier): là nơi lưu trữ các dữ liệu địa lý bao gồm cả các dữ liệu không gian và phi không gian. Các dữ liệu này được quản trị bởi các hệ quản trị cơ sở dữ liệu như ORACLE, MS SQL SERVER, ESRI SDE, POSGRESQL,… hoặc là các file dữ liệu dạng flat như shapefile, tab, XML,… Các dữ liệu này được thiết kế, cài đặt và xây dựng theo từng quy trình đặc thù của từng cá thể hay tổ chức. Tùy theo quy mô và yêu cầu của hệ thống mà tổ chức chọn lựa công nghệ quản trị cơ sở dữ liệu cho phù hợp.

2) Application Server (Bussiness Tier): thường được tích hợp trong một webserver nào đó, ví dụ như các webserver nổi tiếng như Tomcat, Apache, Internet Information Server. Đó là một ứng dụng phía server nhiệm vụ chính của nó thường là tiếp nhận các request từ client , lấy dữ liệu từ cơ sở dữ liệu theo yêu cầu client , trình bày dữ liệu theo cấu hình định sẵn hoặc theo yêu cầu của client và trả (response) kết quả về theo yêu cầu. Tùy theo dạng client mà kết quả về khác nhau : có thể là một hình ảnh dạng bimap (jpeg, gif, png) hay dạng vector được mã hóa như SVG, KML, GML,…Một khi dạng vector được trả về thì việc trình bày hình ảnh bản đồ được đảm nhiệm bởi Client (ta gọi đó là thick client), thậm trí client có thể xử lý một số bài tóan về không gian. Thông thường các response và request đều theo chuẩn HTTP POST hoặc GET. Nếu theo công nghệ Web Service thì chúng có thể được mã hóa bằng các định dạng XML.

3) Client (Presentation tier) : thông thường đơn thuần là một browser như InternetExplorer, FireFox, Nescape,…để mở các trang web theo URL định sẵn. Các ứng dụng cient có thể là 1 website, Applet, Flash,… được viết bằng các công nghệ chuẩn mà W3C đã chứng thực. Các Client đôi khi cũng là một ứng dụng desktop tương tự như phần mềm MapInfo, ArcMap,…

Kiến trúc 3-tier là kiến trúc phổ cập nhất dành cho các ứng dụng web, tuy nhiên trong thực tế nhằm để giải quyết các vấn đề chúng ta đòi hỏi cần phải kết nối, trao đổi nhiều thành phần của hệ thống lại với nhau hoặc giữa các hệ thống lại với nhau để có thể đưa cho ngừơi sử dụng những thông tin hữu ích nhất có thể có. Với nhu cầu đó kiến trúc 3-tier sẽ trở nên không linh họat và nặng nề trong vận hành. Trong bối cảnh như vậy các kiến trúc n-tier sẽ được phát triển và mở rộng cho các hệ thống thông tin. Kiến trúc n-tier thường được áp dụng trong các hệ thống phân tán. Khái niệm phân tán ở đây không ám chỉ về mặt địa lý mà chỉ nói đến các hệ thống độc lập nhưng có khả năng kết hợp với nhau thành 1 hệ thống lớn hơn. Tính phân tán của hệ thống có thể là phân tán các ứng dụng hoặc cơ sở dữ liệu.

Để thực hiện một yêu cầu của người sử dụng hệ thống theo kiến trúc n-tier cần phải truy cập, trao đổi thông điệp (message) và xử lý qua nhiều tầng Application của nhiều hệ thống hay thành phần khác nhau. Trong nhiều mô hình khác kiến trúc n-tier còn được thể hiện qua sự tương tác trực tiếp của client với nhiều hệ thống . Kiến trúc n-tier này hiện nay đang phát triển rất mạnh song song với phát triển các công nghệ khác, đặc biệt là công nghệ Webservice theo SOA (Serviced-Oriented Architecture). Một trong những minh chứng cụ thể là sự bùng nố các website dựa trên các dịch vụ của Google và các website GIS theo chuẩn mở OGC (Open Geospatial Consortium).


Kiến trúc n-tier tương tác giữa client với các hệ thống.

Thuật ngữ Mashup cũng được xuất phát từ đây, có nghĩa là một website sử dụng nhiều nội dung từ các hệ thống khác nhau. Sức hấp dẫn của kiến trúc này là các tổ chức có thể tận hưởng các nguồn dữ liệu mà mình không thể làm được để áp dụng vào các ứng dụng với các dữ liệu của riêng mình.

1 nhận xét:

  1. hi anh BHS,

    Em cũng có đọc 1 số tài liệu nói về kiến trúc 3-tier. Cũng là 3 thành phần: 1-Data, 2-Application, 3-Presentation. Tuy nhiên, em hiểu khác anh 1 chút. Đó là các module xử lý (Application) và module kết xuất (Presentation) nằm ở những nơi khác nhau trong cùng 01 project. Nếu giải thích như ý của anh thì dễ làm người khác hiểu nhầm: cứ là ứng dụng web thì đều sẽ có 3 lớp, vì luôn có lớp Presentation nằm ở Trình duyệt. Có rất nhiều lập trình viên thường trộn lẫn những loại code Application với Presentation trên các ứng dụng web. Điều này sẽ gây khó khăn khi viết lại ứng dụng. VD khi thay đổi giao diện chẳng hạn, LTV sẽ có thể ảnh hưởng đến phần Presentation và ngược lại.

    -Chính

    Trả lờiXóa