Download - Xd he thong thong tin dia ly

Transcript
Page 1: Xd he thong thong tin dia ly

TR NG I H C KHOA H C T NHIÊN

KHOA CÔNG NGH THÔNG TIN

MÔN CÔNG NGH PH N M M

e&f

NGUY N TH LÝ - NGUY N SAO K

NG D NG PH N M M MÃ NGU N M H QU N

TR C S D LI U H NG I T NG PERST

XÂY D NG NG D NG QU N LÝ H TH NG

THÔNG TIN A LÝ THÀNH PH HCM

KHÓA LU N C NHÂN TIN H C

TpHCM, 2005

Page 2: Xd he thong thong tin dia ly

- 2 -

TR NG I H C KHOA H C T NHIÊNKHOA CÔNG NGH THÔNG TIN

MÔN CÔNG NGH PH N M Me&f

NGUY N TH LÝ - 0112187

NGUY N SAO K - 0112186

NG D NG PH N M M MÃ NGU N M H QU N

TR C S D LI U H NG I T NG PERST

XÂY D NG NG D NG QU N LÝ H TH NG

THÔNG TIN A LÝ THÀNH PH HCM

KHÓA LU N C NHÂN TIN H C

GIÁO VIÊN H NG D NTh.s NGUY N MINH NAM

NIÊN KHOÁ 2001-2005

Page 3: Xd he thong thong tin dia ly

- 3 -

I C M NChúng em chân thành cám n Khoa Công ngh Thông tin, tr ng i h c

Khoa h c T nhiên t o u ki n cho chúng em th c hi n tài lu n v n t t

nghi p này.

Chúng em chân thành cám n th y Nguy n Minh Nam ã t n tình h ng

n, ch b o chúng em trong su t th i gian th c hi n tài.

Chúng em chân thành cám n quý th y cô trong khoa ã t n tình gi ng

y, trang b cho chúng em nh ng ki n th c quý báu trong nh ng n m h c

a qua.

Chúng con xin nói lên lòng bi t n sâu s c i v i cha m , nh ng ng i

ã ch m sóc, nuôi d y chúng con thành ng i và luôn ng viên tinh th n

cho chúng con.

Và c ng chân thành cám n các anh ch và b n bè ã ng h , giúp , trao

i ki n th c, kinh nghi m và ng viên chúng em trong th i gian h c t p và

nghiên c u.

c dù chúng em ã c g ng hoàn thành lu n v n trong ph m vi và kh

ng cho phép nh ng ch c ch n s không tránh kh i nh ng sai sót. Chúng

em kính mong nh n c s c m thông và t n tình ch b o c a quý th y cô

và các b n.

Tp.H Chí Minh, tháng 7 n m 2005Nguy n Th Lý – 0112187Nguy n Sao K - 0112186

Page 4: Xd he thong thong tin dia ly

- 4 -

TÓM T T LU N V NLu n v n c t ch c thành các ph n chính nh sau:

Ch ng 1: Gi i thi u t m quan tr ng, m c tiêu, ph m vi c a tài, các c s lý

thuy t và h ng ti p c n.

Ch ng 2: Cách t ch c c s d li u h ng i t ng PERST và nh ng so

sánh v i các cách t ch c c s d li u quan h và các h c s d li u h ng

i t ng khác.

Ch ng 3: Gi i thi u v mô hình Topology: nêu lên nh ng khái ni m c b n,

các i t ng trong Topology và các c p Topology.

Ch ng 4: Gi i thi u v GIS: gi i thi u t ng quan v GIS, các gi i pháp và ng

ng v GIS và ng d ng GIS trên PocketPC

Ch ng 5: Gi i thi u v chu n OpenGIS

Ch ng 6: T ng quan v PocketPC: Các v n và gi i pháp trên thi t b . Tình

tr ng b nh , t o c s d li u và ng d ng b n trên PocketPC.

Ch ng 7: ng d ng b n : mô hình phân tích thi t k .

Ch ng 8: K t lu n, ánh giá và h ng phát tri n

Ch ng 9: Nh ng tài li u tham kh o khi th c hi n tài

Ch ng 10:Nêu nh ng thu t toán chính trong ch ng trình

Page 5: Xd he thong thong tin dia ly

- 5 -

C L C

I C M N ........................................................................................................................ 3

TÓM T T LU N V N......................................................................................................... 4

DANH SÁCH CÁC HÌNH..................................................................................................... 8

DANH SÁCH CÁC B NG...................................................................................................10

T S KHÁI NI M, THU T NG VÀ T VI T T T ..................................................11

CH NG 1 : Hi n tr ng và yêu c u .................................................................................151.1 Hi n tr ng: .................................................................................................................151.2 Gi i quy t bài toán: ....................................................................................................16CH NG 2 : T ng quan v Perst .....................................................................................172.1 Gi i thi u: ..................................................................................................................172.2 c tính:.....................................................................................................................182.2.1 Persistency by reachability:....................................................................................182.2.2 Semi transparent object loading: ............................................................................212.2.3 Automatic scheme evaluation.................................................................................232.2.4 Relation: ................................................................................................................242.2.5 Index: ....................................................................................................................252.2.6 Giao tác (Transaction):...........................................................................................292.3 Transparent API: ........................................................................................................312.3.1 Dùng.NET Remoting API: .....................................................................................312.3.2 Dùng các thu c tính o (virtual properties):............................................................322.4 C ch th c hi n giao tác (Transaction):.....................................................................332.5 Nh ng tr ng h p nên dùng PERST: .........................................................................372.6 Các thông s c a PERST:...........................................................................................382.7 S l c v RTree:.......................................................................................................442.7.1 Gi i thi u:..............................................................................................................442.7.2 S l c v d li u không gian (spatial data) và các gi i pháp: ................................442.8 So sánh v i các h qu n tr c s d li u h ng i t ng khác: ................................45CH NG 3 : Gi i thi u v mô hình Topology.................................................................503.1 Gi i thi u: ..................................................................................................................503.2 Các khái ni m c b n trong Topology: .......................................................................503.3 Các lo i i t ng trong Topology: ............................................................................513.4 Các c p c a Topology: ...............................................................................................53

Page 6: Xd he thong thong tin dia ly

- 6 -

3.5 MBR – Minimum Bounding Rectangle: .....................................................................59CH NG 4 : Gi i thi u v GIS .......................................................................................604.1 Gi i thi u v các ng d ng và gi i pháp v GIS: ........................................................604.2 Mô hình d li u c a thông tin a lý: ..........................................................................614.3 Thu th p d li u: ........................................................................................................644.4 Các gi i thu t nghiên c u v GIS: ..............................................................................664.5 Các c u trúc d li u không gian trong GIS: ................................................................674.5.1 Cây t phân (Quad Tree):.......................................................................................674.5.2 k-d Tree: ................................................................................................................684.5.3 R-Tree: ..................................................................................................................694.5.4 R*-Tree: ................................................................................................................704.5.5 R+-Tree:.................................................................................................................714.6 ng d ng b n :.......................................................................................................724.6.1 Các ki u b n : ....................................................................................................724.6.2 Các i t ng c a b n :......................................................................................724.7 ng d ng GIS trên PocketPC:....................................................................................73CH NG 5 : Gi i thi u v chu n OpenGIS .....................................................................755.1 Các ki u d li u hình h c c a OpenGIS: ....................................................................755.2 OpenGIS Specification ( c t OpenGIS):..................................................................765.2.1 Các khái ni m: .......................................................................................................765.2.2 Nh ng d ch v OpenGIS (OpenGIS Services ):......................................................785.2.3 M t mô hình nh ng c ng ng thông tin (Information Communities Model ): .......795.2.4 c m: ..............................................................................................................795.2.5 Phân lo i: ...............................................................................................................815.3 OpenGIS Abstract Specification: ................................................................................825.3.1 Essential Model (mô hình b n ch t ): .....................................................................835.3.2 Abstract Model: .....................................................................................................85CH NG 6 : T ng quan v PocketPC .............................................................................896.1 T ng quan v PocketPC: ............................................................................................896.2 Kh n ng l p trình trên PocketPC:..............................................................................896.3 M t s v n khi l p trình ng d ng trên PocketPC: .................................................896.3.1 T c và các h tr kh n ng hi n th : ..................................................................896.3.2 Kh n ng và hình th c l u tr :...............................................................................906.3.3 T ng tác gi a ng i s d ng và thi t b : ..............................................................916.4 Các gi i pháp cho ng d ng b n trên PocketPC: ....................................................926.4.1 Yêu c u chung: ......................................................................................................92

Page 7: Xd he thong thong tin dia ly

- 7 -

6.4.2 V n t i u t c hi n th : .................................................................................936.5 T ch c d li u b n trên PocketPC:.......................................................................93CH NG 7 : ng d ng b n :.......................................................................................957.1 Phân tích và xác nh yêu c u:....................................................................................957.2 Phân tích - thi t k :.....................................................................................................967.2.1 S s d ng: .......................................................................................................967.2.2 c t Use-Case chính: ..........................................................................................977.2.2.1 Tìm ki m ng i: ...............................................................................................977.2.2.2 Tìm ki m Region: ..................................................................................................987.2.2.3 Tìm ng i ng n nh t: ........................................................................................997.2.2.4 Tìm chu trình t i u: ............................................................................................1017.2.3 S l p Class Diagram:.....................................................................................1027.2.3.1 S t ng quát:...................................................................................................1027.2.3.2 S l p d li u:.................................................................................................1037.2.3.3 S l p v :........................................................................................................1037.2.3.4 S s ki n: ......................................................................................................1047.2.4 Mô t các l p: ......................................................................................................1047.2.5 Các l u ho t ng: ..........................................................................................1117.3 Thi t k giao di n: ....................................................................................................1247.3.1 Giao di n trên Desktop: .......................................................................................1247.3.2 Giao di n trên PocketPC: .....................................................................................1317.4 Cài t:.....................................................................................................................131CH NG 8 : K t Lu n, ánh giá và h ng phát tri n ...................................................1328.1 K t lu n, ánh giá:....................................................................................................1328.2 H ng phát tri n: .....................................................................................................132CH NG 9 : Tài li u tham kh o....................................................................................133CH NG 10 : Ph l c .................................................................................................13410.1 Bài toán tìm ng i ng n nh t gi a hai m: ........................................................13410.1.1 Phát bi u bài toán:................................................................................................13410.1.2 Gi i quy t bài toán:..............................................................................................13410.2 Bài toán tìm chu trình t i u .....................................................................................13610.2.1 Phát bi u bài toán.................................................................................................13610.2.2 Gi i quy t bài toán:..............................................................................................137

Page 8: Xd he thong thong tin dia ly

- 8 -

DANH SÁCH CÁC HÌNHHình 3.2-1 Các i t ng trong mô hình Topology...............................................................51Hình 3.4-1 Quan h Topology c p 0 .....................................................................................56Hình 3.4-2 Quan h Topology c p 1 và 2..............................................................................57Hình 3.4-3 Quan h Topology c p 3 .....................................................................................58Hình 4.2-1 Thông tin c n l u tr ..........................................................................................61Hình 4.2-2 So sánh Raster và Vector ....................................................................................64Hình 4.3-1 Ph ng pháp Scanning .......................................................................................65Hình 4.5.1-1 Cây t phân .....................................................................................................67Hình 4.5.2-1 K-D Tree .........................................................................................................68Hình 4.5.3-1 R-Tree .............................................................................................................69Hình 4.5.5-1 R+-Tree ...........................................................................................................71Hình 4.6.2-1 Các i t ng chính trong b n ....................................................................73Hình 5.1-1 H phân c p các ki u d li u hình h c c a OpenGIS. .........................................76Hình 5.3.1-1 L p khái ni m..................................................................................................85Hình 7.2.1-1 S s d ng t ng quát...................................................................................96Hình 7.2.2.1-1 Use Case - Tìm ki m Edge............................................................................97Hình 7.2.2.2-1 Use Case: Tìm ki m Region..........................................................................98Hình 7.2.2.3-1 Use Case – Tìm ng i ng n nh t..............................................................99Hình 7.2.2.4-1 Use-Case - Tim chu trình t i u ..................................................................101Hình 7.2.3.1-1 S t ng quát ...........................................................................................102Hình 7.2.3.2-1 S l p d li u .............................................................................................103Hình 7.2.3.3-1 S l p v ................................................................................................103Hình 7.2.3.4-1 S s ki n ..............................................................................................104Hình 7.2.4-1 L p CNode ....................................................................................................106Hình 7.2.4-2 L p CEdge ....................................................................................................109Hình 7.2.5-1 Sequense Diagram: Hi n th b n ...............................................................112Hình 7.2.5-2 Collabration Diagram: Hi n th b n ...........................................................113Hình 7.2.5-3 Sequence Diagram: Tìm ng ng n nh t......................................................113Hình 7.2.5-4 Collabration Diagram: Tìm ng ng n nh t .................................................114Hình 7.2.5-5 Sequence Diagram: Tìm Edge........................................................................115Hình 7.2.5-6 Collabration Diagram: Tìm Edge ...................................................................116Hình 7.2.5-7 Sequence Diagram: Tìm chu trình t i u ........................................................117Hình 7.2.5-8 Collabrotion Diagram: Tìm chu trình t i u ...................................................118Hình 7.2.5-9 Sequence Diagram: D ch chuy n vùng nhìn ...................................................119

Page 9: Xd he thong thong tin dia ly

- 9 -

Hình 7.2.5-10 Collabrotion Diagram: Di chuy n vùng nhìn ................................................120Hình 7.2.5-11 Sequence Diagram: T l l i b n ..............................................................120Hình 7.2.5-12 Collaboration Diagram: T l l i b n .......................................................121Hình 7.2.5-13 Sequence Diagram: Tìm a m ................................................................121Hình 7.2.5-14 Collaboration Diagram: Tìm a m ..........................................................122Hình 7.2.5-15 Sequence Diagram: Tìm giao l ...................................................................123Hình 7.2.5-16 Collaboration Diagram: Tìm giao l .............................................................123Hình 7.3.1-1 Khung nhìn t ng quát v giao di n.................................................................124Hình 7.3.1-2 Toolbar c a ch ng trình ...............................................................................124Hình 7.3.1-3 Các ch c n ng chính trên thanh công c ........................................................127Hình 7.3.1-4 Thanh th c n File .......................................................................................128Hình 7.3.1-5 Thanh th c n View.....................................................................................128Hình 7.3.1-6 Khung nhìn b n thu nh ............................................................................130Hình 7.3.1-7 Khung Layer..................................................................................................130Hình 7.3.1-8 Khung hi n th thông tin i t ng.................................................................131

Page 10: Xd he thong thong tin dia ly

- 10 -

DANH SÁCH CÁC B NGng 2.2.4-1 Các m i quan h gi a 2 l p A va B .................................................................25ng 2.2.5-1 Các ki u Index c PERST h tr : ................................................................29ng 2.6-1 H ng s c nh ngh a s n trong l p StorageImpl...........................................42ng 2.8-1 So sánh các c tính c a các h qu n tr .............................................................47ng 2.8-2 B ng so sánh k t qu c a các h qu n tr c s d li u h ng i t ng.............49ng 3.4-1 Các c p Topology trong các l p VPF .................................................................55ng 3.4-2 Các c t c yêu c u nh ngh a quan h Topology trong VPF......................56ng 3.5-1. nh ngh a khung ch nh t nh nh t MBR........................................................59ng 4.2-1 B ng so sánh ki u d li u Raster va Vector...........................................................64ng 7.1-1 Các ch c n ng chính ..........................................................................................96ng 7.2.4-1 L p CDatabase..............................................................................................105ng 7.2.4-2 L p CMapView.............................................................................................105ng 7.2.4-3 L p CMapEvent ............................................................................................106ng 7.2.4-4 Thu c tính l p CNode ...................................................................................107ng 7.2.4-5 Ph ng th c l p CNode ...............................................................................108ng 7.2.4-6 Thu c tính l p CEdge...................................................................................110ng 7.2.4-7 Ph ng th c l p CEdge................................................................................111ng 7.3.1-1 Các ch c n ng chính trên thanh th c n ......................................................129

Page 11: Xd he thong thong tin dia ly

- 11 -

T S KHÁI NI M, THU T NG VÀ T VI T T T

Khái ni m nh ngh a Ghi chú

OODBMS (Object-

Oriented Database

Management System)

qu n tr c s d li u

ng i t ng

PERST Là m t h qu n tr c s

li u h ng i t ng

Nhúng - -Embedded Có ngh a là PERST c

tích h p ch t vào ch ng

trình, g n nh kho ng

cách gi a database và

ch ng trình r t nh ,

PERST tr c ti p l u d

li u trong các i t ng

a ch ng trình và

không c n có nh ng n

mã làm công vi c chuy n

li u t c s d li u

thành i t ng và ng c

i

Topology Là c u trúc cho mô hình

ng l i giao thông

GIS ( Geography th ng thông tin a

Page 12: Xd he thong thong tin dia ly

- 12 -

Information System ) lý. Là m t công ngh

a trên máy tính xây

ng b n , phân tích

và x lý các i t ng

n t i và các s ki n

y ra trên trái t.

Thông tin không gian Thông tin v nh ng c

m liên quan n hình

ng, v trí, quan h c a

các i t ng a lý.

Bao g m hai d ng:

ng hình h c:

mô t các c m

hình d ng, v trí. Ví

nh t a c a

m, ng…

D ng Topology:

mô t quan h gi a

các i t ng hình

c. Ví d nh

nh ng vùng nào k

i m t vùng xác

nh.

Thông tin phi không gian

( thông tin thu c tính )

Thông tin v nh ng c

m liên quan n th ng

kê, thông tin s , thông

tin c tr ng gán cho

i thu c tính c a i

Ví d nh tên ng

ph , dân s …

Page 13: Xd he thong thong tin dia ly

- 13 -

ng

PDA ( Personal Digital

Assistant )

Thi t b n t h tr

cá nhân, giúp ng i s

ng l u tr các thông

tin cá nhân, công vi c

n thi t c ng nh các

ph n m m t i thi u trên

t thi t b nh g n

Pocket PC Khái ni m này có th

dùng ch :

+ H u hành

nhúng Pocket PC do

Microsoft phát tri n

a trên nhân c a H

u hành Windows

CE

+ Các thi t b

PDA s d ng h u

hành Pocket PC

Edge i t ng c nh trong mô

hình Topology

Trong bài, Edge t ng

ng v i ng. Khi nh c

i Edge, hay ng có th

hi u ngh a nh nhau.

Page 14: Xd he thong thong tin dia ly

- 14 -

Region i t ng vùng ây không c p n

qu n huy n nh ng có th

hi u Region là qu n huy n.

ID nh danh c a i t ng Trong bài không nh c t i

tên ng, qu n huy n mà

ch nh c t i ID vì c s d

li u không thông tin tên

ng. Và khi nh c t i tên

a i t ng b t k thì

hi u là ID.

Page 15: Xd he thong thong tin dia ly

- 15 -

CH NG 1 : Hi n tr ng và yêu c u

1.1 Hi n tr ng:Trên th gi i hi n nay ã có nhi u ph n m m gi i quy t các bài toán v

n giao thông nh : RouteSmart, BusStops, Arclogistics, Routronic 2000,

DynaRoute… Vi t Nam nói riêng c ng có m t s công ty nh DolSoft, Hài

Hoà, … ã có m t s s n ph m v GIS nh Street Finder, SmartMap…. Các

n ph m trên a ph n s d ng c s d li u c t ch c trên các h qu n

tr c s d li u quan h ho c t t o. Tuy nhiên v n có v n c t ra:

1.Chi phí c a càc h qu n tr c s d li u th ng m i n u có dùng.

2.S khó kh n và có khi là “r c r i” trong cách l p trình giao ti p v i các

s d li u ph c t p có nhi u b ng, quan h …

Th t ra, hai v n trên có th c gi i quy t t ng i t t b ng cách s

ng h qu n tr c s d li u h ng i t ng PERST (mã ngu n m ).

PERST là m t h c s d li u t ng i nh (so v i các h c s d li u

khác) v i ph n lõi ch g m kho ng 5000 dòng mã. Yêu c u c u hình c a

PERST t ng i th p. H n n a, PERST c ng không c n n “s qu n tr ”

th ng th y các h c s d li u. M c dù n gi n nh v y nh ng PERST

n h tr y tính ACID trong vi c th c hi n giao tác (transaction) và h

tr vi c ph c h i (recovery) t ng i nhanh khi h th ng g p s c .

Không ch d ng l i ó mà PERST có h tr c vi c phát tri n trên môi

tr ng compact.NET framework nên có kh n ng phát tri n ng d ng trên

các thi t b di ng dùng WinCE hay PocketPC.

Page 16: Xd he thong thong tin dia ly

- 16 -

Vì v y, ta có th th y vi c dùng PERST gi i quy t bài toán v qu n lý

th ng thông tin a lý (GIS) là hoàn toàn kh thi.

1.2 Gi i quy t bài toán:t trong các y u t quan tr ng quy t nh s thành công hay th t b i c a

