Một số thao tác cấuh ình

Một phần của tài liệu Thiết kế cơ sở dữ liệu cho hệ thông tin địa lí về tài nguyên nước (Trang 41)

3. Triển khai chương trình

3.4 Một số thao tác cấuh ình

2.2 Chi tiết các chức năng

Chức năng 1:

Nhận và phân tích nội dung e-mail.

Chi tiết các công việc cần thực hiện như sau

1.1 - Chép toàn bộ thông điệp e-mail ra bộ đệm, theo từng dòng.

1.2 - Đọc và phân tích để tách phần đầu (header), phần thân, phần các tệp đính

kèm (đã bị mã hóa base64 encode, nếu c ó ) : mấy tệp đính kèm, tách và ghi lưu các

tệp đính kèm đã mã hóa.

1.3 - Trích các tham số về người gửi, phục vụ cho xác thực: tên. địa chi e-maii, mật khấu truy nhập ..

Chức n ă n g 2 :

Xác thực người sử dụng.

Chi tiết các công việc cần thực hiện như sau:

2.1 - Đọc các tệp tham số cấu hình hệ thống, chứa các thông tin về người sử dụng, quyền truy nhập sử dụng hệ thống và phân quyên truy cập CSDL.

2.2 - So sánh với thông tin đầu vào, xác thực đúng hoặc sai. Nếu đủng, thực hiên tiếp các chức năng 3,4,5

Nếu sai, giải phóna bộ đệm chứa thông điệp e-m aiỊ sừi thông báo cho quản trị hệ thốne ; kết thúc giao dịch.

Chức n ăn g 3

Giải mã tệp đính kèm : đầu vào là tệp mã hoá base64 - encode ; đâu ra là tệp đính kèm nguyên gốc ban đầu.

Chức năng 4

Lập câu vấn tin -Truy cập CSDL

ĩ)â y là phẩn công việc chính, bao gồm các chi tiết như sau

4.1 - Phân tích phàn thân thông điệp e-mail, tách các mục dữ liệu

Nội dung e-mail là một tài liệu XML. Phân tích từng dòng để tách các thẻ XML và dữ liệu tương ứng.

4.2 - Xây dựng câu vấn tin SQL từ các dữ liệu nhận được 4.3 - Kết nổi tới CSDL và gửi câu vấn tin tới hệ quản trị CSDL 4.4 - Nhận kết quả vấn tin do Hệ quản trị CSDL trả về

Chức năng 5

Gửi trả kết quả.

Đây là công việc cuối cùng: chuyển kết quả này tới người gửi vấn tin qua email (và quản trị hệ thống), c ầ n thực hiện các việc sau

5.1- Đọc và phân tích kết quả trả về.

Trườne họp câu van tin Select cần xử lí result set để chuyến thành văn bản thuần text

5.2 - Tạo thông điệp e-mai] để thông báo kết quả vấn tin cho neười sử dụng 5.3 - Gửi thône báo kết quả cho NSD, cho quản trị hệ thông.

ỉỉình 2.2 : Chi tiêt các chức năng cua chương trình dhrobot

3. Triển khai chương trình

3.1 C ác mô đun

- Chương trình có một mô đun chính. Tệp mã nguồn mô đun chính là dbrobot.cc. Mô đun chương trình chính thực hiện các chức năng như trình bày trong phần thiết kế. Mô đun chương trình chính sử dụng nhiều hàm tiện ích thực hiện các công việc chi tiết trong các tệp khác sau đây.

- Tệp uíil.cc chứa một số hàm và thủ tục tiện ích đê phân tích xứ lí các dòng văn bản, nhận biết các thẻ XML và tách lấy phần dữ liệu.v.v..

- Tệp dbutil.cc chứa các tiện ích truy cập CSDL. thủ tục giải mã đế khôi phục nguyên dạng tệp đính kèm, v.v...

Tất cả các mô đun chương trình cần đặt tập trung trong một thư mục đề tiện cho biên dịch, liên kết trong quá trình phát triền và cài đặt. Thư mục này đặt tên là dbrobot.

Ngoài ra, trong thư mục này còn có một số tệp khác chửa các thông tin cấu hình hệ thống và các tham số đầu vào cho chương trinh :

dbrobot.conf: chửa cac tham số cấu hình hệ thống

dbrobot.access : chứa dữ liệu phân quyền truy cập CSDL

