2012-06-20 26 views
9

Usługa internetowa to funkcja dostępna dla innych programów w Internecie (Http). Aby nieco wyjaśnić, kiedy tworzysz stronę w PHP, która generuje HTML, jej celem jest przeglądarka, a przez to człowiek czytający stronę w przeglądarce. Usługa sieciowa nie jest skierowana do ludzi, ale do innych programów.Co oznacza aplikacja internetowa RESTful?

  1. SOAP i REST to dwa sposoby tworzenia WebServices. Popraw mnie, jeśli mam zły błąd?
  2. Jakie są inne sposoby tworzenia usługi WebService?
  3. Co to znaczy aplikacja internetowa RESTful?
+3

To prawdopodobnie należy do http://programmers.stackexchange.com lub nawet do [Google] (http://google.com). – lanzz

+0

Ad. 1 Niekoniecznie. Dwa sposoby to usługi Big Web Services i RESTful Web Services. To trochę bardziej skomplikowane niż używanie lub nie używanie SOAP. SOAP może być używany zgodnie z REST. Ad. 3 Przeczytaj rozprawę Roya Fieldinga, aby się dowiedzieć. Polecam również przeczytać o ROA (architektura zorientowana na zasoby), która jest nieco bardziej szczegółowa niż sama koncepcja REST. Jest to również najczęściej stosowany projekt RESTful. Często jest mylony z samym REST. – toniedzwiedz

+0

Witryna obsługiwana przez HTTP nie jest również skierowana do ludzi, ale przede wszystkim do przeglądarek HTTP;) Tak więc WWW obsługujący dokumenty hipertekstowe * to * usługa sieciowa. – hakre

Odpowiedz

4
  1. Prawidłowe
  2. W3C określa „Web service” jako „system komputerowy przeznaczony do wspierania interoperacyjnego Urządzenie-maszyna oddziaływania za pośrednictwem sieci”.
  3. Usługa w pełni RESTful to taka, która spełnia wszystkie lub ograniczenia architektoniczne określone w pracy Roy Fielding, Architectural Styles and the Design of Network-based Software Architectures. To długa lektura i jest wiele interpretacji. Dobrym początkiem byłoby zapoznanie się z Richardson Maturity Model. UWAGA: Większość usług sieci Web, które roszczą sobie prawo do usługi RESTful, ma tylko numer level 2 w tym modelu.
0

Uważam, że aby zrozumieć, czym jest usługa RESTful, należy zrozumieć różnicę między usługami RESTful a standardowymi usługami sieci Web. Jest to dość dobry exaplained w JEE6 Tutorial przez Oracle:

NonRESTful WebServices (W Javie jak JAX-WS): Wielkie serwisy internetowe używają komunikatów XML podążają Simple Object Access Protocol (SOAP) standardowe, definiujące język XML Architektura wiadomości i formaty wiadomości. Takie systemy często zawierają odczytywalny maszynowo opis operacji oferowanych przez usługę, napisany w języku Web Services Description (WSDL), języku XML do definiowania interfejsów składniowo. Format komunikatu SOAP i język definicji interfejsu WSDL zyskały szerokie zastosowanie w postaci . Wiele narzędzi programistycznych, takich jak NetBeans IDE, może zmniejszyć złożoność tworzenia aplikacji usług sieci Web. Projekt oparty na protokole SOAP musi zawierać następujące elementy.

■ Należy sformalizować umowę opisującą interfejs oferowany przez usługę internetową. Dokument WSDL może być używany do opisania szczegółów umowy, które mogą obejmować wiadomości, operacje, powiązania i lokalizację usługi WWW. Można również przetwarzać komunikaty SOAP w usłudze JAX-WS bez publikowania pliku WSDL.

■ Architektura musi spełniać złożone, niefunkcjonalne wymagania. Wiele specyfikacji usług internetowych spełnia te wymagania i ustanawia dla nich wspólny słownik. Przykłady obejmują transakcje, bezpieczeństwo, adresowanie, zaufanie, koordynację i tak dalej.

■ Architektura musi obsługiwać przetwarzanie asynchroniczne i wywoływanie.W takich przypadkach, infrastruktura zapewniona przez standardy, takie jak Web Services Reliable Messaging (WSRM) i interfejsy API, takie jak JAX-WS, z obsługą asynchronicznego wywołania po stronie klienta , mogą być przenoszone po wyjęciu z pudełka.

