Co to jest „usługa internetowa” w prostym języku angielskim?

186

Czytałem o „usługach internetowych” tutaj na SO, w Wikipedii, Google itp. I nie do końca rozumiem, czym one są. Jaka jest zwykła angielska definicja / opis?

Jeśli utworzę prostą stronę internetową przy użyciu PHP, która po prostu wypisze na stronie losową liczbę całkowitą ... czy to jest „usługa internetowa”? Jeśli nie, dlaczego nie?

MrDatabase
źródło

Odpowiedzi:

286

Prosta definicja: usługa internetowa jest funkcją, do której inne programy mogą uzyskać dostęp przez Internet (HTTP).

Na przykład, kiedy tworzysz stronę internetową w PHP, która generuje HTML, jego celem jest przeglądarka, a przez to człowiek czytający stronę w przeglądarce. Usługa internetowa nie jest skierowana do ludzi, ale raczej do innych programów.

Więc twoja strona PHP, która generuje losową liczbę całkowitą, może być usługą sieciową, jeśli wypisze liczbę całkowitą w formacie, który może być wykorzystany przez inny program. Może być w formacie XML lub innym formacie, o ile inne programy mogą zrozumieć wynik.

Pełna definicja jest oczywiście bardziej złożona, ale poprosiłeś o zwykły angielski.

Vincent Ramdhanie
źródło
2
To wyjaśnienie jest dobre, ale co ogranicza zdolność do wykorzystania losowej liczby całkowitej przez inny program z HTML? Istnieje wiele bibliotek do czytania HTML, co jest dla mnie tym samym, co czytanie XML i prawie tak samo, jak czytanie JSON. Znam ten post bardzo stary, ale proszę o komentarz, jeśli to możliwe.
Pavlo
7
Jest to raczej kwestia zamiaru niż zdolności. Zamiar usługi internetowej ma być wykorzystywany przez inne aplikacje. Zamiar html ma być renderowany dla użytkownika przez przeglądarkę.
Vincent Ramdhanie
dla każdego, kto uważa, że ​​to brzmi bardzo podobnie do interfejsu API - zobacz ten świetny artykuł na temat różnic między usługą internetową a interfejsem API
Sami Birnbaum
60

Uproszczone, nietechniczne wyjaśnienie: Usługa sieciowa pozwala PROGRAMowi rozmawiać ze stroną internetową, zamiast używać przeglądarki do otwierania strony internetowej.

Przykład: mogę przejść do maps.google.com, wpisać mój adres domowy i zobaczyć mapę mojej lokalizacji w przeglądarce.

Ale co, jeśli piszesz program komputerowy, w którym chcesz wziąć adres i pokazać ładną mapę, podobnie jak mapy Google?

Cóż, możesz napisać zupełnie nowy program do tworzenia map od zera, LUB możesz zadzwonić do usługi internetowej udostępnianej przez Google Maps, wysłać jej adres, a ona zwróci graficzną mapę lokalizacji, którą możesz wyświetlić w swoim programie.

Jest o wiele więcej, ponieważ niektóre inne posty wchodzą do, ale wynik jest taki, że pozwala twojej aplikacji na pobranie informacji Z lub przesłanie informacji do jakiegoś zasobu. Kilka innych przykładów:

  1. Za pomocą usługi internetowej można uzyskać informacje o książkach na Amazon.com
  2. Możesz użyć podobnej usługi internetowej, aby złożyć zamówienie na Amazon.com
  3. Możesz UTWORZYĆ usługę internetową, aby umożliwić aplikacjom zewnętrznym uzyskiwanie informacji o produktach w Twojej firmie
  4. możesz utworzyć usługę internetową, która pozwoli zewnętrznym aplikacjom na składanie zamówień w Twojej firmie.
BradC
źródło
34

Tak, to prosta usługa internetowa.

Usługi sieciowe są tak naprawdę niczym więcej niż mechanizmem żądania / odpowiedzi, który umożliwia klientowi zdalny dostęp / modyfikację danych. Istnieją formalne standardy dla usług internetowych (SOAP, SOA itp.), Ale twoja prosta strona też jest usługą.

