Vraag [iPhone en webservices]: REST versus SOAP


Ik ben mijn diplomaproject gestart, een mobiele applicatie die geschikt is voor iPhone, Android en (in de nabije toekomst) Symbian. De serverarchitectuur is de volgende:

  • website (voor "standaard" gebruikers);
  • webservice (voor mobiele verbindingen), gebaseerd op TomCat en Axis2;
  • mySQL DB om gebruikersgegevens op te slaan.

Surfen op internet heb ik veel discussie gelezen over de interactie tussen de iPhone en webservices, en ik moet zeggen dat ik geen duidelijk beeld heb van wat ik wel en niet kan doen. Laten we beginnen met het protocol dat wordt gebruikt om gegevens van de DB op te halen: de Android-side-applicatie maakt gebruik van het SOAP-protocol, kan ik hetzelfde doen met de iPhone? Zijn er enkele beperkingen of problemen?

Ik heb ook gelezen over het gebruik van REST in plaats van SOAP, zou dit mogelijk zijn met de hierboven beschreven serverarchitectuur? Welke zijn de belangrijkste voor- en nadelen?

Sorry als deze vragen "n00b" klinken, maar het is mijn eerste echte ervaring met de iPhone en de vele informatie die ik op internet tegenkwam maakte een puinhoop en ik ben bang om in de war te raken. Vergeef me voor elke fout.


12
2017-12-07 10:53


oorsprong


antwoorden:


SOAP is gewoon te zwaar voor mobiele communicatie. Waarom moet u al het werk doen om aanvragen in een extra XML-laag te verwerken die u moet parseren? U verzendt meer gegevens dan nodig is en legt een grotere CPU-belasting op voor client en server.

Gebruik REST. Als u een platformonafhankelijk project uitvoert, maakt JSON een grote payload-container, anders werken plists goed voor het verzenden van gegevens vanaf de server.


10
2017-12-07 16:59



Jij kan definitief do ZEEP op de iPhone. Hier is een leuke tutorial over het onderwerp. Ten slotte, ZEEP is een HTTP gebaseerd protocol en je hebt alle bibliotheken die je moet doen HTTP op de iPhone.

Dat gezegd te hebben, REST APIs zijn eenvoudiger dan ZEEP, dus u wilt ze misschien overwegen. Ze zijn ook HTTP zodat je er geen problemen mee hebt om dat op de iPhone te doen. Aan de serverkant, als je Java gebruikt, zul je moeten gebruiken JAX-RS om dat deel uit te voeren.

Hoop dat het helpt.


4
2017-12-07 11:13



Google-buffers

Als je op zoek bent naar een taal- en platformonafhankelijke oplossing, kijk dan eens naar Google-buffers. U kunt objecten eenvoudig serialiseren voor verzending via de draad.

Deze vraag moet je starten in Objective-C.

JSON

Ik heb ook gebruikt JSON binnen iPhone-apps met groot succes. Nogmaals, relatief taal en platform agnostisch, maar veel eenvoudiger dan Google-buffers.


0
2017-12-07 11:44



SOAP met Fast Infoset is geschikt voor kleine apparaten:

JAX-WS 2.0 en de referentie-implementatie ondersteunen zowel Fast Infoset als MTOM / XOP. Dit artikel bevat informatie over Web Service Performance voor Fast Infoset versus MTOM / XOP:

http://www.devx.com/xml/Article/35385/1954

Fast Infoset is geoptimaliseerd voor kleine   apparaten met bandbreedte   beperkingen, en wordt door velen ondersteund   leveranciers zoals Microsoft .NET en   .NET CF, Sun GlassFish, BEA WebLogic,   IBM SDK voor Java 6.0 en anderen.

http://en.wikipedia.org/wiki/Fast_Infoset


0
2017-12-09 21:10