dbrobot.auth : chứa danh sách các địa chí email được phép truy nhập

3.2 C ác tham số cấu hình

Tệp dbrobot.conf chứa các tham số cấu hình hệ thống.

Dưới đây là tên và ý nghĩa

M a i l S e n d e r : địa chì email mà hệ thống dùng để gưi tra kết quả cho

người sử dụng

M ail A dm in: địa ch: email của Admin hệ thống, người sẽ nhận các báo cáo hoạt động cùa hệ thông, báo lỗi của hệ thống (nếu có) cũng như háo cáo kết qua giao dịch đã thực hiện.

M a i l Cc : địa chi đồng gưi

F ile _ A llo w _ F r o m : tên tệp chứa danh sách các địa chỉ email được

phép truy cập hệ thống

V alue_A uth _C ode : Mã xác thực

Dbhos t : tên máy chủ CSDL

*

D b p o r t: số hiệu cổng để kết nổi với server CSDL D b o p tio n s : các lựa chọn kết nối với CSDL

D b t t y :

D b lo g in : tên đăng nhập vào CSDL

Dbpas s w o rd : mật khẩu đăng nhập vào CSDL Dbname : tên CSDL

3.3 C ác hàm tiện ích

Dưới đây trình bày một sổ hàm tiện ích trong tệp đbittiỉ Hàm tiện ích g e ta c tio n :

Trích lấy giá trị của thuộc tính action của thẻ <sql>.

- Đầu vào: 1 dòng văn bản thuần text. Đây là một dòng trong nội dung thông điệp

- Đầu ra: trả về kết quá là một xâu kí tự, là giá trị đã gán cho thuộc tính action của thé <sql> nếu dòng có chứa dữ liệu này. Trái lại tra về xâu rỗng

Hàm tiện ích get_where_condition_:

Trích lấy xâu kí tự là biếu thức điều kiện trong điều khoán where cua vấn tin sql.

- Đầu vào: 1 dòng văn bản thuần text. Đây là một dòng trong nội dung thông điệp

- Đầu ra: trà về kết quà là một xâu kí tự, là biêu thức điều kiện trong điều khoản where của vấn tin sql

Hàm tiện ích get_table_name:

Trích lấy tên bảng CSDL trong câu vấn tin sql.

- Đầu vào: 1 dòng văn bản thuần text. Đây là một dòng trong nội dung

thông điệp

- Đầu ra: trả về kết quả là một xâu kí tự, là tên bảng CSDL trong câu vấn tin sql

Hàm tiện ích get_col_name:

Trích lấy tên cột trong bảng CSDL được xử lí trong câu vấn tin sql.

- Đầu vào: 1 dòng văn bản thuần text. Đây là một dòng trong nội dung thông điệp

- Đầu ra: trả về kết quả là một xâu kí tự, là tên cột trong bang

Hàm tiện ích get_col_type:

Trích lấy kiểu dữ liệu cua cột trong bảng CSDL đưọ'c xu lí trong câu vấn tin sql.

- Đầu vào: 1 dòng văn bản thuần text. Đây là một dòng trong nội dung thông điệp

- Đầu ra: trả về kết quả là một xâu kí tự. là tên kiêu dữ liệu cua cột trong bảng

Hàm tiện ích g e t e n d r o w :

Kiểm tra gặp thè đóng </dbtab>. Một càu vấn tin sql chứa một danh sách cột trong báng sẽ được thêm (xóa, sửa..) dù' liệu. The đóng </dbtab> đánh dấu hết danh sách cột

- Đầu vào: 1 dòng vãn ban thuần text.

- Đầu ra: trả về kết quá là một số nguyên bàng 0 hoặc 1.

Hàm tiện ích get_elem_value:

Trích lấy xâu kí tự biểu diễn một giá trị dữ liệu trong danh sách values

trong câu vấn tin sql.

- Đầu vào: 1 dòng văn bản thuần text. Đây là một dòng trong nội dung thông điệp

0

- Đầu ra: trả về kết quả là một xâu kí tự, biểu diễn một giá trị dữ liệu

Thủ tục db_insert:

Ket nối đến CSDL và thực hiện câu vấn tin sql với action là insert - Đầu vào: hai xâu kí tự

o 1- xâu kí tự PGconn theo đúng khuôn mẫu quy định của PostgreSQL để kết nối đến một CSDL

o 2- Xâu kí tự là câu lệnh sql cần thực hiện