t h th ng thông tin a lí là vi c l a ch n mô hình c u trúc d li u thích

p, cho phép l u tr và khai thác thông tin m t cách hi u qu . Và mô hình

Topology th hi n t t nh ng òi h i trên (Mô hình này s c c p sau

trong lu n v n). Vì d li u Topology trên PERST không có s n nên chúng ta

n xây d ng l i d li u theo mô hình Topology. D li u thô (d li u ngu n)

c dùng trong ng d ng này là các t p tin text.

Bài toán s c gi i quy t ch y u b ng s ph i h p các ki n th c v

GIS,PERST và ho .

Page 17: Xd he thong thong tin dia ly

- 17 -

CH NG 2 : ng quan v PERST

2.1 Gi i thi u:PERST là m t h c s d li u “nhúng” dành cho các ng d ng c n tính

ng l u tr . PERST c thi t k dành riêng cho l p trình và không có giao

di n h a qu n tr . Vi c s d ng PERST khá n gi n và t c hi u

ng t ng i cao. c m chính d th y nh t c a PERST là s tích h p

ch t ch c a PERST v i m t ngôn ng l p trình xác nh. Hi n t i PERST

ch h tr cho 2 ngôn ng l p trình là Java và C#.

Không gi ng v i các h qu n tr c s d li u h ng i t ng khác

(OODBMSes), PERST không c n dùng n các b biên d ch hay các b ti n

lý c bi t khác. Nh v y, PERST có kh n ng cung c p c “tính trong

su t” trong l p trình m c cao. Các hàm API c a PERST ti n l i, d s

ng và có t c cao. Có th l y ví d khi so sánh v i Ozone (m t h c s

li u h ng i t ng khác vi t b ng Java). V i gi i h n (benchmark)

007, PERST t o database nhanh g p 100 l n và th c hi n phép duy t qua các

i t ng trong c s d li u nhanh g p 10 l n so v i Ozone. Và khi so v i

t h c s d li u h ng i t ng th ng m i khác là ObjectStore PSE

Pro, PERST nhanh h n g p 4 l n.

PERST là m t h c s d li u t ng i nh (so v i các h c s d li u

khác) v i ph n lõi ch g m kho ng 5000 dòng mã. Yêu c u c u hình c a

PERST t ng i th p. H n n a, PERST c ng không c n n “s qu n tr ”

th ng th y các h c s d li u. M c dù n gi n nh v y nh ng PERST

n h tr y tính ACID trong vi c th c hi n giao tác (transaction) và h

tr vi c ph c h i (recovery) t ng i nhanh khi h th ng g p s c .

Page 18: Xd he thong thong tin dia ly

- 18 -

Có hai b n cài t c a PERST, m t b ng ngôn ng Java và m t b ng C#.

n cài t trên C# c chuy n t Java dùng b chuy n i Java sang C#

(m c dù ph i có nhi u thay i c n th c hi n m i có c b n hoàn ch nh).

c dù b n cài t dùng C# h tr nhi u ki u “nguyên th y” h n (g m có

ki u s nguyên không d u và ki u li t kê (enum)) nh ng trong các ph ng

di n khác, các tính n ng c a hai b n là nh nhau. Riêng PERST.NET có h

tr c vi c phát tri n trên môi tr ng compact.NET framework nên có kh

ng phát tri n ng d ng trên các thi t b di ng dùng WinCE hay

PocketPC.

2.2 c tính:Trong ph n này chúng ta s i vào các tính ch t quan tr ng nh t c a

PERST. C th chúng ta s tìm hi u phiên b n cài t trên môi tr ng.NET

(g i t t là PERST.NET). ây các tính ch t có t nguyên g c ti ng Anh s

c gi nguyên do không có t ti ng Vi t thay th ng n g n mà úng

ngh a..

2.2.1 Persistency by reachability:Trong ng d ng dùng PERST, m i i t ng c a các l p c d n xu t t

p Persistent u có kh n ng l u tr (persistent hay còn d ch là b n v ng).

t bây gi , ta s g i t t các i t ng này là các i t ng persistent. Các

i t ng này c t ng l u vào database khi nó c tham chi u t m t

i t ng persistent khác và ph ng th c store c a i t ng khác ó c

i. Có ngh a là ta không c n ph i g i tr c ti p, t ng minh ph ng th c

store c a m t i t ng khi mu n l u i t ng ó.

Page 19: Xd he thong thong tin dia ly

- 19 -

Database có m t i t ng c bi t g i là root. i t ng root này là i

ng duy nh t c truy xu t m t cách c bi t (dùng ph ng th c

Storage.getRoot). Còn các i t ng persistent khác c truy xu t theo

cách bình th ng: ho c truy xu t b ng tham chi u t các i t ng persistent

nh trên ho c truy xu t b ng cách dùng các i t ng bao ch a (container

class) nh Index,Link hay Relation. Không gi ng nh các h c s d li u

ng i t ng khác, ch có th có duy nh t m t i t ng root trong c s

li u.

PERST yêu c u m i l p persistent u ph i d n xu t t l p Persistent. Có

ngh a là các l p “ngo i lai” (không d n xu t t l p Persistent) không th

c l u trong database. ây chính là cái giá ph i tr c a s n gi n và

không dùng n các b biên d ch hay ti n x lý c bi t. Và các thành ph n

a các l p persistent c ng b gi i h n trong các ki u sau:

Ki u vô h ng (scalar type):

Bool, int, short, double, enum …

Ki u chu i: Ki u System.String.

Ki u ngày tháng: Ki u System.DateTime.

Ki u tham chi u n các i t ng persistent: các l p k th a t l p

Persistent hay các giao di n (interface) k th a t giao di n IPersistent.

Ki u giá tr (value type): Các ki u giá tr c a C#. Các giá tr này

c l u tr c ti p trong i t ng ch a chúng.

Ki u d li u nh phân thô: Các l p c a C# k th a t giao di n

IPersistent hay t giao di n IValue và c ánh d u là Serializable. C

ch Serialization chu n s c dùng óng gói d li u c a các i

Page 20: Xd he thong thong tin dia ly

- 20 -

ng thành các m ng byte và l u chúng vào database. Các l p này s

c ánh d u là Serializable và không c ch a các tham chi u n các

i t ng persistent khác.

Ki u m ng: Các m ng m t chi u v i thành ph n là các ki u d li u

c nêu trên.

Ki u Link: i di n cho quan h m t-nhi u trong mô hình c s d

li u. Hay nhìn theo góc l p trình ây chính là ki u m ng ng ch a các

i t ng persistent.

Có m t v n là PERST không t bi t c r ng li u m t i t ng

persistent nào ó ã có thay i gì ch a trong quá trình làm vi c. Mu n bi t

c u ó ch có cách là ta t so sánh t ng field c a tr ng thái c và m i

i nhau. Nh ng nh v y chi phí r t cao. Vì th nên trong PERST, l p trình

viên hoàn toàn ch u trách nhi m v vi c l u i t ng nào vào c s d li u.

Có hai cách trong PERST ta có th l u m t i t ng vào c s d

li u:

Cách th nh t là dùng ph ng th c Persistent.Store. Ph ng th c này khi

c g i b i i t ng nào s l u b n thân i t ng ó và các i t ng

c tham chi u t nó m t cách tr c ti p hay không tr c ti p mà ch a c

u. Có ngh a là n u ta g i ph ng th c Store này i v i i t ng g c c a

t cây thì l n l t t t c các i t ng c a cây này s c l u xu ng b

nh ph .

Cách th hai là dùng ph ng th c Persistent.Modify: Ph ng th c này ch

ánh d u các i t ng r ng chúng ã b thay i ch không l u ngay l p t c

vào database. Cách này c bi t h u d ng khi i t ng c thay i nhi u

Page 21: Xd he thong thong tin dia ly

- 21 -

n trong m t giao tác. Lúc ó, thao tác ghi a ch ph i th c hi n m t l n

vào cu i giao tác, t ng hi u su t lên áng k .

2.2.2 Semi transparent object loading:Nh ã c p trên, PERST không dùng b t c b biên d ch hay ti n x

lý c bi t nào. Và vì C# không cung c p thông tin v các tr ng thái

(behavior) hay s thay i tr ng thái các i t ng trong th i gian th c thi

(runtime) nên không th cài t c c u l u tr c a PERST hoàn toàn “trong

su t” (transparent) c (ngh a là không th truy xu t các i t ng c

u tr và không c l u tr m t cách hoàn toàn gi ng nhau vì ta không th

phân bi t c khi nào ta ang truy xu t vào i t ng c l u tr hay

không c l u tr ). Thay cho s cài t “trong su t” hoàn toàn, PERST ã

g ng cung c p s “trong su t” trong a ph n các tr ng h p.

Giao di n IPersistent cung c p cho chúng ta ph ng th c

recursiveLoading. Ph ng th c này m c nh c cài t b ng cách tr v

(return) giá tr true. Có ngh a là PERST s load (vào b nh chính) m t cách

quy các i t ng c tham chi u t m t i t ng ngu n khi i t ng

ngu n này c load. Có ngh a là c ch này s gây ra vi c load ng m nh

toàn b các i t ng vào b nh chính. C ch này t ng t cách làm vi c

a c ch “chu i hóa” (serialization).

tránh v n tràn b nh x y ra khi load i t ng lên b nh chính

(do c ch recursiveLoading gây ra), chúng ta ph i quá t i (overload)

ph ng th c recursiveLoading trong m t vài l p b ng cách tr v (return)

giá tr false trong hàm. Các i t ng c tham chi u t các i t ng

thu c các l p ã nói trên s không c load ng m nh n a mà ph i c

Page 22: Xd he thong thong tin dia ly

- 22 -

load m t cách t ng minh b ng ph ng th c Persistent.Load. V y ta th y

ng ph ng th c recursiveLoading có th dùng u khi n cách th c

load các i t ng t b nh ph vào b nh chính.

u ý r ng các i t ng dùng ”ch a” các i t ng khác (container

class) nh Link,Relation,Index… ch load các i t ng mà nó ch a khi c n

thi t, không load t t c theo c ch recusiveLoading. Ngoài ra, vi c truy xu t

các i t ng thành ph n c a m t l p ki u container u thông qua các

ph ng th c c a nó.

PERST dùng ph ng th c kh i t o m c nh (không có tham s ) kh i

o b c ban u các i t ng c load t b nh ph . u này có ngh a

là:

1.M i l p có kh n ng l u tr c (persistent capable class) u nên có

ph ng th c kh i t o m c nh (ho c là không có ph ng th c kh i t o nào,

khi ó trình biên d ch s t t o ra cho ta). Ph ng th c này có th có m i t m

truy xu t có th c (public, private,protected … ).

2.Ph ng th c kh i t o ch kh i t o nh ng thành ph n không b n v ng,

không c n l u tr (transient) c a i t ng.

3.Ph ng th c kh i t o m c nh dùng t o nh ng th hi n c a các i

ng c load t b nh ph . V y t i th i m ph ng th c kh i t o m c

nh ho t ng các thành ph n c a i t ng ch a c gán các giá tr c

u tr trong b nh ph . N u ta mu n các thành ph n này c ng c kh i

o nh các thành ph n transient nói trên, ta c n kh i t o chúng trong hàm

OnLoad, c g i ngay khi các giá tr trong b nh ph c load lên b

nh chính.

Page 23: Xd he thong thong tin dia ly

- 23 -

Tóm l i, các c ch trên cho chúng ta s thu n ti n, d dàng và m m d o

trong l p trình, vì nó không yêu c u l p trình viên ph i load t ng minh các

i t ng trong khi v n cho phép vi c này, nói cách khác là PERST h tr

p trình viên trong vi c ki m soát vi c load các i t ng. Ch có các l p

“ch a” các i t ng khác là ph i load t ng minh các i t ng mà nó

ch a (vì các l p này ã m c nh c overload ph ng th c

recursiveLoading có giá tr tr v (return) false).

2.2.3 Automatic scheme evaluationPERST h tr “lazy automatic scheme evaluation”. Khi nh ngh a c a

t l p b thay i (thay i v s l ng bi n thành viên, thay i v ki u

a bi n thành viên…), PERST s chuy n các i t ng ã c load sang

nh d ng m i. N u i t ng ó trong quá trình ho t ng có thay i và

n ph i l u, nó s c l u d i d ng m i. PERST có kh n ng h tr các

ki u thay i nh d ng sau:

1.Các thay i “t ng thích” l n nhau gi a các ki u d li u vô

ng (thay i mà không c t b t d li u). Ví d nh thay i t ki u int

sang float hay int sang long,… nh ng ng c l i thì không c.

2.Thay i th t các thành ph n trong l p hay thêm, b t các thành

ph n trong l p này vào l p cha hay l p d n x t c a nó.

3.Thêm vào hay b l p kh i cây th a k c a l p.

4.Thay i nh d ng c a l p b ng cách thay i ý ngh a c a các

giá tr .

i thay i khác trong c u trúc l p ( i tên cho thành ph n, chuy n ki u

không t ng thích i v i các thành ph n…) u không c qu n lý b i c

Page 24: Xd he thong thong tin dia ly

- 24 -

ch thay i c u trúc d li u t ng c a PERST. Trong các tr ng h p này

ta có th dùng c ch xu t nh p b ng XML c a PERST. C s d li u có th

c xu t ra d ng XML b ng cách dùng ph ng th c Storage.exportXML,

o l i c s d li u theo nh d ng m i r i nh p d li u vào b ng ph ng

th c Storage.importXML c a PERST.

2.2.4 Relation:i quan h m t-m t gi a các i t ng trong c s d li u c th hi n

ng tham chi u (references) trong C#. Nh ng trong nhi u tr ng h p chúng

ta c n n quan h m t-nhi u hay quan h nhi u-nhi u. PERST cung c p

giao di n (interface) Link dùng cho các tr ng h p này. Giao di n này a ra

các ph ng th c thêm, xóa, tìm ki m… các thành ph n c a m t “b ”

(relation) các i t ng persistent. Các thành ph n c a “b ” (relation) này

có th c truy xu t b ng index hay ta có th chuy n chúng thành m t

ng i t ng r i m i truy xu t.

T p h p (relation) có 2 d ng:

1. D ng “nhúng” (embedded relation): Các tham chi u n các i

ng t m t i t ng c ch a trong chính i t ng ó.

2. D ng c l p (standalone relation): Khi ó relation là m t i

ng riêng bi t, ch a các tham chi u n các i t ng.

C hai d ng trên u cài t giao di n Link. C th Embedded

relation c t o b ng cách dùng ph ng th c Storage.createLink, còn

Standalone relation thì dùng ph ng th c Storage.createRelation.

B ng sau ây minh h a các m i quan h gi a 2 l p A và B:

Page 25: Xd he thong thong tin dia ly

- 25 -

Ki u quan h Object A Object B

t-m t B bref; A aref;

t-nhi u Link bref; A aref;

Nhi u-m t B bref; Link aref;

Nhi u-nhi u Link bref; Link aref;

ng 2.2.4-1 Các m i quan h gi a 2 l p A va B

2.2.5 Index:Thông th ng i t ng c truy xu t t m t i t ng khác b ng tham

chi u hay b ng Link nh trên. Tuy nhiên, chúng ta c ng c n truy xu t các i

ng thông qua khóa. Trong môi tr ng.NET, l p Hashtable là m t ví d

cho vi c truy xu t theo khóa này. i v i c s d li u, vi c truy xu t i

ng theo khóa d nhiên là t ng i ph c t p. Và vi c cài t trong PERST

n m t ch c n ng d ch các câu truy v n SQL là không kh thi vì nó s làm

cho PERST phình to ra và ch m i. Tuy nhiên trong ph n l n tr ng h p,

các ng d ng ch th c hi n các l nh truy v n d li u t ng i n gi n nh

tìm theo m t khóa chính xác hay trong m t kho ng giá tr nào ó. Trong

PERST vi c này c th c hi n b ng cách cài t các giao di n (interface)

Index và FieldIndex. Giao di n Index dùng cho các khóa c l p và các giá

tr t ng ng c a khóa ó. Còn giao di n FieldIndex thì dùng l p index

cho các i t ng v i khóa chính là m t thành ph n c a i t ng.

Index c t o trong PERST b ng ph ng th c Storage.createIndex i

i Index hay Storage.createFieldIndex i v i FieldIndex. Có th có vài

cách cài t Index nh ng hi n t i PERST ch dùng B+Tree cài t

Page 26: Xd he thong thong tin dia ly

- 26 -

(B+Tree là c u trúc d li u hi u qu nh t cho database trên b nh ph ). Các

ph ng th c c a giao di n Index và FieldIndex cho phép thêm, xóa, tìm

ki m i t ng theo khóa b ng giá tr chính xác ho c trong m t kho ng giá

tr nào ó. Vì v y các tr ng h p tìm ki m sau ây là th c hi n c:

1. Khóa b ng giá tr VAL.

2. Khóa thu c kho ng [MIN_VAL,MAX_VAL].

3. Khóa thu c kho ng [MIN_VAL,MAX_VAL).

4. Khóa thu c kho ng (MIN_VAL,MAX_VAL].

5. Khóa thu c kho ng (MIN_VAL,MAX_VAL).

6. Khóa l n h n giá tr MIN_VAL.

7. Khóa l n h n hay b ng giá tr MIN_VAL.

8. Khóa bé h n giá tr MAX_VAL.

9. Khóa bé h n hay b ng giá tr MAX_VAL.

Có m t s cách ch n i t ng theo khóa khác nhau nh sau:

a.IPersistent get(Key key): Ch n i t ng b ng khóa chính xác v i khóa

này nên là khóa duy nh t c a i t ng.

b.IPersistent[] get(Key from,Key till): L y ra m t m ng i t ng có khóa

m trong m t kho ng giá tr cho tr c gi i h n b i giá tr from và till.

Trong ó from và till có th mang giá tr tùy ý k c null.

c.IEnumerator GetEnumerator(): L y ra m t IEnumerator, có th dùng

câu l nh foreach duy t qua toàn b các i t ng trong index này theo

chi u t ng c a khóa.

Page 27: Xd he thong thong tin dia ly

- 27 -

d.IEnumerator GetEnumerator(Key from, Key till, IterationOrder order):

y ra m t IEnumerator v i khóa n m trong kho ng giá tr xác nh b i

from và till. Ta có th duy t qua IEnumerator này v i chi u khóa t ng hay

gi m u c.

u c n m t t p h p các i t ng, chúng ta có th s d ng ph ng th c

Storage.createSet. T p h p (set) c cài t b ng B+Tree v i object ID

(OID) là khóa.

Ngoài ra, PERST còn h tr r t m nh cho d li u “không gian” (spatial

data) b ng cách cung c p c u trúc SpatialIndex h tr vi c thêm, xóa, tìm

ki m các i t ng “không gian” d dàng. SpatialIndex c cài t b ng

u trúc RTree c a Guttman v i thu t toán “quadratic split” khá hi u qu

trong vi c tìm ki m các i t ng R2 (tìm ki m các i t ng không gian

i khóa tìm ki m là các giá tr liên quan n t a ).

B ng d i ây tóm t t các ki u Index c PERST h tr :

Interface Mô t Ki u c a

khóa

Cài t Ph ng th c t o

Index Index dùng tìm ki m

li u b ng khóa

chính xác ho c n m

trong m t kho ng

xác nh.

Ki u vô

ng,

chu i hay

ki u tham

chi u.

B+Tree Storage.CreateIndex

Index Nh trên nh ng áp

ng cho tr ng

Ki u vô

ng,

B+Tree Storage.CreateThinkI

ndex

Page 28: Xd he thong thong tin dia ly

- 28 -

p có khóa trùng. chu i hay

ki u tham

hi u.

FieldIndex Index v i khóa là

t trong các

tr ng c a l p c

p Index.

Ki u vô

ng,

chu i hay

ki u tham

chi u.

B+Tree Storage.CreateFieldIn

dex

BitIndex BitIndex dùng

tìm i t ng v i

khóa cógiá tr nh

phân.

Ki u i

ng có

kh n ng

u tr .

B+Tree Storage.CreaateBitInd

ex

ISet p h p các i

ng có kh n ng

u tr .

B+Tree Storage.CreateSet

IPersisten

tSet

p h p các i

ng có kh n ng

u tr c và t p

p này có kh n ng

co giãn, có th qu n

lý c c s l ng

ít l n s l ng

nhi u.

Ki u i

ng có

kh n ng

u tr .

Link

ho c

B+Tree

Storage.CreateScalabl

eSet

Page 29: Xd he thong thong tin dia ly

- 29 -

SpatialInd

ex

Index dành cho d

li u không gian.

Rectangle R-Tree Storage.CreateSpatialI

ndex

SpatialInd

exR2

Index dành cho d

li u không gian

nh ng có t a

th c.

Rectangle

R2

R-Tree Storage.CreateSpatialI

ndexR2

SortedCol

lection

Index v i phép Toán

so sánh do ng i

dùng nh ngh a.

i ki u T-Tree Storage.CreateStorage

Collection

