MỤC LỤC
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.
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.
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.
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,.
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.
- 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);.
- 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.
Đ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.
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.
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.
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,….
“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,.).
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.
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.
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.
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).
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).
(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).
(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).
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.
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.
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.
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.
• 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.
√ 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.