- Đầu ra: nếu kết nổi đến CSDL và thực hiện câu vấn tin sql thành công thì kết quả trà về là PGresiilt xâu kí tự kết quả vấn tin trá về theo đúng khuôn mẫu quy định của PostgreSQL. Nếu trái lại, đặt

PGresult là rỗng và thông báo lồi.

Thu tục db update:

Kết nối đến CSDL và thực hiện câu vấn tin sql với action là update - Đầu vào: hai xâu kí tự

o 1 -xâu kí tự PGconn theo đúng khuôn mẫu quy định cua PostgreSQL đề kết nổi đến một CSDL

o 2- Xâu kí tự là câu lệnh sql cần thực hiện

- Đầu ra: nếu kết nối đến CSDL và thực hiện câu vấn tin sql thành công thì kết quá trá về là PGresult xâu kí tự kết qua vấn tin tra về theo đúne khuôn mẫu quy định của PostgreSQL. Neu trái lại. đặt

PGresult là rồng và thông báo lỗi.

Thu tục d b select:

Kết nối đến CSDL và thực hiện câu vấn tin sql với action là select - Đầu vào: hai xâu kí tự

o 1- xâu kí tự PGconn theo đúng khuôn mẫu quy định cùa PostgreSQL để kết nối đến một CSDL

o 2- Xâu kí tự là câu lệnh sql cần thực hiện

- Đầu ra: nếu kết nối đến CSDL và thực hiện câu vấn tin sql thành công thì kết quả trả về là PGresult xâu kí tự kết quả vấn tin trả về theo đúng khuôn mẫu quy định của PostgreSQL. Nếu trái lại, đặt

PGresulí là rỗng và thông báo lỗi.

Thủ tục dec64:

Thực hiện giải mã từ một tệp text là kết quà mã hóa bằng thú tục mã hóa chuẩn base64 dành cho các tệp đính kèm email để nhận lại tệp gốc ban đầu

- Đẩu vào: tệp văn bán thuần text, chi gồm 64 kí tự trong bang mã base64

- Đầu ra: tệp nhị phân là tệp gốc đính kèm email, trước khi mã hóa

Thú tục insert_image:

Thực hiện đưa một đối tượng hình ảnh vào CSDL PostgreSQL. - Đầu vào:

o 1- xâu kí tự PGcortn theo đúne khuôn mẫu quy định cua PostgreSQL để kết nối đến một CSDL

o 2- Xâu kí tự là tên tệp hình ánh o 3- Xâu kí tự là tên hình ảnh - Đâu ra:

Đối tượng tệp hình ảnh (hay tồng quát hơn là một BLOB - tệp nhị phân bất kì) được import vào CSDL.

3.4 Một số thao tác cấu hình

1. Khai báo địa chỉ nhận thư

Cổng giao tiếp của hệ thống với người sử dụng là một địa chi email. Đây chỉnh là địa chỉ nhận thư của hệ thống. Mọi yêu cầu truy cập CSDL của NSD sẽ phải gừi đến địa chỉ này.

Tệp /etc/aliases chứa tên thay thế (bí danh) cúa các tài khoán thư. Khi thực hiện install chương trình, dòng khai báo sau được thêm vào tệp này

dbmail : 1 I /usr/sbin/dbrobot -c /tmp/dbrobot/dbrobot.conf ’

Ý nghĩa của dòng khai báo này như sau

- d bm a iỉ: tên thay thế của tài khoản email. Ví dụ, nếu máy chủ cài đặt hệ thống có tên là gis-iíi.vnu.edu.vn thì địa chỉ email nhận yêu cầu sẽ là

clbmailuòsiis-iti. vnu. edu. vn.

- Phần tiếp theo I /usr/sbin/dbrobot

Lưu ý kí hiệu đường ống ‘I’ sẽ chuyển đầu vào cho chương trình đứng sau. Như thế nọi dung thư sẽ được chuyến cho chương trình dbrohoĩ xử lí.

- Phần cuối ‘ -c /tmp/dbrobot/dbrobot.conf ’

Lựa chọn -c nghĩa là đọc tệp cấu hình. Đi sau nó là tên và đường dần đến tệp cấu hình. Tất cả các tham số cấu hình cơ bản cho dbrobot nàm trong tệp

tmp/dbroboí/dbrobot. c o n /