Głównym minusem drukowania go na stronie jest to, że Twoja usługa zwróci HTML. Preferowane formaty danych to JSON i XML, ponieważ większość środowisk klienckich (i środowisk serwerowych) jest zaprojektowana wokół JSON i XML.

Jeśli więc zmodyfikowałeś usługę, aby zwrócić:

<RANDOM>some random number</RANDOM>

zamiast:

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

to byłoby bardziej przydatne dla większości klientów

David Arno
źródło
Zaktualizowałem moją odpowiedź, aby to odzwierciedlić. Miałem problemy z brakiem wyświetlania kart XML / HTML :)
David Arno
Dzięki. Dokładnie to, co o tym myślę. XML jest bardzo podobny do HTML, więc strona HTML, o której mówimy, jest udostępniana przez serwis internetowy.
Pavlo
21

W uproszczonych terminach usługa internetowa to coś, co zapewnia dane jako usługę za pośrednictwem protokołu http. To prawda, że ​​nie zawsze tak jest ... ale jest blisko.

Korzystanie ze standardowych usług internetowych Protokół SOAP, który określa komunikację i strukturę wiadomości, a format danych to XML.

Usługi sieciowe zostały zaprojektowane tak, aby umożliwić aplikacjom zbudowanym przy użyciu różnych technologii komunikację między sobą bez problemów.

Przykładami usług internetowych są np. Weather.com zapewniające informacje o pogodzie, z których można korzystać w witrynie lub UPS zapewniający metodę żądania wyceny wysyłki lub śledzenia paczek.

Edytować

Zmieniono sformułowanie w odniesieniu do SOAP, ponieważ nie zawsze jest to SOAP, jak wspomniałem, ale chciałem, aby było bardziej jasne. Kluczem jest dostarczanie danych jako usługi, a nie elementu interfejsu użytkownika.

Sprzedawcy Mitchel
źródło
1
Nie musi to być SOAP - jeśli mówisz o usługach sieciowych (małymi literami), REST jest coraz bardziej powszechny.
John Topley,
17

Usługa internetowa różni się od witryny internetowej tym, że zapewnia dostęp do informacji przez oprogramowanie, a nie przez ludzi. W rezultacie zazwyczaj mówimy o narażonych usługach JSON , XML lub SOAP.

Usługi sieciowe są kluczowym składnikiem „mashupów”. Mashupy mają miejsce, gdy informacje z wielu stron internetowych są automatycznie agregowane w nową i przydatną usługę. Na przykład istnieją witryny, które agregują Mapy Google z informacjami o raportach policyjnych, aby zapewnić graficzną reprezentację przestępczości w Twojej okolicy. Innym rodzajem połączenia byłoby pobranie prawdziwych danych giełdowych dostarczonych przez inną stronę i połączenie ich z fałszywą aplikacją handlową w celu stworzenia „gry” giełdowej.

Usługi sieciowe są również wykorzystywane do dostarczania wiadomości (patrz RSS), najnowszych elementów dodawanych do witryny, informacji o nowych produktach, podcastów i innych wspaniałych funkcji, które sprawiają, że nowoczesna sieć zmienia się.

Mam nadzieję że to pomoże!

64BitBob
źródło
15

Najlepsze proste wyjaśnienie w języku angielskim pochodzi z analogii:

  • Strony internetowe pozwalają ludziom komunikować się i współpracować ze sobą.
  • Usługi sieciowe umożliwiają programom komunikację i współpracę.

Twój przykład w PHP jest usługą internetową z tej definicji, ponieważ dane wyjściowe mogą zostać wykorzystane przez inny program. Ale w rzeczywistości skrobanie ekranu HTML nie jest niezawodnym ani łatwym do utrzymania sposobem produkcji usług internetowych.

HTTP 410
źródło
13

W przypadku większości witryn masz strony HTML odwiedzane podczas korzystania z przeglądarki. Są to strony czytelne dla ludzi (raz renderowane w przeglądarce), w których wiele danych może być zebranych razem, ponieważ ma to sens dla ludzi.

