10/10/2018, 11:33

Sức mạnh của SOAP ?

Hiện tại em đang tìm hiểu về SOAP, em được biết nó là 1 protocol tương tự như POST và GET, nó dùng để truyền tải những dữ liệu giữa các ứng dụng với nhau dựa trên nền tảng XML. Em nghe nói nó rất "mạnh". Tại em mới đang tìm hiểu và chưa ứng dụng bao giờ nên không hiểu nó mạnh đến đâu. Nhưng theo tính năng của nó như em nói ở trên thì em nghĩ dùng PHP và response lại là file XML cũng được, ví dụ thế này (lấy thông tin user từ người dùng thiết bị điện thoại).

http://localhost/user/login.php

Code:
<?php
$user = $_POST[ 'user' ];// thong tin tu nguoi nhap tren 1 thiet bi nao do
$pass = $_POST[ 'pass' ];

if($user == 'admin' && $pass=='admin') {
$array = array('username'=>'admin','email'=>'admin@yahoo.com','fullname'=>'Full name');
echo '<users>';
foreach($array as $value) {
echo "<user username='$value[username]' email='$value[email]' fullname='$value[fullname]' />";
}
echo '</users>';
}

?>
Kết quả:

<users>
<user username='admin' email='admin@yahoo.com' fullname='Full name' />
</users>

Như vậy cũng lấy được thông tin mà không thông qua SOAP hay REST gì đó, đó là theo cách em biết theo kiến thức ít ỏi của em, cho em 1 lời giải thích thỏa đáng hơn với, cảm ơn các anh.
zmt264 viết 13:36 ngày 10/10/2018
Được gửi bởi pro_ga
Hiện tại em đang tìm hiểu về SOAP, em được biết nó là 1 protocol tương tự như POST và GET, nó dùng để truyền tải những dữ liệu giữa các ứng dụng với nhau dựa trên nền tảng XML. Em nghe nói nó rất "mạnh". Tại em mới đang tìm hiểu và chưa ứng dụng bao giờ nên không hiểu nó mạnh đến đâu. Nhưng theo tính năng của nó như em nói ở trên thì em nghĩ dùng PHP và response lại là file XML cũng được, ví dụ thế này (lấy thông tin user từ người dùng thiết bị điện thoại).

http://localhost/user/login.php

Code:
<?php
$user = $_POST[ 'user' ];// thong tin tu nguoi nhap tren 1 thiet bi nao do
$pass = $_POST[ 'pass' ];

if($user == 'admin' && $pass=='admin') {
$array = array('username'=>'admin','email'=>'admin@yahoo.com','fullname'=>'Full name');
echo '<users>';
foreach($array as $value) {
echo "<user username='$value[username]' email='$value[email]' fullname='$value[fullname]' />";
}
echo '</users>';
}

?>
Kết quả:

<users>
<user username='admin' email='admin@yahoo.com' fullname='Full name' />
</users>

Như vậy cũng lấy được thông tin mà không thông qua SOAP hay REST gì đó, đó là theo cách em biết theo kiến thức ít ỏi của em, cho em 1 lời giải thích thỏa đáng hơn với, cảm ơn các anh.
Trước tiên Gu Gồ tí nhé, http://www.google.com.vn/search?q=soap+xml+schema Để trả lời được câu hỏi của bạn, bạn cần tìm hiểu về các thể loại XML schemas trước khi tìm hiểu về SOAP, mà điển hình nhất là http://www.w3schools.com/schema/ , cái này dùng để thống nhất 1 cấu trúc XML giữa 2 bên, nếu làm như bạn đương nhiên là OK, nhưng bạn làm bạn tự sài thôi, ko chơi với ai khác được, dùng chuẩn chung có lợi thế là nhiều bên support => nhiều thư viện support.

Cụ thể hơn, với ví dụ của bạn, nếu server trả về 1 cấu trúc XML bất kỳ, ko định nghĩa như bạn vừa nêu thì bạn phải tự viết parser ở client cho nó, để lọc ra dữ liệu. Còn nếu bạn viết client bằng bộ thư viện có hỗ trợ SOAP thì đơn giản bạn trả về SOAP thì tự client có parser rồi bạn chỉ việc sử dụng để lấy dữ liệu bạn muốn.

Nói sơ thế, cụ thể bạn học thêm, cái này để hiểu được sẽ mất 3h-30 ngày, tùy vào kiến thức, năng lực hiện tại của bạn và tùy vào việc bạn muốn hiểu sâu đến mức nào.
pro_ga viết 13:36 ngày 10/10/2018
Cảm ơn anh đã trả lời, ý của em muốn biết là có phải dùng SOAP chỉ để thực hiện nhiệm vụ truyền tải những dữ liệu từ client -> server và phản hồi lại thông tin là dữ liệu XML? Em cần biết rõ mục đích dùng nó cho việc gì, hình dung được học sẽ tốt hơn.
Được gửi bởi zmt264
Trước tiên Gu Gồ tí nhé,
http://www.google.com.vn/search?q=soap+xml+schema Để trả lời được câu hỏi của bạn, bạn cần tìm hiểu về các thể loại XML schemas trước khi tìm hiểu về SOAP, mà điển hình nhất là http://www.w3schools.com/schema/ , cái này dùng để thống nhất 1 cấu trúc XML giữa 2 bên, nếu làm như bạn đương nhiên là OK, nhưng bạn làm bạn tự sài thôi, ko chơi với ai khác được, dùng chuẩn chung có lợi thế là nhiều bên support => nhiều thư viện support.