- J n i XI 0» Bít »ew glndow fcfplp n ã ' b in : daemon: fljaes: ingtea: n ob ody: systen: toot: u u cp : coot coot root toot r o o t root toot root # Well-Known aliases. m a n a g e r : c o o t dumper: to ot o perator: c o o t

to trap decade to catch security attacks

d e c o d e : t o o t

H Person who should get root's mall

tfroot: marc ttfitnew d b iu a il: " I A i s r / s b i n / h t n e v s - c /u n p /h c n e B is /h tr iíM 3 .c o n f" H (S u n a il: " I / u s r / s h i n / d b r o b o t - c /tiĩỊ> /d b r o l> o t/( B u o b o t .c o n f" I "aliases" 28L, 537C lonnected to 172.16.200.8 23,0-1 SSH2 - 3des-cbc - hmac-md5 Got V 8024

Hĩnh 2 ,ì : Tệp aliases của hệ phát cìnivên thư postfix

Lưu ý:

- Mỗi khi có thay đổi, thêm bớt dòng khai báo trong tệp này cần cập nhật thay đồi bằng cách cho thực hiện lệnh từ cửa sổ dòng lệnh Linux

#newaliases

- Nhận thấy rằng trong cùng một thời điêm hệ thống có thể thực hiện nhiều chương trình kiều dbrobot khác nhau.

2. Xác thực người dùĩw hệ thông

Danh sách các địa chỉ email của NSD được phép truy cập hệ thống được liệt kê trong một tệp. Trong tệp cấu hình dbrohot.conf có một tham sô là File Allow_From. Tham số này sẽ nhận giá trị là tên tệp chứa danh sách các địa chi email được phép truy cập hệ thống.

9 » 6 * J0*» Mndow t&p } Ũ a . 4 a Í S f c ẽ Ếi & % ^ l O J x j It w a m e B l f |w n t t o g e t d e l iv e r ; a o t iu c a t io * * ? tt i t k i n k , BO n a «111 g e t K ali Cc ro o tC lo c a lh o s t -.... ... — — ---

V a f i l e w ith s n a i l ad resse * o f allo w ed u sers M i f b l a i k , everybody can u c dbrobot

fiie_Allov From

V /tav/rtbrobotydtorobot. amth

- --- ---

41 th e a u th e n tic a tio n code t o use it i f b la n k , no code w i l l be needed Vaiu* Auth_Code

---

“3

«1 which teuvlate-file to use

"d brobot.con f" 261L, 86I6C Corrected to 172.16.200.6 56, IS 5 5 H Í - 3 d « - c t « : - 2 3- -w f.'OC-*

Hình 2.4 : Tệp cân hình dbrobot.conf cua chương trình dbrobot

Chương trình robot sẽ trích phần địa chi người gửi và so sánh để kiểm tra xem người gừi có tên trong danh sách được phép sử dụng hệ thống hay không.

Dưới đây là trích các dòng trong tệp cấu hình dbrobot.conf, liên quan đến tham số File_Allow_From. # i f y o u p r o t e c t a n a u t h e n t i c a t i o n , p u t t h e s t a t e m e n t s b e l o w #--- # a f i l e w i t h e m a i l a d r e s s e s o f a l l o w e d u s e r s # i f b l a n k , e v e i / b o d y c a n u s e d b r o b o t F i l e _ A l l o w _ F r c r t ì / t m p / d b r o b o t / d b r o b o t . a u t h «--- ---

Nếu tham số File AlioW_From nhận giá trị là xâu rỗng thì mọi người đều có thề truy cập dbrobot.

3. Mã xác thực người dùng hệ thống

Người gửi phải cung cấp một mã xác thực để hệ thống kiểm tra. Trong tệp cấu hình dbrobot.conf có một tham số là Value_Auth_Code. Giá trị của tham số này là mã xác thực cho mọi người dùng. Chỉ khi mã xác thực do người dùng nhập vào khớp với mã qui định thì các giao tác cập nhật CSDL mới được tiến hành.

Để đơn giản, người dùng nhập mã xác thực như là từ đầu tiên trong phần chủ đề (subject) của thư.

Dưới đây là trích các dòng trong tệp cấu hình dbrobot.conf, liên quan đến tham so Value_Auth_Code #---

Một phần của tài liệu Thiết kế cơ sở dữ liệu cho hệ thông tin địa lí về tài nguyên nước (Trang 41)

Tải bản đầy đủ (PDF)

(107 trang)