2008-10-22 40 views
151

Tôi đã đọc về "dịch vụ web" ở đây trên SO, trên Wikipedia, Google, v.v., và tôi không hoàn toàn hiểu chúng là gì. Định nghĩa/mô tả bằng tiếng Anh đơn giản là gì?"Dịch vụ web" bằng tiếng Anh đơn giản là gì?

Nếu tôi tạo một trang web đơn giản bằng cách sử dụng PHP, chỉ cần nói, in một số nguyên ngẫu nhiên vào trang ... đây có phải là "dịch vụ web" không? Nếu không, tai sao không?

Trả lời

244

Định nghĩa đơn giản: Dịch vụ web là một chức năng có thể được truy cập bởi các chương trình khác trên web (Http). Để làm rõ một chút, khi bạn tạo một trang web bằng PHP, đầu ra HTML mục tiêu của nó là trình duyệt và phần mở rộng là con người đang đọc trang trong trình duyệt. Một dịch vụ web không nhắm vào con người mà là ở các chương trình khác.

Vì vậy, trang web PHP của bạn tạo ra một số nguyên ngẫu nhiên có thể là một dịch vụ web nếu nó xuất ra số nguyên ở định dạng có thể được tiêu thụ bởi chương trình khác. Nó có thể ở định dạng XML hoặc định dạng khác, miễn là các chương trình khác có thể hiểu đầu ra.

Định nghĩa đầy đủ rõ ràng là phức tạp hơn nhưng bạn đã yêu cầu cho tiếng Anh đơn giản.

+1

Giải thích này là tốt, nhưng những gì phá vỡ khả năng tiêu thụ số nguyên ngẫu nhiên của người khác từ HTML? Có rất nhiều thư viện để đọc HTML và điều này cũng giống như đọc XML cho tôi, và gần giống như đọc JSON. Tôi biết bài viết này rất cũ, mặc dù bình luận xin vui lòng, nếu nó có thể. – Pavlo

+2

Đó là một vấn đề của ý định chứ không phải là khả năng. Mục đích của dịch vụ web sẽ được các ứng dụng khác sử dụng. Mục đích của html sẽ được hiển thị cho người dùng bởi trình duyệt. –

31

Vâng, đó là một dịch vụ web đơn giản.

Dịch vụ web thực sự không có gì khác ngoài cơ chế yêu cầu/phản hồi cho phép khách hàng truy cập/sửa đổi dữ liệu từ xa. Có các tiêu chuẩn chính thức cho các dịch vụ web (SOAP, SOA, v.v.), nhưng trang đơn giản của bạn cũng là một dịch vụ.

Nhược điểm chính để in nó vào một trang là dịch vụ của bạn sẽ trả về HTML. Các định dạng dữ liệu thích hợp là JSON và XML, bởi vì hầu hết các khung công tác khách (và các khung máy chủ) được thiết kế xung quanh bằng cách sử dụng JSON và XML.

Vì vậy, nếu bạn sửa đổi dịch vụ của bạn để trở:

<RANDOM>some random number</RANDOM> 

hơn:

<HEAD>...</HEAD> 
<BODY>some random number</BODY> 

sau đó nó sẽ hữu ích hơn đối với hầu hết các khách hàng

+0

đã cập nhật câu trả lời của tôi để phản ánh rằng. Có vấn đề với SO không hiển thị các tab XML/HTML :) –

+0