Usługi sieci Web RESTful (w języku Java jako JAX-RS) W języku Java EE 6 program JAX-RS udostępnia funkcje usług związanych z usługą transferu reprezentatywnego (RESTful) . REST jest dobrze dostosowany do podstawowych, zintegrowanych scenariuszy integracji. RESTful web services, często lepiej zintegrowane z HTTP niż usługi oparte na SOAP, nie wymagają komunikatów XML lub definicji API usług WSDL. Project Jersey to gotowa do użycia referencyjna implementacja specyfikacji JAX-RS. Jersey obsługuje obsługę adnotacji zdefiniowanych w specyfikacji JAX-RS, dzięki czemu programista może łatwo budować usługi internetowe RESTful przy użyciu języka Java i wirtualnej maszyny Java (JVM).

rodzaje usług internetowych Ponieważ REST Web Services wykorzystywać istniejące znany W3C i Internet Engineering Task Force (IETF) standardy (HTTP, XML, URI, MIME) i mają lekką infrastrukturę pozwala usług, które zostaną zbudowane przy minimalnym oprzyrządowaniu tworzenie usług sieciowych RESTful jest niedrogie , a zatem ma bardzo niską barierę do przyjęcia. Możesz użyć narzędzia programistycznego, takiego jak NetBeans IDE, aby jeszcze bardziej zmniejszyć złożoność tworzenia usług internetowych RESTful. Ustawienie RESTful może być odpowiednie, gdy są spełnione następujące warunki.

■ Serwisy internetowe są całkowicie bezpaństwowcami. Dobrym testem jest rozważenie, czy interakcja może przetrwać ponowne uruchomienie serwera.

■ Do osiągnięcia wydajności można wykorzystać infrastrukturę buforowania. Jeśli dane zwracane przez usługę WWW nie są generowane dynamicznie i mogą być buforowane, to infrastruktura buforowania, którą serwery sieci Web zapewniają z jednej strony, może poprawić ich wydajność. Deweloper musi jednak zachować ostrożność, ponieważ takie pamięci podręczne są ograniczone do metody HTTP GET dla większości serwerów.

■ Producent usług i konsument usług wzajemnie rozumieją kontekst i przekazują treść. Ponieważ nie ma formalnego sposobu opisywania interfejsu usług WWW, obie strony muszą uzgodnić poza pasmem schematy, które opisują wymieniane dane i sposoby ich przetwarzania w sposób znaczący. W prawdziwym świecie większość komercyjnych aplikacji, które udostępniają usługi jako implementacje RESTful, również rozpowszechnia tak zwane cenne zestawy narzędzi, które opisują interfejsy dla programistów w popularnych językach programowania .

■ Przepustowość jest szczególnie ważna i musi być ograniczona. REST jest szczególnie użyteczny w przypadku urządzeń o ograniczonym profilu, takich jak PDA i telefony komórkowe, dla których nakłady nagłówków i dodatkowe warstwy elementów SOAP na ładunku XML muszą być ograniczone.

■ Dostarczanie lub agregowanie usług sieci Web w istniejących witrynach internetowych można z łatwością włączyć przy użyciu stylu RESTful w stylu . Programiści mogą korzystać z takich technologii, jak JAX-RS i Asynchronous JavaScript z XML (AJAX) i takich narzędzi, jak Direct Web Remoting (DWR), aby konsumować usługi w swoich aplikacjach internetowych.Zamiast zaczynać od zera, usługi mogą być wyświetlane w formacie XML i pochłaniane przez strony HTML bez istotnej zmiany istniejącej architektury strony internetowej. Obecni programiści będą bardziej produktywni, ponieważ są dodając do czegoś, co już znają, zamiast zaczynać od zera za pomocą nowej technologii.

Decydując Jakiego typu Web Service korzystać

Zasadniczo, co chcesz używać relaksującego usług internetowych do integracji w internecie i korzystać z dużych usług internetowych w scenariuszach integracji aplikacji dla przedsiębiorstw, które zostały podniesione jakości usługi (QoS).

■ WebServices: dotyczy zaawansowanych wymagań QoS powszechnie występujących w przedsiębiorstwie . [..]

■ RESTfull: ułatwia pisanie aplikacji internetowych, które stosują niektóre lub wszystkie ograniczenia stylu REST w celu wywoływania pożądanych właściwości w aplikacji, takich jak luźne połączenie (zmiana serwera jest łatwiejsza bez konieczności zerwanie istniejących klientów), skalowalność (start small i grow) oraz prostotę architektoniczną (wykorzystanie gotowych komponentów, takich jak proxy lub routery HTTP ). Użytkownik zdecydowałby się użyć JAX-RS do swojej aplikacji internetowej, ponieważ dla wielu typów klientów łatwiej jest korzystać z usług RESTful Web Services, a jednocześnie umożliwiać serwerom rozwijanie i skalowanie po stronie serwera. Klienci mogą korzystać z niektórych lub wszystkich aspektów usługi i czyścić ją z innymi usługami sieciowymi.

Powiązane problemy