ng 2.2.5-1 Các ki u Index c PERST h tr :

2.2.6 Giao tác (Transaction):ây ta không nh ngh a l i chính xác giao tác là gì mà ch n gi n

hình dung giao tác là m t t p các l nh ph i th c hi n và ph i ho c là th c

hi n toàn b các l nh ó ho c là không l nh nào c th c hi n c . PERST

cung c p tính n ng b o v s nh t quán c a d li u trong tr ng h p h

th ng hay ng d ng có l i hay m t n ph i t t t ng t. C ch cài t giao

tác s giúp ta m b o u này. i v i PERST, m t giao tác c ng m

nh kh i t o khi b t c m t l nh update c s d li u nào c th c hi n và

ch m d t t ng minh b ng l nh commit, rollback hay close.

Vi c commit m t giao tác s làm cho các trang (page) b thay i trong

quá trình th c hi n giao tác c ghi vào b nh ph ng b (Asynchronous

write: ch ng trình s ch cho vi c ghi vào a xong m i làm ti p vi c

khác). Công vi c này là công vi c có chi phí r t cao. Trung bình vi c nh v

Page 30: Xd he thong thong tin dia ly

- 30 -

i v i các a hi n i là kho ng 10ms, ngh a là ch kho ng 100 thao tác

nh v trong 1 giây. Thêm vào ó các giao tác th ng ch a các thao tác

update kho ng vài trang c s d li u nên trung bình ch còn kho ng 10 giao

tác m i giây.

c dù v y, hi u su t th c thi s c nâng cao áng k khi ta h n ch s

n th c hi n l nh commit, có ngh a là m t giao tác s l n h n, th c hi n

nhi u l nh h n. PERST dùng c ch t o bóng (shadow mechanism) trong

vi c th c hi n giao tác. Khi m t i t ng c thay i l n u tiên trong

t giao tác, m t b n copy (shadow) c a i t ng ó c t o ra và i

ng g c không thay i. Cho dù i t ng có c thay i nhi u l n

trong giao tác ó thì c ng ch có m t b n copy c a i t ng c t o ra.

Nh v y c ch này giúp PERST hoàn toàn không c n n các t p tin log

trong c s d li u thông th ng và các giao tác dài không th gây ra vi c

tràn log giao tác nh các h c s d li u khác. L u ý r ng n u ta không g i

nh commit m t cách t ng minh thì PERST s ch ho t ng m t cách

thông th ng theo c ch không h tr giao tác.

Khuy t m duy nh t c a vi c giao tác dài h n bình th ng là kh n ng

t i nhi u s thay i ã th c hi n c trong giao tác n u giao tác h ng

hay h th ng g p s c . Trong các tr ng h p nh v y, d li u v n m b o

tính nh t quán (consistency) nh ng các thao tác thay i c s d li u trong

giao tác ó u m t.

Page 31: Xd he thong thong tin dia ly

- 31 -

2.3 Transparent API:

2.3.1 Dùng.NET Remoting API:.NET framework cung c p gói System.Runtime.Remoting nh m h tr vi c

cài t các ng d ng phân tán. Ng i l p trình ch c n d n xu t các l p c a

t l p ContextBoundObject và dùng ContextAttribute t o message

sink: c ch dùng u khi n vi c g i hàm và truy xu t các thành ph n c a

i t ng. Dùng API này không nh ng áp d ng cho các h th ng phân tán

mà còn cho các h th ng d a trên giao th c metaobject (metaobject

protocol): giao th c u khi n i t ng. Ví d ta có th ng d ng chúng

cài t giao di n “trong su t” (transparent) cho c s d li u h ng i

ng này, ngh a là vi c thao tác trên các i t ng persistent hoàn toàn bình

th ng nh các i t ng khác.

PERST.NET ch a 2 l p PersistentContext và

TransparentPersistentAttribute dùng t o tính “b n v ng” m t cách “trong

su t” cho các i t ng b ng cách dùng.NET Remoting API. N u các l p c a

ng d ng chúng ta c d n xu t t l p PersistentContext và c ánh d u

ng tính ch t (attribute) TransparentPersistentAttribute, các thành ph n c a

nó s c load t ng hay l u t ng khi c n thi t (tr c ây ta u ph i

làm các thao tác này). Vì hàm recursiveLoading trong l p

PersistentContext tr v false nên các i t ng s c load ch khi nào ta

truy xu t nó.

Tuy nhiên có 2 gi i h n khi ta dùng remoting API:

1.Remoting API ch có th áp d ng i v i các thành ph n có t m truy

xu t public c a i t ng.

Page 32: Xd he thong thong tin dia ly

- 32 -

2.Chi phí c a vi c g i hàm thông qua remoting API cao g p kho ng 100

n so v i g i hàm thông th ng.

2.3.2 Dùng các thu c tính o (virtual properties):Có m t ý t ng khác t o nên s “trong su t” cho PERST d a trên vi c

dùng các thu c tính o (virtual properties). Không gi ng nh Java, C# cung

p c ch cho phép óng gói các thu c tính, thành ph n c a m t l p. Ý

ng ban u r t n gi n: T o ra l p bao b c (wrapper class) s cài t các

thu c tính này. Nh v y l p trình viên s c gi i phóng kh i nhi u vi c

nh nh t nh không ph i lo n chuy n quá t i hàm recursiveLoading, hay

i t ng minh hàm Load load i t ng c ng nh ánh d u i t ng b

thay i b i hàm Modify n a…. Tuy nhiên cách này v n có nh ng h n ch

a riêng nó:

1. i t ng c a chúng ta không c có các tr ng l u tr c

(persistent fields). Thay vì th , ta ph i nh ngh a các thu c tính tr u

ng. C# cung c p c ch cho phép ta d dàng làm vi c v i các thu c

tính, nên vi c l p trình s n ng n h n.

2.Ta c ng không th t o ra các i t ng này b ng toán t new nh

bình th ng. Ta ph i dùng ph ng th c IStorage.CreateClass dùng t o

p bao b c và t o ra i t ng c a l p này. L p này c ng không có hàm

kh i t o nào khác ngoài hàm kh i t o m c nh, và hàm kh i t o m c nh

này c ng không làm gì khác ngoài vi c kh i t o các thành ph n không

c l u tr (vì hàm kh i t o này s c g i m i khi i t ng c

load t b nh ph ).

Page 33: Xd he thong thong tin dia ly

- 33 -

3.Ta c ng không th có thành ph n c a i t ng là m ng các tham

chi u n các i t ng khác. Ta ph i dùng PERST.PArray thay th .

4.S phát sinh l p bao b c nh v y có chi phí cao, làm gi m hi u su t

ch ng trình n u có nhi u l p.

5.Cu i cùng, c ch này không c h tr trong môi tr ng .NET

Compact framework do môi tr ng này không h tr vi c t o mã trong

th i gian th c thi (runtime).

2.4 ch th c hi n giao tác (Transaction):i record hay i t ng trong PERST có duy nh t m t s nh danh g i

là OID. OID c dùng tham chi u gi a các i t ng v i nhau. nh

chính xác m t i t ng b ng tham chi u, OID c a chúng c dùng nh

ch s trong m ng các a ch (offset) c a các i t ng trong database.

ng này c g i là m ng ch m c i t ng (object index) và m i thành

ph n c a m ng này c g i là m t m c qu n i t ng (object handle), gi

a ch trong database c a i t ng. Có 2 b n c a m ng ch m c i t ng

trong PERST, m t là m ng “hi n hành” (current) và m ng còn l i g i là

ng “bóng” (shadow) c a m ng này. Header c a database gi con tr n

hai m ng này và có m t bi n ch nh (indicator) âu là m ng “hi n hành”

vào th i m hi n t i.

Khi m t i t ng b thay i l n u tiên, i t ng ó s c copy ra

t b n khác và m c qu n c a i t ng trong m ng ch m c i t ng

“hi n hành” s chuy n sang tr vào b n copy c a i t ng này còn m c

qu n i t ng trong m ng ch m c i t ng “bóng” v n tr vào i t ng

c. T t c các thay i u c làm trên b n copy và b n g c c gi

Page 34: Xd he thong thong tin dia ly

- 34 -

nguyên tr ng. PERST s ánh d u trong trang Bitmap c a m ng ch m c i

ng ch a con tr n i t ng b thay i.

Lúc giao tác (transaction) c hoàn t t và l nh commit c th c hi n,

u tiên PERST s ki m tra xem kích th c c a m ng ch m c i t ng có

ng hay không. N u có, PERST c ng s t ng kích th c cho m ng ch m c

i t ng “bóng”. K n PERST s gi i phóng các vùng nh c dùng b i

các i t ng g c, chính là các i t ng g c mà tr c ây ã dùng chúng

t o ra các b n copy. Các vùng nh này không th c gi i phóng tr c

khi giao tác commit vì nh v y có th PERST s c p phát cho các i t ng

i úng các vùng nh ó, trong khi chúng ta mu n các i t ng g c ch a

trong vùng nh này không i. u này nh h ng n tính nh t quán c a

s d li u. Vì vi c gi i phóng vùng nh trong PERST c ng c th c

hi n thông qua Bitmap nên khi gi i phóng c n ph i làm tr ng m t s bit

trong trang Bitmap t ng ng v i các vùng nh c n xóa. Mà các trang

Bitmap này c ng c copy tr c khi s thay i x y ra. Vi c copy các

trang Bitmap này c ng òi h i vùng nh , và ta có th c ng dùng các vùng

nh c a các i t ng b gi i phóng nh trên. Rõ ràng u này l i vi ph m

tính nh t quán c a c s d li u theo nh lý do v a nêu. T t c nh ng u

trên chính là lý do t i sao vi c gi i phóng vùng nh trong PERST c chia

thành hai b c. u tiên, khi i t ng c copy, t t c các trang Bitmap

ng ng v i vùng nh c a i t ng c ng c copy theo (n u tr c ó

ch a c copy). Khi giao tác commit, PERST ch vi c làm tr ng các bit

trong các trang Bitmap t ng ng và t i th i m này, không có m t yêu

u v c p phát b nh nào c phép phát sinh.

Page 35: Xd he thong thong tin dia ly

- 35 -

Sau khi gi i phóng các vùng nh thu c v các i t ng g c, PERST s

ng lo t ghi các trang b thay i lên a ng b thông tin trên b nh

chính và trên a. Sau ó PERST s chuy n i giá tr bi n ch nh

(indicator) ch ra m ng ch m c i t ng hi n t i trong database thành giá

tr ch n m ng “bóng” chuy n i vai trò gi a hai m ng. Bây gi m ng

ch m c i t ng hi n t i chuy n thành “bóng” và m ng ch m c i t ng

“bóng” s tr thành m ng hi n t i. Ti p theo m t l n n a PERST s ghi trang

ch a header b thay i c a database lên a, chuy n database sang tr ng thái

nh t quán m i. Cu i cùng PERST s copy t t c các m c qu n i t ng b

thay i t m ng ch m c i t ng “bóng” (tr c ây là hi n t i) sang m ng

ch m c i t ng hi n t i (tr c kia là m ng “bóng”). Vào th i m này,

i dung c a c hai m ng ch m c i t ng ã ng nh t và PERST có th

t u m t giao tác m i.

Bitmap c a các i t ng b thay i có tác d ng gi m th i gian commit

giao tác. Không ph i t t c m ng ch m c c copy mà ch có các trang b

thay i m i c copy, Sau khi giao tác commit, Bitmap c làm tr ng

nh ã nói trên.

Khi giao tác c b , không cho th c hi n n a b ng l nh Storage.rollback

t cách t ng minh, m ng ch m c i t ng “bóng” s c copy ng c

i vào m ng ch m c i t ng hi n t i, có ngh a là các thay i n u có

tr c ó u không có hi u l c. Sau khi copy, hai m ng ch m c l i ng

nh t và c s d li u l i tr v tr ng thái nh t quán tr c khi th c hi n giao

tác.

c p phát vùng nh cho các m c qu n i t ng c th c hi n b ng

freehandle list. Header c a list c ng c copy và c hai b n c a header này

Page 36: Xd he thong thong tin dia ly

- 36 -

cùng c l u trên header c a database. S chuy n qua l i gi a hai b n này

c th c hi n t ng t nh vi c chuy n qua l i gi a hai m ng ch m c i

ng. Khi không còn ch tr ng trong m ng ch m c i t ng, m ng s

c c p phát thêm. M ng ch m c i t ng là th duy nh t trong c s d

li u không c copy trong quá trình thay i. Thay vì th , PERST luôn luôn

d ng hai b n c a m ng này (m t b n hi n t i và m t b n “bóng”).

Có m t vài giá tr OID c dành riêng cho các i t ng c bi t trong

PERST. Giá tr OID 0 dùng cho các i t ng không h p l ví d nh các

i t ng ã b xóa. Các giá tr OID b t u t 1 c dùng cho các trang

Bitmap. S trang Bitmap l i tùy thu c vào l ng b nh o t i a c a c s

li u. Ví d v i 1tetrabyte b nh o thì kích th c trang 8Kb, kích th c

n v vùng nh c p phát (allocation quantum) 64 byte và 32K trang Bitmap

là các s li u t ng ng. Có ngh a là 32K m c qu n i t ng c dành

riêng cho các trang Bitmap trong m ng ch m c i t ng. Các trang Bitmap

c c p phát khi c n thi t khi mà kích th c database t ng lên. Theo các s

li u trên thì rõ ràng i t ng c a ng i dùng u tiên s mang giá tr OID

ng 0x8002 (t c là 32K + 2).

Quá trình ph c h i c s d li u trong PERST c ng n gi n. Khi ta m

s d li u, PERST s ki m tra xem c s d li u tr c ó có c óng

úng cách không. N u không (c dirty c b t lên trong header c a

database), PERST s th c hi n vi c ph c h i (t ng t nh c ch rollbachk

ã c p phía trên). PERST s làm nh sau:

Bi n ch nh ch ra m ng ch m c i t ng hi n t i s c PERST dùng

quy t nh xem m ng nào là m ng t ng ng v i tr ng thái nh t quán.

Khi ó, PERST s copy các m c qu n i t ng trong m ng này sang m ng

Page 37: Xd he thong thong tin dia ly

- 37 -

còn l i, các thay i th c hi n tr c ó n u có u không cón hi u l c,

PERST l i tr v v tr ng thái nh t quán.

Th t s quá trình recovery ch làm chuy n copy trên (ch nh ng m c qu n

có giá tr khác nhau trên hai m ng ch m c i t ng m i c copy gi m

trang c n ghi lên a) và kích th c c a m ng ch m c i t ng c ng nh

nên vi c ph c h i di n ra r t nhanh. u này giúp gi m th i gian “out-of-

service” c a ng d ng.

2.5 Nh ng tr ng h p nên dùng PERST:PERST là c s d li u dành cho l p trình t ng i n gi n và nhanh.

u ng d ng c a chúng ta c n có c s d li u n, không th c hi n nh ng

thao tác truy xu t d li u quá “l t léo” và cái chúng ta c n là kh n ng l u

tr , truy xu t, nh v các i t ng trong c s d li u thông qua tham chi u

hay qua khóa thì PERST r t thích h p. Trong các tr ng h p này PERST s

có hi u n ng làm vi c t t h n so v i các c s d li u quan h hay các c s

li u h ng i t ng ph c t p h n khác.

Ta s m qua l i các tính n ng n i b t c a PERST:

1.K t h p ch t ch , t nhiên v i m t s ngôn ng l p trình thông d ng

