You are on page 1of 32

BÁO CÁO BÀI TẬP LỚN MÔN MẠNG

MÁY TÍNH VÀ LẬP TRÌNH MẠNG

ĐỀ TÀI:TÌM HIỂU VỀ SOAP

• GVHD: ĐOÀN THỊ THU HÀ


• Nhóm sinh viên thực hiện:Nhóm19
ĐINH THỊ QUYÊN - 533413
NGUYỄN THỊ SEN - 533416
HOÀNG THỊ THÁI - 533419
NỘI DUNG TRÌNH BÀY

Phần I. Mở đầu
Phần II. Nội dung
I. Định nghĩa SOAP
II. Các đặc trưng của SOAP
III. Cấu trúc thông điệp SOAP
IV. Ưu nhược điểm của SOAP
Phần III. Kết luận
Phần IV. Tài liệu tham khảo.
Phần I. Mở đầu
Như chúng ta đã biết ngày nay công nghệ
thông tin đang phát triển rất mạnh mẽ.Song
song với điều đó là nhu cầu tìm hiểu,trao
đổi thông tin giữa các ứng dụng cũng rất
cao.Và tất nhiên phải có những giao thức
giúp cho việc trao đổi thông tin được diễn
ra và SOAP chính là một trong những giao
thức để làm được điều đó.Sau đây chúng
ta sẽ nghiên cứu về SOAP
Phần II. Nội dung
I. Định nghĩa SOAP (Simple Object Access Protocol)
+ Là giao thức được Web Service sử dụng để
truyền dữ liệu qua Internet .
+ SOAP = XML + một giao thức có thể hoạt
động trên Internet (HTTP, FTP, SMTP), trong
đó HTTP phổ biến hơn cả.
web service
WebService Web Service

Firew
all

Firew
Interne
t all

Firew
all

Client Web Service


web service
• Là một abstract interface, được thể hiện
trong HTML dựa trên sự tương tác của
User & Web Server .
• Là một software application được truy
xuất thông qua Web bởi một ứng dụng
khác .
CÁC THÀNH PHẦN CỦA WEB SERVICES

Web Service

WSDL UDDI SOAP


• Trong đó:
• WSDL (Web Service Description
Language ):Là ngôn ngữ mô tả dịch vụ
• UDDI (Universal Description, Discovery, and
Integration) :được sử dụng để đăng ký và tìm
dịch vụ Web đã được miêu tả cụ thể trong
WSDL , UDDI sử dụng SOAP để giao tiếp với
UDDI server
• SOAP:giúp client có thể truy xuất đến UDDI
registry bằng các lệnh SOAP
Đến đây chúng ta đã hiểu được web services
là như thế nào, nó được công bố và truy xuất ở
đâu. Nhưng vẫn còn một vấn đề khá quan trọng
đó là: Làm thế nào chúng ta truy xuất dịch vụ khi
tìm thấy? Câu trả lời là web servicves có thể truy
xuất bằng một giao thức là Simple Object
Access Protocol – SOAP. Nói cách khác chúng
ta có thể truy xuất đến UDDI registry bằng các
lệnh gọi SOAP.
XML là gì?
+ XML là viết tắt của eXtensible Markup
Language.
+ XML là một ngôn ngữ đánh dấu tương tự
như HTML.
+ XML được thiết kế để mang dữ liệu,
không để hiển thị dữ liệu.
+Các thẻ XML không được định trước. Bạn
phải xác định các thẻ của riêng bạn (*)
+ XML được thiết kế để tự mô tả
XML Namespaces
• XML Namespaces cung cấp một phương
pháp để tránh xung đột tên phần tử.
• Giải quyết các xung đột Tên Sử dụng một
tiền tố
Ví dụ
• <h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
• Khi sử dụng các tiền tố cho namespace phải
được định nghĩa
• cú pháp :xmlns: prefix(Tiền tố) = "URI".
• <root>
<h:table xmlns:h="http://www.w3.org/TR/html4/" >
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<f:table
xmlns:f="http://www.w3schools.com/furniture" >
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>
II. Các đặc trưng của SOAP
+ SOAP là ngôn ngữ độc lập
+ SOAP xây dựng dựa trên XML
+ SOAP được thiết kế đơn giản và dễ mở
rộng.
+ SOAP dung cho giao tiếp giữa các ứng dụng
+ SOAP là một định dạng cho việc gửi
messages
+ SOAP giao tiếp qua Internet
+ Có khả năng hoặt động "xuyên qua" tường
lửa
Why SOAP?
• Ngày nay, các ứng dụng giao tiếp với nhau bằng
cách sử dụng Remote Procedure Calls (RPC)
như DCOM và CORBA, nhưng HTTP không
được thiết kế cho việc này. RPC đại diện cho
một khả năng tương thích và các vấn đề bảo
mật, nhưng các thông báo qua mạng thường bị
tường lửa và proxy servers chặn lại.
• Cách tốt hơn để giao tiếp giữa các ứng dụng là
sử dụng HTTP, bởi vì HTTP được hỗ trợ bởi tất
cả các trình duyệt Internet và máy chủ nên
SOAP được tạo ra để thực hiện điều này.
• SOAP = XML + HTTP
Quy tắc cú pháp:
 + Một message SOAP phải được mã hóa
bằng cách sử dụng XML
 + Một message SOAP phải sử dụng
SOAP Envelope namespace
 + Một message SOAP phải sử dụng
SOAP Encoding namespace
 + Một message SOAP không phải có một