Teraz wyobraź sobie, że ktoś inny chce wykorzystać niektóre z tych danych. Mogą pobrać twoją stronę i zacząć filtrować cały „szum”, aby uzyskać potrzebne dane, ale większość stron internetowych nie jest zbudowana w sposób, w którym dane są w 100% pewne, że zostaną umieszczone w tym samym miejscu dla wszystkich elementów, więc dodatkowo bycie kłopotliwym staje się również niewiarygodne.

Wprowadź usługi sieciowe.

Usługa internetowa to coś, co witryna internetowa oferuje tym, którzy chcą czytać, aktualizować i / lub usuwać dane z Twojej witryny. Możesz nazwać to „backdoor” do swoich danych. Zamiast prezentować dane jako część strony internetowej, są one dostarczane w określony sposób, przy czym niektóre z bardziej popularnych to XML i JSON. Istnieje kilka sposobów komunikowania się z usługą internetową, niektóre używają SOAP, inne mają usługi sieciowe REST itp.

Wspólne dla wszystkich usług internetowych jest to, że są one do odczytu maszynowego odpowiednikiem stron internetowych, które witryna oferuje w inny sposób. Oznacza to, że inni, którzy chcą korzystać z danych, mogą wysłać żądanie odzyskania określonych danych, które można łatwo przeanalizować i wykorzystać. Niektóre witryny mogą wymagać podania nazwy użytkownika / hasła w żądaniu poufnych danych, podczas gdy inne witryny pozwalają każdemu wyodrębnić wszelkie potrzebne dane.

Christian P.
źródło
12

Usługa internetowa to zbiór otwartych protokołów i standardów używanych do wymiany danych między aplikacjami lub systemami. Aplikacje napisane w różnych językach programowania i działające na różnych platformach mogą wykorzystywać usługi sieciowe do wymiany danych w sieciach komputerowych, takich jak Internet, w sposób podobny do komunikacji między procesami na jednym komputerze. Ta interoperacyjność (np. Między aplikacjami Java i Python lub Windows i Linux) wynika z zastosowania otwartych standardów (XML, SOAP, HTTP).

Wszystkie standardowe usługi sieciowe działają przy użyciu następujących składników:

  • SOAP (Simple Object Access Protocol)
  • UDDI (Universal Description, Discovery and Integration)
  • WSDL (język opisu usług sieciowych)

Działa to mniej więcej tak:

  • Program kliencki łączy informacje rejestracyjne konta w komunikat SOAP.
  • Ten komunikat SOAP jest wysyłany do usługi sieci Web jako treść żądania HTTP POST.
  • Usługa sieci Web rozpakowuje żądanie SOAP i konwertuje je na polecenie zrozumiałe dla aplikacji.
  • Aplikacja przetwarza informacje zgodnie z wymaganiami i odpowiada nowym unikalnym numerem konta dla tego klienta.
  • Następnie usługa sieci Web pakuje odpowiedź do innego komunikatu SOAP, który wysyła z powrotem do programu klienckiego w odpowiedzi na jego żądanie HTTP.
  • Program kliencki rozpakowuje komunikat SOAP, aby uzyskać wyniki procesu rejestracji konta.
vanguard69
źródło
1
Wszystkie standardowe usługi sieciowe działają przy użyciu następujących składników: ” ... problem z tą odpowiedzią polega na tym, że sugeruje, że usługi sieciowe działają lub muszą działać w ramach mechanizmu SOAP / WSDL. To jest niedokładne. REST (Representational State Transfer) to kolejny bardzo popularny paradygmat wdrażania usług internetowych. Niektóre duże strony internetowe wycofały swoje usługi SOAP na rzecz usług internetowych REST.
scottb,
@scottb I Całkowicie się zgadzam. Dziękuję za aktualizację. Ponadto w mojej obronie moja wiedza na temat usług sieciowych była wówczas bardzo ograniczona!
vanguard69
7

Simple way to explain web service is ::

  • Usługa internetowa to metoda komunikacji między dwoma urządzeniami elektronicznymi w sieci WWW.
  • Można to nazwać procesem używanym przez programistę do komunikacji z serwerem
  • Aby wywołać ten proces, programista może użyć SOAP itp
  • Usługi sieciowe są oparte na otwartych standardach, takich jak TCP / IP, HTTP