nh t nh (Hi n t i ch m i h tr Java và C#).

2.Mô hình d li u trong ng d ng và database g n nh t ng t nhau.

3.D dàng s d ng.

4.Yêu c u không cao (PERST package ch có dung l ng 51Kb và PERST

có th c c u hình l i sao cho có th dùng ít b nh chính và ph khi

làm vi c).

Page 38: Xd he thong thong tin dia ly

- 38 -

5.Hi u n ng cao (không có các chi phí cho vi c truy n thông, khóa, phân

tích cú pháp các câu SQL và th c hi n các câu truy v n).

6.Kh n ng ch u l i t t (c ch th c hi n giao tác).

7.Kh n ng ph c h i nhanh chóng khi g p s c .

8.Không c n ph i qu n lý database nhi u vì database ch bao g m m t file

duy nh t, vi c các file log c a database quá l n s không còn n a, hi u

ng làm vi c s t ng cao.

nhiên, PERST c ng có các khuy t m t ng ng:

1. Không h tr ngôn ng truy v n.

2. Không thích h p cho vi c h tr a ng i dùng truy c p database (N u

mu n chúng ta ph i t thi t k m t server riêng, server này s nh n các

yêu c u t client r i tu n t truy xu t database r i m i g i k t qu v cho

client).

3. Không h tr vi c phân tán d li u.

4. Không tuân theo m t chu n nào c (Ví d không tuân theo chu n

ODMG).

2.6 Các thông s c a PERST:Ph n này chúng ta s xem xét sâu h n v các thông s c a database và các

cách s d ng chúng t ng hi u n ng.

c truy xu t a là r t ch m so v i t c truy xu t b nh chính. Vì

y l u gi các d li u c truy xu t th ng xuyên (data caching) là chìa

khóa chính t ng hi u n ng làm vi c c a c s d li u. PERST dùng “ pool

of pages” t i u hóa vi c truy c p a. Kích th c c a page pool có th

Page 39: Xd he thong thong tin dia ly

- 39 -

c xác nh trong ph ng th c Storage.Open khi m database (giá tr m c

nh c a thông s này là 4Mb). Thông th ng t ng kích th c page pool s

ng hi u n ng làm vi c c a ch ng trình. Nh ng chúng ta ph i l u ý nh ng

m sau tr c khi quy t nh có t ng kích th c page pool hay không.

1. Có th ng d ng ch c c p m t l ng nh t nh memory nào ó khi

làm vi c thôi.

2. N u chúng ta t o ra page pool có kích th c quá l n, không l i

ch cho h u hành và các ng d ng khác làm vi c thì toàn b h th ng

b nh h ng chung, s gi m hi u n ng do h th ng ph i swap b nh

liên t c.

3. B n thân h u hành c ng có c ch cache d li u c a riêng mình

ng file buffer. V y d li u th t s c cache hai l n. Tuy nhiên vi c

truy xu t d li u t page pool s nhanh h n do không ph i có các l nh g i

hàm h th ng c ng nh chuy n ng c nh (switch context) khi g i hàm.

4. Vi c t o page pool có kích th c quá nh ho c th m chí b ng 0 (giao

vi c cache data toàn b cho h u hành) c ng không th vì s gây ra l i.

Khi d li u c truy c p t b nh ph , nó s c a lên ch a trong

page pool. Có ngh a là page pool ph i c thi t l p cho l n có th

ch a c các trang này. Vì v y, không nên t o page pool có kích th c

bé h n 64kb.

u chúng ta ngh r ng m i d li u nên h t trong b nh chính, chúng

ta có th dùng h ng s Storage.INFINITE_PAGE_POOL trong ph ng th c

Storage.Open c a database. Trong tr ng h p này, page pool s t ng

c t ng kích th c m i khi có m t trang m i c n a vào b nh chính.

Page 40: Xd he thong thong tin dia ly

- 40 -

Có ngh a là l n l t m i trang s c cache và hi n di n trong b nh

chính, chúng ch c c t b nh ph l n u tiên thôi. Trong tr ng h p

này “strong object cache” s c dùng thay vì “weak object cache”. Có

ngh a là i t ng c l y ra t c s d li u s c l u trong b nh

chính và i t ng ch c c n c c m t l n thôi. Chúng ta c ng c n

u ý r ng kích th c database trong b nh chính s l n h n trên b nh

ph vì các i t ng s t n t i trong b nh chính d i c hai d ng: D ng

“g c”(packed: trong trang ch a i t ng) và d ng “ ã có hình dáng”

(unpacked: tham chi u t b cach i t ng).

Trong m t vài ng d ng (nh các ng d ng trên các thi t b di ng), kh

ng l u tr là không c n thi t nh ng các l p bao ch a (container class) c a

PERST nh Link, Index, FieldIndex, SpatialIndex… v n có th c dùng.

Trong tr ng h p này ta s dùng cài t NullFile c a interface IFile cùng v i

thông s Storage.INFINITE_PAGE_POOL t o ra “database” trong b

nh chính. Data trong tr ng h p này s không ph i ghi vào b nh ph .

Có m t vài h ng s c nh ngh a s n trong l p StorageImpl có nh

ng n kích th c kh i u và kích th c t i a c a database. N u ta

mu n thay i các thông s này, ta s ph i biên d ch l i PERST.

Thông s Giá tr

c

nh

Mô t

dbDefaultInitTi

ndexSize

1024 Kích th c kh i u c a m ng ch m c i t ng.

ng này s c t ng kích th c khi c n thi t.

Vi c c p phát l i vùng nh cho m ng này có chi

Page 41: Xd he thong thong tin dia ly

- 41 -

phí cao nên h n ch tác v này, kích th c c a

ng ch m c i t ng luôn c c p phát d

tr g p ôi. V y vi c c p phát vùng nh cho

ng ch m c i t ng l n h n s giúp t ng hi u

ng ch ng trình m t ít nh ng bù l i s làm t ng

kích th c kh i u c a database. V i giá tr m c

nh c a thông s này, kích th c ban u c a

database m i t o là kho ng 50Kb

dbDefaultExten

sionQuantum

4Mb ây chính là kích th c c p phát vùng nh thêm

trong PERST. B nh c c p phát b ng cách

quét Bitmap. N u không có ch tr ng liên ti p

cho i t ng, database s c t ng kích th c

ng giá tr dbDefaultExtensionQuantum. T ng

giá tr c a tông s này d n n vi c PERST ít ph i

scan l i Bitmap t u, t c c a m i l n c p

phát b nh s t ng và các i t ng c c p

phát s có nhi u c h i n m liên ti p nhau h n.

Nh v y s d t ng hi u n ng ch ng trình nh ng

ng c l i ây có th là m t s s d ng b nh

không hi u qu . Và vi c gi m giá tr này s gây

tác d ng ng c l i i v i nh ng tác d ng khi

ng nó.

dbObjectCacheI

nitSize

1319 Kích th c c a vùng cache i t ng. PERST

dùng vùng này ki m tra xem li u i t ng v i

OID nào ó ã hi n di n trên b nh chính hay

Page 42: Xd he thong thong tin dia ly

- 42 -

ch a. Vùng cache này dùng “weak reference”

d n rác có th làm nhi m v . M i khi cache b

y, cache s c c p phát l i v i kích th c

kho ng g p ôi l n tr c. M t l n n a, n u ta

ng thông s này thì s làm gi m s l n ph i c p

phát l i vùng nh cache.

ng 2.6-1 H ng s c nh ngh a s n trong l p StorageImpl

i ây là các cách t ng hi u n ng và gi m l ng b nh chính ph i

d ng. N u ch ng trình c a chúng ta th c hi n nhi u thao tác update các

i t ng trên c s d li u thì gi i h n chính là th i gian ghi a. N u

chúng ta th c hi n l nh commit database m i khi có s thay i thì trung

bình ta th c hi n c 10 l n commit nh v y trong m t giây (Gi i h n này

gi thi t r ng m i thao tác truy c p a m t 10ms và m i giao tác khi commit

n ghi xu ng a kho ng 10 trang b t k trong c s d li u). Nh ng ta có

th t ng hi u n ng c a thao tác update m t cách áng k n u ta nhóm các

thao tác update l i v i nhau trong cùng m t giao tác. PERST t o i t ng

copy c a các i t ng c n update khi l n u tiên nó b thay i trong giao

tác. N u i t ng b update trong N giao tác m i giao tác m t l n thì N b n

copy s c t o nh ng n u i t ng b update N l n trong m t giao tác thì

ch m t b n copy c t o ra. ây chính là l i ích d th y nh t c a vi c th c

hi n các giao tác l n, dài.

Nh ng n u ta th c hi n vi c update cho nhi u i t ng trong cùng m t

giao tác thì rõ ràng s d n n vi c t ng kích th c database vì các b n copy

các i t ng c t o ra nhi u mà vi c gi i phóng vùng nh c ch c

th c hi n khi commit giao tác. Vì v y, cách t t nh t (m t cách t ng i) là

Page 43: Xd he thong thong tin dia ly

- 43 -

th c hi n l nh commit sau kho ng 100 n 1000 l n update, làm nh v y s

gi m c chi phí c a m i l n commit mà v n không làm t ng kích th c

database áng k .

u các i t ng c a ch ng trình c t ch c d i d ng cây hay danh

sách liên k t thì m t khi ta ã load lên b nh chính i t ng g c c a cây

hay danh sách liên k t và i t ng ó c tham chi u t m t bi n c a

ch ng trình thì b d n rác s không th nào thu d n c b t c i t ng

nào c load lên t i t ng g c (vì i t ng ó có th c tham chi u

i t ng g c b t c lúc nào). C nh v y khi ta truy xu t l n l t cho

n h t các i t ng trong cây hay danh sách liên k t ó thì toàn b các i

ng s n m trong b nh chính. u này có th d n n s tràn b nh . Vì

y ta nên c n th n, không nên m t bi n nào ó tham chi u n i t ng

c c a cây mà không qu n lý ch t. Tuy nhiên, v i các l p bao ch a c a

PERST, truy xu t các i t ng b ng khóa nh Index, SpatialIndex,

FieldIndex… thì lo l ng này là không c n thi t vì các i t ng thành ph n

a các i t ng này s b b don rác thu gom bình th ng.

ôi u ghi chú thêm:

Khi nào thì nên dùng c u trúc nào cho vi c l u tr :

1. Link: Dùng cho các t p h p nh (s i t ng trong t p h p kho ng

100 tr xu ng).

2. FieldIndex: Dùng cho các t p h p có s ph n t l n (kho ng h n 100).

Ch m c c t o trên m t tr ng c a i t ng hay nhi u tr ng (trong

tr ng h p này c g i là khóa ph c) c a i t ng. FieldIndex c cài

Page 44: Xd he thong thong tin dia ly

- 44 -

t b ng B+Tree. Kích th c trang BTree là 4kb, vì v y kích th c nh

nh t c dùng b i index là 4kb.

3. Index: C ng dùng cho các t p h p có s ph n t l n. Vi c ánh ch m c

cho Index c th c hi n ngay lúc thêm i t ng vào Index.

4. BitIndex: dùng cho t p h p các i t ng v i khóa là các tr ng có giá

tr nh phân.

5. SpatialIndex: dùng cho d li u không gian v i khóa là t a c a các

i t ng. SpatialIndex c cài t b ng cây RTree c a Guttman.

2.7 l c v RTree:

2.7.1 Gi i thi u:Hi n nay, trong các l nh v c ng d ng máy tính nh CAD (Computer

Aided Design) hay Geo-data Application, vi c x lý d li u không gian

(spatial data – g n li n v i t a , v trí c a m t i t ng) r t c n n m t

u trúc d li u hi u qu trong vi c thao tác trên d li u liên quan n t a ,

trí c a các i t ng. Tuy nhiên, các c u trúc d li u c n không thích

p cho công vi c này. Vì v y, chúng ta s tìm hi u m t lo i c u trúc d li u

i: RTree, có kh n ng áp ng các yêu c u trên.

2.7.2 l c v d li u không gian (spatial data) vàcác gi i pháp:

Các i t ng c a d li u không gian (qu n, huy n, khu v c, i núi, sông

ngòi…) th ng bao ph m t vùng trong không gian n chi u nào ó

(n=2,3…) ch th ng không th hi n b ng m t m n thu n. d hình

Page 45: Xd he thong thong tin dia ly

- 45 -

dung, các ví d c nêu s t p trung vào không gian m t ph ng 2 chi u, các

không gian nhi u chi u khác s áp d ng t ng t .

Ví d : 1 qu n s bao ph m t vùng không gian xác nh trong không gian

2 chi u.

t trong nh ng thao tác th ng xuyên nh t trong nh ng ng d ng có

liên quan n d li u không gian nh CAD, CAM, GIS là tìm xem có t t c

bao nhiêu i t ng n m trong m t vùng nào ó. Vì v y kh n ng xác nh

i t ng d a vào t a , v trí c a i t ng m t cách nhanh và chính xác là

n r t quan tr ng.

Rõ ràng, các c u trúc c n không thích h p v i vi c tìm ki m trong

không gian nhi u chi u. C th : Các c u trúc d a trên giá tr chính xác nh

HashTable không thích h p vì yêu c u th ng là tìm trong kho ng còn các

u trúc h tr tìm trong kho ng nh BTree hay ISAM index thì không thích

p cho không gian nhi u chi u.

Th c t ã có nhi u công trình nghiên c u nh m tìm ra gi i pháp cho v n

này, trong ó RTree là m t gi i pháp t t. Các gi i pháp khác nh Cell,

QuadTree, k-d Tree, K-D-B Tree, Corner stiching, Grid file, … u có

nh c m riêng.

2.8 So sánh v i các h qu n tr c s d li u h ng ing khác:

Trên th tr ng hi n có không nhi u h qu n tr c s d li u nhúng cho

Java và C# nh ng b n b n kho n không bi t ch n h qu n tr nào cho phù

p.B i không có cái gì là hoàn h o. ây xin a ra 6 h qu n tr khác

nhau ó là ObjectStore PSE Pro c a Progress Software, FastObject c a

Page 46: Xd he thong thong tin dia ly

- 46 -

Versant, Berkelay DB JE c a Sleepycat, JISP c a CoyoteGulch, db4o c a

db4oObjects, và PERST.c a Knizhnik. Sau ây là b ng so sánh các c tính

b n c a 6 h qu n tr :

OODBMS Ngôn ng

tr

p phát

vùng nh

tr

giao

tác

Scheme

Evaluation

Ngôn

ng truy

n

Ti n

ObjectStore

PSE Pro

C++

Java

Khai báo

ng minh

hay ng m

nh (nh

Gabage

Collection)

Log

file

Dùng c ch

Serialization.

Truy v n

theo

thu c

tính

tìm ki m

i

ng

trong t p

p

t bu c

Db4o Java

C#

(Standard,

Compact

và nh ng

Framwork

n)

Khai báo

ng minh

Không

tr

ph c

i khi

th ng

có s

.

Có th thêm,

xoá, s a các

tr ng và c p

nh t qua l i

gi a các phiên

n. C ng có

th thay i

tên và tr ng

a các l p.

Không

có ngôn

ng truy

n

nh ng

cung c p

API cho

vi c t o

i

ng

truy v n.

Không b t

bu c

Berkeley Java Khai báo Tùy Không Không Không b t

Page 47: Xd he thong thong tin dia ly

- 47 -

DB JE ng minh ch n bu c

JISP Java Khai báo

ng minh

Không Không Không Không b t

bu c

FastObject Java

C#

J#

VB

Khai báo

ng minh

Có Có JDOQL B t bu c

PERST Java (bao

m c

JDK 1.5),

C#

(Standard,

Compact

Framwork

n)

Khai báo

ng minh

hay ng m

(nh

Background

Gabage

Collection)

i

ng

úp

hay i

ng

bóng

Lazy scheme

evaluation

Không

tr

ngôn

ng truy

n

Không b t

bu c, Và có

th tích h p

i ASpectJ

và JAssist

cung c p

tính trong

su t trong

p trình

(tranparent

persistent)

ng 2.8-1 So sánh các c tính c a các h qu n tr so sánh t c c a các h qu n tr c s d li u, ta cài t m t ví d

th c hi n các ch c n ng n gi n nh l u tr d li u (Storing), l y d li u

(Fetching), nh v i t ng (Locating) b ng ph ng pháp ch m c trên hai

ngôn ng là C# và Java v i các h qu n tr c s d li u t ng ng..

Ví d này c th c hi n theo ba b c c b n nh sau:

+ u tiên là t o ng u nhiên i t ng có khoá ki u long và khoá

ki u string, trong ó ch m c là ki u string. Sau ó l u vào c s d li u.

Page 48: Xd he thong thong tin dia ly

- 48 -

+ Sau ó tìm ki m các i t ng dùng khoá long và string.

+ Cu i cùng là tìm và xóa t ng i t ng và c p nh t ( ánh d u)

vào c s d li u.

n v th i gian m i b c th c thi c tính b ng giây. S l ng các i

ng trong m i tr ng h p là gi ng nhau và b ng 100000. T t c c

ki m tra th nghi m trên cùng m t máy và c u hình máy là AMD Athlon 64

(3200+), 1.5Gb RAM, windowsXP. Ngôn ng dùng l p trình ây là Csharp

và Java ( Sun Java JDK 1.4.2_04).

Sau ây là b ng k t qu , b ng s p t ng d n theo th i gian th c hi n:

qu n tr Ngôn

ng

c T o d

li u

c tìm

ki m

c xóa d

li u

PERST Java 3 775 1 683 3 275

PERST CSharp 4 446 2 403 3975

ObjectStore PSE

Pro

Java8 272 9 413 3 104

FastObjects J2 Java 13 399 10 856 38 435

FastObjects.Net CSharp 43 012 2 714 7 461

Db4o – 4.0 Java 18 457 6 279 38 886

DB4o – 4.0 CSharp 31 725 41 099 88 517

Berkeley DB JE Java(*) 15 513 10 755 12 758

JISP Java 350 674 343 063 527 248

Page 49: Xd he thong thong tin dia ly

- 49 -

ng 2.8-2 B ng so sánh k t qu c a các h qu n tr c s d li u h ngi t ng(*) – JE dùng Xmxl128M tránh tràn b nh , và u này làm cho th i

gian ch sai s x p x 64 giây nên chúng ta không c n ph i quan tâm.

a vào b ng so sánh k t qu trên thì chúng ta nh n ra r ng PERST nhanh

nh t, gi thì không ph i b n kho n ch n l a gi a các h qu n tr n a. Chúng

ta hãy ch n PERST cho ra m t ng d ng t i u v t c .

Page 50: Xd he thong thong tin dia ly

- 50 -

CH NG 3 : Gi i thi u v mô hình Topology

3.1 Gi i thi u: li u Topology c xây d ng t các i t ng hình h c c b n và

chúng có quan h v i nhau. M c quan h tu thu c vào c p Topology.

t v n khó kh n khi xây d ng các ng d ng d a trên d li u Topology

là ngu n d li u Topology không có s n. Mu n có d li u Topology chúng

ta ph i chuy n t d li u hình h c c b n thành d li u Topology. Và các

ph ng pháp hay công c chuy n i còn ít c h tr . Trong n i dung

tài, chúng ta s xây d ng công c chuy n i d li u t d ng Text thành

li u Topology nh mong mu n.

3.2 Các khái ni m c b n trong Topology:Start Node: Nút b t u c a c nh.

End Node: Nút k t thúc c a c nh.

Right Edge: C nh u tiên g p khi di chuy n ng c chi u kim ng h

quanh nút k t thúc c a c nh hi n t i.

Left Edge: C nh u tiên g p khi di chuy n ng c chi u kim ng h

quanh nút b t u c a c nh hi n t i.

First Edge: C nh c ch n ng u nhiên, c xem nh là c nh u tiên

cho vi c tìm ki m các c nh k c a nút.

Page 51: Xd he thong thong tin dia ly

- 51 -

Hình 3.2-1 Các i t ng trong mô hình Topology

t s khái ni m c b n trong mô hình Topology.

Left Face: M t bên trái c a c nh khi di chuy n t nút b t u n nút k t

thúc.

Right Face: M t bên ph i c a c nh khi di chuy n t nút b t u n nút

t thúc.

Minimum Bounding Rectangle (MBR): Khung ch nh t nh nh t ch a

toàn b i t ng.

Inner Ring: Biên trong c a m t. M i i t ng vùng có th không có, có

t ho c nhi u biên trong.

Outer Ring: Biên bao ngoài c a m t. M i i t ng vùng có duy nh t m t

biên ngoài.

c tr ng: mô hình c a i t ng a lí th gi i th c. Các i t ng này

có th là i t ng vô h ng, m t chi u, hai chi u và ba chi u.

3.3 Các lo i i t ng trong Topology:Có 4 lo i i t ng hình h c c s là:

Page 52: Xd he thong thong tin dia ly

- 52 -

+ Node (nút): EntityNode (nút th c th ), Connected node (nút n i

t)

+Edge (c nh)

+Face (m t)

+ Text (v n b n): ch làm rõ i t ng ch không th c liên k t

i nhau b i m i quan h Topology

Nodes: Là các i t ng vô h ng dùng l u tr các v trí có ý ngh a.

+ Entity node: là các node không n m trên c nh, nó ch c liên

t v m t Topology v i m t ch a nó (ví d nh th ô). Nó dùng th

hi n nh ng c tr ng riêng bi t ho c các m kh o sát, hay các i t ng

th hi n m t t l nào ó.

+ Connected node: Là các node n m u mút c a c nh, nó có th là

m u hay di m cu i c a c nh. Và c liên k t v m t Topology v i các

nh khác. M i node còn có FirstEdge và có m t khung bao nh nh t (MBR

– Minimum Boundary Rectangle) ch a nó.Các node k t n i c s d ng

theo 2 h ng:

nh ngh a các c nh v m t Topology: lúc này các node c xem nh là

m u và m cu i

Th hi n các c tr ng m c tìm th y t i u và cu i c nh c a các

c tr ng tuy n tính: ch ng h n nh các cây c u, các c a c ng c a m t con

kênh, các m truy c p ti n ích trong lòng t, v i cách này thì các thu c

tính s c k t h p v i các c tr ng m c liên h v i các node k t

i. T t c các node k t n i c ch a trong b ng node k t n i. N u nhi u

nh giao nhau t i m t node, ch m t c nh s c duy trì cho m i node

Page 53: Xd he thong thong tin dia ly

- 53 -

trong b ng node k t n i; các c nh khác c liên k t b ng cách s d ng

thu t toán tìm c nh k suy ra.

Edge: là i t ng c s dùng th hi n các v trí c a các c tr ng tuy n

tính nh con ng và các biên c a m t. C nh c c u thành t 2 hay nhi u

p to 2 chi u (x,y) hay 3 chi u (x,y,z) phân bi t. H ng c a c nh có th

c xác nh b i tr t t các c p to . C nh c nh ngh a t các node

u cu i. Bên c nh các node u cu i thì c nh còn ch a các thông tin nh

RightEdge, LeftEdge, RightFace, LeftFace d dàng truy tìm thông tin và

y các c tr ng. M i c nh có m t khung bao nh nh t (MBR – Minimum

Boundary Rectangle) ch a nó.

Face: c nh ngh a t c nh dùng th hi n c tr ng vùng nh các qu c

gia, thành ph . T p các c nh có quan h Topology hình thanh nên biên c a

t. M t có th có biên trong ho c biên ngoài và có th ch a m t nh h n

trong nó. Quan h này g m m t tham chi u n m kh i u c a m t biên

khép kín c a các c nh, r i theo chi u kim ng h khép kín biên. M t có

th có nhi u biên (rings); có th có m t biên ngoài và không có ho c có m t

ho c nhi u biên trong. Các m t không c ch ng l p nhau, và các m t trong

t l p s d ng toàn b vùng m t ph ng. M i b ng m t có m t khung ch

nh t bao m t k t h p (FBR) ch a hình ch nh t nh nh t bao m i m t.

3.4 Các c p c a Topology:Có 4 c p Topology: 0, 1, 2, 3.

c p 3, các k t n i v m t Topology hi n di n m t cách t ng minh.

Page 54: Xd he thong thong tin dia ly

- 54 -

c p 0, không có thông tin Topology c th hi n m t cách t ng

minh. B ng t ng k t sau t ng k t các c tính c a 3 c p này và cho m t ví d

m i c p.

p Tên Các i t ng s Mô t Ví d

3 Quan h

Topology

y

Node k t n i,

node th c th ,

nh và m t

m t c

phân chia b i

p các m t

c ch n

và ph n chung

duy nh t. Các

nh ch g p

nhau t i các

node.

2 th

ph ng

Node th c th ,

node k t n i

và c nh

t t p các

nh và các

node ó khi

chi u vào b

t ph ng, các

nh ch g p

nhau t i các

node

1 th

không

Node th c th ,

node k t n i

p các node

th c th và các

Page 55: Xd he thong thong tin dia ly

- 55 -

ph ng và c nh c nh có th

p nhau t i

các node

0 Th hi n

hình bao

Node th c th

và c nh

p các node

th c th và các

nh. Các c nh

ch ch a các

a , không

ph i là node

t u và

node k t thúc.

ng 3.4-1 Các c p Topology trong các l p VPFCác c t trong các b ng c nh và b ng node xác nh tính k t n i và tính k

cho quan h Topology, tùy thu c vào c p Topology.

ng sau ch ra các c t b t bu c trong m i b ng c s cho c p Topology

c yêu c u. Các c tính c a các c t này c ch nh trong các nh

ngh a.

p

Topolog

yng c s Các c t b t bu c

3 M t RING_PTR3 B ng vòng (Ring table) FACE_ID, START_EDGE,

START_NODE, END_NODE,

Page 56: Xd he thong thong tin dia ly

- 56 -

RIGHT_FACE, LEFT_FACE,

RIGHT_EDGE, LEFT_EDGE

3 Node th c th CONTAINING_FACE

3-1 Node k t n i FIRST_EDGE

2-1 nh START_NODE, END_NODE

RIGHT_EDGE, LEFT_EDGE

2-0 Node th c th (Không có)

0 C nh (Không có)

ng 3.4-2 Các c t c yêu c u nh ngh a quan h Topology trongVPF

Ba hình sau s d ng bi u m i quan h th c th (ER) miêu t các i

ng c s và các m i quan h c a chúng m i c p Topology.

Hình 3.4-1 Quan h Topology c p 0

Page 57: Xd he thong thong tin dia ly

- 57 -

Hình 3.4-2 Quan h Topology c p 1 và 2

Page 58: Xd he thong thong tin dia ly

- 58 -

Hình 3.4-3 Quan h Topology c p 3

Page 59: Xd he thong thong tin dia ly

- 59 -

3.5 MBR – Minimum Bounding Rectangle:t khung bao nh nh t c yêu c u trong b ng c nh ho c b ng m t. Vì

vòng bên ngoài c a m t t ng th không có th hi n hình h c nào nên b ng

ghi FBR cho m t 1 luôn có giá tr null cho các XMIN, YMIN, XMAX,

YMAX.

Tên c t Mô t Lo it

Lo ikhóa

Op/Man

ID

XMIN

YMIN

XMAX

YMAX

Id

a X nh nh t

a Y nh nh t

To X l n nh t

a Y l n nh t

I

F/R

F/R

F/R

F/R

P

N

N

N

N

M

M

M

M

M

ng 3.5-1. nh ngh a khung ch nh t nh nh t MBR

Page 60: Xd he thong thong tin dia ly

- 60 -

CH NG 4 : Gi i thi u v GIS

4.1 Gi i thi u v các ng d ng và gi i pháp v GIS:GIS (Geography Information System ) là công ngh ra i vào nh ng

m 60 c a th k 20. Công ngh GIS cho phép áp ng các nhu c u liên

quan t i qu n lý c ng nh khai thác và s d ng các thông tin, d li u a

lý. T giai n u c s d ng trên các h th ng máy tính l n M và

Canada, n nay, công ngh GIS ã c áp d ng và tri n khai h t s c r ng

rãi trên ph m vi toàn th gi i, trên nh ng h th ng máy PC và th i gian g n

ây là trên c các thi t b PDA.

t s ng d ng GIS n i ti ng trên th gi i hi n nay ang c ng

ng r ng rãi nh MapInfo, Arc/Info, Spatial Database Engine (SDE),

ArcView GIS...: c s d ng v i m c ích qu n lý, tích h p, quy ho ch

và khai thác các d li u b n .

i Vi t Nam, công ngh GIS c ng ã c nghiên c u và có c m t

s n ph m có k t qu áng khích l . Th i gian g n ây, vi c nghiên c u

công ngh GIS ã cho ra hàng lo t ng d ng áp d ng trong th c t t i

Tp.H Chí Minh, nh StreetFinder c a DolSoft, h th ng GIS trên website

Ngân hàng b n tr c tuy n c a VDC, DMC, Dolsoft

(www.basao.com.vn), h th ng ch d n giao thông c a nhóm AMI Group -

i h c Khoa h c T nhiên Tp.H Chí Minh.

Các gi i pháp v GIS th ng c chia làm hai nhóm chính:

• Gi i quy t các bài toán ph c t p liên quan n m ng giao thông nh :

Các bài toán nh tìm ki m ng i t i u, u ph i l trình giao

Page 61: Xd he thong thong tin dia ly

- 61 -

thông… th ng c áp d ng trên các h th ng máy tính l n, có c u hình

nh.

• Hi n th và tìm ki m các thông tin b n . ây là d ng ng d ng b n

n t , cung c p các kh n ng cho phép ng i s d ng xem b n và

tìm ki m m t s thông tin c n thi t, th ng c áp d ng trên các máy tính

thông th ng và nh .

4.2 Mô hình d li u c a thông tin a lý:Câu h i t ra là làm sao chuy n i thông tin b n vào máy tính và

ng c l i? làm c u ó thì GIS ph i l u tr thông tin v Geometry

(hình d ng và v trí i t ng ) và Attribute (các thu c tính c a i t ng)

Hình 4.2-1 Thông tin c n l u tr th ng thông tin a lý là m t h th ng thu th p, l u tr và x lý các

thông tin d i d ng gi y, nh, s v các hi n t ng t nhiên trong th gi i

th c. Trong c s d li u c c u thành t thông tin, các thông tin th ng

không s d ng c tr c ti p mà ph i thông qua m t h th ng các công c

truy xu t, tái t o l i i t ng th gi i th c mà ng i dùng quan tâm. M t

i t ng c l u tr trong c s d li u d i d ng các th c th hình h c,

ng i dùng s dùng ph i tái t o l i i t ng y thông qua các d li u hình

Page 62: Xd he thong thong tin dia ly

- 62 -

c này. Nh v y d li u là r t a d ng, chúng có mang tính không gian, th i

gian, c g i là d li u a lý. Tóm l i d li u a lý là các d li u s mô t

các i t ng trong th gi i th c.

li u lý c t ch c thành hai nhóm thông tin chính, ó là:

1/ Nhóm thông tin v phân b không gian.

2/ Nhóm thông tin v thu c tính c a i t ng.

Không gi ng nh các d ng d li u thông d ng khác, d li u lý ph c

p h n, nó bao g m các thông tin v lý, các quan h Topology và các

thu c tính phi không gian. M i d li u lý có th c mô hình v i ba

thành ph n khác nhau theo quan ni m topology – m, ng, vùng.B t kì

t i t ng t nhiên nào u có th c bi u di n b ng m t trong bao

i t ng này kèm theo chúng là nh ng thông tin c thù riêng.

Mô hình d li u lý bao g m b n thành ph n sau:

+ Thành ph n khoá: là mã s duy nh t cho th c th phân bi t th c th

này v i th c th khác.

+ nh v : Ch ra v trí c a th c th .

+ Thành ph n phi không gian: Là nh ng thu c tính riêng cho t ng th c

th nh t l , kho ng, nh danh ….

+ Thành ph n không gian: Các i t ng t nhiên bên ngoài c chuy n

vào máy tính qu n lý theo hai cách sau: Raster và Vector

Mô hình vect : t ng c bi u di n du i d ng m, ng và vùng. V

trí không gian c a m t th c th c xác nh b i m t h to th ng nh t

toàn c u. M t th c th c xác nh b i c p to (X,Y) và các thu c tính

khác nh : ki u m, màu, hình d ng.

Page 63: Xd he thong thong tin dia ly

- 63 -

Hình 4.2-2 D li u Vector

Hình 4.2-3 Các th c th c th hi n trên b n Mô hình Raster: D li u Raster c phân bi t b ng n v pixel, ó là

hình nh n v nh nh t ph n ánh i t ng trong không gian.

u trúc d li u ratser 2-D c xem nh là m t ma tr n các ô l i c

tr ng cho m t ô vuông b m t t. phân gi i c a d li u raster ph thu c

vào kích th c c a nh ng ô l i này.

Hình 4.2-4 D li u raster

Page 64: Xd he thong thong tin dia ly

- 64 -

khác bi t gi a hai ki u d li u: C hai ki u d li u này u r t h u ích

nh nhau, nh ng chúng c ng có s khác bi t quan tr ng. Sau ây là b ng so

sánh gi a hai ki u d li u này.

Vector Raster

li u hi n th ít h n, nhanh h n, ch

ch y u hi n th các i t ng mà

không hi n th c tính c a i t ng

li u nhi u h n, hi n th ch m h n,

không nh ng hi n th i t ng mà

còn hi n th c c tính c a i t ng

ng 4.2-1 B ng so sánh ki u d li u Raster va Vector

Hình 4.2-5 So sánh Raster và Vector

4.3 Thu th p d li u:Có nhi u k thu t thu th p thông tin t các ngu n d li u. Nó th ng

c thu th p t vi c o c tr c ti p trên th g i i th c . Tuy nhiên, m t

l n d li u li u có th c chuy n i t b n gi y sang hình th c

u tr c a b n n t . Có ba ph ng pháp th ng c s d ng ó là

Scanning(ph ng pháp quét), Digistsing (ph ng pháp s hoá), Vectorisation

(ph ng pháp vecto hoá).

Page 65: Xd he thong thong tin dia ly

- 65 -

Ph ng pháp quét: ây là k thu t thông d ng mà l i ít t n kém, có th

c th c hi n trên các máy tính cá nhân hay c a công ty. Máy quét s l u

tr l i các hình nh c a b n gi y d i hình th c s và hi n th chúng tr

i màn hình. Vi c quét hình nh t b n gi y t ng i n gi n và nhanh

chóng, tuy nhiên ph ng pháp này l i không th cung c p thu c tính c a các

i t ng t nhiên nh ch c a m t toà nhà hay ngày thành l p cu m t

sân v n ng nào ó. D li u có c t nh ng ph ng pháp này th ng

i d ng raster cho kích th c r t l n.

Hình 4.3-1 Ph ng pháp ScanningPh ng pháp s hoá: K thu t này òi h i ph i cung c p các thi t b

chuyên ngành. B n ngu n s c trãi b m t ngang, m t con tr s xác

nh t a các m t o nên hình d ng b n , sau quá trình s hoá, thu c

tính c a các i t ng m i c thêm vào. Ph ng pháp này òi h i nhi u

th i gian và ngu n d li u có c t k thu t này d i hình th c Vect .

Page 66: Xd he thong thong tin dia ly

- 66 -

Hình 4.3-2 Ph ng pháp s hoá

Ph ng pháp Vector hoá: M t vài h th ng máy tính chuyên nghi p có th

chuy n i d li u Raster sang d ng d li u Vect . Ph ng pháp này cho t c

nhanh do tính t ng nh ng l i kém chính xác h n so v i vi c s hoá th

công.

Các k thu t trên u d a vào ngu n d li u b n gi y có s n. Trên

th c t , ng i ta còn d a vào các ngành l nh v c khác nh : vi n thám, GPS,

phân tích nh… thu th p ngu n d li u cho GIS.

4.4 Các gi i thu t nghiên c u v GIS:Công ngh GIS liên quan tr c ti p t i lý thuy t th c ng nh trí tu

nhân t o trong vi c a ra các gi i thu t gi i quy t các bài toán liên

quan. ây là nh ng l nh v c nghiên c u c u t r t nhi u v i các c i

ti n c ng nh ã a ra c nhi u gi i thu t t t ho c t i u (ch ng h n nh

các gi i thu t clipping, ki m tra m trong/ngoài a giác hay các gi i thu t

tìm ki m trên c u trúc d li u ho c tìm ki m l trình t i u...)

Các bài toán v GIS hi n nay v n ang c nghiên c u và có nh ng c i

ti n r t t t, k c trong các bài toán ph c t p.Công ngh GIS v i nh ng l i

th c a nó ã mang l i ph ng pháp qu n lý hi u qu h n, m i s v t, i

Page 67: Xd he thong thong tin dia ly

- 67 -

ng, t nh ng thông tin không gian n nh ng thông tin phi không gian t t

u c qu n lý m t cách th ng nh t trên cùng h th ng. M i truy xu t

u th hi n tr c quan h n trên b n s thay cho nh ng dòng v n b n n

thu n. Chính vì th GIS ngày m t tr nên quen thu c h n cho ng i dùng,

nó c ng d ng trong nhi u l nh vi c t n gi n n ph c t p và chi phí

òi h i u t ngày m t th p h n. Có th nói r ng GIS ngày m t t kh nh

m quan tr ng, c các n c phát tri n xem nh m t m i nh n trong l nh

công ngh thông tin.

4.5 Các c u trúc d li u không gian trong GIS:

4.5.1 Cây t phân (Quad Tree):Quad Tree c s d ng l p ch s không gian 2D. M i nút trong c a

cây chia không gian thành 4 vùng không gian con tách bi t ( c g i là NW,

NE, SW, SE) t ng ng v i các tr c t a . M i vùng không gian con này

c tách m t cách quy cho n khi có nhi u nh t m t i t ng bên

trong m i vùng.

Hình 4.5.1-1 Cây t phân

Page 68: Xd he thong thong tin dia ly

- 68 -

Quad Tree không c cân b ng và s cân b ng c a nó ph thu c vào s

phân b c a d li u và tr t t chèn d li u vào cây.

4.5.2 K-d Tree:Ph ng pháp này s d ng m t cây nh phân chia không gian k chi u.

Cây này tách không gian thành hai không gian con t ng ng v i m t trong

các t a c a m ang tách.

Hình 4.5.2-1 K-D Tree

i level(nod) là chi u dài c a ng i t nút g c n nút nod và gi s

các tr c t a c ánh s t 0 n k – 1. T i b c level(nod) m i nút

không gian c tách t ng ng v i s t a (level(nod) mod k).

Thao tác thêm và tìm ki m t ng t nh i v i cây nh phân. Chúng ta

ch ph i so sánh các nút t ng ng v i s t a (level(nod) mode k). C u

trúc này có m t b t l i là nh y c m v i tr t t mà các i t ng c thêm

vào.

Page 69: Xd he thong thong tin dia ly

- 69 -

4.5.3 R-Tree:R-Tree là s bi n c i c a B-Tree cho d li u không gian. R-Tree là cây

cân b ng và chia không gian thành các khung ch nh t có th ch ng l p(ph )

nhau. M i nút ngo i tr nút g c ch a t m n M con ( 2/2 Mm ≤≤ ). Nút g c

có t i thi u 2 con ngo i tr nút lá.

Hình 4.5.3-1 R-Tree

Nút c th hi n b i m t khung bao nh nh t - MBR(minimum

bounding rectangle) ch a t t c các i t ng c a cây con c a nó. M i con

a nút c tách quy. Các con tr tr n các i t ng d li u c l u

các nút lá.

Vì các MBR có th ch ng l p nên có th c n ph i tìm ki m trên nhi u

nhánh c a cây. Do ó, các khung ch nh t càng tách bi t càng t t. V n

này ph i c gi i quy t thao tác INSERT (chèn) có s d ng m t s

Page 70: Xd he thong thong tin dia ly

- 70 -

heuristic. Thao tác này tìm m t nút lá sao cho khi chèn i t ng m i vào nó

gây nh ng thay i nh nh có th .

Thao tác tách c ng quan tr ng. M c tiêu là làm gi m xác su t s ph i tìm

hai nút m i. Vi c ki m tra t t c các kh n ng có ph c t p s m , vì

th nh ng thu t toán cho l i gi i x p x th ng c s d ng.

R-Tree là m t trong nh ng c u trúc d li u không gian c c p n

nhi u nh t và nó r t th ng c s d ng so sánh v i nh ng c u trúc m i.

Trong các ng d ng GIS, R-Tree óng vai trò quan tr ng trong vi c ch n

a i t ng hi n th c ng nh kích ho t nhanh các i t ng h a.

4.5.4 R*-Tree:R*-Tree là m t bi n c i c a R-Tree s d ng heuristic khác cho thao tác

INSERT. R-Tree c g ng t i thi u vùng c a t t c các nút c a cây. R*-Tree

t h p nhi u tiêu chu n: vùng b ph b i khung ch nh t bao, biên c a

khung ch nh t và s ch ng l p gi a các khung ch nh t.

c tiêu làm gi m vùng b ph b i khung ch nh t bao là làm gi m

không gian ch t, có ngh a là không gian b ph b i khung ch nh t bao ch

không ph i b i các khung ch nh t b ch a. u ó làm gi m s nhánh tìm

ki m vô ích. T i thi u hóa biên (t ng chi u dài các c nh) c a khung ch nh t

bao t t h n là dùng nh ng khung vuông. T i thi u hóa s ch ng l p gi a các

khung ch nh t làm gi m s ng ph i tìm ki m.

Cài t ph ng pháp này thì khó h n, nh ng R*-Tree hi u qu h n R-

Tree nhi u.

Page 71: Xd he thong thong tin dia ly

- 71 -

4.5.5 R+-Tree:R+-Tree là s m r ng c a R-Tree. Khác v i R-Tree, các khung bao c a

các nút t i m t m c không ch ng l p trong c u trúc này. c tính này làm

gi m s l ng nhánh ph i tìm ki m c a cây và làm gi m phí t n th i gian.

Hình 4.5.5-1 R+-Tree

R+-Tree c phép tách các i t ng d li u cho nh ng ph n khác

nhau c a m t i t ng có th c l u nhi u nút c a m t m c. N u m t

khung ch nh t ch ng l p m t khung ch nh t khác, nó s b phân rã thành

t nhóm các khung ch nh t không ch ng l p nhau. u này làm gia t ng

không gian l u tr nh ng cho phép lo i b s ch ng l p gi a các nút và do

ó làm gi m phí t n th i gian tìm ki m.

Page 72: Xd he thong thong tin dia ly

- 72 -

4.6 ng d ng b n :

4.6.1 Các ki u b n :

Hình 4.6.1-1 Các ki u b n

Toppographic là b n ch bao g m các c tính v t lý ví d nh ng,

sông, nhà.

Contour ( ng vi n): là b n bao g m các ng n i các v trí m có

cùng giá tr ví d nh : sâu c a bi n, ng ng áp.

Choropleth: là b n a chí.

4.6.2 Các i t ng c a b n :Công ngh GIS c ng cho phép l u tr thông tin b n trong máy tính

theo cách máy tính hoá, ngh a là l u tr d i d ng t p tin v i các c u trúc

khác nhau. Và t ó b n có th c l u tr , thêm, xoá, s a m t cách d

dàng. Nhìn vào vào m t b n ta c ng nh n th y c các i t ng chính

a b n , nó bao g m: Line( ng), Area (vùng), Point ( m), và Text

(v n b n).

Page 73: Xd he thong thong tin dia ly

- 73 -

Hình 4.6.2-1 Các i t ng chính trong b n

4.7 ng d ng GIS trên PocketPC: phát tri n m nh m c a Internet, c ng nh kh n ng c a công ngh

ph n c ng, ã d n n s ra i c a các thi t b ng d ng Internet. Theo các

nhà nghiên c u th tr ng, m c dù PC v n gi vai trò ch y u trong vi c x

lý và h tr công vi c, nh ng các thi t b Internet hay thi t b h tr cá nhân

ngày càng kh ng nh c vai trò c a nó trên th tr ng.

Ra i vào nh ng n m 90 c a th k 20, Pocket PC là m t d ng thi t b

m tay PDA (Personal Digital Assistant) s d ng h u hành Pocket PC,

t bi n th c a Windows CE, m t h u hành nhúng c Microsoft

phát tri n cho các thi t b không là PC (non-PC).

Do c tr ng nh g n, c thi t k v i m c ích giúp ng i s d ng

u tr các thông tin cá nhân, công vi c c n thi t c ng nh các ph n m m t i

thi u trên m t thi t b nh g n, và s d ng m t h u hành h hàng

Windows, Pocket PC ã c khá nhi u nhà s n xu t ph n m m quan tâm

trong l nh v c phát tri n ng d ng, trong ó có các ng d ng GIS.

Tuy nhiên, Pocket PC ch y trên n n h u hành nhúng Windows CE,

u hành ch cung c p b nh m t cách gi i h n cho các ng d ng phát

Page 74: Xd he thong thong tin dia ly

- 74 -

tri n trên nó. Vì v y, các ng d ng liên quan t i h th ng GIS phát tri n trên

Pocket PC và h u hành Windows CE g p ph i các v n v t i u hoá

nh c ng nh t c và th ng có t c ch m h n nhi u so v i các

ng d ng trên PC thông th ng. Ngoài ra, do kh n ng l u tr có gi i h n,

vi c ng d ng GIS trên môi tr ng này c ng g p không ít khó kh n.

Trên th tr ng, m t s s n ph m GIS trên Pocket PC ã c ph bi n

ng rãi nh Pocket Street c a Microsoft, MapInPocket c a Information

Technologies India Ltd...

Page 75: Xd he thong thong tin dia ly

- 75 -

CH NG 5 : Gi i thi u v chu n OpenGIS

5.1 Các ki u d li u hình h c c a OpenGIS:Các c u trúc ch m c không gian, ví d R-Tree, c s d ng trong các h

qu n tr c s d li u không gian (SDBMS) t ng t c quá trình x lý các

truy v n ch ng h n nh các truy v n vùng ho c các truy v n các i t ng

lân c n g n nh t. Do ó, ph n cài t các thao tác tìm ki m lân c n th ng s

ng R-Tree. Tuy nhiên, n u các i t ng không gian khá ph c t p, vi c

y các lân c n c a vài i t ng theo cách này v n tiêu t n r t nhi u th i

gian vì s ph c t p c a ánh giá các quan h lân c n trên các i t ng ó.

Thêm vào ó, khi t o ra t t c các ng lân c n v i m t i t ng ngu n

c cho, m t s l ng r t l n các thao tác tìm ki m lân c n ph i c th c

hi n. Nhi u h th ng qu n tr c s d li u không gian là khá t nh vì không

có nhi u c p nh t trên các i t ng ch ng h n nh các b n a lý. Cho

nên các ki u d li u hình h c cùng v i nhi u thao tác trên các i t ng

c các h qu n tr c s d li u sau này h tr .

Page 76: Xd he thong thong tin dia ly

- 76 -

Hình 5.1-1 H phân c p các ki u d li u hình h c c a OpenGIS.

5.2 OpenGIS Specification ( c t OpenGIS):

5.2.1 Các khái ni m:c t OpenGIS (OpenGIS Specification), m t c t toàn di n c a m t

khung ph n m m cho các truy c p phân tán n geodata và nh ng tài

nguyên geoprocessing. c t này cung c p cho các nhà phát tri n ph n m m

trên th gi i m t khuôn m u giao di n chung c n k vi t các ph n m m

ho t ng chung v i các ph m m m d ng OpenGIS khác.B khung

OpenGIS (OpenGIS framework) g m:

- M t cách th c chung d ng s th hi n Trái t và các hi n t ng c a nó

trên c s toán h c và khái ni m.

- M t mô hình chung th c hi n nh ng truy nh p, qu n lý, thao tác,

trình bày, và chia s geodata gi a nh ng c ng ng thông tin.

Page 77: Xd he thong thong tin dia ly

- 77 -

- M t b khung s d ng mô hình Open Geodata và mô hình dich v

Open GIS gi i quy t v n kh n ng không ho t ông k t h p không ch

m t k thu t mà c v m t t ch c.

Các nhà phát tri n xây d ng nh ng h th ng có giao di n thích ng

OpenGIS Specification s t o ra nh ng ph n m m trung (middleware), ph n

m b ph n (componentware) và nh ng ng d ng có th ki m soát m t

ph m vi r ng các ki u geodata và các hàm geoprocessing. Ng i s d ng

các h th ng này có th chia s m t không gian d li u ti m n ng r ng l n

qua m ng, dù d li u c s n sinh vào các th i m khác nhau b i các

nhóm không liên quan s d ng các h th ng s n xu t khác nhau cho nh ng

c ích khác nhau và th t s có th ang hi n h u d i s u khi n chính

a h th ng c s d ng cho vi c s n xu t c a h . Geodata k th a

(Legacy geodata) c t ch c trong các h th ng có giao di n thích ng

OpenGIS Specification s có th c truy xu t b i các ph n m m có giao

di n thích ng OpenGIS Specification khác. OpenGIS Specification cung

p m t b khung cho nh ng ng i phát tri n ph n m m t o ra ph n m m

cho phép nh ng ng i dùng c a h truy nh p và x lý d li u a lý t

nh ng ngu n a d ng qua m t giao di n tính toán chung bên trong m t n n

ng công ngh thông tin m .

u m:

i v i ng i phát tri n ng d ng có th d dàng và linh ho t h n : Vi t

ph n m m truy c p geodata.Vi t ph n m m truy c p nh ng tài nguyên

geoprocessing.S a i nh ng ng d ng theo nhu c u ng i dùng c th , tích

p phi không gian và không gian. Và có th ch n m t môi tr ng phát tri n

Page 78: Xd he thong thong tin dia ly

- 78 -

hay cung c p nh ng ng d ng trên nh ng n n t ng a d ng và c ng có th s

ng l i mã geoprocessing

i v i nhà qu n lý thông tin linh ho t h n trong vi c Truy c p và / ho c

phân ph i geodata, cung c p nh ng kh n ng geoprocessing t i nh ng khách

hàng, tích h p D li u a lý và s x lý vào m t ki n trúc tính toán liên h p

và có th ch n nh ng n n thích h p - ki u máy tính cá nhân, ki u máy ch ,

và ki u n n tính toán phân tán ( CORBA, OLE / COM, DCE, ….) cho nên

t phù h p v i ng i dùng v i nh ng công c geoprocessing úng (và c

nh c úng)

i v i nh ng ng i dùng cu i là nh ng ng i h ng l i t i u, nh n

c: S truy nh p th i gian th c t i m t h th ng v tr thông tin a lý l n

ng h n so v i h th ng v tr thông tin a lý có th truy c p ngày nay,

nhi u ng d ng h n ( v i nh ng middleware và tài li u h n h p) khai thác

thông tin a lý, nh ng kh n ng làm vi c v i nh ng ki u geodata và nh

ng khác nhau bên trong m t môi tr ng ng d ng n và dòng công vi c (

workflow ) liên t c, mà không quan tâm n chi ti t c a nh ng ki u và

nh ng nh d ng này.

5.2.2 Nh ng d ch v OpenGIS (OpenGIS Services ):p h p nh ng d ch v c c n :

- Truy nh p và x lý nh ng ki u nh ngh a h a a lý trong Mô hình

Geodata M .

- Cung c p nh ng kh n ng chia s geodata bên trong nh ng c ng ng

ng i dùng mà s d ng m t t p h p chung nh ng nh ngh a c tính a lý

Page 79: Xd he thong thong tin dia ly

- 79 -

và biên d ch gi a nh ng c ng ng khác nhau nh ng ng i s d ng nh ng

p h p nh ngh a c tính a lý khác nhau.

5.2.3 t mô hình nh ng c ng ng thông tin(Information Communities Model ):

- M t cách th c cho m t c ng ng nh ng nhà s n xu t geodata và nh ng

ng i dùng ã chia s m t t p h p chung nh ng nh ngh a c tính a lý

nh m b o trì th c s có hi u qu nh nh ngh a này và l p danh m c, chia

nh ng t p d li u thích ng nh ng nh ngh a ó.

- M t cách chính xác t i u và hi u qu cho nh ng c ng ng khác nhau

nh ng ng i dùng và nh ng nhà s n xu t geodata chia s geodata m c

nh ng t p h p nh ngh a c tính a lý khác nhau c a h . Cho ví d , nh ng

s , nh ng nhà a ch t, nhà nông h c có th tìm ki m chia s d li u

t dù h mô t c m các ki u t khác nhau theo nh ng m c tiêu ngh

nghi p khác nhau. Nh ng mô hình c ng ng thông tin nh ngh a m t s

nh m t ng biên d ch gi a nh ng t n c tính a lý khác nhau.

5.2.4 c m:OpenGIS Specification có nh ng c m chính nh sau:

Interoperable - OpenGIS Specification cung c p nh ng giao di n chu n

i v i geodata và nh ng d ch v geoprocessing. Nh ng giao di n này h tr

trong nh ng h th ng c l p và các m ng): s truy c p geodata, nh ng thao

