Xây dựng hệ thống thông tin địa lý trên Internet (Internet-GIS) cung cấp thông tin dữ liệu không gian

MỤC LỤC

Cơ sở lý thuyết

Chơng trình này có khả năng kiểm tra quyền sử dụng, phân quyền truy nhập dịch vụ của các khách hàng vào CSDL địa lý. Chơng trình này sẽ đợc tải về máy của ngời sử dụng , chạy và tự động giao tiếp với IGIS-Server để thực hiện các chức năng của hệ thống.

Hệ thống thông tin địa lý (GIS) I – Hệ quản trị CSDL Oracle

Xây dựng hệ thống phần mềm thao tác, hiển thị thông tin địa lý trên môi trờng mạng Internet.

Ngôn ngữ lập trình và các công nghệ trên Web

  • Các thành phần cơ bản của GIS
    • Các kiểu dữ liệu và các mô hình dữ liệu GIS 1 Các kiểu dữ liệu cơ bản của GIS
      • Các hệ toạ độ và hệ quy chiếu trong GIS 1 Hệ toạ độ
        • Các phép phân tích dữ liệu trong GIS

          Lúc này cần xây dựng các tập truy vấn có các điểm thuận lợi khác nhau nh tập các vùng có diện tích đất đai rộng, tập các vùng nằm trên trục đờng giao thông chính, tập các vùng có địa hình tơng đối bằng phẳng,… Và giao của các tập này hay thực hiện phép INTERSECT sẽ chỉ ra các vùng thuộc các hớng có nhiều đặc điểm thuận lợi nhất. Đây có thể xem là một giải pháp rất hữu ích cho các tổ chức quản lý liên quan đến mạng nh hệ thống vận tải, truyền thông,… Các doanh nghiệp sử dụng chúng để lập kế hoạch phân phối hàng hoá hay dự trù các vị trí sắp đặt cửa hàng, dịch vụ hay các chi nhánh công ty.

          Hình raster. Có thể thực hiện các thao tác lựa chọn, thay đổi hay cập nhật lại một đối
          Hình raster. Có thể thực hiện các thao tác lựa chọn, thay đổi hay cập nhật lại một đối

          Hệ quản trị CSDL Oracle –

          Giới thiệu về Oracle

          Các công cụ này bao gồm các sản phẩm phần mềm cùng với các chơng trình ứng dụng đợc dành cho ngời sử dụng cuối. Hệ quản trị CSDL Oracle có tính an toàn, bảo mật cao, tính nhất quán và toàn vẹn dữ liệu, cho phép các user truy nhập tới CSDL phân tán nh một khối thống nhất, hỗ trợ xử lý song song,.

          Kiến trúc và quản lý dữ liệu của hệ quản trị CSDL Oracle

          • CÊu tróc CSDL Oracle

            Hoặc khi một hàng đã tồn tại trong một block nhng đợc cập nhật lại (update) và kích thớc mới không đủ chứa trong block hiện tại thì Oracle sẽ thực hiện ‘di trú’ toàn bộ dữ liệu của hàng này tới một block mới khác (gọi là quá trình Migrating). - Incremental Extent : Khi Initial Extent của một Segment đã đầy và nhiều không gian lu trữ đợc đòi hỏi cho việc lu trữ dữ liệu mới thì Oracle sẽ tự động cấp phát cho Segment đó thêm một Extent mới gọi là Incremental Extent.

            Sơ đồ quan hệ giữa Datablocks, Extents và Segment
            Sơ đồ quan hệ giữa Datablocks, Extents và Segment

            Tích hợp dữ liệu GIS với hệ quản trị CSDL Oracle (Oracle Spatial)

              - Recover (RECO) : giải quyết các giao dịch phân tán trên mạng mà bị treo hoặc lỗi hệ thống trong CSDL phân tán, nó sẽ kết nối tới các CSDL ở xa và tự động thực hiện commit hoặc rollback. Kiểu SDO_GEOMETRY đã đợc định nghĩa sẵn nh sau : CREATE TYPE SDO_GEOMETRY AS OBJECT ( SDO_GTYPE NUMBER,. SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY, SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY);.

              Sơ đồ minh hoạ các phơng pháp  chỉ số (SDO_LEVEL=2):
              Sơ đồ minh hoạ các phơng pháp chỉ số (SDO_LEVEL=2):

              TRUYềN THÔNG MạNG MáY TíNH –

              Khái quát chung về mạng máy tính 1 Định nghĩa

                - Giao thức mạng : Để trao đổi đợc thông tin trên mạng cần phải có những quy tắc quy ớc nhất định, từ khuôn dạng (cú pháp, ngữ nghĩa) của dữ liệu cho tới các thủ tục gửi, nhận dữ liệu kiểm soát hiệu quả và chất lợng truyền tin, xử lý lỗi và sự cố. - Mạng chuyển mạch kênh (circuit – switched networks) : Khi có 2 thực thể cần trao đổi thông tin với nhau thì giữa chúng sẽ thiết lập một “kênh” (circuit) cố định và đợc duy trì cho đến khi một trong hai bên ngắt liên lạc.

                Kiến trúc phân tầng và mô hình OSI 1 Kiến trúc phân tầng

                  Điều này đã thúc đẩy các nhà nghiên cứu, thông qua các tổ chức chuẩn hoá quốc tế tìm ra khung chuẩn về kiến trúc mạng làm căn cứ cho việc thiết kế và chế tạo các sản phẩm về mạng. Tầng Network : Thực hiện chọn đờng và chuyển tiếp thông tin với công nghệ chuyển mạch thích hợp, thực hiện kiểm soát luồng dữ liệu và cắt/hợp dữ liệu nếu cần.

                  Internet

                  • Giao thức TCP/IP

                    Trong trờng hợp địa chỉ IP nhận và địa chỉ IP gửi có địa chỉ mạng khác nhau, router đợc sử dụng để tìm ra đờng đi từ nơi gửi tới nơi nhận tuỳ theo từng thuật toán tìm đờng đợc sử dụng. TCP là một giao thức “có liên kết” nghĩa là cần phải thiết lập liên kết (logic) giữa một cặp thực thể TCP trớc khi chúng trao đổi dữ liệu với nhau, và giải phóng liên kết khi kết thúc trao đổi dữ liệu.

                    LậP TRìNH SOCKET Và – MULTITHREADING

                    • Mô hình lập trình sử dụng Socket

                      Khi có một kết nối tới, Server sẽ thực hiện gọi hàm accept chấp nhận kết nối, lúc này server cũng cần tạo ra một phân tuyến riêng (thread) phục vụ cho kết nối này, sau đó lại tiếp tục quay lại trạng thái đợi kết nối. Khác hẳn với môi trờng DOS với một cơ chế tuần tự cứng nhắc, làm việc trong một hệ điều hành đa nhiệm ngời sử dụng luôn cảm thấy rằng mình có thể thực hiện đợc nhiều việc hơn, tiết kiệm thời gian hơn, thoải mái hơn vì không phải ngồi đợi không trong lúc thi hành một tác vụ nh trớc nữa.

                      NGÔN NGữ LậP TRìNH Và CáC – công nghệ TRÊN WEB

                      Ngôn ngữ lập trình Visual C++

                      Các ứng dụng đa luồng có nhiều đòi hỏi khắt khe hơn so với các ứng dụng đơn luồng trong việc truy nhập tài nguyên hệ thống (dữ liệu, bộ nhớ,…). Enterpisse Edition đợc xem là đầy đủ nhất, ngoài tất cả các chức năng của lần xuất bản Professional còn có thêm một số công cụ mới làm việc với CSDL, gỡ rối, Visual SourceSafe,….

                      Ngôn ngữ lập trình Java

                      • Java Applet

                        “Java là một ngôn ngữ đơn giản, hớng đối tợng, phân tán, thông dịch, mạnh mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động “ ( The Java TM Language : An Overview – Sun Microsystems/ 1995). - Kiến trúc trung tính (Neutral architecture) : Tạo ra một máy ảo Java (Java Virtual Machine – JVM) cho phép các ứng dụng Java chạy trên đó và không phụ thuộc vào các hệ điều hành nh Windows, Sun Solaris, UNIX hay Macintosh và phần cứng khác nhau (IBM, Apple,Commodre, Radio Shack,.).

                        Giới thiệu một số công nghệ trên Web 1 Active X

                          Mỗi trình duyệt có một đối tợng quản lý việc bảo mật và nếu nó phát hiện có vi phạm thì nó sẽ trả về cho applet một SecurityException. - Applet có thể gọi đến các phơng thức toàn cục của các applet khác trên cùng một trang web.

                          Phân tích hệ thống

                          Thiết kế tổng thể –

                          Hệ thống cung cấp thông tin địa lý Internet-GIS 1 Các khái niệm chung

                          • Quá trình hoạt động của hệ thống Internet-GIS Quá trình hoạt động của hệ thống bao gồm một số bớc sau

                            Chơng trình IGIS-Client sẽ tự động kết nối với chơng trình IGIS-Server và thiết lập các thông tin ban đầu (ví dụ cấp phát bộ nhớ cho IGIS-Client, nạp danh sách các Public Service,…). - Khi ngời sử dụng yêu cầu một chức năng nào đó của GIS nh hiển thị bản đồ, phóng to, thu nhỏ bản đồ, … thì IGIS-Client sẽ tạo ra một request yêu cầu chức năng gửi tới IGIS-Server.

                            Mô hình hoá hệ thống

                            Hay khi cha kết thúc thực hiện một chức năng thì IGIS-Client sẽ vô hiệu hoá tất cả các yêu cầu thực hiện chức năng nào đó của hệ thống từ ngời sử dụng. Khi ngời sử dụng đóng Browser hoặc chuyển sang một site khác hệ thống sẽ thực hiện pha cập nhật nếu cần và giải phóng các tài nguyên dành cho IGIS-Client bên máy IGIS-Server.

                            Thiết kế chi tiết

                            Mô hình trao đổi dữ liệu giữa IGIS-Client và IGIS-Server

                            Tuy nhiên trong trờng hợp ta cần xử lý một vài thao tác trớc khi gửi một request hay response nh nén hay mã hoá dữ liệu,… thì phải thực hiện thêm một số chức năng trung gian nữa nh nén dữ liệu/giải nén dữ liệu, mã hoá dữ liệu/giải mã dữ liệu. Tập các chức năng của pha thứ nhất chỉ quan tâm tới khuôn dạng của dữ liệu sẽ đợc đa vào một tầng mà ta gọi là tầng ứng dụng (Application Layer) còn tập các chức năng của pha thứ 2 chỉ quan tâm tới các byte, bit của dữ liệu nên ta gọi là tầng truyền thông (Communication Layer).

                            Giao thức trao đổi dữ liệu giữa IGIS-Client và IGIS-Server

                            • Giao thức tầng ứng dụng (IGIS-AP) .1 Các trạng thái trong giao thức IGIS-AP

                              Xây dựng hệ thống phần mềm thao tác, hiển thị thông tin địa lý trên môi trờng mạng Internet. Trong phần sau sẽ trình bày chi tiết giao thức tầng ứng dụng và giao thức tầng truyền thông. Còn giao thức tầng Socket đợc thực hiện theo giao thức mạng TCP/IP. Xây dựng hệ thống phần mềm thao tác, hiển thị thông tin địa lý trên môi trờng mạng Internet. Sơ đồ chuyển đổi trạng thái theo giao thức IGIS-AP. Trong mỗi trạng thái sẽ có một tập lệnh và tham số để tạo thành một request và một response tơng ứng. Một số lệnh có thể sử dụng trong các trạng thái khác nhau nhng cũng có lệnh không đợc phép sử dụng khi cha đi vào trạng thái hợp lệ. II.1.2 Cấu trúc chung của một Request. Bất kỳ request nào đều gồm có phần lệnh, có hoặc không có phần tham số. Phần lệnh đợc tách riêng với nhau bởi dấu ‘?’ :. Phần lệnh Command : mô tả một chức năng của hệ thống cần thực hiện. Phần tham số Arguments : mô tả các tham số của lệnh cần thực hiện. Trờng hợp có nhiều tham số thì các tham số cách nhau bởi dấu ‘&’. Nếu tham số có nhiều giá trị thì các giá trị cách nhau bởi dấu ‘+’. Cấu trúc của Request gần giống với các yêu cầu theo giao thức HTTP nhằm mục. đích phát triển hệ thống khi cần thiết. Đây là một request yêu cầu chứng thực với UserName=xyz và Password=xyz. II.1.3 Cấu trúc chung của một Response. Một Response gồm phần mã kết quả vừa thực hiện lệnh và có thể có hoặc không có phần thông báo kết quả. Phân chia các dòng bằng CRLF. Ví dụ kết quả trả lời một gói tin chứng thực có thể là : 000 hoặc 000 Invalid Username and Password. Xây dựng hệ thống phần mềm thao tác, hiển thị thông tin địa lý trên môi trờng mạng Internet. 100 hoặc 100 Valid Username and Password. II.1.4 Nội dung các chức năng cần thực hiện của hệ thống Internet-GIS Mỗi chức năng này đợc biểu diễn bằng một request và gửi tới IGIS-Server. 1) Set Parameters : Thiết lập các thông số khởi tạo. Các thông sô này cần thiết cho việc tạo ảnh raster của bản đồ từ dữ liệu vector nh kích thớc hiện tại của View, mầu nền bản đồ,…. 2) Get Services : Sử dụng để lấy các dịch vụ đợc cung cấp bởi IGIS-Server. 3) Authen : yêu cầu kiểm tra quyền sử dụng Private Service. Bản đồ hiện tại sẽ bị xoá hoặc yêu cầu cËp nhËt. 5) AddLayer : Nạp chồng một hoặc nhiều lớp vào bản đồ hiện tại. Nếu bản đồ hiện tại không chứa một lớp nào (bản đồ rỗng) thì lớp mới sẽ trở thành lớp đầu tiên của bản đồ. 6) RemoveLayer : Gỡ bỏ một hoặc nhiều lớp khỏi bản đồ hiện tại. Nếu không còn một lớp nào trong bản đồ thì sẽ đợc tô đầy bằng màu nền của View. 7) Zoom : Thực hiện một phép zoom bản đồ với một tỷ lệ xác định. Tuỳ thuộc vào tỷ lệ này mà bản đồ sẽ đợc phóng to hay thu nhỏ lại. Thao tác này sẽ thay đổi cả. tỷ lệ hiển thị và khoảng cách offset của vị trí hiển thị. 8) PanMap : Di chuyển vùng hiển thị bản đồ sang một vị trí mới. Thao tác này chỉ thay đổi offset của vị trí hiển thị mà không làm thay đổi tỷ lệ bản đồ. 9) Goto Origin : Chuyển chức năng hiển thị bản đồ về trạng thái đầu tiên khi mở một bản đồ mới hoặc nạp chồng lớp đầu tiên vào bản đồ. 10) ViewEntireLayer : Thực hiện chức năng nhìn toàn bộ bản đồ trong View hiện tại. 11) GetInfo : Yêu cầu xem thông tin của một hoặc nhiều thực thể trên bản đồ tại một vị trí xác định. 12) ExecSQL : Thực hiện một lệnh SQL nh insert, update, delete,… không có lệnh select. II.1.5 Cấu trúc chi tiết của các Request và Response. 1) Set Parameters (Initialization State Only).

                              Sơ đồ chuyển đổi trạng thái theo giao thức IGIS-AP
                              Sơ đồ chuyển đổi trạng thái theo giao thức IGIS-AP

                              HANOI : GEOMETRY 5) Authen

                              (Service List : mô. tả ở cuối bảng) Ví dụ lệnh Get Services:. IGIS-Client : Get Services?public IGIS-Server : 000 1 Public Services SName=Dich vu thong tin ban do SID=3. Xây dựng hệ thống phần mềm thao tác, hiển thị thông tin địa lý trên môi trờng mạng Internet. Ví dụ lệnh New Map :. 8) AddLayer (Public/Private Transaction State). Dx=valueDx&Dy=valueDy (Dx, Dy là khoảng dịch chuyển theo chiều x,y theo đơn vị Device). 11)Goto Origin (Public/Private Transaction State). Không có tham số Nh trên. Ví dụ lệnh Goto Origin : IGIS-Client : GOTO ORIGIN. 13)ViewEntireLayer (Public/Private Transaction State).

                              CRLF :- Empty Map

                              (MaxBounding =Y toàn bộ lớp bao gồm cả đờng biên) Ví dụ lệnh ViewEntireLayer. 15) RemoveLayer (Public/Private Transaction State).

                              000 [MSG] CRLF ObjectInfos

                              Giao thức tầng truyền thông (IGIS-CP)

                                Các packet sử dụng trong tầng truyền thông này ta gọi là IGIS-Packet để khỏi lầm với các packet trong các giao thức ở tầng dới. Nếu dữ liệu nằm trong nhiều IGIS-Packet thì nó đợi cho tới khi nhận đủ các IGIS-Packet và tập hợp lại thành dữ liệu hoàn chỉnh.

                                  Phơng pháp trao đổi dữ liệu giữa IGIS-Server và Oracle

                                    Tuy nhiên nếu CSDL Oracle và IGIS-Server nằm trên các máy khác nhau, thì cần cài đặt Net8 Client trên máy IGIS-Server và Net8 Server trên máy đặt CSDL Oracle. √ Giao diện chơng trình có thể tuỳ biến đợc nhằm mục đích hỗ trợ cho ngời thiết kế trang Web có thể biến đổi theo ý muốn.

                                    VIEW

                                    Chức năng của các class

                                    MapBackgroundColor : Mỗu nền của bản đồ MapBorderColor : Mỗu biên của bản đồ ToolbarBkgndColor : Mỗu nền của Toolbar StatusbarBkgndColor : Mỗu nền thanh Statusbar Logo1,logo2,log3 : Tên các file ảnh logo. ClientSocket : thực hiện giao tiếp với IGIS-Server, lấy các Service trên IGIS- Server, quản lý các layer trong bản đồ hiện tại.

                                    Thiết kế chơng trình ứng dụng IGIS-Server

                                    • Xây dựng tập các modul chơng trình giao tiếp với Oracle và thực hiện các chức năng GIS

                                      Cấu trúc lu trữ dữ liệu trên Oracle là cấu trúc dữ liệu Vector, để chuyển đổi thành file ảnh raster, chơng trình phải thực hiện việc vẽ và lu thành file ảnh tơng ứng. Do giới hạn về thời gian, việc thực hiện đồ án sẽ không đi sâu vào vấn đề này mà sẽ sử dụng một th viện xử lý ảnh có sẵn trên Internet thực hiện chuyển đổi từ dạng bitmap do chơng trình tạo ra thành dạng JPG.

                                      Cài đặt chơng trình và thử nghiệm

                                      Cài đặt hệ thống 1 Cài đặt Oracle Server

                                        • Phần mềm Web Server của Microsoft : Internet Information Server (trên Windows NT), Microsoft Peer Web Services (Windows NT Workstation) hay Personal Web Server (Windows 95/98). Vì lý do an toàn, một chơng trình Java Applet chỉ đợc phép thực hiện các kết nối tới máy mà chúng đợc tải xuống nên chơng trình IGIS-Server phải đợc cài đặt trên máy Web Server.

                                        Thử nghiệm

                                          √ Khi có nhiều yêu cầu đến cùng một lúc hệ thống bên Server vẫn làm việc tốt, các chức năng yêu cầu đợc thực hiện một cách song song và cho kết quả khá đều nhau. √ Tốc độ xử lý với các bản đồ kích thớc nhỏ (vài MB) là khá nhanh nhng với các bản đồ có kích thớc lớn (vài chục MB) vẫn còn chậm.