Zaletą usługi internetowej jest powiedzmy, że tworzysz jeden fragment kodu w .net i chcesz użyć JAVA do wykorzystania tego kodu. Możesz bezpośrednio wchodzić w interakcje z warstwą abstrakcji i nie wiesz, jaką technologię wykorzystano do opracowania kodu.


Wizerunek

Devrath
źródło
7

Webservice to technologia, za pomocą której dwie lub więcej zdalnych aplikacji internetowych współdziała ze sobą przez sieć / Internet. Może być zaimplementowany przy użyciu Java, .net, PHP itp.

Funkcje usługi internetowej: -

  1. Za pomocą usług sieciowych dwa lub więcej systemów wymienia dane przez sieć. Dane są wymieniane za pomocą XML lub JSON.
  2. Każda usługa sieci Web składa się z dwóch części po stronie serwera, na której usługa jest wdrażana, a części klienta, do której klienci mają dostęp do usługi. Każda usługa sieciowa może mieć wielu klientów. Gdy portal turystyczny sprzedaje bilety na samolot pasażerski. Portal jest klientem, a linia lotnicza jest serwerem, ponieważ sprzedaje swoje usługi.
  3. Usługi sieciowe mogą być synchroniczne lub asynchroniczne. Aplikacja internetowa może wchodzić w interakcje z wieloma usługami internetowymi, ale te usługi internetowe są luźno połączone z aplikacjami klienckimi. Oznacza to, że każda zmiana w aplikacji nadrzędnej ma niewielki lub żaden wpływ na usługi sieciowe i odwrotnie.
  4. Usługi sieciowe mogą przenosić dokumenty załączników, takie jak PDF, Word itp., Z ładunkiem XML. Java zapewnia osobne API dla tego typu usług sieciowych.
  5. Usługa sieciowa zawsze ukrywa wewnętrzną złożoność usługi dla swoich klientów. Na przykład samolot pasażerski, który sprzedaje bilety za pośrednictwem portalu osób trzecich, zbiera informacje o użytkownikach końcowych za pośrednictwem usługi internetowej, aw zamian zapewnia bilet. Portal, który sprzedaje bilety, nie musi martwić się wewnętrzną złożonością systemów rezerwacji biletów lotniczych.
  6. Serwis internetowy może być typu ognistego i zapomnieć lub może coś zwrócić. Załóżmy, że aplikacja sieciowa chce po prostu wysłać pewne informacje do aplikacji innej firmy. Nadawca nie potrzebuje żadnego potwierdzenia od odbiorcy. W tego typu scenariuszu potrzebujemy pożaru i zapomnienia o rodzaju usługi internetowej.
siddhartha chakraborty
źródło
5

Usługa sieciowa używana przez twórców oprogramowania ogólnie odnosi się do operacji wykonywanej na zdalnym serwerze i wywoływanej przy użyciu specyfikacji XML / SOAP. Jak w przypadku wszystkich definicji, istnieją w nim niuanse, ale jest to najczęstsze użycie tego terminu.

jezell
źródło
1
Przepraszam Jezelll, musiałem głosować negatywnie. Nie jest to, co uważam za „zwykły angielski” :( Nie mam problemu z intencją twojej definicji, ale użycie słów takich jak „operacja”, „zdalny serwer”, „wywołane” i „specyfikacja” utrudnia dla początkujących do zrozumienia. Zobacz odpowiedź Mitchel Sellers jako przykład „zwykłego angielskiego”
Dhaust
5

System operacyjny zapewnia interfejs GUI (i CLI), z którym można wchodzić w interakcje. Zapewnia również interfejs API, z którym można współdziałać programowo.

Podobnie witryna internetowa zawiera strony HTML, z którymi można wchodzić w interakcje, a także interfejs API, który oferuje te same informacje i operacje programowo. Lub te usługi mogą być dostępne tylko za pośrednictwem interfejsu API bez powiązanego interfejsu użytkownika.

John Topley
źródło
4

Dobrze,

Jak powiedział @Vincent Ramdhanie, usługa internetowa nie powinna być widziana / konsumowana przez użytkownika końcowego, ale inny program. Więc technicznie logika w twoim programie będzie:

W przypadku działania jako normalny program

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

Teraz

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

ale w przypadku usługi internetowej przepływ zmienia się nieco:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program Teraz

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

Mam nadzieję że to pomoże :)