tham chiếu DTD
Khung message SOAP
• <?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soa
p-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
  <soap:Fault>
  ...
  </soap:Fault>
</soap:Body>
</soap:Envelope>
Cấu trúc thông điệp SOAP
Phần tử SOAP Envelope
+ Phần tử bao trùm nội dung message, khai báo văn bản
XML như là một thông điệp SOAP.

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/1
2/soap-encoding">
  ...
  Message information goes here
  ...
</soap:Envelope>
Phần tử SOAP Header
Chứa các thông tin tiêu đề cho trang, phần tử
này không bắt buộc khai báo trong văn bản.
Những đầu mục còn có thể mang những dữ
liệu chứng thực, những chữ ký số hóa, và
thông tin mã hóa, hoặc những cài đặt cho giao
tác.
<SOAP-ENV:Header>
<ns1:username xmlns:ns1="JavaSoapBook">
Jessica
</ns1:username>
</SOAP-ENV:Header>
Thuộc tính của SOAP header
+ Thuộc tính Actor
Chứa các thông tin chỉ nhằm mục đích trung
gian hoặc thông tin cho các điểm cuối cùng.
+ Thuộc tính MustUnderstand
Thuộc tính này cho biết một header entries
đang bắt buộc tùy chọn hoặc tùy chọn (optional
or mandatory).
Phần tử Body SOAP
Phần tử khai báo nội dung chính trong thông điệp
body, chứa các thông tin yêu cầu và phản hồi.
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-
encoding">
<soap:Body>
  <m:GetPrice
xmlns:m="http://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>
</soap:Envelope>
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Body>
  <m:GetPriceResponse
xmlns:m="http://www.w3schools.com/prices">
    <m:Price>1.90</m:Price>
  </m:GetPriceResponse>
</soap:Body>
</soap:Envelope>
Phần tử SOAP Fault

SOAP Fault này là phần tử Body đưa vào chỉ


được xác định bởi SOAP. Nó được sử dụng để
đưa ra thông tin lỗi của một thông điệp SOAP ban
đầu. Các phần tử Faults phải xuất hiện ngay sau
một phần tử con của các phần tử Body, và nó
không thể xuất hiện nhiều hơn một lần
Các phần tử của SOAP Fault

• Faultcode Element : Xác định lỗi


• Faultstring Element : Giải thích về lỗi
• Faultactor Element : Xác định đối tượng gây ra
lỗi.
• Detail Element : Xác định cụ thể do lỗi liên kết
với các phần tử Body massage
SOAP HTTP BINDING
• HTTP truyền qua TCP / IP. Một HTTP client kết nối đến một máy
chủ HTTP bằng cách sử dụng giao thức TCP. Sau khi thiết lập kết
nối, client có thể gửi một message yêu cầu HTTP từ máy chủ:
• POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain
Content-Length: 200
• Server sau đó sẽ xử lý yêu cầu và gửi một phản hồi HTTP lại cho
client. Phản hồi này có chứa một mã trạng thái cho biết trạng thái
của yêu cầu:
• 200 OK
Content-Type: text/plain
Content-Length: 200
• Trong ví dụ trên, server trả lại một mã trạng thái 200. Đây là mã tiêu
chuẩn thành công cho HTTP.
Nếu server không thể giải mã các yêu cầu, nó có thể trả lại như thế
này:
• 400 Bad Request
Content-Length: 0
SOAP HTTP Binding
SOAP là cách thức yêu cầu / Phản hồi
HTTP mà tuân thủ các quy tắc mã hoá
SOAP.
HTTP + XML = SOAP
Một yêu cầu SOAP có thể là một HTTP
POST hoặc HTTP GET.
Các yêu cầu HTTP POST xác định ít nhất
hai tiêu đề HTTP: Content-Type và
Content-Length.
IV. Ưu nhược điểm của SOAP
•  Ưu điểm :
• Dễ dàng kết nối với proxies và firewall.
• SOAP hỗ trợ linh động với những giao thức vận
chuyển khác nhau.
• SOAP là platform độc lập.
• SOAP là ngôn ngữ độc lập.
•  Nhược điểm :
• Không thể cạnh tranh tốc độ với những công nghệ
như CORBA.
• Chỉ client mới có thể sử dụng được dịch vụ do SOAP
cung cấp.
• HTTP quá đơn giản để tạo ra các trang web hay dịch
vụ mà chỉ có các công nghệ mới mới đáp ứng được.
• Không phải tất cả các ngôn ngữ đều hỗ trợ SOAP
(JAVA).
Phần III. Kết luận
• Bài tìm hiểu trên đây chỉ cho chúng ta
cách sử dụng SOAP để trao đổi thông
tin giữa các ứng dụng thông qua HTTP.
Giúp ta hiểu rõ hơn về các phần tử và
các thuộc tính khác nhau trong một
message SOAP. Bạn cũng đã biết được
cách sử dụng SOAP như là một giao
thức để truy cập một dịch vụ web.
Simple object Access protocol
HTTP

HTTP
Phần IV. Tài liệu tham khảo

• Bài giảng môn mạng máy tính và lập trình


• mạng - GV Đoàn Thị Thu Hà
• Ebook: Java. and SOAP
• http://www.w3schools.com
• http://www.wikipedia.org/
• Mạng máy tính và các hệ thống mở -
Nguyễn Thúc Hải – NXB Giáo Dục 1999
• V,v,v,…

You might also like