tác geoprocessing khách/ch phân tán, thao tác geoprocessing ngang hàng

phân tán.

Page 80: Xd he thong thong tin dia ly

- 80 -

Supportive of Information Communities - OpenGIS Specification t i u

hóa vi c chia s d li u bên trong m t c ng ng nh ng ng i dùng và

nh ng nhà s n xu t chia s m t t n c tính a lý chung và gi a nh ng

p h p nh ng ng i dùng và nh ng nhà s n xu t mà nh ng t n c tính

a lý c a h không trùng.

Ubiquitous - OpenGIS Specification cung c p nh ng ph ng ti n cho t t

các ng d ng công ngh thông tin s n sàng khai thác nh ng d ch v

OpenGIS qua nh ng giao di n và nh ng giao th c chu n.

Reliable - Geoprocessing phân tán yêu c u m t m c cao kh n ng u

khi n và s toàn v n. OpenGIS Specification cung c p m t khung công ngh

tr OpenGIS g n nhãn nh ng s a n cho nh ng ng i mua

ph n m m trên n n OpenGIS nh ng s b o m nh t nh c a tính ho t ng

liên h p (interoperability).

Easy to use - Ph n m m trên n n OpenGIS Specification s s d ng

nh ng quy t c và nh ng th t c ch c ch n và logic cho vi c s d ng geodata

