Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn thạc sĩ ngành hệ thống tính toán với đề tài: Giao thức quản lý mạng và công nghệ dịch vụ web thực hiện khai thác đường dây thuê bao, cho các bạn làm luận văn tham khảo
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 1-20) ...
Luận văn: Giao thức quản lý mạng và công nghệ dịch vụ web, 9đ
1. 1
ð I H C QU C GIA HÀ N I
TRƯ NG ð I H C KHOA H C T NHIÊN
------------------------
NGUY N KHƯƠNG DUY
GIAO TH C QU N LÝ M NG VÀ CÔNG NGH D CH
V WEB TH C HI N KHAI THÁC ðƯ NG DÂY
THUÊ BAO
LU N VĂN TH C SĨ KHOA H C
Hà N i – 2011
2. 2
ð I H C QU C GIA HÀ N I
TRƯ NG ð I H C KHOA H C T NHIÊN
------------------------
NGUY N KHƯƠNG DUY
GIAO TH C QU N LÝ M NG VÀ CÔNG NGH D CH
V WEB TH C HI N KHAI THÁC ðƯ NG DÂY THUÊ
BAO
Chuyên ngành: B o ñ m toán h c cho máy tính và h th ng tính toán
Mã s : 60.46.35
LU N VĂN TH C SĨ KHOA H C
NGƯ I HƯ NG D N KHOA H C: PGS.TS. NGUY N H U ðI N
Hà N i – 2011
3. 3
L I C M ƠN
Trư c h t, xin ñư c g i l i c m ơn ñ n th y giáo hư ng d n tôi là PGS Ti n
s Nguy n H u ði n, ngư i ñã giúp ñ tôi trong quá trình nghiên c u hoàn thành
lu n văn này.
Cho phép tôi g i l i c m ơn ñ n Trung tâm ði u hành thông tin, Trung tâm
Tin h c - VNPT Hà n i, ñ c bi t là các anh ch em ñ ng nghi p t i Phòng ði u
hành Qu n lý ch t lư ng, nơi tôi ñang công tác, ñã tích c c tham gia và t o ñi u
ki n ñ tôi ñư c th nghi m, áp d ng các gi i pháp liên quan ñ n ñ tài.
Tôi cũng xin g i l i c m ơn ñ n các b n cùng h c trong khóa ñào t o th c s
chuyên ngành B o ñ m toán h c cho máy tính và các h th ng tính toán khóa 2009-
2011 ñã cung c p các tài li u c n thi t trong quá trình nghiên c u và ñã giúp ñ tôi
r t nhi u trong quá trình h c t p, chu n b lu n án.
Cu i cùng cho phép tôi c m ơn các b n bè, gia ñình ñã giúp ñ , ng h tôi
r t nhi u trong toàn b quá trình h c t p cũng như nghiên c u hoàn thành lu n văn
này.
4. 4
M c l c
Danh m c các b ng bi u .........................................................................................7
Danh m c hình nh .................................................................................................8
CÁC T VI T T T................................................................................................10
M ð U...............................................................................................................12
CHƯƠNG 1 .........................................................................................................14
GIAO TH C QU N LÝ M NG ðƠN GI N...................................................14
1.1. T ng quan giao th c...................................................................................14
1.1.1 L ch s ....................................................................................................14
1.1.2 Khái ni m SNMP.....................................................................................14
1.1.3 RFC và các phiên b n SNMP..................................................................15
1.2 Mô hình giao th c.......................................................................................16
1.2.1 Manager và Agent .................................................................................16
1.2.2 Ho t ñ ng c a SNMP............................................................................17
1.2.3 B o m t trong SNMP............................................................................18
1.2.4 C u trúc thông tin qu n lý (SMI) ...........................................................19
1.2.4.1 SMIv1 ................................................................................................20
1.2.4.2 MIB-II (RFC1213) .............................................................................24
1.2.4.3 SMIv2 ................................................................................................29
1.3 ð nh d ng thông ñi p và các phương th c v n hành...................................33
1.3.1 ð nh d ng thông ñi p c a SNMPv1 và 2 ...............................................33
1.3.1.1 ð nh d ng t ng quát............................................................................33
1.3.1.2 ð nh d ng PDU ..................................................................................34
1.3.1.2.1 ð nh d ng PDU chung cho các phương th c....................................34
1.3.1.2.2 Ki u PDU và tr ng thái l i...............................................................35
1.3.1.2.3 ð nh d ng Trap-PDU.......................................................................37
1.3.1.2.4 ð nh d ng GetBulkRequest-PDU SNMPv2c ...................................38
1.3.1.3 ð nh d ng thông ñi p SNMP Version 3 (SNMPv3)............................39
1.3.2 Các phương th c ...................................................................................42
1.3.2.1 Phương th c Get (GetRequest):..........................................................43
1.3.2.2 GetNextRequest:.................................................................................43
1.3.2.3 SetRequest:.........................................................................................44
1.3.2.4 GetResponse:......................................................................................44
1.3.2.5 GetBulkRequest:.................................................................................44
1.3.2.6 Trap....................................................................................................45
1.3.2.7 SNMP Notification.............................................................................46
1.3.2.8 SNMP Inform.....................................................................................47
5. 5
1.3.2.9 SNMP Report.....................................................................................47
1.4 S d ng SNMP4J API xây d ng M t s phương th c SNMP ......................47
CHƯƠNG 2 .........................................................................................................48
CÔNG NGH D CH V WEB ..........................................................................48
2.1 Khái ni m và ki n trúc d ch v Web.................................................................48
2.1.1 Khái ni m. ...................................................................................................48
2.1.2 Ki n trúc.......................................................................................................48
2.1.2.1 Roles ..................................................................................................48
2.1.2.2 Ch ng giao th c .................................................................................49
2.2 Các d ng thông ñi p XML...............................................................................50
2.2.1 SOAP ....................................................................................................50
2.2.2 ð c t SOAP .........................................................................................51
2.2.3 SOAP Request.......................................................................................52
2.2.4 SOAP Response ....................................................................................53
2.3 Thông ñi p SOAP ............................................................................................53
2.3.1 Envelope................................................................................................53
2.3.2 Header...................................................................................................54
2.3.3 Body......................................................................................................54
2.3.4 Fault ......................................................................................................55
2.3.5 SOAP Encoding ....................................................................................56
2.3.5.1 Ki u vô hư ng....................................................................................56
2.3.5.2 Ki u ph c h p ....................................................................................58
2.3.6 Literal Encoding....................................................................................59
2.3.7 Truy n t i SOAP qua HTTP..................................................................60
2.4 Service Description: WSDL .............................................................................62
2.4.1 Các thành ph n trong file WSDL...........................................................64
2.4.2 Ki u d li u XML Schema....................................................................65
2.5. Service Discovery: UDDI ...............................................................................68
2.5.1 Ho t ñ ng c a UDDI.............................................................................69
2.5.2 Mô hình d li u UDDI ..........................................................................71
2.6 B o m t d ch v Web .......................................................................................74
2.6.1 WS-Security..........................................................................................74
2.6.2 Thông ñi p b o m t SOAP ....................................................................74
2.6.3 Th bài b o m t và ñ nh danh ................................................................75
2.6.4 Th bài b o m t và xác th c ..................................................................76
2.6.5 WS-Federation ......................................................................................76
2.6.6 WS-SecureConversation........................................................................76
6. 6
CHƯƠNG 3 .........................................................................................................78
THI T K HT KHAI THÁC ðƯ NG DÂY THUÊ BAO...............................78
3.1 M t s khai ni m .............................................................................................78
3.1.1 DSLAM, xDSL .....................................................................................78
3.1.2 M ng cung c p d ch v ñi n tho i c ñ nh(PSTN)................................78
3.2 Thuê bao Internet ............................................................................................80
3.2.1 Ch c năng h th ng...............................................................................80
3.2.2 Thi t k h th ng...................................................................................81
3.2.2.1Mô hình và ki n trúc h th ng .............................................................81
3.2.2.1.1 Mô hình h th ng.............................................................................81
3.2.2.1.2 Ki n trúc h th ng ...........................................................................81
3.2.2.2 Bi u ñ ca s d ng .............................................................................82
3.2.2.2.1 Danh sách các tác nhân....................................................................82
3.2.2.2.2 ð c t các Use Case.........................................................................82
3.2.2.3 Bi u ñ l p.........................................................................................84
3.2.2.4 Bi u ñ tu n t ...................................................................................87
3.2.2.5 K t qu tri n khai s d ng..................................................................87
3.3 Thuê bao ñi n tho i c ñ nh.............................................................................89
3.3.1 Ch c năng h th ng...............................................................................89
3.3.2 Thi t k h th ng...................................................................................90
3.3.2.1 Mô hình và ki n trúc h th ng ............................................................90
3.3.2.1.1 Mô hình h th ng.............................................................................90
3.3.2.1.2 Ki n trúc h th ng ...........................................................................90
3.3.2.2 Bi u ñ ca s d ng .............................................................................92
3.3.2.2.1 Các tác nhân ....................................................................................92
3.3.2.2.2 Các ca s d ng.................................................................................92
3.3.2.3 Bi u ñ l p.........................................................................................94
3.3.2.4Bi u ñ tu n t ....................................................................................97
3.3.2.5K t qu tri n khai s d ng...................................................................98
K T LU N..........................................................................................................100
TÀI LI U THAM KH O......................................................................................102
7. 7
Danh m c các b ng bi u
CHƯƠNG 1: GIAO TH C QU N LÝ M NG ðƠN GI N
1.2.4.1 - Các ki u d li u SMIv1...........................................................................24
1.2.4.2 - Mô t MIB-II trong RFC1213..................................................................28
1.2.4.3.1 – ð nh nghĩa m t s ki u d li u m i trong SMIv2.................................30
1.2.4.3.2 -Nh ng c i ti n ñ nh nghĩa ñ i tư ng trong SMIv2................................31
1.2.4.3.3 - Các quy ư c v văn b n cho SMIv2......................................................33
1.3.1.1 - ð nh d ng thông ñi p[4].........................................................................34
1.3.1.2.1 - ð nh d ng chung PDU..........................................................................35
1.3.1.2.2.1 - Ki u PDU..........................................................................................35
1.3.1.2.2.2 - Các giá tr trư ng Error Status trong PDU SNMP..............................37
1.3.1.2.3.1 - ð nh d ng Trap PDU.........................................................................38
1.3.1.2.3.2 - Mô t các Generic trap.......................................................................38
1.3.1.2.4 - ð nh d ng GetBulkRequest-PDU [4]....................................................39
1.3.1.3.1 - ð nh d ng t ng quát thông ñi p SNMPv3.............................................41
1.3.1.3.2 - Msg Flags.............................................................................................42
1.3.1.3.3 Scoped PDU ...........................................................................................42
CHƯƠNG 2: CÔNG NGH D CH V WEB
2.3.4.1 - Mô t các ph n t con trong ph n t fault................................................55
2.3.4.2 - Mô t các giá tr trong ph n t faultCode.................................................56
2.3.5.1 - Các ki u d ng s n ...................................................................................57
2.4.2 - Danh sách các ki u d li u d ng s n trong XML Schema ..........................66
8. 8
Danh m c hình nh
CHƯƠNG 1: GIAO TH C QU N LÝ M NG ðƠN GI N
1.2.1 - M i quan h gi a NMS và agent ................................................................17
1.2.2 - Mô hình ho t ñ ng SNMP.........................................................................17
1.2.4.1 - ð c t MIB theo d ng cây .......................................................................22
1.2.4.3 - C u trúc SMIv2 .......................................................................................30
1.3.1.1 - ð nh d ng t ng quát [5]...........................................................................33
1.3.1.2.1 - ð nh d ng chung PDU..........................................................................34
1.3.1.2.3 - ð nh d ng Trap PDU [4].......................................................................37
1.3.1.2.4 - ð nh d ng GetBulkRequest-PDU [4] ....................................................38
1.3.1.3 - ð nh d ng t ng quát thông ñi p SNMP Version 3 (SNMPv3) .................40
1.3.2.1 - Mô hình truy n thông ñi p c a phương th c get......................................43
1.3.2.5 - Mô hình truy n thông ñi p c a phương th c get-bull...............................45
1.3.2.6 - Mô hình bi u di n s phát sinh trap.........................................................46
CHƯƠNG 2: CÔNG NGH D CH V WEB
2.1.2.1 - Mô t các Role trong ki n trúc m t D ch v Web ....................................49
2.1.2.2 - Mô t ch ng giao th c c a D ch v Web .................................................49
2.2.2 - Mô t mô hình SOAP .................................................................................52
2.3 - Khuôn d ng thông ñi p SOAP.......................................................................53
2.4.1 - ð c t WSDL............................................................................................65
2.5.1.1 - Lu ng thông ñi p trong h th ng gi a máy tr m và nút ñăng ký UDDI...69
2.5.1.2 - Lư c ñ tác nghi p c a UDDI.................................................................70
2.5.2 - Mô hình d li u UDDI ...............................................................................71
2.6.2 - C u trúc m t thông ñi p .............................................................................74
2.6.4 - Mô hình xác th c........................................................................................76
2.6.5 - Mô hình WS-Federation .............................................................................76
CHƯƠNG 3: THI T K HT KHAI THÁC ðƯ NG DÂY THUÊ BAO
3.2.2.1.1 - Mô hình h th ng m r ng khai thác thuê bao Internet .........................81
3.2.2.1.2 – Ki n trúc h th ng................................................................................81
3.2.2.2 - Bi u ñ ca s d ng ..................................................................................82
3.2.2.3 - Bi u ñ l p..............................................................................................84
3.2.2.4 - Bi u ñ tu n t ........................................................................................87
3.2.2.5.1 - Giao di n ño th ch t lư ng..................................................................88
3.2.2.5.2 -Giao di n ñ i t c ñ c ng......................................................................88
3.2.2.5.3 -Giao di n xem tr ng thái và reset c ng ..................................................88
3.2.2.5.4 -Giao di n ki m tra kh năng phát tri n d ch v ......................................88
3.3.2.1.1 – Mô hình tri n khai d ch v Web(webservice).......................................90
3.3.2.1.2.1 - Thông ñi p ñi qua các hàng ñ i tương ng v i các t ng ñài(Host)....91
3.3.2.1.2.2 - Ki n trúc h th ng t ng quát..............................................................91
3.3.2.2 - Bi u ñ ca s d ng ..................................................................................92
3.3.2.3 - Bi u ñ l p..............................................................................................94
9. 9
33.3.2.4.1 - Bi u ñ tu n t g i yêu c u ................................................................97
3.3.3.2.4.2 -Bi u ñ tu n t th c hi n yêu c u.......................................................97
3.3.2.4.3 - Bi u ñ tu n t nh n k t qu .................................................................98
3.3.2.5.1 - Giao di n ño th ch t lư ng..................................................................98
3.3.2.5.2 - Giao di n truy v n thông tin thuê bao ...................................................98
3.3.2.5.3 - Giao di n báo cáo tr ng thái th c hi n treo/khôi ph c n cư c.............99
10. 10
CÁC T VI T T T
ADSL Asymmetric Digital Subscriber Line
ATM Asynchronous Transfer Mode
ASN.1 Abstract Syntax Notation 1
BEEP Blocks Extensible Exchange Protocol
BER Basic Encoding Rules
BGP Border Gateway Protocol
DSLAM Digital Subscriber Line Access Multiplexer
CCITT International Telegraph and Telephone Consultative Comittee
FTP File Tranfer Protocol
HMMP HyperMedia Management Protocol
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
IAB Internet Architecture Board
IANA Internet Assigned Numbers Authority
IETF Intemet Engineering Task Force
IOS Internetwork Operating System
IP Internet Protocol
ITU-T International Telecommunication Union - Telecommunication
Standardization Sector
MIB Managerment Information Base
MTU Maxium Transfer Unit
NMS Network Management System
OID Object Identifier
OMG Object Management Group
PDU Protocol Data Unit
PTTB Phát tri n thuê bao
PSTN Public Switched Telephone Network
11. 11
RADIUS Remote Authentication Dial In User Service
RDBMS Relational Database Management System
RFC Request For Comment
RPC Remote Procedure Call
SAML Security Assertion Markup Language
SHDSL Symmetric High-speed Digital Subscriber Line
SMI Structure of Management Information
SMTP Simple Mail Tranfer Protocol
SNMP Simple Network Management Protocol
SOAP Simple Object Access Protocol
TDM Time-division multiplexing
TCP Transmission Control Protocol
UDDI Universal Description, Discovery and Integration
UDP User Datagram Protocol
URL Uniform Resource Locator
USM User-based Security Model
VDSL Very high bit-rate DSL
XML Extention Markup Language
xDSL ADSL, SHDSL, VDSL, DSL
WSDL Web Service Definition Language
WWW World Wide Webservice
W3C World Wide Web Consortium
12. 12
M ð U
Cùng v i s phát tri n nhanh chóng c a các công ngh m ng truy n t i d
li u và tín hi u tho i, các thi t b tham gia th c hi n truy n t i cũng ngày càng ñư c
phát tri n c v s lư ng, ch t lư ng và công ngh , bên c nh ñó các h th ng ph n
m m qu n lý khai thác theo mô hình qu n lý t p trung ñ qu n lý ñư c s lư ng l n
node m ng cũng ñóng vai trò r t quan tr ng, các h th ng ph n m m chuyên d ng
ñó ñã ñáp ng t t nh ng yêu c u qu n lý, khai thác c a nhà cung c p d ch v . Tuy
nhiên do tính ña d ng ch ng lo i thi t b , m i thi t b có m t ph n m m và phương
th c qu n lý khai thác khác nhau, d n ñ n khó khăn khi t p trung hóa giao di n s a
d ng, m r ng và tích h p v i các h th ng qu n lý và khai thác c a nhà cung c p
d ch v , ñây là v n ñ r t quan tr ng ñ i v i các nhà cung c p d ch v tho i và d ch
v Internet c n ph i gi i quy t nh m nâng cao ch t lư ng d ch v c a mình. D a
trên nh ng ưu ñi m c a công ngh d ch v Web như kh năng s d ng ñư c m i
nơi, m i lúc, vào m i th i ñi m mà không ph thu c vào h th ng n n t ng hay
kho ng cách ñ a lý, không ph i tri n khai cài ñ t phía máy tr m ch s d ng trình
duy t Web, d a trên phương th c giao ti p gi a NMS và thi t cung c p d ch v
Internet b ng SNMP, d a trên ñ c thù k t n i c a các t ng ñài ñi n tho i thông qua
RS232 v i các ph n m m qu n lý và khai thác, nh m kh c ph c nh ng khó khăn
nêu trên, chúng tôi ñ xu t thi t k h th ng ph n m m s d ng công ngh d ch v
Web cho phép m r ng giao ti p v i các h th ng tác nghi p bên ngoài, cho phép
k t n i b ng SNMP v i các thi t b cung c p d ch v Internet, s d ng thi t b
chuy n ñ i giao di n RS232 sang giao di n IP, cho phép th c hi n các l nh c a
t ng ñài b ng trình Telnet client. T ý tư ng thi t k như trên chúng tôi ñã ti n
hành xây d ng h th ng ph n m m trên n n WEB ph c v công tác cung c p và
qu n lý ch t lư ng d ch v internet và ñi n tho i c ñ nh hi n ñang ñư c áp d ng t i
VNPT Hà n i.
V phương di n lý thuy t, lu n văn này s ñi sâu vào tìm hi u giao th c qu n
lý m ng SNMP và mô hình qu n tr m ng d a trên giao th c này, ki n trúc và ñ nh
d ng thông ñi p c a d ch v Web cũng s ñư c gi i thi u các khía c nh chính, có
13. 13
liên quan ñ n vi c xây d ng h th ng trên.
Lu n văn ñư c trình bày trong 3 chương v i các n i dung như sau:
- Chương 1: Giao th c qu n lý m ng ñơn gi n
- Chương 2: Công ngh d ch v Web
- Chương 3: Thi t k h th ng khai thác ñư ng dây thuê bao.
Tuy ñã h t s c c g ng trình bày nh ng n i dung ng n g n, d hi u và ch
y u ñi sâu vào nh ng khái ni m cơ b n, nhưng v n không th tránh ñư c nhi u sai
sót. R t mong b n ñ c thông c m và góp ý ñ lu n văn ñư c hoàn thi n hơn.
Trân tr ng c m ơn!
Nguy n Khương Duy
14. 14
CHƯƠNG 1
GIAO TH C QU N LÝ M NG ðƠN GI N
1.1. T ng quan giao th c
1.1.1 L ch s
Ngày nay, vi c qu n lý, khai thác m t m ng lư i bao g m các router, các
switch, máy ch , tr lên khó khăn và ph c t p. Ngoài vi c ph i ñ m b o t t c các
thi t b ch y liên t c mà còn ph i t i ưu hi u su t làm vi c c a t ng thi t b . ði u
này có th ñư c h tr b i giao th c qu n lý m ng ñơn gi n:SNMP. SNMP ñư c
gi i thi u năm 1988 b i T ch c ki n trúc Internet IAB[6], ñ ñáp ng nhu c u
qu n lý các thi t b s d ng giao th c IP ngày càng tăng. SNMP cung c p cho
ngư i s d ng m t t p ñư c g i là “ñơn gi n” các thao tác cho phép qu n lý các
thi t b t xa.
Trư c s phát tri n không ng ng gia tăng và ph c t p c a m ng internet
tháng 4 năm 1993, SNMPv2 tr thành tiêu chu n qu n lí m ng ñơn gi n thay th
SNMPv1. SNMPv2 b sung m t s v n ñ mà SNMPv1còn thi u như nh n th c và
b o m t. Tuy nhiên, SNMPv2 khá ph c t p và khó tương thích v i SNMPv1[4].
Năm 1997, SNMPv3 ra ñ i nh m tương thích v i các giao th c ña phương
ti n trong qu n lí m ng, phát tri n trên n n java và ñưa ra ki n trúc và giao th c m i
như giao th c qu n lí ña phương ti n HMMP.
1.1.2 Khái ni m SNMP
SNMP là giao th c qu n lý m ng ñơn gi n d ch t c m t “Simple Network
Management Protocol”. Giao th c này ñư c s d ng r t ph bi n ñ giám sát và
ñi u khi n các thi t b m ng IP. SNMP là m t thành ph n c a t p h p các giao th c
truy n thông phù h p v i Internet và các m ng tương t ñư c ñ nh nghĩa b i IETF.
Nó bao g m m t t p h p các tiêu chu n qu n lý m ng, giao th c t ng ng d ng,
lư c ñ cơ s d li u và t p h p các ñ i tư ng d li u[13].
SNMP là giao th c ñơn gi n, do nó ñư c thi t k ñơn gi n trong c u trúc
thông ñi p và th t c ho t ñ ng, và còn ñơn gi n trong b o m t (ngo i tr SNMP
version 3).
15. 15
Giao th c SNMP cung c p m t phương th c ñơn gi n nh m qu n lý t p
trung m ng TCP/IP. Ngư i qu n tr có th thông qua giao th c này ñ qu n lý các
ho t ñ ng hay thay ñ i các tr ng thái h th ng m ng.
Giao th c SNMP ñư c s d ng ñ qu n lý các h th ng Unix, Window…,
các thi t b m ng như router, gateway, firewall, switch…, thông qua m t s ph n
m m cho phép qu n tr v i SNMP[6].
Ví d cho vi c s d ng h th ng qu n tr SNMP v i giao th c SNMP trên
ph n m m v i các ng d ng trong h th ng m ng:
Theo dõi t c ñ ñư ng truy n c a m t router, bi t ñư c t ng s byte
truy n/nh n
L y thông tin máy ch có bao nhiêu c ng, m i c ng còn tr ng bao nhiêu
T ñ ng nh n c nh báo khi thi t b switch có 1 c ng b down
ði u khi n t t các c ng trên switch.
1.1.3 RFC và các phiên b n SNMP
IETF là t ch c ñã ñưa ra chu n SNMP thông qua các RFC.
SNMP version 1: Chu n c a giao th c SNMP ñư c ñ nh nghĩa trong RFC
1157 và là m t chu n ñ y ñ c a IETF. V n ñ b o m t c a SNMP v1 d a
trên nguyên t c c ng ñ ng, không có nhi u m t kh u, chu i văn b n thu n và
cho phép b t kỳ m t ng d ng nào ñó d a trên SNMP có th hi u các chu i
này ñ có th truy c p vào các thi t b qu n lý. Có 3 quy n tiêu bi u: read-
only, read-write và trap[6].
SNMP version 2: Phiên b n này d a trên các chu i “community”. Do ñó
phiên b n này ñư c g i là SNMPv2c, ñư c ñ nh nghĩa trong RFC 1905,
1906, 1907, và ñây ch là b n th nghi m c a IETF. M c dù ch là th
nghi m nhưng nhi u nhà s n xu t ñã ñưa nó vào th c nghi m[6].
SNMP version 3: Là phiên b n ti p theo ñư c IETF ñưa ra. Nó ñư c khuy n
ngh làm b n chu n, ñư c ñ nh nghĩa trong RFC1905, RFC1906, RFC1907,
RFC2571, RFC2572, RFC2573, RFC2574 vàRFC 2575. Nó h tr các ki u
truy n thông riêng tư và có xác nh n gi a các th c th [6].
16. 16
1.2 Mô hình giao th c
1.2.1 Manager và Agent
Trong SNMP có 3 v n ñ c n quan tâm: Manager, Agent và MIB.
MIB là cơ s d li u dùng ph c v cho Manager và Agent.
Manager:
Manager là m t máy tính có ch y các chương trình có th th c hi n m t s
ch c năng qu n lý m ng. Manager có th xem như là NMS. NMS có kh năng thăm
dò và thu th p các c nh báo t các Agent trong m ng. Thăm dò trong qu n lý m ng
là cách ñ t ra các câu truy v n ñ n các Agent ñ có ñư c thông tin v thi t b m ng
mà agent ñang thư ng chú. Các c nh báo c a Agent là cách mà Agent báo v i NMS
khi có s c x y ra. C nh b o c a Agent ñư c g i m t cách không ñ ng b , không
n m trong vi c tr l i truy v n c a NMS. NMS d a trên các thông tin tr l i c a
Agent ñ có các phương án giúp m ng ho t ñ ng hi u qu hơn. Ví d khi ñư ng
dây T1 k t n i t i Internet b gi m băng thông nghiêm tr ng, router s g i m t
thông tin c nh báo t i NMS. NMS s có m t s hành ñ ng như là lưu l i thông tin
ñó, giúp ta có th bi t vi c gì ñã x y ra v i thi t b . Các hành ñ ng này c a NMS
ph i ñư c cài ñ t trư c[6].
Agent:
Agent là m t ph n trong các chương trình ch y trên các thi t b m ng c n qu n
lý. Nó có th là m t chương trình ñ c l p như các deamon trong Unix, ho c ñư c
tích h p vào h ñi u hành như IOS c a Cisco trên router. Ngày nay, ña s các thi t
b ho t ñ ng trong m ng IP ñư c cài ñ t SMNP agent. Các nhà s n xu t ngày càng
mu n phát tri n các agent trong các s n ph m c a h ñ công vi c c a ngư i qu n
lý h th ng hay qu n tr mang ñơn gi n hơn. Các agent cung c p thông tin cho NMS
b ng cách lưu tr các ho t ñ ng khác nhau c a thi t b . M t s thi t b thư ng g i
m t thông báo “t t c ñ u bình thư ng” khi nó chuy n t m t tr ng thái x u sang
m t tr ng thái t t. ði u này cho phép xác ñ nh khi nào thì m t s c ñư c gi i
quy t[6].
17. 17
Hình 1.2.1 - M i quan h gi a NMS và agent
1.2.2 Ho t ñ ng c a SNMP
Ho t ñ ng c a SNMP theo mô hình sau:
Hình 1.2.2 - Mô hình ho t ñ ng SNMP
SNMP s d ng UDP ñ truy n t i d li u gi a các Manager và các Agent,
nó s d ng c ng 161 ñ g i và nh n thông ñi p, c ng 162 ñ nh n trap t thi t b
ñang theo dõi[6].
18. 18
1.2.3 B o m t trong SNMP
SNMPv1 và SNMPv2 s d ng khái ni m c a Community ñ thi t l p xác
th c gi a Manager và Agent. M t Agent ñư c c u hình v i 3 Community: read-
only, read-write, và trap. Gi ng như tên c a nó, read-only cho phép ch ñ c giá tr
d li u nhưng không cho phép s a và kh i t o d li u. Ví d cho phép ta ñ c s gói
ñư c truy n qua c ng c a router nhưng không cho phép ta kh i t o l i giá tr c a b
ñ m này. Read-write cho phép chúng ta ñ c và s a giá tr d li u, v i Community
này ta có th ñ c s gói truy n qua c ng và kh i t o l i b ñ m như trong ví d
trên, và s ki n kh i t o l i ho c làm m t s hành ñ ng khác là s thay ñ i c u hình
c a router. Cu i cùng, chu i community trap cho phép ta nh n các trap(thông báo
không ñ ng b ) t agent[6].
Do s d ng community như là m t kh u nên SNMPv1 là giao th c r t y u v
b o m t. Các gói tin ñư c g i ñi dư i d ng thu n văn b n nên không phòng ch ng
ñư c ki u t n công b ng cách nghe lén(sniffer).
SNMPv2 c g ng gi i quy t v n ñ này d a trên các cách ti t c n ch t ch
hơn. M t phiên b n g i là SNMPv2 party-based ti p c n theo hư ng: Tùy t ng yêu
c u v xác th c và tính b o m t mà có th s d ng các kênh khác nhau ñ trao ñ i
thông tin. Tuy nhiên, v i nhi u n l c ñ tăng cư ng b o m t trong SNMP ñã d n
t i ba phiên b n không tương thích v i nhau là: SNMPv2p hay SNMPv2 party-
based, SNMPv2u hay SNMPv2 user-based và SNMPv2*. Các phiên b n này ñã
th t b i trong vi c tìm ñư c s h tr c a các nhà s n xu t và d ng l i b n th o,
r i chuy n sang quá kh . Cu i cùng, m t s th a hi p ñư c th c hi n và k t quà là
chu n SNMPv2c hay SNMP community-string-based. ðây là m t bư c t t lùi khi
quay l i s d ng community như SNMPv1, tuy nhiên chu n này l i ñư c h tr c a
IETF cũng như cách nhà s n xu t. Trong tài li u này, khi nói ñ n SNMPv2 là ám
ch SNMPv2c. V n ñ v b o m t ch ñư c gi i quy t tri t ñ ch khi xu t hi n
phiên b n SNMPv3[2].
SMNPv3 ra ñ i ch y u ñ gi i quy t v n ñ còn h n ch v b o m t trong
hai phiên b n trư c. Phiên b n này không có s thay ñ i v giao th c, không có
19. 19
thêm PDU m i, ch có m t vài quy chu n m i, khái ni m và thu t ng m i, cũng
không n m ngoài vi c làm tăng tính chính xác. Thay ñ i quan tr ng nh t trong
SNMPv3 này là s d ng khái ni m SNMP entity thay cho c manager và agent.
M i SNMP entity g m m t SNMP engine và m t ho c nhi u SNMP application. S
thay ñ i v khái ni m này quan tr ng ch thay ñ i v ki n trúc, tách bi t hai ph n
c a h th ng SNMP, giúp cho vi c th c hi n các chính sách b o m t. ði m quan
tr ng là SNMPv3 v n tương thích ngư c v i các phiên b n trư c[2].
1.2.4 C u trúc thông tin qu n lý (SMI)
SMI cung c p m t phương pháp ñ ñ nh nghĩa các ñ i tư ng b qu n lý và
cách ñ i x v i chúng. M t Agent s h u m t danh sách các ñ i tư ng mà nó theo
dõi. M t trong nh ng ñ i tư ng là tr ng thái c a m t C ng(Interface) c a m t
router(ví d up, down, testing). Danh sách chung này ñ nh nghĩa các thông tin mà
NMS có th s d ng ñ xác ñ nh s c kh e c a toàn thi t b có agent h tr [6].
MIB có th xem như m t cơ s d li u qu n lý các ñ i tư ng mà Agent theo
dõi. B t kỳ ki u tr ng thái ho c th ng kê thông tin có th truy nh p b i NMS ñ u
ñư c ñ nh nghĩa trong MIB. SMI cung c p phương pháp qu n lý ñ i tư ng trong
khi MIB thì ñ nh nghĩa(s d ng cú pháp SMI) chính các ñ i tư ng ñó. Gi ng như
m t t ñi n trình di n cách ñánh v n m t t và ñưa ra ý nghĩa ho c ñ nh nghĩa c a
nó, m t MIB ñ nh nghĩa m t tên dư i d ng văn b n cho m t ñ i tư ng b qu n lý và
gi i thích ý nghĩa c a nó[6].
M t Agent có th th c thi r t nhi u MIB, nhưng t t c các Agent th c thi
m t MIB ñ c bi t ñư c g i là MIB-II(RFC 1213, MIB-I là phiên b n g c c a MIB-
II). Chu n này ñ nh nghĩa các bi n cho nh ng thông tin ki u như các s li u th ng
kê v m t c ng(t c ñ , MTU, octet(M t octet là 8 bit, nó là m t ñơn v cơ s truy n
trong m ng IP ) g i, octet nh n,..) cũng như nhi u th khác liên quan ñ n chính h
th ng ñang cài ñ t Agent.[6].
Nh ng lo i thông tin gì khác có th có ích ñ thu th p? Th nh t, nhi u d
th o và các tiêu chu n ñ xu t ñã ñư c phát tri n ñ giúp qu n lý nh ng th như
20. 20
Frame relay, ATM, FDDI, và d ch v (Mail, Domain Name System (DNS), vv).
M t s ví d v nh ng MIBs và RFC[6]:
ATM MIB (RFC 2515)
Frame Relay DTE Interface Type MIB (RFC 2115)
BGP Version 4 MIB (RFC 1657)
RDBMS MIB (RFC 1697)
RADIUS Authentication Server MIB (RFC 2619)
Mail Monitoring MIB (RFC 2789)
DNS Server MIB (RFC 1611)
Nhưng nhà s n xu t cũng như ngư i dùng có th ñ nh nghĩa các bi n MIB
riêng cho h trong t ng tình hu ng qu n lý c a h .
1.2.4.1 SMIv1
RFC1155 mô t c u trúc c a m t t p tin MIB, c u trúc này g i là SMI
(Structure of Management Information). Sau này ngư i ta m r ng thêm c u trúc
c a MIB thành SMI version 2, và phiên b n trong RFC1155 ñư c g i là SMIv1.
Trư c khi ñi vào tìm hi u c u trúc c a MIB, chúng ta ph i ñi sơ lư c qua m t chu n
g i là ASN.1 . ASN.1 (Abstract Syntax Notation One) là chu n mô t các lu t mã
hóa d li u cho các h th ng truy n thông s . M t trong 3 h th ng lu t mã hóa
trong ASN.1 là BER (Basic Encoding Rules). BER ñư c SNMP dùng làm phương
pháp mã hóa d li u. Vì v y trong các RFC liên quan ñ n SNMP ta hay b t g p
dòng ghi chú “use of the basic encoding rules of ASN.1”. BER mô t nhi u ki u
d li u như : BOOLEAN, INTEGER, ENUMERATED, OCTET STRING,
CHOICE, OBJECT IDENTIFIER, NULL, SEQUENCE, …. [6]
RFC1155 mô t m i ñ i tư ng bao g m 3 ph n : Name, Syntax và Encoding.
Name hay OID(Object identifier)
Name ho c OID là ñ nh nghĩa m t ñ i tư ng qu n lý, có ki u OBJECT
IDENTIFIER. Name thư ng là m t chu i th t các s nguyên ho c chu i ký t
bi u di n các nút (node) c a m t cây t g c ñ n ng n[6].
G c (root node) trong MIB không có Name. Dư i root là 3 node con :
21. 21
- ccitt(0) : do CCITT qu n lý (Consultative Committee for International
Telephone and Telegraph).
- iso(1) : do t ch c ISO qu n lý (International Organization for
Standardization).
- joint-iso-ccitt(2) : do c ISO và CCITT qu n lý.
- Dư i node iso(1), t ch c ISO thi t k 1 node dành cho các t ch c khác là
org(3).
- Dư i org(3) có nhi u node con, m t node ñư c dành riêng cho US
Department of Defense, dod(6). B Qu c phòng M ñư c coi là nơi sáng l p
ra m ng Internet,
- Dư i dod(6) ch có 1 node dành cho c ng ñ ng internet ngày nay, là node
internet(1).
T t c m i th thu c v c ng ñ ng Internet ñ u n m dư i
.iso.org.dod.internet, m i ñ i tư ng c a các thi t b TCP/IP ñ u b t ñ u v i ti n t
.1.3.6.1 (d u ch m ñ u tiên bi u di n r ng .iso là cây con c a root, và root thì không
có Name) RFC1155 ñ nh nghĩa các cây con như sau [6]:
internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
directory OBJECT IDENTIFIER ::= { internet 1 }
mgmt OBJECT IDENTIFIER ::= { internet 2 }
experimental OBJECT IDENTIFIER ::= { internet 3 }
private OBJECT IDENTIFIER ::= { internet 4 }
- directory : dành riêng cho tương lai n u d ch v OSI Directory ñư c s d ng
trên internet.
- mgmt (management) : t t c các MIB chính th c c a internet ñ u n m dư i
mgmt. M i khi m t RFC m i v MIB ra ñ i thì t ch c IANA (Internet
Assigned Numbers Authority) s c p cho MIB ñó m t object-identifier n m
dư i mgmt.
- experimental : dùng cho các ñ i tư ng ñang trong quá trình th nghi m,
ñư c IANA c p phát.
- private : dùng cho các ñ i tư ng do ngư i dùng t ñ nh nghĩa, tuy nhiên các
22. 22
ch s cũng do IANA c p. T t c các ñơn v cung c p h th ng m ng có th
ñăng ký object-identifier cho s n ph m c a h , chúng ñư c c p phát dư i
node private.enterprises.
enterprises OBJECT IDENTIFIER ::= { private 1 }
Hình 1.2.4.1 - ð c t MIB theo d ng cây
Ví d : ch s enterprises private c a Cisco là 9 và OID là
iso.org.dod.internet.private.enterprises.cisco, ho c 1.3.6.1.4.1.9.
Ki u và Cú pháp (Syntax )
Ki u d li u c a ñ i tư ng c n qu n lý ñư c ñ nh nghĩa trong ASN.1(
Abstract Syntax Notation One). ASN.1 ch ra cách d li u ñư c bi u di n và truy n
ñi gi a Manager và Agent. Các thông tin mà ASN.1 thông báo là ñ c l p v i h
ñi u hành. ði u này giúp m t máy tính ch y WindowNT có th liên l c v i m t
máy ch y Sun SPARC d dàng[6].
Cú pháp ñư c l y t chu n ASN.1 nhưng không ph i t t c các ki u ñ u
23. 23
ñư c h tr . SMIv1 ch h tr 5 ki u nguyên th y (primitive types) l y t ASN.1 và
6 ki u ñ nh nghĩa thêm (defined types)[6].
Ki u d li u Mô t
INTEGER M t s 32 bit ñư c s d ng ñ xác ñ nh các ki u li t kê trong
ng c nh c a m t ñ i tư ng qu n lý. VD: tr ng thái c a m t
c ng trên router có th có các giá tr interger: 1(up), 2(down),
3(testing). Theo RFC1155
OCTET STRING M t chu i s không ho c nhi u octet (thư ng ñư c g i là byte)
thư ng ñư c s d ng ñ bi u di n cho các chu i văn b n,
nhưng cũng ñôi khi ñư c s d ng ñ bi u di n cho ñ a ch v t
lý
Counter M t s 32-bit v i giá tr nh nh t là 0 và giá tr l n nh t 232 - 1
(4294967295). Khi ñ t ñư c giá tr lơn nh t, nó quay l i b t ñ u
t 0. Nó ch y u ñư c s d ng ñ theo dõi các thông tin như s
lư ng octet g i và nh n ho c s lư ng các l i trên m t c ng
m ng.
OBJECT
IDENTIFIER
M t chu i d u ch m th p phân bi u di n m t ñ i tư ng qu n lý
trong cây ñ i tư ng. Ví d , 1.3.6.1.4.1.9 bi u di n OID
enterprises riêng c a Cisco System.
NULL Không ñư c s d ng trong SNMP.
SEQUENCE ð nh nghĩa danh sách ch a 0 ho c các ki u d li u ASN.1
khác.
SEQUENCE OF ð nh nghĩa m t ñ i tư ng qu n lý ñư c t o ra t ki u
SEQUENCE
IpAddress Ki u ñ a ch internet 32-bit (ipv4), g m 4 octet liên t c.
NetworkAddress Gi ng như ñ a ch ip, nhưng có th bi u di n các ki u ñ a ch
m ng khác.
Gauge Ki u s nguyên không âm 32-bit, có th tăng ho c gi m nhưng
không tăng quá giá tr t i ña 232
- 1. T c ñ c ng m ng trên
24. 24
router ñư c ño b ng giá tr Gause.
TimeTicks ki u s nguyên t 0- 232
- 1, ch kho ng th i gian trôi qua k t
m t th i ñi m nào ñó, tính b ng ph n trăm giây. VD t khi h
th ng kh i ñ ng ñ n hi n t i là 1000 giây thì giá tr
sysUpTime=100000
Opaque Cho phép b t kỳ m t giá tr có ki u b t kỳ, mã hóa theo quy
cách ASN.1 ñư c ñóng thành t ng OCTET-STRING.
B ng 1.2.4.1 - Các ki u d li u SMIv1
Encoding
Mã hóa các ñ i tư ng qu n lý thành các chu i octet dùng BER (Basic
Encoding Rules). BER xây d ng cách mã hóa và gi i mã ñ truy n các ñ i tư ng
qua các môi trư ng truy n như Ethernet.
1.2.4.2 MIB-II (RFC1213)
RFC1155 mô t cách trình bày m t t p MIB như th nào ch không ñ nh
nghĩa các ñ i tư ng. RFC1213 là m t chu n ñ nh nghĩa nhánh MIB n m dư i
iso.org.dod.internet.mgmt.mib-2 (t t nhiên ph i theo c u trúc mà RFC1155 quy
ñ nh)[6].
RFC1156 là ñ c t MIB chu n cho các thi t b TCP/IP, ñư c coi là Internet-
Standard Mib (MIB-I). RFC1213 là ñ c t MIB chu n version 2, thư ng g i là
MIB-II. Chú ý phân bi t MIB-I và MIB-II là các chu n ñ c t ñ nh nghĩa c a các
ñ i tư ng, còn SMIv1 và SMIv2 là ñ c t c u trúc c a t p tin MIB. MIB-I và MIB-
II s d ng c u trúc c a SMIv1[6].
MIB-II là m t trong nh ng MIB ñư c h tr r ng rãi nh t. N u m t thi t b
ñư c tuyên b là có h tr SNMP thì hãng s n xu t ph i ch ra nó h tr các RFC
nào, và thư ng là RFC1213. Nhi u ngư i ch bi t thi t b c a mình “có h tr
SNMP” nhưng không rõ h tr các RFC nào, khi dùng ph n m m giám sát SNMP
h tr RFC1213 ñ giám sát thi t b nhưng không thu ñư c k t qu . Lý do là ph n
m m thì h tr RFC1213 nhưng thi t b thì không. V trí c a MIB-II trong MIB như
trong hình 3[6]:
25. 25
Các ki u d li u m i ñư c ñ nh nghĩa trong MIB-II g m :
Display String: k th a t ki u OCTET STRING nhưng ch bao g m các ký
t in ñư c (printable characters) và dài không quá 255 ký t .
Physical Address : gi ng ki u OCTET STRING, ñư c dùng ñ bi u di n ñ a
ch v t lý c a thi t b .
Tên Ki u, Cú
pháp
Mô t
mib-2(1) Internet-standard mib version 2 (RFC1213)
OID : .1.3.6.1.2.1
system(1)
sysDescr(1) DisplaySt
ring
Dòng văn b n mô t node hi n ñang h tr
mib này, có th bao g m tên, version,
ki u ph n c ng, h ñi u hành, …
sysObjectID(2)
Object
identifier
ð nh danh ñã ñư c ñăng ký c a h ng s n
xu t h th ng. Giá tr này ph i khó nh m
l n và miêu t ñư c ñây là lo i thi t b gì
sysUpTime(3) TimeTick
s
Th i gian tính t khi module qu n tr m ng
c a h th ng kh i ñ ng l i (ki u
TimeTicks tính b ng ph n trăm giây)
sysContact(4) DisplaySt
ring
Dòng văn b n ch ñ nh ngư i c n liên l c
n u có
các v n ñ ñ i v i h th ng
sysName(5) DisplaySt
ring
Tên ñư c gán cho node ñ qu n lý
sysLocation(6) DisplaySt
ring
V trí v t lý ñ t node
26. 26
sysServices(7) Integer Ch ra node có th ho t ñ ng các layer
nào c a OSI. Giá tr c a nó là t ng t t c
các 2(Layer-1) v i Layer là s l p OSI. VD
m t router ho t ñ ng l p 3 thì giá tr này
s là 2(3-1)=4
interfaces(2)
ifNumber(1) Integer T ng s giao ti p m ng hi n có trong h
th ng
ifTable(2) Sequence Danh sách các thông tin c a t ng interface
ifEntry(1) ifEntry M t entry ch a các object mang thông tin
c a m t interace trong danh sách
ifIndex(1) integer Giá tr duy nh t c a m i interface, giá tr
này ch y t 1 ñ n ifNumber, và không thay
ñ i ít nh t cho ñ n khi h th ng kh i ñ ng
l i
ifDescr(2) DisplaySt
ring
Dòng text mang thông tin c a m t interface
fType(3) Integer Ki u interface, d a vào giao th c l p
physical/link c a interface. VD :
ethernetCsmacd(6), fddi(15), e1(19),
atm(37), sonet(39), v35(45)
ifMtu(4) Integer Kích thư c c a datagram l n nh t có th
truy n/nh n trên interface
ifSpeed(5) Gauge Băng thông hi n t i c a interface, tính b ng
bit per second
ifPhysAddress(6) Physical
Address
ð a ch v t lý c a interface
ifAdminStatus(7) Integer Tr ng thái mong mu n c a interface
ifOperStatus(8) Integer Tr ng thái ho t ñ ng th c t c a interface
27. 27
ifLastChange(9) TimeTick
s
Giá tr c a sysUpTime t i th i ñi m
interface ñi vào tr ng thái ho t ñ ng như
hi n t i
ifInOctets(10) Counter T ng s octet ñã nh n trên interface
ifInUcastPkts(11
)
Counter S gói unicast ñư c ñưa ñ n giao th c l p
cao hơn
ifInNUcastPkts(1
2)
Counter S gói nonunicast ñư c ñưa ñ n giao th c
l pcao hơn (broadcast, multicast)
ifInDiscards(13) Counter S gói tin nh n ñư c b h y (k c các
gói không b l i) ñ ngăn không cho chúng
ñ n t ng x lý cao hơn, vd khi tràn b ñ m
nh n.
ifInErrors(14) Counter S gói tin nh n ñư c có ch a l i
ifInUnknownPro
tos(15)
Counter S gói tin nh n ñư c t interface nhưng b
discard vì nó thu c giao th c không ñư c
h tr
ifOutOctets(16) Counter T ng s octet ñã truy n ra interface
ifOutUcastPkts(1
7)
Counter T ng s gói tin unicast mà t ng giao th c
cao hơn yêu c u truy n ra (k c các gói s
b discard)
ifOutNUcastPkts
(18)
Counter T ng s gói tin non-unicast mà t ng giao
th c cao hơn yêu c u truy n ra (k c các
gói s b discard)
ifOutDiscards(19
)
Counter S gói tin c n truy n ra b h y (k c các
gói không b l i) ñ ngăn không cho chúng
ñ n t ng x lý cao hơn, vd khi tràn b ñ m
phát
28. 28
ifOutErrors(20) Counter S gói tin không th truy n ra do có l i
ifOutQLen(21) Gauge ð dài c a hàng ñ i thông ñi p truy n ñi
ifSpecific(22) Object
identifier
Tham chi u ñ n ñ nh nghĩa mib dành riêng
cho lo i media c a interface. VD n u
interface thu c
ethernet thì giá tr này ch ra tài li u mô t
cá object c a riêng ethernet. N u node
không cung
c p ñư c thông tin này thì giá tr c a
ifSpecific ph i là .0.0
B ng 1.2.4.2 - Mô t MIB-II trong RFC1213
Sau khi các OID ñư c ñ nh nghĩa, chúng ta m i th c s ñ nh nghĩa ñ i
tư ng. m i ñ nh nghĩa ñ i tư ng ñ u có ñ nh d ng ñư c mô t trong RFC1212[6].
<name> OBJECT-TYPE
SYNTAX <datatype>
ACCESS <either read-only, read-write, write-only, or not-accessible>
STATUS <either mandatory, optional, or obsolete>
DESCRIPTION"Textual description describing this particular
managed object."::= { <Unique OID that defines this object> }
Ví d ñ nh nghĩa cho object ifTable trong RFC1213 như sau:
ifTable
OBJECT-TYPE
SYNTAX SEQUENCE OF IfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION "A list of interface entries. The number of entries is
given by the value of ifNumber." ::= { interfaces 2 }
OBJECT-TYPE bao g m các trư ng :
29. 29
- SYNTAX : ki u c a ñ i tư ng, m t trong các primitive types ho c defined
types trên.
- ACCESS : m c truy nh p c a ñ i tư ng, mang m t trong các giá tr read-
only, read-write, write-only, not-accessible.
- STATUS : mang m t trong các giá tr mandatory (b t bu c ph i h tr ),
optional (có th h tr ho c không), obsolete (ñã b thay th ). M t Agent n u
h tr m t chu n MIB nào ñó thì b t bu c ph i h tr t t c các ñ i tư ng có
status=mandatory, còn status=optional thì có th h tr ho c không.
- DESCRIPTION : dòng gi i thích cho ý nghĩa c a ñ i tư ng.
C u trúc c a MIB là d ng cây, ñ xác ñ nh OID c a m t ñ i tư ng ta ph i ñi t
g c ñ n ñ i tư ng ñó[6].
Ví d 1: bandwidth c a interface th 3 trên thi t b thì có OID là
.1.3.6.1.2.1.2.2.1.5 tương ñương
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifSpeed.3
Chú ý: m c dù MIB-II ñã quy ñ nh index c a t ng interface ph i liên t c và ch y t
1 ñ n ifNumber, nhưng trong th c t nhi u thi t b không ñ t index liên t c mà ñ t
theo cách riêng ñ d qu n lý. Do ñó ñ i v i C2950 thì interface th 3 có index là 3,
nhưng ñ i v i thi t b khác thì interface th 3 có th có index khác 3, th m chí là s
r t l n. Ch ng h n m t switch có nhi u card, m i card có 12 port thì port1-card1 có
index là 101, port12-card1 có index là 112, port1-card2 có index là 201[6].
1.2.4.3 SMIv2
SMIv2 m r ng cây ñ i tư ng SMI b ng cách b sung nhánh snmpv2 vào
cây con internet, b sung m t vài ki u d li u m i và t o ra m t s thay ñ i khác.
Hình 4 bi u di n cách các ñ i tư ng snmpv2 t o thành nhánh m i v i OID là
1.3.6.1.6.3.1.1, ho c
iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.[6]
30. 30
Hình 1.2.4.3 - C u trúc SMIv2
Ki u d li u Mô t
Integer32 Gi ng như INTEGER.
Counter32 Gi ng như Counter.
Gauge32 Gi ng như Gauge.
Unsigned32 Bi u di n giá tr th p phân trong kho ng 0 t i 232
– 1
Counter64 Tương t Counter32, nhưng giá tr t i thi u là
18,446,744,073,709,551,615. Counter64 là ý tư ng kh c ph c tình
hu ng khi m t Counter32 có th tr v 0 quá nhanh.
BITS M t dãy các bit không âm.
B ng 1.2.4.3.1 – ð nh nghĩa m t s ki u d li u m i trong SMIv2.
ð nh nghĩa m t ñ i tư ng trong SMIv2 ñư c thay ñ i sáng s a hơn SMIv1.
Có m t s tùy ch n các lĩnh v c m i, ñem l i cho ta ki m soát nhi u hơn cách ñ i
tư ng ñư c truy c p như th nào, cho phép b n gia tăng thêm b ng b ng cách thêm
các c t, và cho phép ta mô t t t hơn. Sau ñây là cú pháp c a m t ñ nh nghĩa m t
ñ i tư ng trong SMIv2. Nhưng thay ñ i ñư c tô ñ m[6]:
31. 31
<name> OBJECT-TYPE
SYNTAX <datatype>
UnitsParts <Optional, see below>
MAX-ACCESS <See below>
STATUS <See below>
DESCRIPTION
"Textual description describing this particular managed object."
AUGMENTS { <name of table> }
::= { <Unique OID that defines this object> }
ð nh nghĩa
C i ti n
Mô t
UnitsParts M t mô t d ng văn b n c a các ñơn v (giây, mini giây, …) ñư c
s d ng ñ bi u di n ñ i tư ng.
MAX-
ACCESS
M t ki u truy nh p c a OBJECT-TYPE có th là MAX-ACCESS
trong SNMPv2. Các tùy ch n h p l cho MAX-ACCESS là read-
only, read-write, read-create, not-accessible, và accessible-for-
notify.
STATUS M nh ñ này ñư c m r ng ñ cho phép các t khóa current,
obsolete, và deprecated. current trong SNMPv2 thì gi ng như
mandatory trong SNMPv1 MIB.
AUGMENTS Trong m t s trư ng h p, nó r t h u ích ñ thêm m t c t vào m t
b ng hi n có. M nh ñ AUGMENTS cho phép b n m r ng m t
b ng b ng cách thêm m t ho c nhi u c t, ñư c bi u di n b ng m t
s ñ i tư ng khác. m nh ñ này yêu c u tên c a b ng ñ i tư ng s
tăng thêm.
B ng 1.2.4.3.2 -Nh ng c i ti n ñ nh nghĩa ñ i tư ng trong SMIv2
SMIv2 ñ nh nghĩa m t ki u trap m i ñư c g i là NOTIFICATION-TYPE
(s ñư c mô t m c sau). SMIv2 cũng gi i thi u các quy ư c m i v d ng văn b n
32. 32
cho phép các ñ i tư ng qu n lý ñư c t o ra b ng cách tr u tư ng hơn. RFC2579
ñ nh nghĩa quy ư c v văn b n ñư c s d ng trong SNMPv2, ñư c li t kê trong
b ng 0.3 dư i ñây[6]:
Quy ư c Mô t
DisplayString M t chu i các ký t NVT ASCII. M t DisplayString có th có
ñ dài l n h n 255 ký t .
PhysAddress M t ñ a ch m c v t lý, bi u di n như m t OCTET STRING.
MacAddress ð nh nghĩa m t ñ a ch truy nh p phương ti n truy n thông do
IEEE 802 (the standard for LANs) theo th t canonical(ñ a ch
ph i ñư c bi u di n các bít ñ u tiên b i ít nh t m t s bít c n
thi t). (Ngày nay thư ng là ñ a ch Ethernet) ñ a ch này ñư c
bi u di n b ng 6 octet.
TruthValue ð nh nghĩa hai giá tr true và false.
TestAndIncr ðư c s d ng ñ theo dõi hai tr m qu n lý cùng s a m t ñ i
tư ng qu n lý t i cùng m t th i ñi m.
AutonomousType M t OID ñư c s d ng ñ ñ nh nghĩa m t cây con v i b sung
các ñ nh nghĩa MIB liên quan
VariablePointer M t con tr tr t i m t ñ i di n ñ i tư ng ñ c bi t, gi s
ifDescr v i c ng 3. Trong trư ng h p này, VariablePointer có
OID là ifDescr.3.
RowPointer M t con tr tr t i m t dòng trong m t b ng. Ví d , ifIndex.3
tr t i dòng th 3 trong b ng ifTable.
RowStatus ðư c s d ng ñ qu n lý vi c t o và xóa các dòng trong m t
b ng, vì b n thân SNMP không có cách làm các thao tác trên.
RowStatus có th theo dõi tr ng thái c a m t dòng trong m t
b ng cũng như nh n các l nh ñ t o và xóa các dòng. Quy ư c
văn b n này ñư c thi t k ñ c i ti n tính toàn v n khi có nhi u
b ph n qu n lý cùng c p nh t dòng. Các ki u ñư c li t kê sau
33. 33
ñây ñ nh nghĩa các l nh và các bi n tr ng thái: active(1),
notInService(2), notReady(3), createAndGo(4),
createAndWait(5), và anddestroy(6).
TimeStamp ðo lư ng th i gian trôi qua gi a th i gian ho t ñ ng h th ng
c a thi t b và m t s s ki n.
TimeInterval Giai ño n th i gian bi u di n dư i d ng % giây. Nó có th nh n
giá tr trong kho ng 0-2147483647.
DateAndTime M t OCTET STRING ñư c s d ng ñ bi u di n thông tin th i
gian.
StorageType ð nh nghĩa ki u b nh mà m t agent s d ng. Các giá tr có
th là other(1), volatile(2), nonVolatile(3), permanent(4), và
readOnly(5).
Tdomain Ký hi u m t lo i d ch v truy n t i.
Taddress Ký hi u ñ a ch d ch v truy n t i. Taddress ñư c ñ nh nghĩa t
1-255 octet.
B ng 1.2.4.3.3 - Các quy ư c v văn b n cho SMIv2
1.3 ð nh d ng thông ñi p và các phương th c v n hành
Các phiên b n SNMP khác nhau m t chút ñ nh d ng thông ñi p và phương
th c ho t ñ ng. Hi n nay SNMPv1 và 2 là ph bi n nh t do có nhi u thi t b tương
thích nh t và có nhi u ph n m m h tr nh t. Trong khi ñó ch có m t s thi t b và
ph n m m h tr SNMPv3.
1.3.1 ð nh d ng thông ñi p c a SNMPv1 và 2
1.3.1.1 ð nh d ng t ng quát.
Version Community PDU
Hình 1.3.1.1 - ð nh d ng t ng quát [5]
Tên
trư ng
Ki u
DL
Kích c
(bytes)
Mô t
Version Integer 4 Version Number: Mô t phiên b n SNMP c a
thông ñi p; v i SNMPv1 thì giá tr này là 0,
34. 34
v i SNMPv2 là 1.
Community Octet
String
Variable Community String: M t kh u s d ng ñ xác
th c gi a ngư i g i và ngư i nh n thông ñi p
này
PDU — Variable Protocol Data Unit: Giao th c ðơn v d
li u ñư c s d ng ñ giao ti p, n i dung c a
thông ñi p.
B ng 1.3.1.1 - ð nh d ng thông ñi p[4]
1.3.1.2 ð nh d ng PDU
T t c các PDU trong SNMP V1,2 ñ u có ñ nh d ng gi ng nhau, riêng PDU
c a thông ñi p Trap thì khác. Ng nghĩa chính xác trong m i trư ng c a PDU d a
trên thông ñi p c th . Ví d , trư ng ErrorStatus ch có nghĩa trong thông ñi p tr
l i không có trong thông ñi p yêu c u, và các giá tr ñ i tư ng s d ng cũng khác
nhau trong các thông ñi p yêu c u và thông ñi p tr l i [4].
1.3.1.2.1 ð nh d ng PDU chung cho các phương th c
Các b ng và hình dư i bi u di n ñ nh d ng chung cho h u h t các PDU
SNMPv1,2: GetRequest-PDU, GetNextRequest-PDU, SetRequest-PDU và
GetResponse-PDU[4].
PDU type RequestID ErrorStatus Errorindex Variable
Bindings
Hình 1.3.1.2.1 - ð nh d ng chung PDU
Tên
trư ng
Ki u DL Kích c
(bytes)
Mô t
PDU Type Integer
(Enumerated)
4
Xem b ng 8
Request
ID
Integer 4 Request Identifier: M t s ñư c s d ng
ñ kh p n i gi a ñ nh danh yêu c u và tr
l i. Nó ñư c sinh ra b i thi t b g i yêu
c u và coppy vào trong trư ng này trong
35. 35
GetResponse-PDU c a thông ñi p tr l i.
Error
Status
Integer
(Enumerated)
4 Xem b ng 9
Error
Index
Integer 4 Error Index: Khi Error Status khác 0,
trương này ch a m t con tr ch rõ ñ i
tư ng sinh ra l i, luôn luôn =0 trong thông
ñi p yêu c u.
Variable
Bindings
Variable Variabl
e
Variable Bindings: M t t p h p các c p
tên-giá tr xác ñ nh các ñ i tư ng MIB
trong PDU, và trong trư ng h p c a m t
SetRequest-PDU ho c GetResponse-PDU,
có ch a các giá tr c a chúng.
B ng 1.3.1.2.1 - ð nh d ng chung PDU
1.3.1.2.2 Ki u PDU và tr ng thái l i
PDU[4] (các giá tr ki u PDU c a version 1 tương ng t 0-3):
Giá tr PDU
Type
PDU Type
0 GetRequest-PDU
1 GetNextRequest-PDU
2 GetResponse-PDU
3 SetRequest-PDU
4 Không s d ng(Trap-PDU trong SNMPv1)
5 GetBullRequest-PDU
6 InformRequest-PDU
7 Trapv2-PDU
8 Report-PDU
B ng 1.3.1.2.2.1 - Ki u PDU
36. 36
Tr ng thái l i [4] (Các giá tr l i c a version 1 tương ng các dòng t 0-5)
Giá
tr
tr ng
thái
l i
Mã l i Mô t
0 noError Không có l i.
1 tooBig Kích thư c c a Response-PDU có th quá l n ñ
truy n qua m ng.
2 noSuchName Không tìm th y tên ñ i tư ng yêu c u.
3 badValue M t giá tr trong yêu c u không phù. Ví d , m t ñ i
tư ng trong yêu c u ñư c quy ñ nh v i chi u dài ho c
ki u không chính xác.
4 readOnly Xu t hi n khi c g ng gán giá tr cho m t bi n ch cho
phép ñ c giá tr .
5 genErr Xu t hi n khi m t l i x y ra không ñư c ñ nh nghĩa
trư c trong b ng này.
6 noAccess Truy nh p b t ch i vì nguyên nhân b o m t.
7 wrongType Không ñúng ki u ñ i tư ng.
8 wrongLength ð dài không phù h p v i ñ i tư ng trong bi n
9 wrongEncoding Mã hóa không phù h p v i ñ i tư ng trong bi n
10 wrongValue Giá tr truy n vào trong bi n không th gán cho ñ i
tư ng.
11 noCreation Bi n chưa t n t i và không th kh i t o.
12 inconsistentValu
e
Bi n truy n vào giá tr phù h p v i ñ i tư ng nhưng
không th gán cho ñ i tư ng t i th i ñi m này
13 resourceUnavail
able
Tài nguyên không có s n.
14 commitFailed Thi t l p m t bi n c th không thành công.
37. 37
15 undoFailed Th c hi n lùi l i không thành công các thi t l p ñã th c
hi n.
16 authorizationErr
or
L i khi xác th c
17 notWritable Bi n không cho phép gán ho c kh i t o.
18 inconsistentNam
e
Tên bi n không t n t i.
B ng 1.3.1.2.2.2 - Các giá tr trư ng Error Status trong PDU SNMP
1.3.1.2.3 ð nh d ng Trap-PDU
PDU
type
Enterprise Agent
Addr
Generic
trap
Specific
trap
Time
stamp
Variable
Bindings
Hình 1.3.1.2.3 - ð nh d ng Trap PDU [4]
Tên
trư ng
Ki u DL Kích c
(bytes)
Mô t
PDU Type Integer
(Enumerated)
4 PDU Type: Xác ñ nh ki u PDU, luôn là
4 cho thông ñi p Trap PDU.
Enterprise Sequence of
Integer
Variable Enterprise: ð nh danh ñ i tư ng c a
m t nhóm, nó ch ra ki u ñ i tư ng sinh
ra trap.
Agent
Addr
NetworkAddress 4 Agent Address: ð a ch IP c a agent
sinh ra trap. Nó cúng bao g m trong IP
header t ng th p hơn nhưng cũng bao
gôm trong ñ nh d ng thông ñi p SNMP
ñ d dàng ghi log trong SNMP, ñ ng
th i có th phân bi t ñư c trong trư ng
có nhi u host.
Generic
Trap
Integer
(Enumerated)
4 Generic Trap Code: Giá tr mã xác ñ nh
m t trong các m t s ki u trap “chung
chung” ("generic") ho c ñã ñư c xác
38. 38
ñ nh trư c.
Specific
Trap
Integer 4 Specific Trap Code: M t giá tr mã xác
ñ nh m t lo i trap th c hi n c th
Time
Stamp
TimeTicks 4 Time Stamp: Lư ng th i gian k t khi
th c th SNMP ñang g i thông ñi p
này kh i t o ho c kh i t o l i l n cu i.
ðư c s d ng ñ ghi log th i gian.
Variable
Bindings
Variable Variable Variable Bindings: T p h p các c p
tên-giá tr xác ñ nh các ñ i tư ng MIB
trong PDU.
B ng 1.3.1.2.3.1 - ð nh d ng Trap PDU
Tên và s Generic
trap
Mô t
coldStart (0) Ch ra r ng m t agent ñã b kh i ñ ng l i.
warmStart (1) Ch ra r ng agent t kh i t o l i.
linkDown (2) ðư c g i khi m t interface trên thi t b b l i.
linkUp (3) ðư c g i khi m t interface ho t ñ ng tr l i.
authenticationFailure
(4)
Ch ra r ng m t ngư i nào ñó ñã c g ng truy v n agent
mà không ñúng chu i community, dùng ñ phát hi n các
truy nh p b t h p phát
egpNeighborLoss (5) Ch ra r ng EGP bên c nh b l i.
enterpriseSpecific (6) Ch ra trap c th ñư c nhà cung c p thi t b ñ nh nghĩa.
B ng 1.3.1.2.3.2 - Mô t các Generic trap
1.3.1.2.4 ð nh d ng GetBulkRequest-PDU SNMPv2c
PDU type Request
Identify
Non
Repeaters
Max
Repeaters
PDU variable
Bindings
Hình 1.3.1.2.4 - ð nh d ng GetBulkRequest-PDU [4]
39. 39
Tên
trư ng
Ki u DL Kích c
(bytes)
Mô t
PDU Type Integer
(Enumerated)
4 PDU Type: M t gái tr nguyên xác ñ nh
ki u PDU, v i b n GetBulkRequest-PDU
thì giá tr là 5.
Request ID Integer 4 Request Identifier: M t s ñư c s d ng
ñ so kh p các thông ñi p yêu c u v i
các thông ñi p tr l i. Nó ñư c sinh ra
b i thi t b g i yêu c u và ñư c copy vào
trư ng này trong Response-PDU.
Non
Repeaters
Integer 4 Non Repeaters: Ch ñ nh s ñ i tư ng
ñ u tiên không l p l i l nh getnext.
Max
Repetitions
Integer 4 Max Repetitions: S l n l p l i l nh
getnext v i các ñ i tư ng còn l i.
Variable
Bindings
Variable Variable Variable Bindings: M t t p h p các c p
ten-gái tr ñ nh danh các ñ i tư ng MIB
trong PDU.
B ng 1.3.1.2.4 - ð nh d ng GetBulkRequest-PDU [4]
1.3.1.3 ð nh d ng thông ñi p SNMP Version 3 (SNMPv3)
ð nh d ng t ng quát c a SNMPv3 v n s d ng ý tư ng thông ñi p t ng th
“m r ng” c a SNMPv2. Tuy nhiên, trong v3 khái ni m này ñư c ñ nh nghĩa l i.
Các trư ng header t chia thành nh ng vùng có ho c không x lý b o m t. Các
trư ng “non- security” là chung cho t t c các tri n khai SNMP v3, trong khi vi c
s d ng các trư ng b o m t có th ñư c thi t k riêng cho t ng mô hình b o m t
SNMPv3, và ñư c x lý b i module trong th c th x lý b o m t SNMP. Gi i pháp
này cung c p s linh ho t ñáng k trong khi tránh nh ng v n ñ SNMPv2 b h n
ch . T t c ñ nh d ng thông ñi p SNMP v3 ñư c mô t trong RFC3412. Nh ng ñ c
ñi m b o m t cung c p trong SNMPv3 là[4]:
- Tính toàn v n thông tin : ð m b o các gói tin không b s a trong khi truy n.
40. 40
- S xác nh n: Xác nh n ngu n c a thông tin g i ñ n.
- Mã khoá: ð o n i dung c a gói tin, ngăn c n vi c g i thông báo t ngu n
không ñư c xác nh n.
Tuy nhiên vi c s d ng SNMPv3 r t ph c t p và c ng k nh dù nó là s l a
ch n t t nh t cho v n ñ b o m t c a m ng. Vi c s d ng s t n r t nhi u tài
nguyên do trong m i thông ñi p truy n ñi s có ph n mã hóa BER. Ph n mã hóa
này s chi m m t ph n băng thông ñư ng truy n do ñó làm tăng chi phí. M c dù
ñư c coi là phiên b n ñ ngh cu i cùng và ñư c coi là ñ y ñ nh t nhưng SNMPv3
v n ch là tiêu chu n d th o và v n ñang ñư c nghiên c u hoàn thi n[4].
Hình 1.3.1.3 - ð nh d ng t ng quát thông ñi p SNMP Version 3 (SNMPv3)
Tên trư ng Ki u DL Kích c
(bytes)
Mô t
Msg
Version
Integer 4 Message Version Number: Mô t s phiên b n
SNMP c a thông ñi p, v i SNMPv3 là 3.
Msg ID Integer 4 Message Identifier: M t s ñư c s d ng ñ
41. 41
xác ñ nh m t thông ñi p SNMPv3 và ñ so
kh p v i thông ñi p tr l i v i thông ñi p yêu
c u. S d ng c a trư ng này là tương t như
c a trư ng Request ID trong các ñ nh d ng
PDU, nhưng chúng không gi ng nhau. Trư ng
này ñư c t o ra ñ cho phép k t h p m c ñ
x lý thông ñi p không phân bi t n i dung c a
PDU, ñ b o v ch ng l i các cu c t n công
b o m t. Như v y, Msg ID và Request ID
ñư c s d ng ñ c l p.
Msg Max
Size
Integer 4 Maximum Message Size: Kích thư c t i ña c a
m t thông ñi p. T i thi u là 484.
Msg Flags Octet
String
1
Msg
Security
Model
Integer 4 Message Security Model: M t giá tr nguyên
xác ñ nh mô hình b o m t nào ñư c s d ng
cho thông ñi p, v i user-based(m c ñ nh c a
SNMP v3) thì giá tr là 3.
Msg
Security
Parameters
— Variable Message Security Parameters: M t t p h p
các trư ng ch a các tham sô yêu c u ñ th c
hi n mô hình b o m t c th ñư c s d ng cho
thông ñi p. N i dung c a trư ng này ñư c ch
ñ nh trong m i văn b n mô t m t mô hình b o
m t SNMP v3. ví d , các tham s c a mo hình
user-based ñư c mô t trong RFC3414.
Scoped
PDU
— Variable
B ng
B ng 1.3.1.3.1 - ð nh d ng t ng quát thông ñi p SNMPv3
42. 42
Tên SubField Kích
thư c(byte)
Mô t
Reserved 5/8(5 bit) D phòng cho tương lai
Reportable flag 1/8(1 bit) Khi ñ t là 1, thi t b nh n thông ñi p này
ph i g i tr l i nơi sinh ra PDU, m t
Report-PDU m i l n các ñi u ki n phát
sinh
Priv Flag 1/8(1 bit) Khi ñ t là 1, ch ra r ng s mã hóa ñư c
s d ng ñ b o v s riêng tư c a thông
ñi p. Có th không là 1 tr khi Auth Flag
cũng ñư c ñ t là 1.
Auth Flag 1/8(1 bit) Khi ñ t là 1, ch ra r ng xác th c ñư c s
d ng ñ b o v tính xác th c c a thông
ñi p
B ng 1.3.1.3.2 - Msg Flags
Tên subfield Syntax Kích
thư c(byte)
Mô t
Context Engine
ID
Octet
String
Variable ðư c s d ng ñ ñ nh danh ng
d ng nào x lý PDU
Context Name Octet
String
Variable M t ñ nh danh ñ i tư ng ch rõ n i
dung ñ c bi t ñư c k t h p v i
PDU
PDU - Variable PDU s ñư c truy n
B ng 1.3.1.3.3 Scoped PDU
SNMPv3 s d ng các ho t ñ ng giao th c t SNMPv2, ñư c mô t trong
RFC3416 và s a ñ i trong RFC1904, vì v y ñ nh d ng PDU c a SNMPv3 cũng
tương t như SNMPv2[4].
1.3.2 Các phương th c
Các thao tác tương ng v i các phiên b n SNMP[6]:
43. 43
get
getnext
getbulk (SNMPv2 and SNMPv3)
set
getresponse
trap
notification (SNMPv2 and SNMPv3)
inform (SNMPv2 and SNMPv3)
report (SNMPv2 and SNMPv3)
1.3.2.1 Phương th c Get (GetRequest):
Thông ñi p GetRequest ñư c Manager g i ñ n Agent ñ l y m t thông tin
nào ñó. Trong GetRequest có ch a ID c a ñ i tư ng mu n l y. Ví d : Mu n l y
thông tin tên c a Device1 thì manager g i thông ñi p GetRequest
ID=1.3.6.1.2.1.1.5 ñ n Device1, ti n trình SNMP Agent trên Device1 s nh n ñư c
thông ñi p và t o thông ñi p tr l i. Trong m t thông ñi p GetRequest có th ch a
nhi u OID, nghĩa là dùng m t GetRequest có th l y v cùng lúc nhi u thông tin[6].
Hình 1.3.2.1 - Mô hình truy n thông ñi p c a phương th c get
1.3.2.2 GetNextRequest:
Thông ñi p GetNextRequest cũng dùng ñ l y thông tin và cũng có ch a
OID, tuy nhiên nó dùng ñ l y thông tin c a ñ i tư ng n m k ti p object ñư c ch
ra trong thông ñi p. Chúng ta ñã bi t khi ñ c qua nh ng ph n trên: m t MIB bao
g m nhi u OID ñư c s p x p th t nhưng không liên t c, n u bi t m t OID thì
không xác ñ nh ñư c OID k ti p. Do ñó ta c n GetNextRequest ñ l y v giá tr
44. 44
c a OID k ti p. N u th c hi n GetNextRequest liên t c thì ta s l y ñư c toàn b
thông tin c a Agent[6].
1.3.2.3 SetRequest:
Thông ñi p SetRequest ñư c Manager g i cho Agent ñ thi t l p giá tr cho
m t ñ i tư ng nào ñó. Ví d : Có th ñ t l i tên c a m t máy tính hay router b ng
ph n m m SNMP Manager, b ng cách g i thông ñi p SetRequest có OID là
1.3.6.1.2.1.1.5.0 (sysName.0) và có giá tr là tên m i c n ñ t[6].
1.3.2.4 GetResponse:
M i khi SNMP Agent nh n ñư c các thông ñi p GetRequest,
GetNextRequest hay SetRequest thì nó s g i l i thông ñi p GetResponse ñ tr l i.
Trong thông ñi p GetResponse có ch a OID c a ñ i tư ng ñư c yêu c u và giá tr
c a ñ i tư ng ñó[6].
1.3.2.5 GetBulkRequest:
Ch c năng c a câu l nh GetBulkRequest tương t như câu l nh
GetNextRequest ngo i tr v n ñ liên quan t i s lư ng d li u ñư c l y ra.
GetBulkRequest cho phép Agent g i l i Manager d li u liên quan t i nhi u ñ i
tư ng thay vì t ng ñ i tư ng b qu n lý. Như v y, GetBulkRequest có th gi m b t
lưu lư ng truy n d n và các b n tin ñáp ng thông báo v các ñi u ki n vi ph m[6].
Tuy nhiên, kích thư c c a câu h i có th b gi i h n b i Agent. Khi ñó n u
nó không th tr l i toàn b yêu c u, nó g i tr m t thông ñi p l i mà không có d
li u. V i trư ng h p dùng câu l nh ”get-bulk”, Agent s g i cang nhi u tr l i n u
nó có th . Do ñó, vi c tr l i m t ph n c a yêu c u là có th x y ra. Hai trư ng c n
khai báo trong ”get-bulk” là: ”nonrepeaters” và ”max-repetitions”. ”nonrepeaters”
báo cho Agent bi t N ñ i tư ng ñ u tiên có th tr l i l i như m t câu l nh ”get”
ñơn. ”max-repeaters” báo cho Agent bi t c n c g ng tăng lên t i ña M yêu c u
”get-next” cho các ñ i tư ng còn l i[6].
Ví d :
$ snmpbulkget -v2c -B 1 3 linux.ora.com public sysDescr ifInOctets
ifOutOctets
45. 45
system.sysDescr.0 = “Linux linux 2.2.5-15 #3 Thu May 27 19:33:18 EDT
1999 i686″
interfaces.ifTable.ifEntry.ifInOctets.1 = 70840
interfaces.ifTable.ifEntry.ifOutOctets.1 = 70840
interfaces.ifTable.ifEntry.ifInOctets.2 = 143548020
interfaces.ifTable.ifEntry.ifOutOctets.2 = 111725152
interfaces.ifTable.ifEntry.ifInOctets.3 = 0
interfaces.ifTable.ifEntry.ifOutOctets.3 = 0
ñây, ta h i v 3 varbind: sysDescr, ifInOctets, và ifOutOctets. T ng s varbind
ñư c tính theo công th c: N + (M * R)
N: nonrepeater, t c s các ñ i tư ng vô hư ng
M: max-repeatition
R: s các ñ i tư ng có hư ng, trong yêu c u ch có sysDescr là vô hư ng.
V i N = 1, M ñ t là 3 , t c là 3 trư ng cho c p ifInOctets và ifOutOctets.
Có 2 ñ i tư ng có hư ng là ifInOctets và ifOutOctets v y R = 2
T ng s có 1 + 3*2 = 7 varbind
Còn trư ng ”–v2c” là do ”get-bulk” là câu l nh c a SNMPv2 nên s d ng ”-
v2c” ñ ch r ng s d ng PDU c a SNMPv2. ”-B 1 3” là ñ ñ t tham s N và M cho
l nh.
Hình 1.3.2.5 - Mô hình truy n thông ñi p c a phương th c get-bull
1.3.2.6 Trap
Thông ñi p Trap ñư c Agent t ñ ng g i cho Manager m i khi có s ki n
x y ra bên trong Agent, các s ki n này không ph i là các ho t ñ ng thư ng xuyên
c a Agent mà là các s ki n mang tính bi n c . Ví d : Khi có m t port down, khi có
46. 46
m t ngư i dùng login không thành công, ho c khi thi t b kh i ñ ng l i, Agent s
g i trap cho Manager. Tuy nhiên không ph i m i bi n c ñ u ñư c Agent g i trap,
cũng không ph i m i Agent ñ u g i trap khi x y ra cùng m t bi n c . Vi c Agent
g i hay không g i trap cho bi n c nào là do hãng s n xu t Device/Agent quy
ñ nh[6].
Hình 1.3.2.6 - Mô hình bi u di n s phát sinh trap
1.3.2.7 SNMP Notification
ð hoàn thi n và chu n hóa ñ nh d ng PDU c a trap SNMP v1, SNMPv2
ñ nh nghĩa m t NOTIFICATION-TYPE. ð nh d ng PDU cho NOTIFICATION-
TYPE gi ng nhau cho c get và set. RFC2863 ñ nh nghĩa l i ki u thông báo chung
chung linkDown như sau[6]:
linkDown NOTIFICATION-TYPE
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
STATUS current
DESCRIPTION
"A linkDown trap signifies that the SNMPv2 entity, acting in an
agent role, has detected that the ifOperStatus object for one
of its communication links left the down state and transitioned
into some other state (but not into the notPresent state). This
other state is indicated by the included value of ifOperStatus."
::= { snmpTraps 3 }
OID cho trap này là 1.3.6.1.6.3.1.1.5.3, ho c
47. 47
iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.snmpTraps
.linkDown.
1.3.2.8 SNMP Inform
SNMPv2 cung c p cơ ch truy n thông gi a nh ng NMS v i nhau, g i là
SNMP inform. Khi m t NMS g i m t SNMP inform cho m t NMS khác, NMS
nh n ñư c s g i tr m t ACK xác nh n s ki n. Vi c này gi ng v i cơ ch c a
“get” và “set”.. [6]
1.3.2.9 SNMP Report
ðư c ñ nh nghĩa trong b n nháp c a SNMPv2 nhưng không ñư c phát tri n.
Sau ñó ñư c ñưa vào SNMPv3 và hy v ng dùng ñ truy n thông gi a các h th ng
SNMP v i nhau[6].
1.4 S d ng SNMP4J API xây d ng M t s phương th c SNMP
SNMP4J API là m t thư vi n l p trình ng d ng mã ngu n m ñư c xây
d ng trên n n ngôn ng Java. T t c các mã ngu n ñư c tri n khai b ng ngôn ng
l p trình java vì v y các t p ñư c lưu dư i d ng *.java, n i dung mã ngu n tham
kh o trong [6].
48. 48
CHƯƠNG 2
CÔNG NGH D CH V WEB
2.1 Khái ni m và ki n trúc d ch v Web
2.1.1 Khái ni m.
Theo ñ nh nghĩa c a W3C, 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[3].
M t d ch v Web như b t kỳ d ch v nào s n có trên internet, s d ng h
th ng thông ñi p chu n hóa XML, và không ph thu c b t kỳ m t h ñi u hành
ho c ngôn ng l p trình. Có m t vài l a ch n ñ nh d ng thông ñi p XML, như
XML-RPC ho c SOAP. Ngoài ra chúng ta có th s d ng HTTP GET/POST ñ
chuy n các tài li u XML qua môi trư ng m ng[8].
2.1.2 Ki n trúc
Có hai cách ñ xem xét ki n tr c d ch v Web
2.1.2.1 Roles
Có 3 Role chính trong ki n trúc d ch v Web [8]:
Service provider: ðây là thành ph n cung c p d ch v Web, nó tri n khai
d ch v và làm cho nó s n sàng trên internet.
Service requestor: ðây là thành ph n th c hi n công vi c khai thác d ch v
Web. Ngư i dùng s d ng m t d ch v Web b ng cách m m t k t n i m ng
và g i m t yêu c u XML.
49. 49
Service registry: ðây là thư m c trung tâm hóa d ng logic c a d ch v . Nó
cung c p m t ñ a ch trung tâm ñ ngư i phát tri n có th công b m t d ch
v m i ho c tìm ki m m t d ch v có s n. Nó ñóng vai trò như m t trung
tâm t p trung các công ty và các d ch v c a h .
Hình 2.1.2.1 - Mô t các Role trong ki n trúc m t D ch v Web
2.1.2.2 Ch ng giao th c
Service transport: T ng này ch u trách nhi m truy n t i các thông ñi p gi a
các ng d ng. Hi n t i t ng này bao g m bao g m các giao th c HTTP,
SMTP, FTP, BEEP.
XML messaging: T ng này ch u trách nhi m mã hòa các thông ñi p theo
m t d ng XML thông thư ng mà phía máy khai thác ñ u cu i có th hi u
ñư c. Hi n t i t ng này bao g m XML-RPC và SOAP.
Service description: T ng này ch u trách nhi m mô t các giao di n công
c ng c a m t d ch v Web c th . Hi n t i, mô t d ch v ñư c x lý qua
WSDL.
Service discovery: T ng này ch u trách nhi m trung tâm hóa các d ch v vào
trong m t ñăng ký chung, và cung c p các ch c năng d dàng công b ho c
tìm ki m. Hi n t i, t ng này ñư c x lý qua UDDI.[8]
Hình 2.1.2.2 - Mô t ch ng giao th c c a D ch v Web
50. 50
2.2 Các d ng thông ñi p XML
Như ñã nói trên có hai d ng thông ñi p XML ñư c s d ng trong d ch v
Web, trong ñó XML-RPC là cách d nh t ñ b t ñ u v i d ch v Web. Nó ñơn gi n
hơn và d hi u hơn SOAP. Tuy nhiên, không gi ng như SOAP, XML-RPC không
có ng pháp mô t d ch v tương ng. ði u này h n ch vi c g i t ñ ng m t lo t
các d ch v XML-RPC m t y u t quan tr ng ñ cho phép xây d ng các ng d ng
tích h p t c th i. Trong ph m vi tài li u chúng tôi xin trình bày chi ti t v ñ nh
d ng thông ñi p SOAP. N i dung c a các thông ñi p ñư c h th ng t sinh mã
XML trong quá trình duy t và hi n th .
2.2.1 SOAP
SOAP là m t giao th c d a trên XML, ñư c s d ng ñ trao ñ i thông tin
gi a các máy tính. M c dù SOAP có th ñư c s d ng trong m t lo t các h th ng
thông ñi p và có th ñư c phân ph i qua nhi u giao th c truy n t i, ñi m chính c a
SOAP là truy n t i các RPC qua HTTP. Gi ng như XML-RPC, SOAP là n n t ng
ñ c l p và do ñó cho phép các ng d ng ña d ng có th giao ti p v i nhau. ð hi u
hơn v SOAP, chúng ta hãy xem xét l i d ch v Web cho phép truy v n thông tin
th i ti t. Dư i ñây là m t ví d v SOAP Request (HTTP header ñã ñư c b qua)
[8]:
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:getWeather xmlns:ns1="urn:examples:weatherservice"
SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-
encoding/"> <zipcode xsi:type="xsd:string">10016</zipcode>
</ns1:getWeather> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Ví d 2.2.1.1: SOAP Request
51. 51
N i dung c a SOAP Request quy ñ nh c th c tên phương th c và m t
danh sách các các tham s . SOAP response tr v t d ch v thông tin th i ti t như
sau[9]:
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body><ns1:getWeatherResponse
xmlns:ns1="urn:examples:weatherservice"
SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-
encoding/"> <return xsi:type="xsd:int">65</return>
</ns1:getWeatherResponse>
/SOAP-ENV:Body> </SOAP-ENV:Envelope>
Ví d 2.2.1.2: SOAP Request
2.2.2 ð c t SOAP
Các ñ c t SOAP ñ nh nghĩa 3 ph n chính[9]:
Envelope: Các ñ nh nghĩa Envelope xác ñ nh quy t c ñóng gói d li u ñang
ñư c truy n gi a các máy tính. Bao g m các d li u ñ c t ng d ng như tên
phương th c th c hi n, các tham s , ho c giá tr tr v . Nó cũng có th bao
g m thông tin v ai s x lý n i dung và trong trư ng h p x y ra l i thì cách
mã hóa thông ñi p l i như th nào.
Các quy t c mã hóa d li u: ð trao ñ i d li u, các máy tính ph i th ng
nh t các quy t c mô t mã hóa các ki u d li u. Ví d hai máy tính x lý gía
c phi u c n th ng nh t quy t c cho vi c mã hóa d li u ki u float; tương t
hai máy tính x lý giá nhi u lo i c phi u c n ph i th ng nh t quy t c mã
hóa m ng. Ví v y SOAP bao g m trong nó t p h p các quy ư c v mã hóa
các ki u d li u. H u h t nh ng quy ư c ñó d a trên ñ c t W3C XML
schema.
52. 52
RPC conventions: SOAP có th ñư c s d ng trong hàng lo t các h th ng
thông tin m t ho c hai chi u. V i thông tin hai chi u, SOAP ñ nh nghĩa m t
quy ư c ñơn gi n ñ bi u di n vi c g i các th t c t xa và các ph n h i.
ði u này cho phép m t ng d ng máy tr m xác ñ nh tên m t phương th c t
xa, bao g m s các tham s và nh n m t ph n h i t máy ch .
Chúng ta xem xét mô t m t giao th c SOAP, b t ñ u b ng cách trình di n m t
quy ư c SOAP ñơn gi n. Xmethoads.net cung c p d ch v thông tin th i ti t, li t
kê danh sách nhi t ñ theo mã zip. Phương th c d ch v , getTemp, yêu c u m t
chu i mã zip và tr v m t giá tr float[8].
Hình 2.2.2 - Mô t mô hình SOAP
2.2.3 SOAP Request
Yêu c u t máy tr m ph i bao g m tên c a phương th c ñ th c hi n và các
tham s ñư c yêu c u. Xét b n tin SOAP Request trong ví d 2.2.1.1.
Có m t c p ph n t r t quan tr ng c n ph i chú ý ñây. Th nh t Request
g m có m t ph n t <Envelope> b t bu c, trong ñó bao g m m t ph n t <Body>
b t bu c. Th hai t t c có 4 Namespace ñư c ñ nh nghĩa. Các Namespace ñư c s
d ng ñ phân bi t các ph n t XML và các thu c tính, và thư ng ñư c s d ng ñ
tham chi u các lư c ñ bên ngoài. Trong ví d trên chúng ta s d ng namespace ñ
phân bi t các ñ nh danh ñư c k t h p v i SOAP
Envelope(http://schemas.xmlsoap.org/soap/envelope/), mã hóa d li u b ng các
XML schema (http://www.w3.org/2001/XMLSchema-instance và
http://www.w3.org/2001/XMLSchema), và các ñ nh danh ng d ng c th là d ch
v (urn:examples:weatherservice). ði u này cho phép mô-dun hóa ng d ng, trong
53. 53
khi v n cung c p s m m d o t i ña cho nh ng thay ñ i ñ c t trong tương lai. Ph n
t <Body> ñóng gói ph n thân(payload) chính c a thông ñi p SOAP. Ch có m t
ph n t là <getWeather> là g n li n v i namespace và tương ng v i tên phương
th c t xa. M i tham s c a phương th c xu t hi n trong m t ph n t con. Trong
trư ng h p này chúng ta có ph n t <zipcode>, ñư c gán v i XML schema v i ki u
d li u xsd:string và giá tr là 10016[8].
2.2.4 SOAP Response
T ví d 2.2.1.1 và 2.2.1.2 ta th y, cũng gi ng như SOAP Request, SOAP
Response g m các ph n t <Envelop> và <Body>, và 4 XML namespace. Tuy
nhiên ph n t <Body> bao g m m t ph n t <getWeatherResponse>, tương ng
v i yêu c u ban ñ u. Như trên ta th y nhi t ñ cho mã zip 10016 là 65 ñ F[8].
2.3 Thông ñi p SOAP
M t thông ñi p m t chi u là m t yêu c u t máy tr m, ho c m t ph n h i t
máy ch thông thư ng nó ñư c bi t ñ n như là m t thông ñi p SOAP. M i thông
ñi p SOAP ph i có t khóa Envelop, không b t bu c có ph n t Header, nhưng b t
bu c ph i có ph n t Body. Nh ng ph n t này ñư c k t h p v i t p h p các quy
t c, và ñ có th debug ñư c ng d ng SOAP thì ph i hi u các quy t c này.[8]
Hình 2.3 - Khuôn d ng thông ñi p SOAP
2.3.1 Envelope
M i thông ñi p SOAP ñ u có ph n t g c Envelop. Khác v i các ñ c t
khác, như HTTP và XML, SOAP không ñ nh nghĩa m t mô hình phiên b n truy n
th ng d a trên s phiên b n phát hành chính và ph (HTTP 1.0, HTTP1.1). SOAP
54. 54
s d ng SOAP namespace ñ ñánh d u các phiên b n khác nhau. Phiên b n ph i
ñư c tham chi u trong ph n t <Envelope>. Ví d : <SOAP-ENV:Envelope
xmlns:SOAP-NV=http://schemas.xmlsoap.org/soap/envelope/.
SOAP 1.1 namespace có URI là http://schemas.xmlsoap.org/soap/envelope/,
trong khi ñó c a SOAP 1.2 là http://www.w3.org/2001/09/soap-envelope. N u
Envelop là m t namespace b t kỳ, thì coi như là m t l i phiên b n[8].
2.3.2 Header
Ph n t tùy ch n Header cung c p m t khuôn kh linh ho t cho vi c b sung
các yêu c u c p ng d ng. ví d : ph n t Header có th ñư c s d ng ñ xác ñ nh
m t ch ký s cho d ch v b o v b ng m t kh u, gi ng như v y, nó có th ñư c s
d ng ñ xác ñ nh m t s tài kho n c a d ch v SOAP “pay-per-use”. Hi n t i có r t
nhi u d ch v SOAP không s d ng ph n t Header, nhưng các d ch v SOAP an
toàn, thì Header cung c p m t b máy m cho xác th c, qu n lý giao d ch, và thanh
toán y quy n[8].
Ph n t Header có hai thu c tính:
- Actor: Giao th c SOAP ñ nh nghĩa m t message path như m t danh sách các
nút d ch v SOAP. M i m t nút trung gian ñó có th th c hi n m t vài x lý
và sau ñó chuy n ti p thông ñi p t i nút ti p theo trong chu i. B ng cách
thi t l p thu c tính này, máy tr m có th ch rõ ngư i nh n c a SOAP
header.
- MustUnderstand:Ch ñ nh m t ph n t Header là tùy ch n hay b t bu c. N u
ñ t là true, ngư i nh n ph i hi u và x lý thu c tính Header tùy theo ñ nh
nghĩa c a nó ho c tr v l i. Header ch rõ tài kho n thanh toán, nó ph i
ñư c hi u và x lý b i máy ch SOAP như ví d sau:
<SOAP-ENV:Header><ns1:PaymentAccount xmlns:ns1="urn:ecerami" SOAP-ENV:
mustUnderstand="true"> orsenigo473 </ns1:PaymentAccount > </SOAP-ENV:Header>.
2.3.3 Body
Ph n t Body là b t bu c cho t t c các thông ñi p SOAP. Như chúng ta ñã
bi t, s d ng c a các ph n t Body bao g m c RPC Request và Response[8].
55. 55
2.3.4 Fault
Trong trư ng h p m t l i x y ra, ph n t <Body> s bao g m ph n t
<Fault>. Ph n t con l i ñư c ñ nh nghĩa trong b ng 16 g m có <faultCode>,
<faultString>, <faultActor>, và chi ti t các ph n t . Các mã l i SOAP ñư c ñ nh
nghĩa trư c trong b ng 17. Dư i ñây là m t ví d v l i, máy tr m yêu c u phương
th c tên là ValidateCreditCard, nhưng d ch v không h tr . Dư i ñây là m t yêu
c u máy tr m b l i, và máy ch tr v m t ph n h i SOAP[8].
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode xsi:type="xsd:string">SOAP-ENV:Client</faultcode>
<faultstring xsi:type="xsd:string">
Failed to locate method (ValidateCreditCard) in class
(examplesCreditCard) at /usr/local/ActivePerl-5.6/lib/
site_perl/5.6.0/SOAP/Lite.pm line 1555.
</faultstring>
</SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Tên ph n t Mô t
faultCode Mã xác ñ nh l p x y ra l i
faultString Mô t chi ti t l i ñ ngư i qu n tr có th hi u ñư c.
faultActor Ch rõ b ph n nào là nguyên nhân x y ra l i
Detail Mang thông ñi p l i c a ng d ng ñ c bi t. có th có ph n t con
bên trong ph n t này
B ng 2.3.4.1 - Mô t các ph n t con trong ph n t fault
Tên Mô t
SOAP-ENV:VersionMismatch Ch rõ ph n t Envelope có m t namespace
không h p l
SOAP-ENV:MustUnderstand Ngư i nh n không th x lý ñư c Header
SOAP-ENV:Client Yêu c u phía máy tr m l i
56. 56
SOAP-ENV:Server Máy ch không th x lý yêu c u c a máy tr m
B ng 2.3.4.2 - Mô t các giá tr trong ph n t faultCode
2.3.5 SOAP Encoding
SOAP bao g m m t t p các quy t c d ng s n ñ mã hóa các ki u d li u.
Cho phép các thông ñi p SOAP ch ra các ki u d li u c th như Integer, float,
double, m ng. H u h t các quy t c mã hóa ñư c th c thi tr c ti p b i công c
SOAP, vì v y ta không nhìn th y. Tuy nhiên khi debug m t ng ta v n ph i hi u
nh ng cơ s mã hóa c a SOAP[8].
Các ki u d li u SOAP ñư c chia thành hai lo i: vô hư ng và ph c h p.
Ki u vô hư ng ch a chính xác m t giá tr , ví d như tên h , giá, mô t s n ph m.
Ki u ph c h p ch a nhi u giá tr , ví d như hóa ñơn mua hàng ho c danh sách giá
c phi u. Ki u ph c h p ñư c chia thành các ki u m ng và c u trúc. M ng ch a
nhi u giá tr , nhưng m i ph n t ñư c quy ñ nh b i tên truy nh p. Thông tin v ki u
mã hóa cho các thông ñi p SOAP thi t l p qua thu c tính SOAP-
ENV:encodingStyle. ð s d ng mã hóa SOAP 1.1, s d ng giá tr [8].
http://schemas.xmlsoap.org/soap/encoding/.
ð s d ng mã hóa SOAP 1.2, s d ng giá tr .
http://www.w3.org/2001/09/soap-encoding.
2.3.5.1 Ki u vô hư ng
V i ki u vô hư ng, SOAP thông qua t t c các ki u ñơn gi n d ng s n ñư c
xác ñ nh b i ñ c t XML Schema. Bao g m các ki u string, float, double, integer.
Xem b ng dư i[8].
57. 57
B ng 2.3.5.1 - Các ki u d ng s n
Như trong Ví d 2.2.1.2 trên ta th y thu c tính xsi:type thi t l p là xsd:int, xác
ñ nh giá tr tr v là giá tr ki u int. ð c t SOAP cung c p vài tùy ch n ñ ch ñ nh
ki u d li u cho ph n t XML c th . Tùy ch n th nh t ñ xác ñ nh m t thu c tính
xsi:type cho m i ph n t . Th hai ñ lưu tr thông tin ki u d li u trong m t XML
Schema bên ngoài ho c th m trí là tài li u con ngư i có th hi u ñư c. Các công c
SOAP có th t ñ ng thêm ho c b qua thu c tính xsi:type trong khi khai báo ph n
t [8].
58. 58
2.3.5.2 Ki u ph c h p
Các m ng SOAP có m t t p h p các quy t c r t rõ ràng, nó yêu c u ph i ch
rõ c ki u ph n t và kích c m ng. SOAP cũng h tr m ng nhi u chi u, nhưng
không ph i t t c các tri n khai SOAP h tr ch c năng nhi u chi u(tùy thu c vào
công c tri n khai SOAP ).
ð t o m t m ng ta ph i ch rõ thu c tính xsi:type c a m ng. M ng cũng bao
g m thu c tính arrayType. Thu c tính ñư c yêu c u ñ xác ñ nh khi u d li u cho
các ph n t c a m ng và s chi u c a m ng. ví d : khai báo m ng 1 chi u v i kích
c 10, ki u d li u là double arrayType="xsd:double[10]". Ho c khai b o m ng hai
chi u ki u d li u string và kích c m i chi u ñ u là 5 ph n t
arrayType="xsd:string[5,5]" [8].
Dư i ñây là ví d m t ph n h i SOAP v i m t m ng v i các giá tr ki u
double
<SOAP-ENV:Body>
<ns1:getPriceListResponse
xmlns:ns1="urn:examples:pricelistservice"
SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding">
<return xmlns:ns2="http://www.w3.org/2001/09/soap-encoding"
xsi:type="ns2:Array" ns2:arrayType="xsd:double[2]">
<item xsi:type="xsd:double">54.99</item>
<item xsi:type="xsd:double">19.99</item>
</return>
</ns1:getPriceListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Chú ý: khi arrayType ñ t là xsd:double[2] thì m i ph n t trong m ng ph i ñư c
ch rõ trong ph n t item như trên. Ngư c l i v i m ng, c u trúc ch a nhi u giá tr ,
nhưng m i ph n t ñư c xác ñ nh v i duy nh t m t ph n t truy nh p. Ví d , xét
m t m c trong b ng các s n ph m thì c u trúc mô t m c ñó có th ch a
59. 59
productSKU, productName, mô t và giá. Dư i ñây là c u trúc bi u di n thông ñi p
SOAP[8].
<SOAP-ENV:Body>
<ns1:getProductResponse
xmlns:ns1="urn:examples:productservice"
SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding">
<return xmlns:ns2="urn:examples" xsi:type="ns2:product">
<name xsi:type="xsd:string">Red Hat Linux</name>
<price xsi:type="xsd:double">54.99</price>
<description xsi:type="xsd:string">Red Hat Linux Operating System
</description>
<SKU xsi:type="xsd:string">A358185</SKU>
</return>
</ns1:getProductResponse>
</SOAP-ENV:Body>
M i ph n t trong c u trúc ñư c xác ñ nh v i m t tên truy nh p duy nh t. Ví
d , thông ñi p trên bao g m 4 ph n t truy nh p, name, price, description, và SKU.
M i ph n t có th có m t ki u d li u riêng; như name có ki u là string, price là có
ki u là double.
2.3.6 Literal Encoding
Không c n thi t ph i s d ng mã hóa ki u m u SOAP. Th c t , th nh tho ng
ta mu n b qua các quy t c mã hóa SOAP và nhúng m t tài li u XML tr c ti p vào
thông ñi p SOAP. ð làm như v y ta ph i tham chi u t i m t ki u mã hóa Literal
XML, và ph i ch rõ mã hóa ki u m u Literal XML. Trong Apache SOAP, mã hóa
ki u m u Literal XML ñư c ch rõ v i namespace http://xml.apache.org/xml-
soap/literalxml. Ví d , dư i ñây là tùy ch n th hai v mã hóa thông tin s n ph m
trong m c 2.3.5.2. S ñơn gi n hơn n u thay vì mã hóa s n ph m thành c u trúc
SOAP, d li u ñư c mã hóa như m t tài li u XML mã hóa ki u m u Literal[8].
60. 60
<SOAP-ENV:Body>
<ns1:getProductResponse
xmlns:ns1="urn:examples:XMLproductservice"
SOAP-ENV:encodingStyle= "http://xml.apache.org/xml-soap/literalxml">
<return>
<product sku="A358185">
<name>Red Hat Linux</name>
<description>Red Hat Linux Operating System</description>
<price>54.99</price></product>
</return>
</ns1:getProductResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2.3.7 Truy n t i SOAP qua HTTP
SOAP không phân bi t b t kỳ giao th c truy n t i nào. Trên th c t , SOAP
có th ñư c truy n t i qua SMTP, FTP, MQSeries c a IBM, Microsoft Message
Queue(MMQ). Tuy nhiên, ñ c t SOAP ch mô t chi ti t v HTTP và nó là giao
th c truy n tài SOAP ph bi n. Các yêu c u SOAP ñư c g i qua yêu c u HTTP và
các ph n h i SOAP ñư c tr v trong n i dung c a ph n h i HTTP. M c dù các yêu
c u SOAP có th ñư c g i qua HTTP GET, nhưng ñ c t SOAP ch mô t chi ti t
HTTP POST(HTTP POST ñư c ưu tiên hơn b i vì h u h t các máy ch ñ t yêu c u
h n ch ký t trên các yêu c u GET). Thêm n a, c hai yêu c u và ph n h i HTTP
ph i ñư c thi t l p ki u n i dung là text/xml. Như m t yêu c u b sung, các máy
tr m ph i ch rõ m t SOAP Action header. SOAP Action header là m t URI ñư c
s d ng ñ ch ra m c ñích c a yêu c u. ði u này làm nó có xác ñ nh nhanh b n
ch t c a m t yêu c u SOAP, không c n ph i ki m tra n i dung thông ñi p
SOAP[8].
ð c t SOAP yêu c u máy tr m ph i cung c p m t SOAP Action header,
nhưng giá tr th c c a nó b ph thu c tri n kh i trên máy ch SOAP. ví d , ñ truy
61. 61
nh p d ch v AltaVista BabelFish Translation ñư c cài ñ t b ng Xmethods, b n
ph i ch rõ urn:xmethodsBabelFish#BabelFish như m t SOAP Action header. Th m
trí n u máy ch không yêu c u m t SOAP Action header ñ y ñ , máy tr m ph i ch
rõ m t chu i tr ng ho c ñ t giá tr r ng. Ví d :
SOAPAction: ""
SOAPAction:
Ví d ñơn gi n v yêu c u ñư c g i qua HTTP t i d ch v XMethods Babelfish
Translation[8].
POST /perl/soaplite.cgi HTTP/1.0
Host: services.xmethods.com
Content-Type: text/xml; charset=utf-8
Content-Length: 538
SOAPAction: "urn:xmethodsBabelFish#BabelFish"
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:BabelFish xmlns:ns1="urn:xmethodsBabelFish"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<translationmode xsi:type="xsd:string">en_fr</translationmode>
<sourcedata xsi:type="xsd:string">Hello, world!</sourcedata>
</ns1:BabelFish>
</SOAP-ENV:Body> </SOAP-ENV:Envelope>
Chú ý: Content-Type, SOAPAction, và phương th c BabeFish yêu c u hai tham s
ki u chu i. Ch ñ thông d ch en_fr s thông d ch t ti ng Anh sang ti ng Pháp.
ðây là ph n h i t Xmethods:
62. 62
HTTP/1.1 200 OK
Date: Sat, 09 Jun 2001 15:01:55 GMT
Server: Apache/1.3.14 (Unix) tomcat/1.0 PHP/4.0.1pl2
SOAPServer: SOAP::Lite/Perl/0.50
Cache-Control: s-maxage=60, proxy-revalidate
Content-Length: 539 Content-Type: text/xml
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope …> <SOAP-ENV:Body>
<namesp1:BabelFishResponse xmlns:namesp1="urn:xmethodsBabelFish">
<return xsi:type="xsd:string">Bonjour, monde!</return>
</namesp1:BabelFishResponse>
</SOAP-ENV:Body> </SOAP-ENV:Envelope>
Các SOAP response ñư c phân ph i qua HTTP b t bu c ph i theo các mã tr ng
thái gi ng HTTP, ví d tr ng thái 200 OK xác ñ nh là thành công, 500 là tr ng thái
l i trong máy ch và ph n h i SOAP g m có ph n t Fault.
2.4 Service Description: WSDL
WSDL là m t ñ c t ñ nh nghĩa phương pháp mô t d ch v Web trong m t ng
pháp XML chung, nó thư ng ñư c lưu dư i d ng file *.wsdl, ñư c máy tr m s
d ng m i khi k t n i v i d ch v Web. WSDL mô t 4 thông tin quan tr ng c a
d ch v Web[8]:
Thông tin mô t t t c các Hàm ñư c công b .
Thông tin ki u d li u cho t t c các thông ñi p yêu c u và ph n h i.
Thông tin v giao th c truy n t i ñư c s d ng.
Thông tin ñ a ch xác ñ nh d ch v c th .
WSDL không nh t thi t ph i g n li n v i m t h th ng thông ñi p XML c th ,
nhưng nó bao g m ph n m r ng d ng s n cho mô t các d ch v SOAP.
Ví d 2.4 cung c p m t file WSDL ñơn gi n. File này mô t các giao di n công
b d ch v thông tin th i ti t trên. Có hai ñi m chính c n quan tâm.
63. 63
ð u tiên, Các ph n t <message> xác ñ nh các thông ñi p XML riêng bi t
ñư c chuy n giao gi a các máy tính. Trong trư ng h p này, chúng ta có m t
getWeatherRequest và getWeatherResponse.
Th hai, các ph n t <service> xác ñ nh r ng d ch v s n sàng dư i d ng
SOAP t i http://localhost:8080/soap/servlet/rpcrouter[8].
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="WeatherService"
targetNamespace="http://www.ecerami.com/wsdl/WeatherService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/WeatherService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<message name="getWeatherRequest">
<part name="zipcode" type="xsd:string"/>
</message>
<message name="getWeatherResponse">
<part name="temperature" type="xsd:int"/>
</message>
<portType name="Weather_PortType">
<operation name="getWeather">
<input message="tns:getWeatherRequest"/>
<output message="tns:getWeatherResponse"/>
</operation>
</portType>
<binding name="Weather_Binding" type="tns:Weather_PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getWeather"> <soap:operation soapAction=""/>
<input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
64. 64
namespace="urn:examples:weatherservice" use="encoded"/>
</input>
<output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:weatherservice" use="encoded"/>
</output> </operation> </binding>
<service name="Weather_Service">
<documentation>WSDL File for Weather Service</documentation>
<port binding="tns:Weather_Binding" name="Weather_Port">
<soap:address location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port> </service> </definitions>
Ví d 2.4 : Mô t m t file *.WSDL
2.4.1 Các thành ph n trong file WSDL
ð c t WSDL chia làm 6 phàn t chính[8]:
definitions: Ph n t <definition> ph i là ph n t g c c a tài li u WSDL. Nó
ñ nh nghĩa tên c a d ch v Web, khai báo nhi u namespace ñư c s d ng
trong su t ph n còn l i c a tài li u, và ch a t t c các ph n t d ch v ñư c
mô t ñây.
Types: Ph n t <types> mô t t t c các ki u d li u ñư c s d ng gi a máy
tr m và máy ch . WSDL không b ràng bu c vào m t h th ng duy nh t,
nhưng nó m c ñ nh s d ng ñ c t W3C XML Schema. N u d ch v ch s
d ng các ki u d ng s n, ñơn gi n c a XML Schame, như string, integer, thì
ph n t types không c n thi t ph i có.
Message: Ph n t <message> mô t m t thông ñi p m t chi u, nó là m t
thông ñi p yêu c u ho c ph n h i. Nó ñ nh nghĩa tên c a thông ñi p và bao
g m không ho c có thêm ph n t <part> có th tham chi u t i các tham s
ho c giá tr mà thông ñi p tr v .
portType: Ph n t <portType> bao g m nhi u ph n t <message> dư i hình
th c hoàn toàn m t chi u ho c thao tác di chuy n vòng tròn. Ví du, m t
65. 65
portType có th k t h p m t thông ñi p yêu c u và m t thông ñi p ph n h i
trong m t thao tác Request/Response ñơn l , ñây là cách thông thư ng nh t
ñư c s d ng trong các d ch v SOAP. Chú ý r ng m t port Type có th (và
thư ng xuyên) ñ nh nghĩa nhi u thao tác.
Binding: Ph n t <binding> mô t các chi ti t c th m t d ch v s ñư c
th c thi trên môi trư ng m ng. WSDL g m có các ñ nh nghĩa m r ng d ng
s n v các d ch v SOAP, và thông tin c th c a SOAP t i ñây.
Service: Ph n t <service> ñ nh nghĩa ñ a ch th c hi n m t d ch v c th .
Thông thư ng nh t là m t URL ñ th c hi n d ch v SOAP.
Hình 2.4.1 - ð c t WSDL
Ngoài 6 ph n t chính, ñ c t WSDL cũng ñ nh nghĩa các ph n t ph tr :
documentation: Ph n t <documentation> ñư c s d ng ñ cung c p tài li u
mà con ngư i có th hi u và có th ñư c ñưa vào trong b t kỳ m t ph n t
WSDL khác.
Import:Ph n t <import> ñư c s d ng ñ nh p kh u các tài li u WSDL
khác ho c các XML Schema. ði u này cho phép các tài li u WSDL mô-dun
hóa hơn. Ví d , hai tài li u WSDL có th cùng nh p kh u các ph n t cơ b n
và chưa bao g m các ph n t d ch v c a nó ñ t o ra cùng m t d ch v trên
hai ñ a ch v t lý.
2.4.2 Ki u d li u XML Schema.
ð m t máy tr m SOAP giao ti p hi u qu v i m t máy ch SOAP, máy
tr m và máy ch ph i th ng nh t m t h th ng ki u d li u. M c ñ nh, XML 1.0
không cung c p m t h th ng ki u d li u. Ngư c l i, m i ngôn ng a l p trình cung