CÁC PHIÊN GIAO TI P GI A CLIENT ANDROID VÀ WEB SERVER.. 1 Nhân Linux trên android .... Các ng d ng trên Android.. Tab các thông tin khác, dùng trong vi c chi ti t phân bi t hàng th t, hà
Trang 1TR NG I H C M THÀNH PH H CHÍ MINH
BÁO CÁO LU N V N T T NGHI P
XÂY D NG H TH NG TRUY XU T THÔNG
TIN HÀNG HÓA B NG MÃ V CH T
SMARTPHONE
Thu c nhóm ngành khoa h c: Khoa h c máy tính
Sinh viên th c hi n: Bùi Cao Tú Gi i Tính: Nam
Trang 2NH N XÉT C A GIÁO VIÊN H NG D N
Ch ký c a gi ng viên
Trang 3Em xin g i l i c m n t i t t c các th y, cô giáo trong khoa Công ngh thông tin –
tr ng i h c M Thành Ph H Chí Minh đã đã h t lòng truy n đ t ki n th c cho chúng em nh ng tri th c c a k nguyên m i – k nguyên công ngh và truy n thông
Và còn m t l i c m n n a xin g i đ n toàn th b n bè, ng i thân và gia đình đã chia s nh ng khó kh n trong su t quá trình h c t p và th c hi n khóa lu n
HCM, ngày 18 tháng 9 n m 2013
Bùi Cao Tú
Trang 4M C L C
DANH M C HÌNH NH
DANH M C B NG BI U
DANH M C T VI T T T
Ch ng 1 T NG QUAN 1
1.1 HI N TR NG 1
1.2 LÝ DO CH N TÀI 1
1.3 M C TIÊU TÀI 2
1.4 I T NG TH C HI N 2
1.5 PH M VI TH C HI N 2
1.6 ÓNG GÓP C A TÀI 2
Ch ng 2 KI N TH C LIÊN QUAN 4
2.1 N N T NG ANDROID 4
2.2 WEB SERVICE 12
2.3 XML 18
2.4 MÃ V CH VÀ TH VI N M ZXING 30
2.5 TH VI N GOOGLE MAPS API V2 CHO ANDROID 34
2.6 H TH NG NH V TOÀN C U GPS 35
2.7 TH VI N SOAP CHO ANDROID 38
Ch ng 3 PHÂN TÍCH THI T K H TH NG 43
3.1 PHÂN TÍCH T NG QUAN H TH NG 43
3.2 PHÂN TÍCH M C TIÊU, YÊU C U, CH C N NG SERVER 45
3.3 PHÂN TÍCH M C TIÊU, YÊU C U, CH C N NG CLIENT 45
3.4 PHÂN TÍCH C S D LI U 46
3.5 XÂY D NG B GIAO TH C CHU N XML CH A D LI U GIAO TI P GI A CLIENT – SERVER 62
3.6 QUY NH CHU N MÃ BARCODE L U THÔNG TIN 66
3.7 XÂY D NG B GIAO TH C CHUNG TRUY N T I D LI U GI A CLIENT VÀ SERVER B NG XML 66
Trang 54.1 THI T K SERVER 68
4.2 XÂY D NG NG D NG PHÍA CLIENT 70
4.3 XÁC NH TÁC NHÂN 74
4.4 CÁC PHIÊN GIAO TI P GI A CLIENT (ANDROID) VÀ WEB SERVER 75
4.5 GIAO DI N VÀ CH Y TH CH NG TRÌNH 79
Ch ng 5 K T LU N 87
5.1 ÁNH GIÁ H TH NG 87
5.2 NG D NG GIÚP GI I QUY T CÁC V N 87
5.3 K HO CH XU T TRI N KHAI H TH NG VÀO TH C TI N 88
TÀI LI U THAM KH O 90
PH L C 92
Trang 6M C L C HÌNH NH
Hình 2 1 Nhân Linux trên android 6
Hình 2 2 Th vi n l p trình ng d ng trên android 6
Hình 2 3 Khung ng d ng 7
Hình 2 4 Các ng d ng trên Android 8
Hình 2 5 Vòng đ i c a m t ho t đ ng 9
Hình 2 6 C u trúc mã v ch theo chu n EAN-13 32
Hình 2 7 B n đ Google Maps 35
Hình 2 8 M t SOAP Operation đ n gi n 40
Hình 2 9 C u trúc thông đi p SOAP 40
Hình 2 10 C u trúc message SOAP 41
Hình 3 1 Mô hình t ng th ho t đ ng c a h th ng 44
Hình 3 2 Mô hình ý ni m truy n thông ng i dùng 47
Hình 3 3 Mô hình ý ni m truy n thông qu n tr 47
Hình 3 4 Mô hình ý ni m d li u 51
Hình 3 5 Mô hình logic d li u 58
Hình 3 7 Mô hình v t lý d li u 59
Hình 4 1 S đ ho t đ ng phía web Server 68
Hình 4 2 S đ ho t đ ng ng d ng phía Android client 70
Hình 4 3 Mô hình x lý các l p Activity 73
Hình 4 4 Mô hình tác nhân h th ng 74
Hình 4 5 Hình client g i yêu c u truy xu t hàng hóa qua mã v ch 75
Hình 4 6 Client g i yêu c u truy xu t thông tin công ty qua tên công ty 76
Hình 4 7 Client g i yêu c u truy xu t thông tin s n ph m qua tên ho c lo i s n ph m 77
Hình 4 8 Client g i đánh giá s n ph m lên server 78
Hình 4 9 Giao di n trang ch website 79
Hình 4 10 Giao di n trang truy xu t thông tin t ng i dùng 80
Hình 4 11 Giao di n qu n lý thông tin 80
Hình 4 12 Giao di n ng d ng Android đ u tiên khi kh i ch y 81
Hình 4 13 Giao di n quét mã v ch, khi ch n ch c n ng quét mã v ch 82
Hình 4 14 Giao ch nh xem thông tin s n ph m 82
Hình 4 15 Tab thông tin chi ti t v s n ph m (Details) 83
Hình 4 16 Tab danh sách hình nh v s n ph m 83
Hình 4 17 Tab các thông tin khác, dùng trong vi c chi ti t phân bi t hàng th t, hàng gi 84
Trang 7Hình 4 18 Tab hi n th danh sách c a hàng chính hãng trên b n đ , có tìm đ ng, tìm
c a hàng g n nh t, thu t toán tính kho ng cách 84
Hình 4 19 K t qu truy xu t danh sách s n ph m có tên nh p vào 85
Hình 4 20 K t qu truy xu t danh sách tên công ty có tên nh p vào 85
Hình 4 21 Màn hình hi n th thông tin chi ti t v công ty 86
Hình 4 22 Màn hình hi n th thông tin v mã v ch cho ai c n tìm hi u 86
M C L C B NG BI U B ng 2 1 Danh m c mã v ch m t s n c là thành viên c a t ch c mã v ch qu c t EAN 33
B ng 3 1 Danh sách các tác nhân 48
B ng 3 2 Danh sách dòng phát c a tác nhân ng i dùng 48
B ng 3 3 Danh sách dòng thu c a tác nhân ng i dùng 48
B ng 3 4 Danh sách dòng các tác nhân trên Client Android 48
B ng 3 5 Danh sách dòng thu c a tác nhân Clien Android 48
B ng 3 6 Danh sách dòng phát c a tác nhân SERVER 49
B ng 3 7 Danh sách dòng thu c a tác nhân Server 49
B ng 3 8 Danh sách các thu c tính 52
B ng 3 9 Danh sách các th c th 52
B ng 3 10 Danh sách các k t h p 53
B ng 3 11 Danh sách các k t h p c a th c th Product 53
B ng 3 12 Danh sách thu c tính c a th c th Product 53
B ng 3 13 Danh sách các k t h p c a th c th Company 54
B ng 3 14 Danh sách các thu c tính c a th c th Company 54
B ng 3 15 Danh sách các k t h p c a th c th Store 54
B ng 3 16 Danh sách các thu c tính c a th c th Store 54
B ng 3 17 Danh sách các k t h p c a th c th User 54
B ng 3 18 Danh sách các thu c tính c a th c th User 55
B ng 3 19 Danh sách các k t h p c a th c th Category 55
B ng 3 20 Danh sách các thu c tính c a th c th Category 55
B ng 3 21 Danh sách các k t h p c a th c th Country 55
B ng 3 22 Danh sách thu c tính c a th c th Country 55
B ng 3 23 Danh sách các k t h p c a th c th BarcodeC 56
B ng 3 24 Danh sách thu c tính c a th c th BarcodeC 56
B ng 3 25 Danh sách các k t h p c a th c th Page 56
B ng 3 26 Danh sách thu c tính c a th c th Page 56
B ng 3 27 Danh sách các k t h p c a th c th PageType 56
B ng 3 28 Danh sách thu c tính c a th c th PageType 56
B ng 3 29 Danh sách các k t h p c a th c th UserType 57
Trang 8B ng 3 30 Danh sách thu c tính c a th c th UserType 57
B ng 3 31 B ng Product( S n ph m) 60
B ng 3 32 B ng Company( Công ty) 60
B ng 3 33 B ng Store (C a hàng) 60
B ng 3 34 B ng Category (danh m c) 61
B ng 3 35 B ng User ( tài khoàn ng i dùng) 61
Trang 9DANH M C T VI T T T
API Application Programming Interface Giao di n l p trình ng d ng
CDMA Code Division Multiple Access M t công ngh trong h th ng
thông tin di đ ng
GPRS General Packet Radio Service Gói d ch v vô tuy n t ng h p
J2SE Java 2 Standard Edition Là đ c t và c ng là n n t ng
th c thi cho các ng d ng Java
MIDP Mobile Information Device Profile Thu c tính thông tin thi t b di
đ ng
SDK Software Development Kit B công c phát tri n ph n m m
USB Universal Serial Bus M t chu n k t n i tu n t trong
máy tính
Wi-Fi Wireless Fidelity H th ng m ng không dây
XML Extensible Markup Language Ngôn ng đánh d u m r ng
DDMS Dalvik Debug Monitor Service Ch ng trình g r i Android
SOAP Simple Object Access Protocol
WSDL Web Service Description Language
Trang 10Ch ng 1 T NG QUAN
1.1 HI N TR NG
Ngành kinh doanh hàng gi đang bùng n trên toàn c u Nguy hi m h n, nó đang
d n d ch chuy n t nh ng s n ph m vô h i nh giày hay túi xách sang d c ph m và thu c tr sâu, đe d a đ n s c kh e ng i dùng M t b n báo cáo c a T ch c H p tác
và phát tri n kinh t (OECD) cho bi t n m 2007, giá tr hàng gi đ c mua bán trên toàn c u đã lên t i 250 t USD Con s này l n h n r t nhi u so v i ho t đ ng c a th
gi i ng m, nh buôn v khí hay buôn ng i, th m chí đánh b i c v n chuy n thu c phi n
tr ng Tuy nhiên, t đ u n m đ n nay, s l ng hàng hóa vi ph m v n ngày càng gia
t ng Các m t hàng này c ng tr nên tinh vi và khó phát hi n h n
Nguyên nhân ph n l n là do ng i tiêu dùng thi u thông tin c n thi t v s n ph m mình mua, đ có th đánh giá phân bi t các lo i hàng hóa mà h mua, do đó ch n
nh m hàng gi hàng nhái mà v n không biêt Hi n v n ch a h có m t công trình nghiên c u khoa h c nào áp d ng công ngh thông tin đ gi i quy t v n đ này
1.2 LÝ DO CH N TÀI
Cùng v i s phát tri n m nh c a công ngh thông tin và các thi t b di đ ng hi n nay Vi c truy xu t thông tin vô cùng nhanh chóng và d dàng Ý t ng xây d ng
đ c h th ng có kh n ng truy xu t nhanh thông tin hàng tri u lo i hàng hóa mà
ng i tiêu dùng không th có kh n ng t nh h t đ c Giúp ng i tiêu dùng có kh
n ng nh n bi t đ c m i thông tin chính xác và c n thi t c a s n ph m mà h mu n t chính nhà cung c p, ngoài ra qua nh ng thông tin h có th phân bi t đ c hàng gi
Trang 11hàng nhái, các c nh báo t nhà s n xu t v v n đ này đ h chú ý h n Giúp gi i quy t đ c m t nguyên nhân chính y u c a v n đ hàng gi hàng nhái
Xây d ng h th ng truy xu t thông tin hàng hóa qua mã v ch theo mô hình ng
d ng Client – Web Server
1.6 ÓNG GÓP C A TÀI
1.6.1 óng góp cho kinh t - xã h i:
Góp ph n ng n ch n n n hàng gi đang hoành hành hi n nay
B ng cách cung c p nh ng thông tin hàng hóa cho ng i tiêu dùng, góp ph n phòng ch ng hàng gi , gi m gánh n ng c a vi c phát hi n và thu h i hàng gi cho c c
qu n lý th tr ng đang r t thi u nhân l c vì l ng hàng gi hàng nhái tràn lan
B o v l i ích c ng nh s c kh e, tính m ng c a ng i tiêu dùng
Ti t ki m chi phí cho các bi n pháp ch ng hàng gi thông th ng nh tem ch ng
gi tuy l i kém hi u qu (có tr ng h p làm gi l i d u hi u nh n bi t hàng gi ) vì n u
có các d u hi u nh n di n hàng gi mà khách hàng không bi t nh ng thông tin đó
c ng không th nào phân bi t đ c
Trang 121.6.2 V m t k thu t:
Xây d ng h th ng truy xu t thông tin hàng hóa qua mã v ch theo mô hình ng
d ng Client – Web Server có s d ng công ngh mã v ch, XML, l p trình ng
d ng web, l p trình ng d ng Android
Trang 132.1 N N T NG ANDROID
Trong khóa lu n này h th ng g m ng d ng Android làm client có s d ng r t nhi u ki n th c v Android.D i đây là ph n gi i thi u v n n t ng Android, khái
ni m, các đ c đi m c a n n t ng Android Ti p đ n là đi sâu trình bày v ki n trúc và
gi i thi u b công c l p trình cho Android
Android đ c xây d ng t d i đi lên cho phép ng i phát tri n t o các ng
d ng di đ ng h p d n v i đ y đ các đi m m nh c a các thi t b c m tay hi n có Android hoàn toàn m , m t ng d ng có th g i t i b t k m t ch c n ng lõi c a
đi n tho i nh t o cu c g i, g i tin nh n hay s d ng máy nh, cho phép ng i phát tri n t o phong phú h n, liên k t h n các tính n ng cho ng i dùng Android
đ c xây d ng trên nhân Linux m Android mà m t mã ngu n m , nó có th
đ c m r ng đ k t h p t do gi a các công ngh n i tr i
Trang 14 Tính ngang b ng c a các ng d ng
V i Android, không có s khác nhau gi a các ng d ng đi n tho i c b n v i ng
d ng c a bên th ba Chúng đ c xây d ng đ truy c p nh nhau t i m t lo t các ng
d ng và d ch v c a đi n tho i V i các thi t b đ c xây d ng trên n n t ng Android,
ng i dùng có th đáp ng đ y đ các nhu c u mà h thích
Phá v rào c n phát tri n ng d ng
Android phá v rào c n đ t o ng d ng m i và c i ti n M t ng i phát tri n có
th k t h p thông tin t trang web v i d li u trên đi n tho i cá nhân – ch ng h n nh danh b , l ch hay v trí trên b n đ – đ cung c p chính xác h n cho ng i khác V i Android, ng i phát tri n có th xây d ng m t ng d ng mà cho phép ng i dùng xem v trí c a nh ng ng i b n và thông báo khi h đang v trí lân c n T t c đ c
l p trình d dàng thông qua s h tr c a MapView và d ch v đ nh v toàn c u GPS
D dàng và nhanh chóng xây d ng ng d ng
Android cung c p b th vi n giao di n l p trình ng d ng đ s và các công c
đ vi t các ng d ng ph c t p Android còn bao g m m t b công c đ y đ giúp cho
Trang 15Hình 2 1 Nhân Linux trên android Android s d ng nhân Linux 2.6 làm nhân cho các d ch v h th ng nh b o m t,
có trong th vi n c t lõi c a ngôn ng l p trình Java
M i ng d ng Android đ u ch y trong ti n trình c a nó, v i m i máy o Dalvik riêng Dalvik đ c vi t đ thi t b có th ch y nhi u máy o Dalvik m t cách hi u qu Máy o Dalvik th c thi các t p tin th c thi Dalvik (.dex) đã đ c nén l i Máy o Dalvik d a trên thanh ghi, ch y các l p đ c biên d ch b ng b biên d ch ngôn ng Java và chuy n sang đ nh d ng dex b ng công c “dx”
Trang 162.1.7 B th vi n
Android cung c p m t t p các th vi n C/C++ đ c các thành ph n c a Android
s d ng khác nhau Sau đây là m t vài th vi n c b n:
H th ng th vi n C: m t d n xu t c a h th ng th vi n C chu n cho nh ng thi t
b nhúng trên n n Linux
Th vi n đa ph ng ti n: s d ng nhân m PacketVideo, h tr nhi u đ nh d ng
âm thanh, hình nh và c video, bao g m Mpeg4, H264, MP3, ACC, AMR, JPG và PNG
Surface manager: qu n lý vi c truy c p t i các h th ng hi n th con và vi c k t
h p c a các l p đ h a 2 chi u, 3 chi u t nhi u ng d ng
Th vi n c s Web: m t máy trình duy t web hi n đ i t n d ng s c m nh c a trình duy t Android, cho phép nhúng c a s duy t web cho ng d ng
SQLite: là th vi n truy xu t c s d li u nh , m nh, có s n trong m i ng d ng Android
Content Providers cho phép các ng d ng truy xu t d li u t ng d ng khác
Resource Manager cung c p truy c p t i tài nguyên không ph i mã ngu n nh là các t p tin l u các xâu, t p tin đ h a, hay t p tin b c c giao di n
Notification Manager cho phép các ng d ng hi n th các thông báo trên thanh
tr ng thái
Activity Manager qu n lý vòng đ i c a các ng d ng (t khi chúng sinh ra, đ c
th c thi, chuy n sang tr ng thái ch , g i th c thi l i và k t thúc)
Trang 172.1.9 ng d ng
Các ng d ng trên Android
Hình 2 4 Các ng d ng trên Android
ây là l p trên cùng c a ki n trúc n n t ng Android Android s ho t đ ng v i
m t b các ng d ng bao g m ng d ng th đi n t , g i tin nh n, l ch, b n đ , trình duy t web, danh b v.v… T t c các ng d ng đ c vi t b ng ngôn ng Java
Trang 18Hình 2 5 Vòng đ i c a m t ho t đ ng
Vòng đ i c a m t ho t đ ng có th đ c th hi n trong nh ng quá trình sau:
Toàn b th i gian s ng c a m t ho t đ ng b t đ u t l i g i đ u tiên t i ph ng
th c onCreate (Bundle) t i l i g i ph ng th c onDestroy() Trong quá trình này, m t ho t đ ng s kh i t o l i t t c các tài nguyên c n s d ng trong
ph ng th c onCreate() và gi i phóng chúng khi ph ng th c onDestroy() đ c
th c thi
Th i gian s ng có th nhìn th y c a m t ho t đ ng b t đ u t l i g i t i ph ng
th c onStart(), cho t i khi ph ng th c onStop() c a nó đ c th c thi Toàn b các tài nguyên đang đ c s d ng b i ho t đ ng v n ti p t c đ c l u gi , ng i dùng có th th y giao di n nh ng không t ng tác đ c v i ho t đ ng do trong qua trình này ho t đ ng không tr ng thái ch y ti n c nh
Th i gian s ng ti n c nh c a m t ho t đ ng là quá trình b t d u t khi có l i g i
t i ph ng th c onResume() và k t thúc b ng l i g i t i ph ng th c onPause()
Trang 19Trong th i gian này, ho t đ ng ch y ti n c nh và có th t ng tác v i ng i dùng
2.1.11 D ch v
Khái ni m
M t d ch v (service) là các đo n mã đ c th c thi ng m b i h th ng mà ng i
s d ng không th y đ c Ví d nh m t ch ng trình ch i nh c ch y ng m m c dù đang xem hình nh
Vòng đ i c a m t d ch v
Vòng đ i c a m t d ch v đ c hi u là quá trình ho t đ ng t khi nó đ c t o ra cho t i khi b lo i kh i h th ng
2.1.12 T p tin khai báo (manifest)
Tr c khi có th kh i ch y m t ng d ng thành ph n, nó ph i xem ng d ng bao
g m nh ng thành ph n nào Thêm n a, các ng d ng khai báo các thành ph n c a nó trong m t t p tin khai báo đ đóng gói l i vào trong gói Android (t p tin apk ch a các
mã ngu n, t p tin và tài nguyên)
T p tin này có c u trúc c a t p tin XML và luôn có tên là AndroidManifest.xml trong m i ng d ng Nó làm m t s th nh thêm và khai báo các thành ph n c a ng
d ng, tên các th vi n ng d ng c n liên k t t i (ngoài th vi n chu n c a Android)
và xác đ nh các quy n cho ng d ng
2.1.13 B l c Intent
M t đ i t ng Intent có th có tên rõ ràng trong thành ph n đích N u có, Android
s tìm thành ph n đó (d a trên khai báo trong t p tin khai báo) và kích ho t nó Nh ng
n u đích có tên không rõ ràng, Android ph i xác đ nh thành ph n nào thích h p nh t
đ đáp l i intent Nó th c hi n so sánh đ i t ng Intent v i b l c intent trong các đích
có kh n ng M t thành ph n c a b l c intent cho Android bi t lo i intent thành ph n nào c n x lý
Trang 202.1.14 Công c h tr l p trình Android - Eclipse
B công c phát tri n ph n m m Android SDK g m nhi u công c tr giúp cho
vi c phát tri n ng d ng di đ ng trên n n t ng Android Thành ph n quan tr ng nh t
c a b công c này là trình gi l p Android và b plug-in phát tri n ng d ng Android trên Eclipse ADT, bên c nh đó b SDK c ng bao g m các công c khác cho vi c g
r i, đóng gói và cài đ t ng d ng trên trình gi l p và trên thi t b
Trình gi l p Android: Th c ch t đây là m t ch ng trình mô ph ng m t thi t b
di đ ng o trên máy tính Chúng ta có th s d ng b gi l p này đ thi t k g r i và
ki m tra ng d ng c a mình nh trên thi t b tr c khi đ a ch ng trình vào thi t b
th t
Android Development Tools Plugin (cho Eclipse) vi t t t là ADT, Plugin này h
tr cho vi c t o và g r i các ng d ng và s d ng môi tr ng phát tri n tích h p Eclipse tr nên d dàng h n
Trình g r i Dalvik Debug Monitor Service (DDMS): giúp qu n lý các ti n trình trong b gi l p ho c thi t b và tr giúp vi c g r i ng d ng Có th s d ng công c này đ h y các ti n trình, ch n m t ti n trình c th đ g r i, sinh các d li u truy
v t, xem b nh heap và thông tin v các lu ng, ch p nh màn hình c a trình gi l p Android Debug Bridge (adb): Công c này cho phép cài đ t các t p tin apk trên
b gi l p ho c thi t b , đ ng th i h tr truy c p hai đ i t ng này t c a s dòng
l nh
sqlite3: ây là công c đ truy c p các t p tin d li u SQLite đ c t o ra và s
d ng b i m t ng d ng Android
dx: ây là công c biên d ch các t p tin class thành mã bytecode ch y trên máy
o Dalvik (l u tr d i d ng t p tin dex)
Android Virtual Devices (AVD): Cho phép chúng ta có th t o c u hình thi t b
o, mô ph ng các đ c đi m c a b gi l p Android V i m i c u hình, ta có th xác
đ nh n n t ng cho nó ch y, tùy ch nh ph n c ng hay giao di n s d ng M i tùy ch nh
c a AVD s nh m t thi t b đ c l p v i d li u l u tr c a nó, th nh SD, v.v…
Trang 212.2 WEB SERVICE
Trong khóa lu n này có s d ng webservices đ qu n tr h th ng, xây d ng ng
d ng web truy xu t thông tin hàng hóa, xây d ng services giao ti p v i client có s
d ng r t nhi u ki n th c sau liên quan t i webservices g m nh ng ki n th c n n t ng
c b n v webservices
2.2.1 Gi i thi u công ngh
Theo đ nh ngh a c a W3C (World Wide Web Consortium), d ch v Web là m t
h th ng ph n m m đ c thi t k đ h tr kh n ng t ng tác gi a các ng d ng trên các máy tính khác nhau thông qua m ng Internet, giao di n chung và s g n k t c a
nó đ c mô t b ng XML D ch v Web là tài nguyên ph n m m có th xác đ nh b ng
đ a ch URL, th c hi n các ch c n ng và đ a ra các thông tin ng i dùng yêu c u
M t d ch v Web đ c t o nên b ng cách l y các ch c n ng và đóng gói chúng sao cho các ng d ng khác d dàng nhìn th y và có th truy c p đ n nh ng d ch v mà nó
th c hi n, đ ng th i có th yêu c u thông tin t d ch v Web khác Nó bao g m các
mô đun đ c l p cho ho t đ ng c a khách hàng và doanh nghi p và b n thân nó đ c
th c thi trên server
2.2.2 c đi m c a D ch v Web
c đi m
D ch v Web cho phép client và server t ng tác đ c v i nhau ngay c trong
nh ng môi tr ng khác nhau Ví d , đ t Web server cho ng d ng trên m t máy ch
ch y h đi u hành Linux trong khi ng i dùng s d ng máy tính ch y h đi u hành Windows, ng d ng v n có th ch y và x lý bình th ng mà không c n thêm yêu c u
đ c bi t đ t ng thích gi a hai h đi u hành này
Ph n l n k thu t c a D ch v Web đ c xây d ng d a trên mã ngu n m và đ c phát tri n t các chu n đã đ c công nh n, ví d nh XML
M t D ch v Web bao g m có nhi u mô-đun và có th công b lên m ng Internet
Trang 22Là s k t h p c a vi c phát tri n theo h ng t ng thành ph n v i nh ng l nh v c
c th và c s h t ng Web, đ a ra nh ng l i ích cho c doanh nghi p, khách hàng,
nh ng nhà cung c p khác và c nh ng cá nhân thông qua m ng Internet
M t ng d ng khi đ c tri n khai s ho t đ ng theo mô hình client-server Nó có
th đ c tri n khai b i m t ph n m m ng d ng phía server
u và nh c đi m
u đi m:
D ch v Web cung c p kh n ng ho t đ ng r ng l n v i các ng d ng ph n m m khác nhau ch y trên nh ng n n t ng khác nhau
S d ng các giao th c và chu n m Giao th c và đ nh d ng d li u d a trên v n
b n (text), giúp các l p trình viên d dàng hi u đ c
Nâng cao kh n ng tái s d ng
Thúc đ y đ u t các h th ng ph n m m đã t n t i b ng cách cho phép các ti n trình/ch c n ng nghi p v đóng gói trong giao di n d ch v Web
T o m i quan h t ng tác l n nhau và m m d o gi a các thành ph n trong h
th ng, d dàng cho vi c phát tri n các ng d ng phân tán
Thúc đ y h th ng tích h p, gi m s ph c t p c a h th ng, h giá thành ho t
đ ng, phát tri n h th ng nhanh và t ng tác hi u qu v i h th ng c a các doanh nghi p khác
Nh c đi m:
Nh ng thi t h i l n s x y ra vào kho ng th i gian ch t c a D ch v Web, giao
di n không thay đ i, có th l i n u m t máy khách không đ c nâng c p, thi u các giao th c cho vi c v n hành
Có quá nhi u chu n cho d ch v Web khi n ng i dùng khó n m b t
Ph i quan tâm nhi u h n đ n v n đ an toàn và b o m t
Ki n trúc c a D ch v Web
D ch v Web g m có 3 chu n chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration) Hình 1 mô t ch ng giao th c c a d ch v Web, trong đó UDDI đ c s d ng đ đ ng ký và khám phá d ch v Web đã đ c miêu
Trang 23t c th trong WSDL Giao tác UDDI s d ng SOAP đ nói chuy n v i UDDI server, sau đó các ng d ng SOAP yêu c u m t d ch v Web Các thông đi p SOAP đ c g i đi chính xác b i HTTP và TCP/IP
2.2.3 Ch ng giao th c c a d ch v Web
Ch ng giao th c d ch v Web là t p h p các giao th c m ng máy tính đ c s
d ng đ đ nh ngh a, xác đ nh v trí, thi hành và t o nên d ch v Web t ng tác v i
nh ng ng d ng hay d ch v khác Ch ng giao th c này có 4 thành ph n chính:
D ch v v n chuy n (Service Transport): có nhi m v truy n thông đi p gi a các
ng d ng m ng, bao g m nh ng giao th c nh HTTP, SMTP, FTP, JSM và g n đây
nh t là giao th c thay đ i kh i m r ng (Blocks Extensible Exchange Protocol- BEEP)
Thông đi p XML: có nhi m v gi i mã các thông đi p theo đ nh d ng XML đ có
th hi u đ c m c ng d ng t ng tác v i ng i dùng Hi n t i, nh ng giao th c
th c hi n nhi m v này là XML-RPC, SOAP và REST
Mô t d ch v : đ c s d ng đ miêu t các giao di n chung cho m t d ch v Web
c th WSDL th ng đ c s d ng cho m c đích này, nó là m t ngôn ng mô t giao
ti p và th c thi d a trên XML D ch v Web s s d ng ngôn ng này đ truy n tham
s và các lo i d li u cho các thao tác và ch c n ng mà d ch v Web cung c p
2.2.4 Các thành ph n c a D ch v Web
XML – eXtensible Markup Language
Là m t chu n m do W3C đ a ra cho cách th c mô t d li u, nó đ c s d ng
đ đ nh ngh a các thành ph n d li u trên trang web và cho nh ng tài li u B2B V hình th c, XML hoàn toàn có c u trúc th gi ng nh ngôn ng HTML nh ng HTML
Trang 24gi i quy t v n đ này và là ki n trúc n n t ng cho vi c xây d ng m t d ch v Web, t t
c d li u s đ c chuy n sang đ nh d ng th XML Khi đó, các thông tin mã hóa s hoàn toàn phù h p v i các thông tin theo chu n c a SOAP ho c XML-RPC và có th
t ng tác v i nhau trong m t th th ng nh t
WSDL – Web Service Description Language
WSDL đ nh ngh a cách mô t d ch v Web theo cú pháp t ng quát c a XML, bao g m các thông tin:
Tên d ch v
Giao th c và ki u mã hóa s đ c s d ng khi g i các hàm c a d ch v Web
Lo i thông tin: thao tác, tham s , nh ng ki u d li u (có th là giao di n c a
d ch v Web c ng v i tên cho giao di n này)
M t WSDL h p l g m hai ph n: ph n giao di n (mô t giao di n và ph ng th c
k t n i) và ph n thi hành mô t thông tin truy xu t CSDL C hai ph n này s đ c
l u trong 2 t p tin XML t ng ng là t p tin giao di n d ch v và t p tin thi hành d ch
v Giao di n c a m t d ch v Web đ c miêu t trong ph n này đ a ra cách th c làm
th nào đ giao ti p qua d ch v Web Tên, giao th c liên k t và đ nh d ng thông đi p yêu c u đ t ng tác v i d ch v Web đ c đ a vào th m c c a WSDL
WSDL th ng đ c s d ng k t h p v i XML schema và SOAP đ cung c p
d ch v Web qua Internet M t client khi k t n i t i d ch v Web có th đ c WSDL đ xác đ nh nh ng ch c n ng s n có trên server Sau đó, client có th s d ng SOAP đ
l y ra ch c n ng chính xác có trong WSDL
SOAP – Simple Object Access Protocol
Chúng ta đã hi u c b n d ch v Web nh th nào nh ng v n còn m t v n đ khá quan tr ng ó là làm th nào đ truy xu t d ch v khi đã tìm th y? Câu tr l i là các
d ch v Web có th truy xu t b ng m t giao th c là Simple Object Access Protocol – SOAP Nói cách khác chúng ta có th truy xu t đ n UDDI registry b ng các l nh g i hoàn toàn theo đ nh d ng c a SOAP
Trang 25SOAP là m t giao th c giao ti p có c u trúc nh XML Nó đ c xem là c u trúc
x ng s ng c a các ng d ng phân tán đ c xây d ng t nhi u ngôn ng và các h
đi u hành khác nhau SOAP là giao th c thay đ i các thông đi p d a trên XML qua
m ng máy tính, thông th ng s d ng giao th c HTTP
M t client s g i thông đi p yêu c u t i server và ngay l p t c server s g i
nh ng thông đi p tr l i t i client C SMTP và HTTP đ u là nh ng giao th c l p
ng d ng c a SOAP nh ng HTTP đ c s d ng và ch p nh n r ng rãi h n b i ngày nay nó có th làm vi c r t t t v i c s h t ng Internet
C u trúc m t thông đi p theo d ng SOAP
Thông đi p theo đ nh d ng SOAP là m t v n b n XML bình th ng bao g m các
ph n t sau:
Ph n t g c – envelop: ph n t bao trùm n i dung thông đi p, khai báo v n
b n XML nh là m t thông đi p SOAP
Ph n t đ u trang – header: ch a các thông tin tiêu đ cho trang, ph n t này không b t bu c khai báo trong v n b n Header còn có th mang nh ng d
li u ch ng th c, nh ng ch ký s , thông tin mã hóa hay cài đ t cho các giao
M t SOAP đ n gi n trong body s l u các thông tin v tên thông đi p, tham chi u
t i m t th hi n c a d ch v , m t ho c nhi u tham s Có 3 ki u thông báo s đ c
đ a ra khi truy n thông tin: request message(tham s g i th c thi m t thông đi p), respond message (các tham s tr v , đ c s d ng khi yêu c u đ c đáp ng) và cu i cùng là fault message (thông báo tình tr ng l i)
Ki u truy n thông: Có 2 ki u truy n thông
Remote procedure call (RPC): cho phép g i hàm ho c th t c qua m ng
Ki u này đ c khai thác b i nhi u d ch v Web
Trang 26 Document: đ c bi t đ n nh ki u h ng thông đi p, nó cung c p giao ti p
m c tr u t ng th p, khó hi u và yêu c u l p trình viên m t công s c h n
m t d ch v đã có s n T đó, xây d ng đ nh ngh a service (WSDL) v i các đ i
t ng, hàm ch c n ng mà chúng ta mong mu n
Giai đo n tri n khai: công b đ nh ngh a d ch v , xây d ng WSDL và tri n khai
mã th c thi c a d ch v Web Tri n khai d ch v Web t i m t ng d ng phía server, sau đó s công b d ch v Web trên m ng Internet đ các client có th nhìn th y S d ng UDDI registry đ công b lên m ng
Giai đo n ti n hành: tìm ki m và g i th c thi d ch v Web b i nh ng ng i dùng
mu n s d ng d ch v
Qu n lý: Qu n lý và qu n tr d ch v , duy trì s n đ nh c a d ch v , c p nh t thông tin m i, s a l i khi nó x y ra…
xây d ng m t d ch v Web, chúng ta c n hi u đ c nh ng vi c ph i làm và nên b t đ u t đâu Có 3 cách ti p c n ch y u đ xây d ng nên m t d ch v Web, có
th t m t ng d ng đã có (bottom-up); t m t đ nh ngh a d ch v , WSDL đ phát sinh m t ng d ng m i (top-down) ho c có th t m t nhóm các d ch v Web hi n có,
k t h p l i v i nhau đ t o nên các ch c n ng m i ho c m r ng thêm ch c n ng Qui trình xây d ng m t d ch v Web bao g m các b c sau:
Trang 27 ng ký WSDL v i UDDI registry đ cho phép các client có th tìm th y và truy
xu t
Client nh n file WSDL và t đó xây d ng SOAP client đ có th k t n i v i SOAP server
Xây d ng ng d ng phía client (ch ng h n s d ng Java) và sau đó g i th c hi n
d ch v thông qua vi c k t n i t i SOAP server
L a ch n m t ngôn ng , xây d ng các ti n trình nghi p v và chúng ta b t đ u
t o nên m t d ch v Web nh ý mu n Sau đó là cung c p d ch v Web này trên Internet
Tích h p d ch v Web theo chu n
có th thành công v i d ch v Web chúng ta ph i quan tâm đ n khá nhi u v n
đ , bao g m vi c tri n khai, giám sát và tích h p h th ng Doanh nghi p không
n ng giao ti p th i gian th c, k t n i v i m i ng i trên kh p th gi i B n ch t c a
n n t ng công ngh này là ki n trúc h ng d ch v và s phát tri n c a d ch v Web
v n b n, là c s c a m i trang Web Gi ng nh HTML, XML c ng đ c d a trên SGML – Standard Generalized Markup Language
M t ví d đ n gi n v xml: D li u đ c ch a trong child element và attribute
Trang 28<Note to="Irshad"> //XML attribute
<from>Farhan</from> //XML child element
Ngày nay, XML đang tr thành m t chu n chung cho vi c trao đ i d li u cho
nh ng ng d ng ch y trên môi tr ng Internet Vì XML cho phép ng i dùng có th
t đ nh ngh a các th (tag) - nh ng th này làm cho tài li u XML đa d ng h n nh ng ngôn ng thông th ng nh HTML Nh v y m c tiêu đ t ra cho s ra đ i XML là :
u tiên nó s t ng thích v i SGML, và d dàng vi t nh ng ch ng trình đ x lý cho nh ng tài li u XML K ti p, nh ng tài li u XML rõ ràng, d đ c, d dàng t o l p
Và đi u quan tr ng là nó đ c h tr trong nhi u ng d ng Nói tóm l i, XML d dàng chia s thông tin qua nh ng đ nh d ng khác nhau thông qua môi tr ng web XML đ c thi t k đ cho m i ng i đ u có th s d ng đ c
Sau đây là m t s l i ích khi s d ng XML:
XML đ c dùng đ trao đ i d li u
XML có th tách r i d li u, s d ng XML, d li u đ c ch a trong các t p tin XML riêng bi t
XML có th mô t thông tin c a nh ng đ i t ng ph c t p mà c s d li u quan h không th gi i quy t đ c
XML có th dùng đ chuy n đ i d li u gi a các h th ng không t ng thích
XML dùng đ chia s d li u v i nh ng t p tin v n b n đ n gi n d hi u
XML c ng đ c dùng đ l u tr d li u, có th làm cho d li u h u ích h n.T XML có th t o ra nh ng ngôn ng dùng trong các lãnh v c chuyên môn nh WAP, WML,
Trang 292.3.2 XML Validation
Có 2 m c đ đ đánh giá m c đ chính xác c a m t tài li u XML:
XML đúng ng pháp là Well Formed XML
XML là m t Well Formed XML và đúng v i 1 DTD là Valid XML
well-formed, m t tài li u XML ph i theo đúng các lu t sau đây:
Ph i có m t root (g c) Element duy nh t, g i là Document Element, nó ch a t t
c các Elements khác trong tài li u
M i opening Tag ph i có m t closing Tag gi ng nh nó
Tags trong XML thì case sensitive, t c là opening Tag và closing Tag ph i
đ c đánh v n y nh nhau, ch hoa hay ch th ng
M i Child Element ph i n m tr n bên trong Element cha c a nó
Attribute value trong XML ph i đ c gói gi a m t c p ngo c kép
Lu t th nh t đòi h i m t root Element duy nh t, nên tài li u d i đây không well-formed vì nó không có m t top level Element:
Lu t th hai nói r ng m i opening Tag ph i có m t closing Tag gi ng nh nó T c
là m i Tag m ra ph i đ c đóng l i Empty Element vi t cách g n nh
<MiddleInitial/> đ c g i là có Tag t đóng l i Các Tags khác ph i có closing Tag Cái XML d i đây không well-formed vì nó có ch a m t m t Tag <Item> thi u closing Tag </Item>:
Trang 30Lu t th ba nói là tên Tag thì case sensitive, t c là closing Tag ph i đánh v n y
h t nh opening Tag, phân bi t ch hoa, ch th ng Nh th <order> khác v i
<Order>, ta không th dùng Tag </Order> đ đóng Tag <order> Cái XML d i đây không well-formed vì opening Tag và closing Tags c a Element OrderDate không đánh v n gi ng nhau:
<Order>
<OrderDate>2001-01-01</Orderdate>
Trang 31Lu t th t nói m i Child Element ph i n m tr n bên trong Element cha c a nó,
t c là không th b t đ u m t Element m i khi Element n y ch a ch m d t Thí d nh tài li u XML d i đây không well-formed vì closing Tag c a Category hi n ra tr c closing Tag c a Product
Trang 33<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)> ]>
DTD trên đ c gi i thích nh d i đây:
!DOCTYPE Note đ nh ngh a root element c a tài li u này là Note
!ELEMENT Note đ nh ngh a note element ch a 4 element là :”to, from,heading,body”
!ELEMENT to đ nh ngh a to element thu c lo i #PCDATA
!ELEMENT from đ nh ngh a from element thu c lo i #PCDATA
!ELEMENT heading đ nh ngh a heading element thu c lo i #PCDATA
!ELEMENT body đ nh ngh a body element thu c lo i #PCDATA
N u DTD đ c khai báo nh là m t file m r ng thì nó nên đ c bao b c trong đ nh ngh a DOCTYPE v i c u trúc d i đây:
Và đây là file note.dtd mà nó ch a DTD:
<!ELEMENT note (to,from,heading,body)>
Trang 34<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
2.3.4 XML Schema
C ng nh DTD, XML Schema đ c dùng đ đ nh ngh a c u trúc tài li u XML XML Schema thì đ c th a k t DTD
XML Schemas bây gi đ c dùng trong h u h t các Web application nh là m t
s thay th c a DTDs và trong t ng lai nó s hoàn toàn thay th DTD v i các lý do
Các element có trong tài li u
Các attribute có trong tài li u
Quan h cha con gi a các element
Th t các element anh em
S l ng element con
Element ch a gì trong nó
Ki u d li u cho các element và attribute
Giá tr m c đ nh cho các element và attribute
Processing Instructions và Comments
Trang 35Ngoài các d li u c n thi t , m t tài li u XML c ng có ch a các Processing Instructions (ch th v cách x ) cho parser và Comments (ghi chú) cho ng i đ c Processing Instruction n m trong c p Tags <? và ?> Thông th ng nó cho bi t version c a XML Specification mà parser c n làm theo Có khi nó c ng cho bi t data trong XML dùng encoding nào, thí d nh uft-8 Còn m t Attribute n a là standalone standalone cho parser bi t là tài li u XML có th đ c validated m t mình, không c n
đ n m t DTD hay Schema
M c d u m t tài li u XML well-formed không c n có m t Processing Instruction,
nh ng thông th ng ta đ m t Processing Instruction đàng đ u tài li u, ph n y
đ c g i là prologue (giáo đ u) D i đây là m t thí d có Processing Instruction trong prologue c a m t tài li u XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
Trang 36đây ta cho XML stylesheet parser bi t r ng stylesheet thu c lo i text/xsl và nó
đ c ch a trong file tên order.xsl B n c ng có th cho thêm Comment b ng cách dùng c p Tags <! và > nh sau:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<! Below are details of a purchase order >
Trang 38CDATA là khúc d li u trong tài li u XML n m gi a <![CDATA[ và ]]> Data
n m bên trong nh ng CDATA đ c cho thông qua parser y nguyên, không b s a đ i
i m n y r t quan tr ng khi b n mu n cho vào nh ng d li u có ch a nh ng text
đ c xem nh markup B n có th đ t nh ng thí d cho XML trong nh ng CDATA
và chúng s đ c parser b qua Khi dùng XSL stylesheets đ transform m t XML file thành HTML, có b t c scripting nào b n c ng ph i đ t trong nh ng CDATA D i đây là các thí d dùng CDATA:
<![CDATA[ place your data here ]]>
Trang 39Trong n i d ng c a ph n này, khóa lu n s đi trình bày khái ni m v mã v ch, các
ng d ng c a mã v ch ngày nay Ch ng này c ng gi i thi u v th vi n mã ngu n
đ c in song song c ng nh c a kho ng tr ng gi a chúng, nh ng ngày nay chúng còn
đ c in theo các m u c a các đi m, theo các vòng tròn đ ng tâm hay chúng n trong các hình nh Mã v ch có th đ c đ c b i các thi t b quét quang h c g i là máy đ c
mã v ch hay đ c quét t hình nh b ng các ph n m m chuyên bi t N i dung c a mã
v ch là thông tin v s n ph m nh : N c s n xu t, tên doanh nghi p, lô, tiêu chu n
ch t l ng đ ng ký, thông tin v kích th c s n ph m, n i ki m tra
Thông tin chung
Trong h th ng mã s EAN cho s n ph m bán l có hai lo i, m t lo i s d ng 13 con s (EAN-13) và lo i kia s d ng 8 con s (EAN-8)
Mã s EAN-13 g m 13 con s có c u t o nh sau: t trái sang ph i
Mã qu c gia: hai ho c ba con s đ u
Mã doanh nghi p: có th g m t b n, n m ho c sáu con s
Mã m t hàng: có th là n m, b n ho c ba con s tu thu c vào mã doanh nghi p
S cu i cùng là s ki m tra
Trang 40đ m b o tính th ng nh t và tính đ n nh t c a mã s , mã qu c gia ph i do t
ch c mã s v t ph m qu c t (EAN International) c p cho các qu c gia là thành viên
c a t ch c này Mã s qu c gia c a Vi t nam là 893
Mã doanh nghi p (mã M) do t ch c mã s v t ph m qu c gia c p cho các nhà
s n xu t là thành viên c a h Vi t nam, mã doanh nghi p do EAN-VN c p cho các doanh nghi p thành viên c a mình
Mã m t hàng (mã I) do nhà s n xu t quy đ nh cho hàng hoá c a mình Nhà
s n xu t ph i đ m b o
m i m t hàng ch có m t mã s , không đ c có b t k s nh m l n nào
S ki m tra C là m t con s đ c tính d a vào 12 con s tr c đó, dùng đ
ki m tra vi c ghi đúng nh ng con s nói trên
T n m 1995 đ n tháng 3/1998, EAN-VN c p mã M g m b n con s và t tháng 3/1998, theo yêu c u c a EAN qu c t , EAN-VN b t đ u c p mã M g m 5 con s Vì
v y, hi n nay mã EAN-13 c a các doanh nghi p Vi t nam có hai d ng là: mã M g m