và các d ch v geoprocessing. Geodata không c n thi t và s ph c t p

geoprocessing c d u b i ng i phát tri n ng d ng.

Portable - OpenGIS Specification là s c l p c a môi tr ng ph n

m, n n t ng ph n c ng và m ng.

Cooperative - OpenGIS Specification h tr tính toán dùng chung và

nh ng tài nguyên d li u dùng chung. Công ngh OpenGIS có th d dàng

c k t h p v i công ngh thông tin khác.

Scalable - Ph n m m trên n n OpenGIS Specification th ng g m có

nh ng thành ph n ph n m m geoprocessing "c m và ch y" mà có th c

Page 81: Xd he thong thong tin dia ly

- 81 -

u hình cho b t kì ng d ng geoprocessing nào ho c môi tr ng tính toán

chu n, b t ch p kích th c c s d li u.

Extensible - OpenGIS Specification có th ng hóa nh ng ph n m m

geoprocessing và ki u geodata m i, và có th u ti t nh ng công ngh m i

mà OpenGIS Specification ph thu c trên ó, nh nh ng n n tính toán phân

tán, khi chúng tr thành s n có.

Compatible - OpenGIS Specification gi gìn s u t c a nh ng ng i

dùng trong d li u và ph n m m th a k b i vi c cung c p nh ng ph ng

ti n hoà nh p li n kh i, trong m t ki u cách trong su t i v i ng i

dùng, ph n m m geoprocessing và geodata hi n có cùng công ngh thông tin

liên quan v i nh ng ng d ng geoprocessing thích ng OpenGIS. ng th i,

OpenGIS Specification t ng thích và không g i lên nhau v i vi c h tr

công ngh thông tin, nh ng h th ng qu n lý c s d li u và h tính toán

phân tán c bi t.

Implementable - M c ích quan tr ng nh t là nh ng công ngh ó c

ch rõ trong OpenGIS Specification ph i có th cài t c.

5.2.5 Phân lo i:OpenGIS Specification s c phát tri n và phát hành thành nhi u ph n

trong vài n m. Nó bao g m c t tr u t ng ( Abstract Specification ) và

t chu i nh ng c t cài t ( Implementation Specification ) th c

hi n trên nh ng h tính toán phân tán ( distributed computing platforms

(DCPs)) ang c nh tranh hi n th i g m có Common Object Request Broker