Cụ thể hơn, với ví dụ của bạn, nếu server trả về 1 cấu trúc XML bất kỳ, ko định nghĩa như bạn vừa nêu thì bạn phải tự viết parser ở client cho nó, để lọc ra dữ liệu. Còn nếu bạn viết client bằng bộ thư viện có hỗ trợ SOAP thì đơn giản bạn trả về SOAP thì tự client có parser rồi bạn chỉ việc sử dụng để lấy dữ liệu bạn muốn.

Nói sơ thế, cụ thể bạn học thêm, cái này để hiểu được sẽ mất 3h-30 ngày, tùy vào kiến thức, năng lực hiện tại của bạn và tùy vào việc bạn muốn hiểu sâu đến mức nào.
zmt264 viết 13:46 ngày 10/10/2018
cái này thì em ít gặp.

Vì nếu em làm web thông thường, thì client là browser, ko support SOAP * , cho nên ít khi dùng.

Thường SOAP ứng dụng để truyền tải thông tin server-server, đây cũng là ứng dụng phổ biến của Web Services, khi nào em phải cho 2 server giao tiếp nhau, nhất là khi 2 cái dùng công nghệ khác nhau, ví dụ 1 thằng chơi .NET, 1 thằng chơi PHP thì em sẽ hiểu hơn.

Còn client-server thì ít đất cho SOAP, trừ khi em tự viết 1 mobile app (hoặc desktop app) có dùng SOAP để giao tiếp với server chẳng hạn (app này là client)

Tức là em trước tiên cần biết Web Services ** thường dùng vào cái gì đã. Nhưng biết cho vui vâỵ thôi, nếu em ko làm thật thì cũng ko hiểu sâu được.

*: đương nhiên cũng có ngoại lệ:
http://oreilly.com/pub/a/javascript/...lasoapapi.html
https://developer.mozilla.org/en/SOA...based_Browsers

nhưng người lập trình web luôn phải làm cross browser nên ngoại lệ ko có ý nghĩa lắm

** : đọc thêm cái này http://www.w3schools.com/webservices/ws_why.asp

Web Services have Two Types of Uses => có 2 ứng của WS

Reusable application-components. = Tái sử dụng 1 chức năng nào đó trên nhiều hệ thống

There are things applications need very often. So why make these over and over again?

Web services can offer application-components like: currency conversion, weather reports, or even language translation as services.

Connect existing software. = Kết nối giữa các hệ thống (phần mềm, web) dùng công nghệ khác nhau

Web services can help to solve the interoperability problem by giving different applications a way to link their data.

With Web services you can excha
pro_ga viết 13:41 ngày 10/10/2018
Em hiểu SOAP dùng nhiều cho việc truyền tải dữ liệu từ những công nghệ khác nhau, ví dụ app android vs PHP chẳng hạn, nói thật hiện tại em muốn viết 1 app android đăng nhập user và lấy thông tin từ hệ thống server chạy web PHP, nếu dùng như cái example của em ở trên thì có thể được, nhưng em muốn tìm hiểu thêm SOAP, nó có hơn gì ở cái script ở trên của em ngoài việc nếu dùng đúng chuẩn thì nhiều người sử dụng được (như anh nói ở trên).
zmt264 viết 13:39 ngày 10/10/2018
Được gửi bởi pro_ga
Em hiểu SOAP dùng nhiều cho việc truyền tải dữ liệu từ những công nghệ khác nhau, ví dụ app android vs PHP chẳng hạn, nói thật hiện tại em muốn viết 1 app android đăng nhập user và lấy thông tin từ hệ thống server chạy web PHP, nếu dùng như cái example của em ở trên thì có thể được, nhưng em muốn tìm hiểu thêm SOAP, nó có hơn gì ở cái script ở trên của em ngoài việc nếu dùng đúng chuẩn thì nhiều người sử dụng được (như anh nói ở trên).
cái đó đã trả lời rồi, có điều em ko để ý hoặc ko hiểu câu trả lời

1) tự viết XML = tự viết parser

2) dùng SOAP (hoặc 1 cái quái quỷ gì đó nhiều người khác cũng dùng) = ko phải tự viết parser

em ctrl F từ "parser", tôi đã nhắc đến ở trên, còn nếu ko hiểu parser là gì thì câu chuyện chắc còn dài, thôi tôi đi ngủ nhé.
pro_ga viết 13:35 ngày 10/10/2018
Em đã đoán đúng và giờ em chắc chắn hơn cái SOAP hơn cái thông thường ở chỗ sử dụng nó sẽ nhanh hơn, không quan tâm đến cú pháp nhiều, cảm ơn anh.
zmt264 viết 13:35 ngày 10/10/2018
Được gửi bởi pro_ga
Em đã đoán đúng và giờ em chắc chắn hơn cái SOAP hơn cái thông thường ở chỗ sử dụng nó sẽ nhanh hơn, không quan tâm đến cú pháp nhiều, cảm ơn anh.
tất nhiên cũng tùy tình huống, ví dụ như cái XML đơn giản như bạn ví dụ thì tự viết parser lại gọn nhẹ, nhanh chóng hơn việc dùng SOAP đấy
pro_ga viết 13:38 ngày 10/10/2018
Tất nhiên nhưng sử dụng SOAP thì nhanh hơn đối với XML phức tạp, còn nếu XML đơn giản thì em dùng luôn cho rồi.
zmt264 viết 13:43 ngày 10/10/2018
Được gửi bởi pro_ga
Tất nhiên nhưng sử dụng SOAP thì nhanh hơn đối với XML phức tạp, còn nếu XML đơn giản thì em dùng luôn cho rồi.
trường hợp dữ liệu đơn giản, bạn còn 1 lựa chọn khác cũng khá phổ biến là sử dụng JSON
Bài liên quan
0