użytkownik1079065
źródło
3

Prostą definicją byłoby żądanie HTTP, które działa jak normalne wywołanie metody; tzn. akceptuje parametry i zwraca wynik ustrukturyzowany, zwykle XML, który można przekształcić z postaci szeregowej w obiekt (y).

Marc
źródło
3

Usługi sieciowe są prawie jak zwykła strona internetowa. Różnica polega na tym, że są one sformatowane, aby program bardzo łatwo pobierał dane ze strony, do tego stopnia, że ​​prawdopodobnie nie używa żadnego HTML. Zasadniczo są one również bardziej wiarygodne co do spójności formatu, mogą wykorzystywać inny proces formalny do zdefiniowania zawartości, takiej jak mydło lub nieprzetworzony plik XML, i często istnieje również dokument deskryptora, który formalnie określa strukturę danych.

Joel Coehoorn
źródło
3

Sposób wysłania wiadomości w celu wywołania operacji na innym komputerze. Różnica między usługami sieciowymi a poprzednimi metodami polega na tym, że przesyłanie przewodowe jest standaryzowane na wyższym poziomie.

Stary sposób: opisz endianów, kodowanie, numery portów itp. Usługa sieci Web: URL, XML

Archimedes Trajano
źródło
3

Usługa sieci Web jest jak środek komunikacji między dwoma niepowiązanymi programami. Programy używają określonego protokołu (zwykle Simple Object Access Protocol (SOAP) ) jako medium, aby zrozumieć, jakie WNIOSKI / ODPOWIEDZI mają przetworzyć / wykonać na odpowiednim końcu.

tolulope dawid
źródło
2

Usługa internetowa określa umowę działań, które serwer wykona za Ciebie. Format i protokół tak naprawdę nie mają znaczenia, ale powinieneś mieć ustaloną definicję tego, jak odbywa się komunikacja.

W twoim przykładzie zależy to, czy jest używana w innej aplikacji, która odczytuje ten numer, tak, to usługa, w przeciwnym razie jest to tylko strona internetowa z numerem.

Nacięcie
źródło
1

Krótko mówiąc, usługa sieciowa może być dowolnym prostym programem, na przykład: dodać dwie liczby, które powinny być opublikowane przez UDDI i mogą być wykorzystane przez inny program. WDL będzie miał punkt końcowy do zlokalizowania usługi internetowej, a także szczegóły powiązania i portu.

Prabhu
źródło
0

„Usługa sieciowa” składa się z dwóch słów: „Sieć” i „Usługa”.
Co to jest „Sieć”? „Sieć” oznacza „sieć WWW”.
„Usługa” za co? Nie dla ludzi, jeśli tak, to „Strona internetowa”, na przykład tekst, obrazy, wideo itp
. Programy komunikują się przez Internet przy użyciu tej samej technologii, z której korzystał „Internet”, takiej jak TCP, HTTP itp.
„Usługa” oznacza również, że udostępnia niektóre funkcje, takie jak „warstwa usługi” w CRUD. Istnieją głównie dwa typy:
1. SOAP (Simple Object Access Protocol)
2. RESTful (reprezentatywny transfer stanu)

songxin
źródło
0

Bez uszczerbku dla innych definicji powiedziałbym, że usługa internetowa to system oprogramowania, który umożliwia interakcję między maszyną / aplikacją do aplikacji w sieci. Te ogólne definicje pomogłyby również uznać architektury REST za usługę internetową, ponieważ zapewniają one podobną funkcjonalność, chociaż są stylem architektonicznym w przeciwieństwie do SOAP, który jest w pełni zdefiniowanym protokołem.

joedavid
źródło