(CORBA c a Object Management Group(OMG), Object Linking and

Embedding/Common Object Model (OLE/COM) c a Microsoft; Distributed

Page 82: Xd he thong thong tin dia ly

- 82 -

Computing Environment (DCE) c a Open Software Foundation (OSF); Java

a SunSoft và nh ng nhóm khác.

OpenGIS Abstract Specification: ph n c a OpenGIS Specification

c t o ra b i y ban k thu t OGC cung c p s mô t m c cao tính

ng ho t ng c cung c p bên trong OpenGIS Implementation

Specification. M c ích c a Abstract Specification là t o ra và l p tài li u

t mô hình khái ni m cho phép t o ra Implementation Specification.

OpenGIS Implementation Specification: Nh ng Implementation

Specification là nh ng c t n n t ng công ngh rõ ràng cho s cài t

nh ng giao di n l p trình ng d ng ph n m m chu n công nghi p. ó là

nh ng c t ph n m m chi ti t cài t các b ph n c a OpenGIS Abstract

Specification trên nh ng h tính toán phân tán c bi t nh OLE / COM và

CORBA. y ban K thu t OGC phát hành Nh ng yêu c u cho nh ng

ngh ( RFPs), và áp l i nh ng u ó, nh ng thành viên h p thành i

trình bày OpenGIS Implementation Specification cho y ban k thu t và y

ban qu n lý OGC xem l i. Ngoài vi c cho phép Tính v n hành v i nhau

(Interoperability) v i m i DCP, nh ng nhóm này c g ng cung c p tính n ng

Interoperability c c i gi a các DCPs.

5.3 OpenGIS Abstract Specification:m hai mô hình Essential Model và Abstract Specification.

Trong hai mô hình trên thì mô hình Essential Model n gi n h n, còn mô

hình Abstract Model tr u t ng h n. Và c hai mô hình u b t ngu n t

ph ng pháp phân tích thi t k i t ng Syntropy.

Page 83: Xd he thong thong tin dia ly

- 83 -

5.3.1 Essential Model (mô hình b n ch t ):c ích:

+ Là thi t l p s k t n i khái ni m c a vi c thi t k h th ng ho c

ph n m m t i th gi i th c.

+ Là s mô t th gi i th c ho t ng ra sao và gi i thích nh ng

thu t ng th gi i th c nh các i t ng, giao di n, hành vi, gi i h n,..Các

c , phân tích tr ng h p s d ng (Use-Case analysis), các mô hình t

ng hay h a có c u trúc c s d ng giúp cho vi c hi u rõ nh ng

thông p.

+ Nh m th u hi u s trình bày, khám phá, truy c p, và x lý thông

tin a lý nhi u c p .

Tính hoàn h o: Là chìa khóa phát tri n nh ng OpenGIS

Implementation Specification m nh m . Nó áp d ng s nghiêm ng t có tính

phân tích i v i tình tr ng c b n b ng vi c geoprocessing, mô t chín c p

tr u t ng hóa:

ó. Real World (Th gi i th c). Là th gi i th c s v i t t c s ph c t p

và h n lo n c a nó.

ó. Conceptual World (Th gi i khái ni m). Là th gi i các th chúng ta

bi t và t tên.

ó. Geospatial World (Th gi i không gian a lý). Là th gi i c a nh ng

n và h th ng thông tin a lý, trong ó chúng ta l a ch n các th c th

trong th gi i khái ni m bi u di n theo m t cách có tính ch t t ng tr ng

và tr u t ng trong nh ng b n và geodata.

Page 84: Xd he thong thong tin dia ly

- 84 -

ó. Dimensional World (Th gi i có kích th c). Là th gi i Geospatial

sau khi nó ã c o c có s chính xác v v trí và hình h c.

ó. Project World (Th gi i án). Là m t m nh c ch n c a th gi i

geospatial h u h ng – cho ví d , nh ng l p thu c ch nh t nh bên

trong m t GIS – mà c l p c u trúc ng ngh a và nói cách khác cho m t

c ích, ngh nghi p, qui nh, ho c mi n công nghi p c thù.

ó. OpenGIS Points ( m OpenGIS). Làm sao nh ng m c nh

ngh a, t ng quát và cho m t Project World c bi t, theo m t cách mà t t c

các h th ng ph n m m có th liên quan n.

ó. OpenGIS Geometry (Hình h c OpenGIS). Làm sao hình h c c xây

ng d a vào OpenGIS Points, theo m t cách mà t t c các h th ng ph n

m có th liên quan n.

ó. OpenGIS Feature (Tính n ng OpenGIS). Làm sao nh ng tính n ng

OpenGIS c xây d ng t hình h c, t các thu c tính, và m t h th ng

tham chi u không gian, theo m t cách mà cho m n chính nó s d ng

bên trong nh ng giao di n m cho geoprocessing, và theo m t cách mà h

tr – qua m t t p h p nh ng d ch v OpenGIS – m t s hàm t i h n nh

nh ng danh m c geodata.

ó. OpenGIS Feature Collections (Nh ng t p h p tính n ng OpenGIS).

Làm sao nh ng tính n ng OpenGIS c qu n lý trong nh ng t p h p tính

ng OpenGIS.

Page 85: Xd he thong thong tin dia ly

- 85 -

Hình 5.3.1-1 L p khái ni mTrong 9 c p trên, c p Project world là quan tr ng nh t cho m c ích

a OpenGIS Abstract Specification. Mô t c a Project World là c bi t

quan tr ng vì nó gi i thi u khái ni m c a Geospatial Information

Community mà s chia s nh ng thông tin không gian a lý di n ra trong ó

m t m c t nhiên, không khó kh n gì v m t ng ngh a.

5.3.2 Abstract Model:c ính:

+ Là Mô hình tr u t ng.

+ nh ngh a h th ng ph n m m cu i cùng theo m t l i cài t

trung l p.là s mô t ph n m m c n ph i làm vi c ra sao.

+ i di n m t th a hi p gi a các mô hình c a nh ng môi tr ng

cài t d nh nh m t i. Các mô hình t ng hay h a có c u trúc c ng

c khuy n khích s d ng cho vi c gi i thích các s khái ni m.

Page 86: Xd he thong thong tin dia ly

- 86 -

+ Xác nh các l p, l p con c quan tâm, nh danh và mô t m i

quan h gi a chúng, và mô t tr u t ng các giao di n c cài t trong

ph n m m.

Mô hình tr u t ng c chia thành 14 ch (Topic) sau:

- Topic 1(Feature Geometry): Cung c p nh ng c u trúc hình h c cho các

c tính d ng hình h c.

- Topic 2 (Spatial Reference Systems): Cung c p nh ng h th ng tham

chi u không gian mà nh ó các c tính liên h v i các v trí trên Trái t

theo quy t c o c.

- Topic 3 (Locational Geometry): Thêm nh ng công c cho vi c tham

chi u không gian a lý n nh ng t a nh, t a quét, và nh ng h

th ng tham chi u gián ti p mà không c tìm th y trong các v n b n o

c.

- Topic 4 (Stored Functions and Interpolation ): c n thi t h tr cho

Topic 6. H u h t nh ng vùng ph ph thu c vào 2 hàm ch a. Nh ng hàm

ánh x theo th t “t ” và “ n” m t không gian t a toán h c thì c g i

là Ph m vi vùng ph .

- Topic 5 (Features and Feature Collections): K t h p v i các Topic 6, 7

quan tâm c b n v vi c x lý và trình di n thông tin không gian a lý.

- Topic 6 (The Coverage Type): cùng v i các Topic 5, 7 quan tâm c b n

vi c x lý và trình di n thông tin không gian a lý.

- Topic 7 (Earth Imagery): Cung c p m t c u trúc u ti t t t c các lo i

và cách s d ng nh ng hình nh s c a Trái t.

Page 87: Xd he thong thong tin dia ly

- 87 -

- Topic 8 (Relations Between Features): Cung c p vi c l p mô hình và

trình di n nh ng quan h gi a các c tính.

- Topic 9 (Quality): cùng các Topic 5, 14 có n i dung lý thuy t thông tin

cao mà không liên k t m nh m v i nh ng v n không gian a lý.

- Topic 10 (Transfer Technology): Công ngh truy n t i x lý nh ng bi u

di n t c th i c nh ng hành vi truy v n và kích th c có th ch p nh n c

- Topic 11 (Metadata): Cung c p nh ng mô hình và các truy v n metadata.

- Topic 12 (OpenGIS Service Architecture): nh ngh a m t mô hình

chung cho vi c cài t nh ng d ch v truy c p, qu n lý, thao tác, bi u

di n, và chia s geodata gi a nh ng c ng ng thông tin.

- Topic 13 (Catalogs): Cung c p nh ng d ch v không gian a lý, trong

khi nh ng ph n còn l i c t p trung trên không gian a lý chia s .

- Topic 14 (Semantics and Information Communities): cùng các Topic 5, 9

có n i dung lý thuy t thông tin cao mà không liên k t m nh m v i nh ng

n không gian a lý.

Quan h gi a ch :

Page 88: Xd he thong thong tin dia ly

- 88 -

Hình 5.3.2-1 Quan h gi a các ch trong mô hình tr u t ng

Các ch (topic) c t ch c thành các gói s d ng ngôn ng UML.

i gói là t p h p các ki u và các giao di n liên quan t o thành các thành

ph n nh t quán cho vi c thi t k h th ng ph n m m.

Page 89: Xd he thong thong tin dia ly

- 89 -

CH NG 6 : ng quan v PocketPC

6.1 ng quan v PocketPC:Pocket PC có t c ch m, kh n ng l u tr kém, ngu n cung c p n ng

ng không t t…Microsoft ã thêm các tính n ng m i cho các thi t b

Pocket PC (Pocket PC – device, nh ng thi t b PDA s d ng h u hành

Pocket PC) v i h u hành Pocket PC ch a phiên b n thu g n c a m t s

ph n m m nh Internet Explorer, Word, Excel, Outlook, Microsoft Reader,

Windows Media Player… PocketPC s d ng các chu n c m công nghi p, có

tính t ng thích và m r ng cao nh có th k t n i v i máy tính bàn,

n thêm storage card, modem k t n i Internet...

6.2 Kh n ng l p trình trên PocketPC:Do WindowsCE c xây d ng và thi t k t ki n trúc n n sao cho nó có

th m c nh nh t có th . Cho nên các hàm dùng l p t r ình c

ch n l c l i s d ng ho c không h tr các hàm này n a. Và WinCE

cung c p các th vi n h th ng. nh ng không còn cung c p nhi u th vi n

khác nhau nh GDI, Kernel và User n a.

6.3 t s v n khi l p trình ng d ng trên PocketPC:

6.3.1 c và các h tr kh n ng hi n th :i v i các ng d ng b n , m t trong nh ng v n quan tr ng nh t

n ph i quan tâm, ó là d li u và h tr hi n th c a môi tr ng.

Khi xây d ng ng d ng b n trên Pocket PC, c n chú ý t i vi c ch

c s d ng các tính n ng GDI c h tr trên môi tr ng này. Do c n

Page 90: Xd he thong thong tin dia ly

- 90 -

ph i thu g n ki n trúc c ng nh các h tr nh m m c ích t i u t c

cho các thi t b nhúng có tài nguyên gi i h n, Windows CE ã ch cung

p m t cách gi i h n các tính n ng c a GDI. u này s gây khó kh n

trong quá trình xây d ng ch ng trình.

6.3.2 Kh n ng và hình th c l u tr :Các Pocket PC thông th ng có ROM ít nh t là 8MB, RAM ít nh t là

8MB. Các Pocket PC chuyên d ng có ROM ít nh t là 12MB, RAM ít nh t

là 16MB. Tuy nhiên, yêu c u v dung l ng c a RAM và ROM tùy thu c

vào lo i CPU s d ng, nh ng thành ph n mà nhà s n xu t h tr trên

Pocket PC và tu thu c vào lo i Pocket PC.

Do h n ch v ngu n n ng l ng pin và kích th c c a thi t b , Pocket

PC không s d ng các thi t b l u tr nh a c ng hay a m m mà nó s

ng m t c ch g i là B l u tr i t ng (Object store). Object store là

t vùng RAM c ng i dùng nh ngh a, dùng l u tr các t p tin,

các thông tin registry và các database (g i là Object Store d ng Storage).

Vùng RAM còn l i dùng làm b nh cho các ch ng trình c th c thi

(g i là Object Store d ng Program). Object store v n l u gi c thông tin

a các ng d ng và d li u ngay c khi n ng l ng cung c p chính b

t nh ngu n pin d tr . Có th xem object store nh là a c ng trên

thi t b dùng Windows CE vì các end-user không bi t v object store do

Microsoft ã cung c p trình WinCE Explorer c n i dung c a nó (t ng

nh Microsoft Windows Expoler c n i dung c a a c ng trên máy

desktop PC)

Page 91: Xd he thong thong tin dia ly

- 91 -

m khác bi t ch y u u tiên mà ta c n l u ý là object store trên

Windows CE là vi c thi u các kí t a. Windows CE s d ng các th

c d i th m c g c cho vi c cài t các thi t b c a ng i dùng. Ví d ,

u ng i dùng g n m t flash card vào máy, Windows CE s t o ra m t

th m c /Storage Card 1. C m i flash card c g n vào, con s này s t ng

lên (/Storage Card 2,…)

ng d n t i t p tin c gi i h n b i MAX_PATH (có th dài t i a

260 kí t , gi ng nh trên Windows) Tuy nhiên, trên Windows CE không có

khái ni m th m c hi n hành, ta ph i truy xu t các t p tin b ng các ng

n d y c a nó.

Có th xem Database trên Windows CE nh m t d ng t p tin c bi t.

i database là m t t p các record ch a m t hay nhi u thu c tính thông tin

và giá tr c a nó. Database có th n m trên các thi t b ngoài nh flash card.

Khi s d ng có th mount database s d ng trên thi t b , Database trên

windows CE h tr các thao tác: T o database, m database, s p x p trên

database, c d li u t database, ghi xu ng database, tìm ki m trên

database. S d ng t p tin hay database là m t v n c n c xem xét khi t

ch c l u tr d li u GIS trên Pocket PC.

6.3.3 ng tác gi a ng i s d ng và thi t b :Ng i s d ng t ng tác v i thi t b thông qua m t màn hình touch-

screen LCD (màn hình c m nh n). Không s d ng bàn phím (keyboard) và

chu t (mouse) thông th ng, Pocket PC h tr nh p li u thông qua m t bàn

phím logic, g i là SIP (Soft Input Panel). Bàn phím logic này th c ch t là m t

khung c a s luôn t n t i trên màn hình, mô t và s p x p các phím t ng t

Page 92: Xd he thong thong tin dia ly

- 92 -

trên máy PC thông th ng. Ng i dùng s giao ti p v i SIP thông qua ngón tay

ho c stylus (m t cây vi t v t lý, cho phép nh p li u b ng cách vi t tr c ti p lên

màn hình)

Thay th cho vi c nh n Enter hay nh n úp chu t, Pocket PC s d ng c

ch single-tapping (nh n n) lên touch screen. Ng i dùng ch c n nh n

t l n lên m t i t ng ho c liên k t, h u hành s m i t ng/liên

t t ng ng.

Ngoài ra, giao ti p v i ng d ng, ng i dùng có th nh n-và-gi (tap-

and- hold). ây là c ch có tác d ng t ng t nh vi c s d ng context-

menu b ng cách nh n ph i chu t trên PC. Khi ng i dùng nh n-và-gi trên

t i t ng, có th m t menu ho c m t tooltip s hi n ra, tu theo i

ng ó x lý nh th nào.

Trong ng d ng b n , ta nh n th y vi c nghiên c u và x lý các

cách t ng tác trên là r t c n thi t, b i trong d ng ng d ng này, vi c di

chuy n, phóng to, thu nh , tra c u b n là nh ng hành ng r t th ng

xuyên x y ra. Bên c nh ó, ph i nh ngh a l i trong ng d ng các

hardware keys (phím v t lý) nh m t n d ng các phím di chuy n s n có c a

thi t b Pocket PC nh m t ng t c t ng tác cho ng i dùng khi xem b n

.

6.4 Các gi i pháp cho ng d ng b n trên PocketPC:

6.4.1 Yêu c u chung:Các ng d ng liên quan t i h th ng thông tin a lý (Geography

Information System – GIS) phát tri n trên Pocket PC và h u hành

Windows CE g p ph i các v n v t i u hoá b nh c ng nh t c

Page 93: Xd he thong thong tin dia ly

- 93 -

ng d ng do nh ng v n ã trình bày ph n trên. Khi a ra các gi i

pháp cho ng d ng b n trên Pocket PC, c n ph i:

+B o m vi c t ch c l u tr thông tin và d li u t i u trên Object Store

ng Program.

+B o m l u tr ít nh t thông tin có th trên Object Store d ng Storage.

+B o m c t c khi x lý tính toán hi n th và tìm ki m, tra c u

thông tin.

6.4.2 n t i u t c hi n th : hi n th b n cho ng i dùng quan sát, b t c m t ch ng trình b n

nào c ng ph i v lên màn hình. Và ph n hi n th lên màn hình s là ph n

mà ng i dùng ang mu n xem xét có thông tin. Ng i dùng c ng có

th thay i vùng nhìn c a b n và s thay i vùng nhìn c a ng i dùng

này s kéo theo các thao tác v l i b n . Khi ó nào ta v l i toàn b các

i t ng thì t c s ch m nên ta ch v l i ph n vùng nào có thay i.

Và khi ng i dùng ch n m t i t ng nào ó, n u nh chúng ta duy t h t

xem i t ng nào tho mãn yêu c u ch n thì không t i u; gi i quy t

n ó ta làm nh sau: V i m i i t ng ta s có MBR (Minimun

Boundery Rectangle)- vùng bao nh nh t- c a m i i t ng, Khi mà ng i

dùng ch n i t ng thì ta xác nh c vùng nào, và ta ch c n duy t trong

vùng ó i t ng nào có MBR giao v i nó thì hi n th ra.

6.5 ch c d li u b n trên PocketPC:u nh d li u l u quá l n s làm t n không gian Object Store

ng Storage (l u tr ). H n n a s làm t n th i gian trong vi c truy xu t d

Page 94: Xd he thong thong tin dia ly

- 94 -

li u. Cho nên i v i ng d ng b n chúng ta ch nên hi n th và l u tr

nh ng thông tin c n thi t nh ch l u tr ng mà không l u tr qu n

huy n hay sông h .

Do ó d li u c n t ch c l u tr th t h p lý và ph i ti t ki m t i a

không gian l u tr , nh ng v n ph i b o m không t n quá nhi u th i

gian tính toán l i các thông tin không c l u tr . M t ph ng pháp r t d

d ng và r t hi u qu gi m nh d li u mà không m t thông tin là thay

th các ki u d li u l u tr t các ki u có kích th c l n thành kích th c nh

nh chuy n t s th c thành s nguyên ch ng h n (Double thành

Integer)…Nh ng khi load d li u lên thì chúng ta c n ph i có các thao tác tính

toán nh chia cho m t s qui nh nào ó ph c h i tính chính xác c a d

li u.

Page 95: Xd he thong thong tin dia ly

- 95 -

CH NG 7 : ng d ng b n :

7.1 Phân tích và xác nh yêu c u: nh ng yêu c u và th c tr ng, ng d ng xây d ng c n có nh ng ch c

ng c th sau:

STT Ch c n ng Ghi chú

1 o c s d li u h ng

i t ng theo chu n

Topology

2 Hi n th b n c nhanh

3 Phóng to, thu nh , Fit

n

c nhanh

4 Di chuy n b n c nhanh

5 Thông tin chi ti t v các

i t ng trên b n

Ví d nh Region, River,

Edge…

6 Xác nh các i t ng Ví d nh Region,

Edge…

8 Xác nh nhanh ng

và các giao l

Giao l là node chung

a hai hay nhi u ng.

9 Tìm ng i ng n nh t

gi a hai v trí trên b n

Hai m có th không

ph i là giao l

10 Tìm ng i ng n nh t Hai m ng u nhiên là

Page 96: Xd he thong thong tin dia ly

- 96 -

gi a hai giao l giao l

11 Tìm chu trình t i u Các m b t kì không

nh t thi t ph i là giao l .

ng 7.1-1 Các ch c n ng chính

7.2 Phân tích - thi t k :

7.2.1 s d ng:

Tim duong

Tim chu trinh toi uu

Tim duong di ngan nhat

Tim giao lo

Tim kiem dia diem

Xem thong tin tren ban do

Tim cac duong giao nhau

Tim kiem Region

Tao co so du lieuXoa co so du lieu

Thao tac ban do

Hien thi ban do

Ket noi co so du lieu

Nguoi Dung

Ngung ket noi co so du lieu

Hình 7.2.1-1 S s d ng t ng quát

Page 97: Xd he thong thong tin dia ly

- 97 -

7.2.2 c t Use-Case chính:

7.2.2.1 Tìm ki m ng i:

Tim cac duong giao nhau

Nguoi Dung

Tim duong

Xem thong tin tren ban do

Tim giao lo

Hien thi ban do

Hình 7.2.2.1-1 Use Case - Tìm ki m Edge

Tên Use-Case: TIMKIEMEDGE

Mô t : ng i dùng mu n h th ng xác nh và hi n th v trí Edge

mà ng i dùng ch n.

Dòng s ki n:

S ki n c b n:

+ Ng i dùng ch n ng trên b n (Edge ) ( ây

ch xét n ID c a i t ng)

+ H th ng s tìm Edge d a vào m ch n c a ng i

dùng.

Page 98: Xd he thong thong tin dia ly

- 98 -

+ H th ng hi n th Edge tìm c t i v trí c a nó

i màu s c khác và thông tin chi ti t v Edge.

S ki n thay th : N u nh không tìm c ng c n tìm v i

thông tin cung c p thì thông báo không tìm th y.

Yêu c u c bi t: Không.

u ki n u: Không.

u ki n sau: Không.

m m r ng: Tìm ki m ng theo tên.

7.2.2.2 Tìm ki m Region:

Nguoi Dung

Hien thi ban do

Tim kiem Regionhien thi thong tin Region

Hình 7.2.2.2-1 Use Case: Tìm ki m Region

Tên Use-Case: TIMKIEMREGION

Mô t : ng i dùng mu n h th ng xác nh và hi n th thông tin

a m mà ng i dùng ch n.

Dòng s ki n:

S ki n c b n:

Page 99: Xd he thong thong tin dia ly

- 99 -

+ Ng i dùng ch n a m.

+ H th ng s tìm a m d a vào m mà ng i

dùng ch n.

+ H th ng hi n th thông tin a m tìm c.

S ki n thay th : N u nh không tìm c a m c n tìm

i thông tin cung c p thì thông báo không tìm th y.

Yêu c u c bi t: Không.

u ki n u: Không.

u ki n sau: Không.

m m r ng: Tìm ki m theo tên.

7.2.2.3 Tìm ng i ng n nh t:

Nguoi Dung Hien thi ban do

Xac dinh diem bat dau

Xac dinh diem ket thuc

Xac dinh VirtualNode

Tim duong di ngan nhat

Hien thi thong tin duong di

Hình 7.2.2.3-1 Use Case – Tìm ng i ng n nh t

Tên Use-Case: TIMDUONGNGANNHAT

Page 100: Xd he thong thong tin dia ly

- 100 -

Mô t : ng i dùng mu n h th ng xác nh và hi n th m t ng

i ng n nh t t m xu t pháp n m k t thúc.

Dòng s ki n:

S ki n c b n:

+ Ng i dùng ch n m xu t phát và m ích

(b ng cách nh n chu t lên b n )

+ H th ng s tìm ng i ng n nh t gi a hai m

ã ch n.

+ H th ng hi n th ng i ng n nh t tìm c t i

trí c a nó v i màu s c khác và thông tin c a ng i.

S ki n thay th : N u nh không tìm c ng c n tìm v i

thông tin cung c p thì thông báo không tìm th y.

Yêu c u c bi t: Không

u ki n u: Ph i xác nh m u và m k t thúc

u ki n sau: Không

m m r ng: Nh p tên và tìm ng.

Page 101: Xd he thong thong tin dia ly

- 101 -

7.2.2.4 Tìm chu trình t i u:

Nguoi Dung

Hien thi ban doXac dinh VirtualNode

Tim chu trinh toi uuXac dinh cac diem can di

Hình 7.2.2.4-1 Use-Case - Tim chu trình t i u

Tên Use-Case: TIMCHUTRINHTOIUU

Mô t : ng i dùng mu n h th ng xác nh và hi n th chu trình i

qua các v trí mà ng i dùng ch n vào.

Dòng s ki n:

S ki n c b n:

+ Ng i dùng ch n m c n i qua (b ng cách nh n

ch n vào b n ).

+ H th ng s chu trình t i u.

+ H th ng hi n th chu trình tìm c t i v trí c a

nó v i màu s c khác và ng th i di chuy n b n t i ví trí

ó.

ki n thay th : N u nh không tìm c chu trình c n tìm

i thông tin cung c p thì thông báo không tìm th y và b n

không c di chuy n.

Page 102: Xd he thong thong tin dia ly

- 102 -

Yêu c u c bi t: Không

u ki n u: Ph i xác nh các a m, s l ng m ph i

n h n m t.

u ki n sau: Không

m m r ng: Không

7.2.3 l p Class Diagram:

7.2.3.1 S t ng quát:

CPCCPocketPC

CMapView

CDataBase CMapEvent

Hình 7.2.3.1-1 S t ng quát

Page 103: Xd he thong thong tin dia ly

- 103 -

7.2.3.2 S l p d li u:

CDataBase

CRiver CRegion

CNode CPointR2

chua diemChua diem

CVirtualNode

CEdge

Duoc tao boi diem dau va cuoiChua diem

Hình 7.2.3.2-1 S l p d li u

7.2.3.3 S l p v :

CMapView

CRegionViewCEdgeView CRiverView

Hình 7.2.3.3-1 S l p v

Page 104: Xd he thong thong tin dia ly

- 104 -

7.2.3.4 S s ki n:

CMapEvent

CGrapper

CZoom

CZoomIn

CZoomOutCFitToWin

CSelectObject

CSelectNode

CSelectEdge

CSelectRegion

CShosrtestPath

CTSP

CVirtualNode CNode

22..n

1..n

Hình 7.2.3.4-1 S s ki n

7.2.4 Mô t các l p:p CDataBase

STT Ph ng th c Ý ngh a

1 CDataBase() Ph ng th c kh i t o nh ng giá tr c n thi t

2 ConnectDatabase() K t n i c s d li u

3 CreateDatabase T o c s d li u

4 ClearData() Xoá Database, Xoá luôn c t p tin l u tr

Page 105: Xd he thong thong tin dia ly

- 105 -

5 CloseData() óng c s d li u ã m

ng 7.2.4-1 L p CDatabasep CMapView

STT Ph ng th c Ý ngh a

1 Layer() n hay hi n các i t ng theo t ng t ng ví d nh

Edge, Region, River…

ng 7.2.4-2 L p CMapViewCMapEvent

STT Ph ng th c Ý ngh a

1 OnMouseMove + i v i PC: S ki n nh n chu t trên bi u t ng

Toolbar và nh n chu t trái lên b n , gi chu t và

rê chu t i

+ i v i PocketPC: S ki n di chuy n bút trên màn

hình.

2 OnLeftMouseDown + i v i PC: s ki n nh n chu t trái lên b n .

+ i v i PocketPC: s ki n t bút xu ng màn

hình.

3 OnLeftMouseUp + i v i PC: s ki n th chu t ra r i kh i b n .

+ i v i PocketPC: s ki n nh c bút ra kh i màn

hình.

4 OnPaint nh ng th c n thi t lên màn hình sau khi có

nh ng thay i trên màn hình hay t ng v ngay

Page 106: Xd he thong thong tin dia ly

- 106 -

n kh i ng u tiên.

5 OnLoad p nh ng thông tin c n thi t lên màn hình. Kh i

o hay c p phát nh ng nh ng th c n thi t.

5 OnClosing Xoá nh ng th c n th t, óng k t n i và gi i phóng

nh ng nh b chi m gi .

6 OnResize Thay i kích th c c a b n hay thay i b t kì

u khi n nào trên ng d ng.

ng 7.2.4-3 L p CMapEventp CNode

CNodem_id : intm_x : doublem_y : doublem_mbr : RectangleR2m_firstEdge : CEdgem_isVirtualNode : bool

MakeMBR()GetArrEdgesAround()GetNodeAround()Angle()DistanceToPoint()Draw()

Hình 7.2.4-1 L p CNode

ng các thu c tính:

Tên Ki u Ý ngh a

M_id nguyên nh danh c a m i i

ng

Page 107: Xd he thong thong tin dia ly

- 107 -

M_x th c Hoành c a i t ng

M_y th c Tung c a i t ng

M_mbr ki u khung hình ch nh t Là khung bao nh nh t

bao quanh i t ng.

M_fisrtEdge Ki u CEdge (s c

nh ngh sau)

Là c nh u tiên theo

chu n trong mô hình

Topology.

M_IsVirtialNode ki u úng sai xét xem là Node o

hay không. m c nh lúc

o bi n này s gán giá tr

là False (không ph i là

Node o) (xem thêm

ph n Node o)

ng 7.2.4-4 Thu c tính l p CNode

ng các ph ng th c:

Tên ph ng th c Tham s vào Ý ngh a Ghi chú

MakeMBR() o khung bao

nh nh t cho i

ng.

tr v khung bao

nh nh t

GetArrEdgesAround y danh sách các

nh liên h tr c

ti p v i chính i

tr v danh sách

(ArrayList)

Page 108: Xd he thong thong tin dia ly

- 108 -

ng

GetNodeAround y danh sách các

Node liên h tr c

ti p v i i t ng

tr v danh sách

(ArrayList)

Angle Node chu n

và Node di

ng

ây là hàm tính

góc ng c chi u

kim ng h c a

nh t o b i

nodeChu n va

chính i t ng

node này, v i c nh

o b i node di

ng và chính i

ng node này.

tr v là góc c n

tính

DistanceToPoint m c n tính

kho ng cách

Hàm tính kho ng

cách gi a chính

i t ng v i m t

m b t kì.

Tr v kho ng

cách.

Draw Ma tr n

transform,

bút v và

n c a i

ng c n v

hi n th i t ng

ra màn hình

ng 7.2.4-5 Ph ng th c l p CNode

Page 109: Xd he thong thong tin dia ly

- 109 -

p CEdge

CEdgem_id : intm_width : intm_direction : bytem_mbr : Rectanglem_StartNode : CNodem_EndNode : CNodem_PointArray : Linkm_LeftEdge : CEdgem_RightEdge : CEdgem_ArrVirtualNode : Link

DistanceToPoint()MakeMyMBR()CreatePointArray()Draw()NearPointToPoint()

Hình 7.2.4-2 L p CEdge

ng thu c tính:

Tên Ki u Ý ngh a

M_id Int nh danh c a m i i

ng

M_width Int dày c a m i c nh

M_direction Byte ng i

M_mbr Rectangle Khung bao nh nh t bao

quanh i t ng

M_StartNode CNode ( ã nh ngh a

trên)

m u c a c nh theo

mô hình Topology

Page 110: Xd he thong thong tin dia ly

- 110 -

M_EndNode CNode ( ã nh ngh a

trên)

m cu i c a c nh theo

mô hình Topology

M_LeftEdge CEdge nh trái c a i t ng

theo mô hình Topology.

M_RightEdge CEdge nh ph i c a i t ng

theo mô hình Topology.

M_PointArray Link p các m t o nên

nh mà không bao g m

m u và cu i.

M_ArrVirtualNode Link p các Nod o c t o

ra trên c nh khi ch ng

trình ang th c thi

ng 7.2.4-6 Thu c tính l p CEdge

ng ph ng th c:

Tên ph ng th c Tham s vào Ý ngh a Ghi chú

DistanceToPoint m c n tính

kho ng cách v i

i t ng

Tính kho ng cách

gi a m t m b t

kì v i i t ng

tr v kho ng

cách tính c

MakeMBR Tính khung bao

nh nh t bao

quanh i t ng

Tr v khung bao

tính c

CreatePointArray o ng u nhiên tr v các i

Page 111: Xd he thong thong tin dia ly

- 111 -

các m thu c

i t ng

ng c t o

Draw Ma tr n

transform, bút

và l n c a

i t ng c n

Hi n th i t ng

lên khung nhìn

NearPointToPoint m b t k Tr v m trên

nh mà kho ng

cách t m ó

n i t ng là

ng n nh t so v i

nh ng m khác

trên c nh

ng 7.2.4-7 Ph ng th c l p CEdge

7.2.5 Các l u ho t ng:Hi n th b n :

Page 112: Xd he thong thong tin dia ly

- 112 -

: Nguoi Dung : CScreen : CMapView : CRegionView : CRiverView : CEdgeView

1. // Xem ban do

2. // T i le ban do

3. // Dich chuyen vung nhin

4. // Ve quan huyen

5. // Ve song ho

6. // Ve duong

Hình 7.2.5-1 Sequense Diagram: Hi n th b n

: Nguoi Dung : CMapView

: CRiverView

: CScreen

:CRegionView

: CEdgeView

1. // Xem ban do 2. // Ti le ban do3. // Dich chuyen vung nhin

4. // Ve quan huyen

5. // Ve song ho

6. // Ve duong

Page 113: Xd he thong thong tin dia ly

- 113 -

Hình 7.2.5-2 Collabration Diagram: Hi n th b n

Tìm ng ng n nh t:

: Nguoi Dung : CScreen :CShosrtestPath

: CDataBase : CMapView

1. // Chon diem xuat phat

2. // TIm duong di ngan nhat

2.1. // TIm duong di ngan nhat

2.1.1. // Tim duong di ngan nhat

2.1.1.1. // Tra ra danh sach cac dinh

2.1.2. // Lay ID cac duong tu danh sach cac dinh

2.2. // Hien thi duong di ngan nhat

Hình 7.2.5-3 Sequence Diagram: Tìm ng ng n nh t

Page 114: Xd he thong thong tin dia ly

- 114 -

: Nguoi Dung : CScreen

: CShosrtestPath

: CDataBase

: CMapView

2.1.2. // Lay ID cac duong tu danh sach cac dinh

1. // Chon diem xuat phat2. // TIm duong di ngan nhat

2.1. // TIm duong di ngan nhat

2.2. // Hien thi duong di ngan nhat

2.1.1. // Tim duong di ngan nhat

2.1.1.1. // Tra ra danh sach cac dinh

Hình 7.2.5-4 Collabration Diagram: Tìm ng ng n nh t

Tìm Edge:

Page 115: Xd he thong thong tin dia ly

- 115 -

: Nguoi Dung : CScreen : CDlgInputToFind : CEdge : CMapView

1. // Tim Edge

1.1. // Chon duong

1.1.1. // Lay danh sach ID cua Edge

1.1.1.1. // Hien thi Edge

Hình 7.2.5-5 Sequence Diagram: Tìm Edge

Page 116: Xd he thong thong tin dia ly

- 116 -

: Nguoi Dung : CScreen

: CEdge

: CMapView

: CDlgInputToFind

1. // Tim Edge

1.1. // Chon duong

1.1.1. // Lay danh sach ID cua Edge

1.1.1.1. // Hien thi Edge

Hình 7.2.5-6 Collabration Diagram: Tìm Edge

Tìm chu trình t i u:

Page 117: Xd he thong thong tin dia ly

- 117 -

: Nguoi Dung : CScreen : CTSP : CDataBase : CMapView

1. // Chon cac diem di qua

2. // Tim chu trinh toi uu2.1. //Tim chu trinh toi uu

2.1.1. // Tim chu trinh toi uu

2.1.1.1. // tra danh sach cac canh

2.1.2. // Lay ID tu danh sach cac canh

2.2. // Hien thi chu trinh toi uu

Hình 7.2.5-7 Sequence Diagram: Tìm chu trình t i u

Page 118: Xd he thong thong tin dia ly

- 118 -

: Nguoi Dung

: CScreen

: CTSP

: CDataBase

: CMapView

2.1.2. // Lay ID tu danh sach cac canh

1. // Chon cac diem di qua2. // Tim chu trinh toi uu

2.1. //Tim chu trinh toi uu

2.2. // Hien thi chu trinh toi uu

2.1.1. // Tim chu trinh toi uu

2.1.1.1. // tra danh sach cac canh

Hình 7.2.5-8 Collabrotion Diagram: Tìm chu trình t i u

ch chuy n vùng nhìn:

Page 119: Xd he thong thong tin dia ly

- 119 -

: Nguoi Dung : CScreen : CMapView

1. // Lay diem bat dau di chuyen

bang cach nhanchuot hay dat but

2. // Di chuyen toi vi tri moi

2.1. // Tinh do dich chuyen

2.2. // Thay doi vung nhin

2.3. // Hien thi ban do

Hình 7.2.5-9 Sequence Diagram: D ch chuy n vùng nhìn

Page 120: Xd he thong thong tin dia ly

- 120 -

: Nguoi Dung : CScreen

: CMapView

2.1. // Tinh do dich chuyen

1. // Lay diem bat dau di chuyen2. // Di chuyen toi vi tri moi

2.2. // Thay doi vung nhin2.3. // Hien thi ban do

Hình 7.2.5-10 Collabrotion Diagram: Di chuy n vùng nhìn

l l i b n :

: Nguoi Dung : CScreen : CMapView

1. // Chon kich thuc ti le

1.1. // Ti le lai ban do

1.2. // hien thi ban do

Hình 7.2.5-11 Sequence Diagram: T l l i b n

Page 121: Xd he thong thong tin dia ly

- 121 -

: Nguoi Dung : CScreen

: CMapView

1. // Chon kich thuc ti le

1.1. // Ti le lai ban do1.2. // hien thi ban do

Hình 7.2.5-12 Collaboration Diagram: T l l i b n

Tìm Region:

: Nguoi Dung : CScreen : CDlgInputToFind : CRegion : CMapView

1. // Tim dia diem

1.1. // Chon dia diem

1.1.1. // Lay ID dia diem

1.1.2. // hien thi thong tin dia diem

Hình 7.2.5-13 Sequence Diagram: Tìm a m

Page 122: Xd he thong thong tin dia ly

- 122 -

: Nguoi Dung : CScreen

: CDlgInputToFind :

CRegion

: CMapView

1.1.2. // hien thi thong tin dia diem

1. // Tim dia diem

1.1. // Chon dia diem

1.1.1. // Lay ID dia diem

Hình 7.2.5-14 Collaboration Diagram: Tìm a m

Tìm giao l

Page 123: Xd he thong thong tin dia ly

- 123 -

: Nguoi Dung : CScreen : CDlgInputToFind : CEdge : CMapView

1. // Tim giao lo1.1. // Chon Edge

1.1.1. // Lay danh sach ID va thong tin cua Edge

2. // Chon Edge giao2.1. // Tim ID cua Edge va StartNode va EndNode

2.2. // xac ding co cung StartNode hay EndNode voi Edge da chon

2.3. // Hien thi giao lo

Hình 7.2.5-15 Sequence Diagram: Tìm giao l

: Nguoi Dung : CScreen

: CDlgInputToFind : CEdge

: CMapView

1. // Tim giao lo

2. // Chon Edge giao

1.1. // Chon Edge

1.1.1. // Lay danh sach ID va thong tin cua Edge2.1. // Tim ID cua Edge va StartNode va EndNode

2.2. // xac ding co cung StartNode hay EndNode voi Edge da chon

2.3. // Hien thi giao lo

Hình 7.2.5-16 Collaboration Diagram: Tìm giao l

Page 124: Xd he thong thong tin dia ly

- 124 -

7.3 Thi t k giao di n:

7.3.1 Giao di n trên Desktop:Màn hình chính c b trí nh sau : Toàn b màn hình là b n , bên trái

là khung ch n t ng Layer khác nhau và khung nhìn b n thu nh , thanh

công c , thanh menu, và khung Detail hi n th nh ng thông báo hay thông

tin v i t ng c n thi t.

Hình 7.3.1-1 Khung nhìn t ng quát v giao di n

Thanh công c nh hình v :

Hình 7.3.1-2 Toolbar c a ch ng trình

Page 125: Xd he thong thong tin dia ly

- 125 -

Các ch c n ng trên thanh công c nh sau:

Bi u t ng Ch c n ng Ghi chú

t n i c s d li u và

kh i t o giá tr

PAGE_POOL_SIZE

Enable khi ã có c s

li u.

Ng ng k t n i c s d

li u

Enable khi ã k t n i

o c s d li u Enable khi không t n t i

s d li u.

Xoá c s d li u Enable khi có c s d

li u và không t n t i k t

i.

u l i hình nh hi n t i

a b n

Enable khi ã k t n i c

d li u.

Phóng to b n Enable khi ã k t n i c

d li u.

Thu nh b n Enable khi ã k t n i c

d li u.

l l i b n theo t l

ban u

Enable khi ã k t n i c

d li u.

ch chuy n b n Enable khi ã k t n i c

d li u.

Page 126: Xd he thong thong tin dia ly

- 126 -

Ch n i t ng Edge c a

n .

Enable khi ã k t n i c

d li u.

Enable khi ã k t n i c

d li u.

Ch n i t ng Region

a b n

Enable khi ã k t n i c

d li u.

Xoá các i t ng c

ch n

Ch xoá Edge, không xoá

Region.

Enable khi ã k t n i c

d li u.

Nút xác nh n ch n các

m cho bài toán tìm

chu trình t i u TSP.

Enable khi ã k t n i c

d li u.

Xác nh n ch y bài toán

TSP.

Enable khi ã k t n i c

d li u.

Xoá các m và chu

trình TSP tìm c

Enable khi ã k t n i c

d li u.

Nút xác nh n ch n m

t u cho bài toán tìm

ng ng n nh t.

Enable khi ã k t n i c

d li u.

Nút xác nh n ch n m

t thúc cho bài toán tìm

Enable khi ã k t n i c

d li u.

Page 127: Xd he thong thong tin dia ly

- 127 -

ng ng n nh t.

Combobox ch n

thông s t l cân b ng

gi a thu t toán và

Heuristic

(Algorithm/Heuristic

Balance) trong thu t toán

Astar

Enable khi ã k t n i c

d li u.

Nút xác nh n ch y bài

toán Astar

Enable khi ã k t n i c

d li u.

Xoá các m u, cu i

và ng i ng n nh t

a tìm c.

Enable khi ã k t n i c

d li u.

Hi n th t p tin tr giúp Có bao g m h ng d n

và thuy t minh s d ng

ch ng trình.

hi n th thông tin tác gi

Hình 7.3.1-3 Các ch c n ng chính trên thanh công c

Thanh th c n ( Menu) g m các ch c n ng c a b n g m các th c

n nh sau:

Page 128: Xd he thong thong tin dia ly

- 128 -

Hình 7.3.1-4 Thanh th c n File

Hình 7.3.1-5 Thanh th c n View

Các ch c n ng chính trên thanh th c n:

Tên Ý ngh a Ghi chú

Connect t n i c s d li u Enable khi t n t i c s

li u.

Disconnect Ng ng k t n i c s d

li u

Enble khi ang m k t

i

CreateDatabase o c s d li u Enable khi không t n t i

s d li u.

DeleteDatabase Xoá c s d li u Enable khi t n t i c s

li u và ang ng ng

t n i

Save u hình nh b n hi n

Page 129: Xd he thong thong tin dia ly

- 129 -

i

Exit óng ng d ng

StandardToolbar Hi n th thanh Toolbar

hay không. ang hi n thì

nó s n và ng c l i.

Layer Hi n th khung Layer hay

không. ang hi n thì nó

n và ng c l i.

SmallMap Hi n th khung

SmallMap không. ang

hi n thì nó s n và

ng c l i.

Statusbar Hi n th thanh Statusbar

hay không. ang hi n thì

nó s n và ng c l i.

DetailInfo Hi n th khung

DetailInfo hay không.

ang hi n thì nó s n và

ng c l i.

ng 7.3.1-1 Các ch c n ng chính trên thanh th c n

Khung nhìn b n thu nh : ch bao g m hi n th b n t ng quát, ch

hi n th các vùng nh qu n huy n (Region), sông (River) mà không hi n th

các chi ti t nh ng (Edge).

Page 130: Xd he thong thong tin dia ly

- 130 -

Hình 7.3.1-6 Khung nhìn b n thu nh

Khung ch n các c p (Layer )b n khác nhau: g m m t khung nhìn

ng cây, dùng ch n các Layer khác nhau nh hi n th Edge hay không,

hi n th River (sông) hay không, hi n th các Region hay không.

Hình 7.3.1-7 Khung Layer

Khung Detail: g m m t khung nhìn ch a thông tin c a i t ng c

ch n. Ví d ang ch n i t ng trên b n . Và ây c ng là khung hi n th

t qu tìm ng i ng n nh t.

Page 131: Xd he thong thong tin dia ly

- 131 -

Hình 7.3.1-8 Khung hi n th thông tin i t ng

7.3.2 Giao di n trên PocketPC:Trên PocketPC ch hi n th Edge, khung hi n b n chính và các nút

chính. Không có khung nhìn thu nh b n , không có khung ch n c p hi n

th , không có khung hi n th thông tin i t ng.

7.4 Cài t:Công c phân tích thi t k : Rational Rose

Môi tr ng l p trình: Microsoft Visual Studio.NET 2003

Môi tr ng th nghi m và cài t:

Máy PC dùng CPU Celeron 1.8G, 256 MB RAM.

Máy o gi l p PocketPC 2002 trên h u hành Microsoft Windows

XP

Page 132: Xd he thong thong tin dia ly

CH NG 8 : t Lu n, ánh giá và h ng phát tri n

8.1 t lu n, ánh giá:Nh ng k t qu t c:

Bài toán ã gi i quy t các v n c b n t ra, ã t o c d li u h ng

i t ng và qu n lý t t các i t ng thông tin a lý. Ngoài ra ã cài t

thành công các thu t toán nh tìm ng i ng n nh t gi a hai m b ng

thu t gi i A*, thu t toán tìm chu trình t i u ( thu t toán TSP).

T c ch ng trình ch p nh n c.

Giao di n khá p và thân thi n.

Ch ng trình có c u trúc rõ ràng, d phát tri n.

8.2 ng phát tri n:Trong t ng lai ng d ng có th phát tri n hoàn thi n h n v chi u r ng

nh m r ng b n , m r ng l nh v c ng d ng và có th m r ng lên

nhi u thi t b c bi t là thi t b di ng.

Page 133: Xd he thong thong tin dia ly

- 133 -

CH NG 9 : Tài li u tham kh o[1] www.garret.ru.[2] OpenGIS™ Abstract Specification.[3] OpenGIS Reference Model[ORM].[4] Feature Geometry.[5] An Algorithm For Building Full Topology.[6] Lu n v n cao h c v mô hình Topology.

Page 134: Xd he thong thong tin dia ly

- 134 -

CH NG 10 : Ph l c

10.1 Bài toán tìm ng i ng n nh t gi a hai m:

10.1.1 Phát bi u bài toán:Phát bi u c b n c a bài toán nh sau: Cho tr c th G và 2 nút

startNode và endNode thu c G. Tìm ng i ng n nh t trong G n i

startNode và endNode.

10.1.2 Gi i quy t bài toán:t yêu c u phát sinh là có tr ng h p hai m startNode ho c endNode

trên m ng l i giao thông không ph i là các Node trong c s d li u.Khi ó

chúng ta s s d ng nh Node o, khi ó các Node o này nh các Node

trong c s d li u nh ng khi ch ng trình c t t i thì các Node o này

không còn n a. V i ph ng pháp Node o này chúng ta d dàng qu n lý các

trí trên các c nh v i s l ng c c l n và v n b o m tính liên thông gi a

nút th t vào o.

Bài toán này có nhi u cách gi i quy t khác nhau. Trong lu n v n

này,ph ng pháp c ch n gi i quy t là dùng thu t gi i (heuristic) A*.

Thu t gi i c th nh sau:

1. N u startNode b ng endNode, không c n gi i quy t bài toán n a.

2. Kh i t o 2 t p h p r ng, m t là t p openedNode, hai là t p closedNode.

Kh i t o bi n PathhPound=false. Kh i t o bi n s th c

AlgorithmHeuristicBalance trong kho ng [0.0,1.0].

Page 135: Xd he thong thong tin dia ly

- 135 -

3. ng v i m i node trong G, kh i t o bi n distance b ng vô c c và bi n

prevNode b ng null (Riêng v i startNode kh i t o distance b ng 0 và

prevNode b ng chính startNode).

4. Thêm node startNode vào t p openedNode.

5. V i m i node trong t p openedNode, tính (f(node)=g(node) + h(node))*

6. Gán cho node có f(node) nh nh t là bestNode.

7. N u không tìm c bestNode, thu t toán k t thúc, không tìm c l i

gi i.

8. N u tìm c, lo i bestNode ra kh i t p openedNode.

9. N u bestNode b ng chính endNode, làm r ng t p openedNode.Gán

PathFound=true.

10. N u không, th c hi n vi c tìm các node xung quanh bestNode thêm

vào openedNode.(**)

11. N u t p openedNode khác r ng, tr l i b c 5.

12. N u t p openedNode r ng

u PathFound=true

Bài toán ã tìm c l i gi i.

u PathFound=false

Bài toán không có l i gi i.

13.End

(*) c th nh sau:

f(node)=AlgorithmHeuristicBalance*distance(node) + (1 –

AlgorithmHeuristicBalance) * d(node,endNode).

Page 136: Xd he thong thong tin dia ly

- 136 -

V i:

d(node1,node2)=sqrt(sqr(node1.x-node2.x)+sqr(node1.y-node2.y))

(**) c th nh sau:

1.Tìm các node aroundNode xung quanh (n i tr c ti p) v i node N c n

xét.

2.V i m i aroundNode:

Tính l i giá tr distance và prevNode c a nó:

Distance(aroundNode)=diatance(aroundNode) + kho ng cách th t t N

n aroundNode.

prevNode(aroundNode)=N.

u ((aroundNode ã xu t hi n trong openedNode(closedNode) và

distance c a aroundNode này bé h n distance c a node t ng ng trong

p openedNode(closedNode)) ho c (aroundNode ch a xu t hi n trong

openedNode(closedNode))) thì:

Lo i node t ng ng ó ra kh i t p openedNode ho c closedNode.

Thêm aroundNode vào openedNode.

N u không,tr l i b c 2.

10.2 Bài toán tìm chu trình t i u

10.2.1 Phát bi u bài toánCho th G có n nh. Tìm chu trình Hamilton ng n nh t c a G.

Page 137: Xd he thong thong tin dia ly

- 137 -

10.2.2 Gi i quy t bài toán:ng gi ng nh bài toán tìm ng i ng n nh t, bài toán tìm chu trình t i

u c ng có v n v Node o và ta c ng gi i quy t t ng t .

Bài toán c ng có nhi u cách gi i quy t. Trong lu n v n này, ph ng pháp

c ch n là thu t toán r nhánh và ch n (Branch and Bound). Tuy ây

không ph i là thu t toán t i u nh ng ch p nh n c v i s l ng nh

không quá l n. H n n a, các thu t toán khác t ng i ph c t p trong vi c

cài t và m c tiêu chính c a lu n v n không t p trung vào ph n này nên

thu t toán r nhánh và ch n là m t l a ch n thích h p.

Thu t toán s c mô t và gi i thích nh sau:

Gi s t p h p các nh c a G là {1,2..n}và ma tr n tr ng s c a G là

M=[Mij] v i Mij là tr ng s c a c nh xu t phát t node i và n node j có

giá tr d ng (Các c nh không “ i c” s c gán giá tr là d ng vô c c.

1.Th c hi n th t c rút g n M. Tr m i ph n t trên dòng (c t) cho ph n

nh nh t (g i là ph n t rút g n) trên dòng (c t) ó. Ma tr n k t qu c

ký hi u là Mx. t LB b ng t ng giá tr các ph n t rút g n. ây là ch n

i c a Mx (Các chu trình Hamilton u có tr ng s l n h n hay b ng LB).

2. Ch n c nh ij b t k có Mij b ng 0 th c hi n th t c r nhánh: G i X

là t p h p g m m i chu trình Hamilton. Chia X thành hai t p con phân bi t

là (ij) g m các chu trình có ch a c nh ij và (*ij) g m các chu trình không

ch a c nh ij.

2.1.Xét (ij). M i chu trình trong (ij) s u không dùng n b t c

ph n t nào ngoài Mij trên hàng i và c t j c a M. Do ó ta có th gán các

giá tr ngoài Mij trên hàng i c t j b ng vô c c. Ngoài ra, các c nh n u s

Page 138: Xd he thong thong tin dia ly

- 138 -

ng có th t o ra chu trình con c ng s c gán b ng vô c c. Sau ó ta

th c hi n th t c rút g n ma tr n này nh ã th c hi n b c 1 và tính

LB1:

LB1=LB+ t ng các ph n t rút g n.

2.2.Xét (*ij). Ta ch c n gán Mij b ng vô c c r i th c hi n th t c

rút g n ngay tính LB2:

LB2=LB+ t ng các ph n t rút g n.

2.3.So sánh LB1 và LB2, ch n giá tr nào bé h n gán cho LB r i l p

i b c 2 t i ma tr n t ng ng v i LB m i t o cho n khi tìm c l i

gi i c a bài toán.