Hiệu chỉnh làm cho nó tốt hơn (-: Yanking bình luận gốc – Murph

+0

Cảm ơn chính xác những gì tôi nghĩ về điều đó. XML rất giống với HTML, vì vậy trang HTML chúng ta nói về cung cấp bởi web – Pavlo

2

Một định nghĩa đơn giản sẽ là một HTTP yêu cầu hoạt động như một cuộc gọi phương thức thông thường; tức là, nó chấp nhận các tham số và trả về một kết quả có cấu trúc, thường là XML, có thể được deserialized thành một đối tượng (s).

19

Trong các thuật ngữ đơn giản hơn, dịch vụ web là thứ cung cấp dữ liệu dưới dạng dịch vụ qua giao thức http. Cấp rằng không phải là trường hợp .... nhưng nó là gần gũi.

Dịch vụ web tiêu chuẩn sử dụng Giao thức SOAP xác định giao tiếp và cấu trúc của thư và XML là định dạng dữ liệu.

Dịch vụ web được thiết kế để cho phép các ứng dụng được tạo bằng các công nghệ khác nhau để liên lạc với nhau mà không gặp sự cố.

Ví dụ về dịch vụ web là những thứ như Weather.com cung cấp thông tin thời tiết cho bạn có thể sử dụng trên trang web của bạn hoặc UPS cung cấp phương thức yêu cầu báo giá vận chuyển hoặc theo dõi gói hàng.

Sửa

từ ngữ đã thay đổi trong tài liệu tham khảo để SOAP, vì nó không phải lúc nào cũng SOAP như tôi đã đề cập, nhưng muốn làm cho nó rõ ràng hơn. Điều quan trọng là cung cấp dữ liệu dưới dạng dịch vụ, không phải là phần tử giao diện người dùng.

+0

Nó không phải là SOAP - nếu bạn đang nói về dịch vụ web (trong chữ thường) thì REST ngày càng phổ biến –

+0

Rất đúng ... hãy để tôi chỉnh sửa một chút –

5

Dịch vụ web, như được các nhà phát triển phần mềm sử dụng, thường đề cập đến một thao tác được thực hiện trên máy chủ từ xa và được gọi bằng đặc tả XML/SOAP. Như với tất cả các định nghĩa, có những sắc thái đối với nó, nhưng đó là cách sử dụng phổ biến nhất của thuật ngữ.

+1

Xin lỗi Jezelll, đã phải Đây không phải là những gì tôi sẽ xem xét 'plain english': (Tôi không có vấn đề với ý định định nghĩa của bạn, nhưng sử dụng các từ như 'operation', 'remote server', 'invoked' và 'specification "Làm cho người mới bắt đầu khó hiểu. Hãy xem Người bán Mitchel trả lời làm ví dụ về 'tiếng anh đơn giản'. – Dhaust

2

Dịch vụ web xác định hợp đồng hành động mà máy chủ sẽ thực hiện cho bạn. Các định dạng và giao thức không thực sự quan trọng, nhưng bạn nên có một số định nghĩa thiết lập về cách thức giao tiếp xảy ra.

Trong ví dụ của bạn, nó phụ thuộc, nếu nó đang được sử dụng trong một ứng dụng khác mà đọc số đó, có nó là dịch vụ, nếu không, nó chỉ là một trang web với một số.

16

Dịch vụ web khác với một trang web trong đó dịch vụ web cung cấp thông tin tiêu thụ được bằng phần mềm thay vì con người. Kết quả là, chúng ta thường nói về các dịch vụ JSON, XML hoặc SOAP.

Dịch vụ web là thành phần chính trong "mashup". Mashup là khi thông tin từ nhiều trang web được tự động tổng hợp thành một dịch vụ mới và hữu ích. Ví dụ: có các trang web tổng hợp Google Maps với thông tin về các báo cáo của cảnh sát để cung cấp cho bạn một đại diện đồ họa về tội phạm trong khu vực của bạn. Một loại mashup khác là lấy dữ liệu cổ phiếu thực được cung cấp bởi một trang web khác và kết hợp nó với một ứng dụng giao dịch giả để tạo ra một "trò chơi" trên thị trường chứng khoán.

Dịch vụ web cũng được sử dụng để cung cấp tin tức (xem RSS), các mục mới nhất được thêm vào trang web, thông tin về sản phẩm mới, podcast và các tính năng tuyệt vời khác giúp biến web hiện đại.

Hy vọng điều này sẽ hữu ích!

49

Giải thích đơn giản, phi kỹ thuật: Một serivce web cho phép CHƯƠNG TRÌNH nói chuyện với trang web thay vì sử dụng trình duyệt của bạn để mở trang web.

Ví dụ: Tôi có thể truy cập maps.google.com và nhập địa chỉ nhà của tôi và xem bản đồ về nơi tôi sống trong trình duyệt của mình.

Nhưng nếu bạn viết chương trình máy tính nơi bạn muốn lấy địa chỉ và hiển thị bản đồ đẹp, giống như bản đồ của Google?

Vâng, bạn có thể viết một chương trình ánh xạ hoàn toàn mới, hoặc bạn có thể gọi dịch vụ web mà Google maps cung cấp, gửi địa chỉ và nó sẽ trả về bản đồ đồ hoạ của vị trí mà bạn có thể hiển thị chương trình của bạn.

Có rất nhiều điều nữa, vì một số bài đăng khác đi vào, nhưng kết quả là nó cho phép ứng dụng của bạn truy lục thông tin TỪ, hoặc gửi thông tin cho một số tài nguyên. Một số ví dụ khác:

  1. Bạn có thể sử dụng một dịch vụ web để lấy thông tin về sách tại Amazon.com
  2. Bạn có thể sử dụng một dịch vụ web tương tự như gửi một đơn đặt để Amazon.com
  3. bạn có thể tạo một dịch vụ web để cho phép các ứng dụng bên ngoài tìm hiểu thông tin sản phẩm trong công ty của bạn
  4. bạn có thể tạo dịch vụ web để cho phép các ứng dụng bên ngoài gửi đơn đặt hàng đến công ty của bạn.
3

Dịch vụ web gần giống như một trang web bình thường.Sự khác biệt là chúng được định dạng để làm cho nó rất dễ dàng cho một chương trình để lấy dữ liệu từ trang, đến mức có thể không sử dụng bất kỳ HTML nào. Chúng thường đáng tin cậy hơn là tính nhất quán của định dạng, có thể sử dụng một quy trình chính thức khác để xác định nội dung như xà phòng hoặc xml thô, và thường có một tài liệu mô tả chính thức xác định cấu trúc cho dữ liệu.

5

Hệ điều hành cung cấp GUI (và CLI) mà bạn có thể tương tác. Nó cũng cung cấp một API mà bạn có thể tương tác với chương trình.

Tương tự, trang web cung cấp các trang HTML mà bạn có thể tương tác và cũng có thể cung cấp API cung cấp cùng một thông tin và hoạt động theo lập trình. Hoặc các dịch vụ đó chỉ có thể có sẵn thông qua API không có giao diện người dùng được liên kết.

13

Đối với hầu hết các trang web bạn có các trang HTML mà bạn truy cập khi bạn sử dụng trình duyệt của mình. Đây là những trang có thể đọc được của con người (một khi được hiển thị trong trình duyệt của bạn), nơi có rất nhiều dữ liệu có thể được nhồi nhét lại với nhau, bởi vì nó có ý nghĩa đối với con người.

Bây giờ hãy tưởng tượng rằng người khác muốn sử dụng một số dữ liệu đó. Họ có thể tải xuống trang của bạn và bắt đầu lọc tất cả "nhiễu" để lấy dữ liệu họ muốn, nhưng hầu hết các trang web không được xây dựng theo cách dữ liệu chắc chắn 100% để được đặt ở cùng một vị trí cho tất cả các yếu tố, để được cồng kềnh nó cũng trở nên không đáng tin cậy.

Nhập dịch vụ web.

Dịch vụ web là thứ mà một trang web chọn cung cấp cho những người muốn đọc, cập nhật và/hoặc xóa dữ liệu khỏi trang web của bạn. Bạn có thể gọi nó là "backdoor" cho dữ liệu của bạn. Thay vì trình bày dữ liệu như là một phần của trang web, nó được cung cấp theo một cách được xác định trước, nơi một số phổ biến hơn là XML và JSON. Có một số cách để giao tiếp với dịch vụ web, một số cách sử dụng SOAP, một số khác có dịch vụ web REST'ful, v.v.

Điều gì phổ biến cho tất cả các dịch vụ web là chúng có thể đọc được với trang web đề nghị. Điều này có nghĩa là những người khác muốn sử dụng dữ liệu có thể gửi yêu cầu để lấy lại một số dữ liệu nhất định dễ phân tích và sử dụng. Một số trang web có thể yêu cầu bạn cung cấp tên người dùng/mật khẩu trong yêu cầu, cho dữ liệu nhạy cảm, trong khi các trang web khác cho phép bất kỳ ai trích xuất bất kỳ dữ liệu nào họ có thể cần.

10

Lời giải thích bằng tiếng Anh tốt nhất xuất phát từ việc sử dụng một loại suy:

  • trang Web cho phép mọi người giao tiếp và cộng tác với nhau.
  • Dịch vụ web cho phép các chương trình giao tiếp và cộng tác với nhau.

Ví dụ PHP của bạn là dịch vụ web theo định nghĩa đó, vì đầu ra có thể được chương trình khác tiêu thụ. Nhưng trên thực tế, việc quét màn hình HTML không phải là một cách đáng tin cậy hoặc có thể duy trì để tạo ra các dịch vụ web.

3

Cách gửi tin nhắn để gọi một thao tác trên một máy tính khác. Sự khác biệt giữa các dịch vụ web và các phương thức trước đó là những gì được gửi qua dây được tiêu chuẩn hóa ở mức cao hơn.

Cách cũ: mô tả người cuối, mã hóa, số cổng, v.v.Dịch vụ web: URL, XML

6

Simple way to explain web service is ::

  • Một dịch vụ web là một phương pháp giao tiếp giữa hai thiết bị điện tử trên World Wide Web.
  • Nó có thể được gọi là một quá trình mà một lập trình viên sử dụng để giao tiếp với máy chủ
  • Để gọi trình quá trình này có thể sử dụng SOAP vv
  • dịch vụ Web được xây dựng dựa trên các chuẩn mở như TCP/IP, HTTP

Ưu điểm của một webservice được, nói rằng bạn devel op một đoạn mã trong .net và bạn muốn sử dụng JAVA để tiêu thụ mã này. Bạn có thể tương tác trực tiếp với lớp trừu tượng và không biết công nghệ được sử dụng để phát triển mã.


Image

9

Một dịch vụ web là một tập hợp các giao thức mở và các tiêu chuẩn được sử dụng để trao đổi dữ liệu giữa các ứng dụng hoặc hệ thống. Các ứng dụng phần mềm được viết bằng các ngôn ngữ lập trình khác nhau và chạy trên các nền tảng khác nhau có thể sử dụng các dịch vụ web để trao đổi dữ liệu qua mạng máy tính như Internet theo cách tương tự như liên lạc giữa các quá trình trên một máy tính. Khả năng tương tác này (ví dụ: giữa các ứng dụng Java và Python hoặc Windows và Linux) là do việc sử dụng các tiêu chuẩn mở (XML, SOAP, HTTP).

Tất cả các dịch vụ Web tiêu chuẩn công trình sử dụng các thành phần sau đây:

  • SOAP (Simple Object Access Protocol)
  • UDDI (Universal Description, Discovery và tích hợp)
  • WSDL (Web Services Description Language)

Hoạt động tương tự như sau:

  • Chương trình khách hàng gộp thông tin đăng ký tài khoản vào một thông điệp SOAP.
  • Thông báo SOAP này được gửi tới Dịch vụ web dưới dạng nội dung của yêu cầu HTTP POST.
  • Dịch vụ web giải nén yêu cầu SOAP và chuyển đổi nó thành lệnh mà ứng dụng có thể hiểu được.
  • Ứng dụng xử lý thông tin theo yêu cầu và trả lời bằng số tài khoản duy nhất mới cho khách hàng đó.
  • Tiếp theo, các dịch vụ Web gói các phản ứng vào một thông báo SOAP, nó sẽ gửi lại cho chương trình khách hàng để đáp ứng yêu cầu HTTP của nó.
  • Chương trình khách hàng mở gói thông điệp SOAP để nhận kết quả của quá trình đăng ký tài khoản.
+1

"* Tất cả các Dịch vụ Web chuẩn đều hoạt động bằng các thành phần sau: *" ... vấn đề với câu trả lời này là nó gợi ý rằng các dịch vụ web thực hiện hoặc phải hoạt động trong cơ chế SOAP/WSDL. Điều này là không chính xác. Chuyển giao nhà nước đại diện (REST) ​​là một mô hình rất phổ biến để triển khai các dịch vụ web. Một số trang web lớn đã ngừng sử dụng các dịch vụ SOAP của họ để ủng hộ các dịch vụ web REST. – scottb

+0

@scottb Tôi Hoàn toàn đồng ý. Cảm ơn các cập nhật. Ngoài ra, trong phòng thủ của tôi, kiến ​​thức của tôi về các dịch vụ Web đã rất hạn chế sau đó! – vanguard69

3

Dịch vụ web giống như phương tiện giao thiệp giữa hai chương trình không liên quan. Các chương trình sử dụng giao thức được chỉ định (thường là Giao thức truy cập đối tượng đơn giản (SOAP)) là phương tiện để hiểu những gì REQUEST/RESPONCE mà chúng xử lý/thực hiện trên đầu tương ứng.

6

Webservice là một công nghệ mà theo đó hai hoặc nhiều ứng dụng web từ xa tương tác với nhau qua mạng/internet. Nó có thể được thực hiện sử dụng Java, .net, PHP vv

Đặc điểm của dịch vụ Web: -

  1. Sử dụng dịch vụ web trao đổi dữ liệu hai hay nhiều hệ thống qua mạng. Dữ liệu được trao đổi bằng cách sử dụng XML hoặc JSON.
  2. Bất kỳ dịch vụ web nào có hai phần Máy chủ kết thúc nơi dịch vụ được triển khai và phần máy khách nơi dịch vụ được khách hàng truy cập. Bất kỳ dịch vụ web nào đều có thể có nhiều ứng dụng khách. Khi một cổng thông tin du lịch bán vé máy bay. Cổng thông tin là khách hàng và Hãng hàng không là máy chủ vì nó đang bán dịch vụ của mình.
  3. Dịch vụ web có thể đồng bộ hoặc có thể không đồng bộ. Một ứng dụng web có thể tương tác với nhiều web services nhưng các dịch vụ web này được kết hợp lỏng lẻo với ứng dụng web của khách hàng của họ. Điều đó có nghĩa là bất kỳ thay đổi nào trong ứng dụng gốc đều có ít hoặc không ảnh hưởng đến các dịch vụ web hoặc ngược lại.
  4. Dịch vụ web có thể mang tài liệu đính kèm cũng như PDF, Word, v.v. với tải trọng XML của nó. Java cung cấp API riêng cho loại dịch vụ web này.
  5. Dịch vụ web luôn che giấu sự phức tạp nội bộ của dịch vụ đối với các ứng dụng khách. Ví dụ, một chiếc máy bay đang bán vé thông qua cổng thông tin của bên thứ ba chỉ thu thập thông tin người dùng cuối thông qua một dịch vụ web và ngược lại nó đang cung cấp vé. Cổng thông tin bán vé không phải lo lắng về sự phức tạp bên trong của hệ thống đặt vé máy bay của hãng hàng không.
  6. Dịch vụ web có thể là lửa và quên loại hoặc nó có thể trả về một cái gì đó. Giả sử, một ứng dụng web chỉ muốn gửi một số thông tin đến một ứng dụng của bên thứ ba. Người gửi không cần bất kỳ sự xác nhận nào từ người nhận. Trong kiểu kịch bản này, chúng ta cần một đám cháy và quên loại dịch vụ web.
3

Vâng,

Như @Vincent Ramdhanie đã nói rằng một dịch vụ web không có nghĩa là để được nhìn thấy/tiêu thụ bởi người dùng cuối nhưng chương trình khác.Vì vậy, về mặt kỹ thuật logic trong chương trình của bạn sẽ là:

Trong trường hợp hoạt động như một chương trình bình thường

user on website -> HTML/JS/JQuery etc -> give me a random number ->ur program 

Bây giờ

ur program -> generate random number -> generate HTML and encapsulate o/p -> go back to user

nhưng trong trường hợp của dịch vụ web dòng chảy thay đổi một chút:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program Bây giờ

ur program -> generate random number -> generate XML/JSON/some other format -> my application -> generate HTML and encapsulate o/p -> go back to user

Hope this helps :)

2

Trong dịch vụ từ Web đơn giản có thể là bất kỳ chương trình cũ đơn giản: thêm hai số đó phải được công bố trên UDDI và có thể được tiêu thụ bởi một program.WSDL sẽ có điểm cuối để định vị webservice cũng như các chi tiết liên kết và cổng.

0

'Dịch vụ web' bao gồm hai từ, 'Web' và 'Dịch vụ'.
'Web' là gì? 'Web' có nghĩa là 'World Wide Web'.
'Dịch vụ' cho mục đích gì? Không dành cho Con người, nếu có, đó là 'Trang Web', chẳng hạn như văn bản, hình ảnh, video, vv ..
Dành cho Chương trình giao tiếp qua Internet bằng cách sử dụng cùng một công nghệ 'Web' được sử dụng, chẳng hạn như TCP, HTTP, v.v.
'Dịch vụ' cũng có nghĩa là nó cung cấp một số chức năng, như 'Lớp dịch vụ' trong CRUD. Có hai loại chủ yếu:
1. SOAP (Simple Object Access Protocol)
2. RESTful (Representational State Transfer)

Các vấn đề liên quan