Toon posts:

Ontwikkelen van web-service clients voor mobiele platforms

Pagina: 1
Acties:

Onderwerpen


  • Toolmaker
  • Registratie: april 2004
  • Laatst online: 28-03 15:55
Ik ben momenteel nogal wat research aan het doen naar het ontwikkelen van software voor mobiele platforms waarbij er geregeld data uitwisseling moet plaats vinden met een centrale server. De mobiele telefoons halen data van de server, telefoon bewerkt de gegevens op een bepaalde manier en het geheel wordt weer netjes terug gestuurd naar de server.

Echter, er zijn 3 platforms waar ik voor zou moeten ontwikkelen. Windows, Android en iPhone. Gezien de huidige marktpenetratie van Windows Mobile en de forecasts van Windows Phone 7, heb ik besloten juist Windows voor nu te laten vallen, ondanks dat mijn meeste ontwikkelervaring op het Windows platform ligt.

Dan blijven de iPhone en Android over. Voor de iPhone wil ik MonoTouch gebruiken als ontwikkel platform, wat het waarschijnlijk makkelijker maakt omdat de server-side .NET 3.5 WCF wordt gebruikt. MonoTouch heeft netjes beschikking over de basicHttpBinding, ongeveer vergelijkbaar met wat er voor NETCF beschikbaar is. Met wat geluk hoef ik enkel de UI code apart te schrijven mocht ik besluiten ook voor Windows te ontwikkelen. Voor Android zit ik vast aan Java en wil ik dat combineren met kSOAP2. Ook daarvan heb ik aantal leuke voorbeeldjes gevonden, dus dat zit wel snor.

Echter, de webservice die ik wil bouwen werkt met user accounts. Hoewel ik niet extreem ervaren ben met WCF services, bij de Windows client prototypes kon ik gebruik maken van een basicHttpBinding of een wsHttpBinding had ik de mogelijkheid om Message/Transport security aan te zetten, certificaatje erbij en hoppa, veiligheid.

De SmartDevice prototype die ik aan het bouwen ben, heeft die optie echter niet, en na ff vlug rondbrowsen bij MonoTouch lijkt het erop dat die dat ook niet ondersteunt, en kSOAP2 kan ik geen voorbeelden van vinden. Misschien dat ik niet hard genoeg zoek of verkeerde termen gebruik, maar ik kan geen enkel voorbeeld vinden hiervan. En na dagen van zoeken, onderzoeken, prototypen en resultaten noteren begint het een beetje incoherent te worden allemaal.

Dien ik dit geheel misschien meer richting een RESTful service to nemen, of gewoon houden op SOAP based service en daarvan werken?

  • Hydra
  • Registratie: september 2000
  • Laatst online: 18:03
Toolmaker schreef op maandag 18 oktober 2010 @ 02:58:
Dien ik dit geheel misschien meer richting een RESTful service to nemen, of gewoon houden op SOAP based service en daarvan werken?
Ik vroeg me idd af waarom je niet gewoon voor een standaard webservice gaat. Ik heb redelijk wat van die dingen gebouwd (contract-first, dus eerst de WSDL klussen en daaruit de server en client classes genereren), gebaseerd op Axis2. Dat 'praat' in princiepe met elk framework.

Edit: Ik las over het server-side = .Net verhaal even heen. Kijk daar uit: ik weet niet of dat ondertussen gefixt is maar de SOAP services die je in VS .Net 2005 bouwde waren niet valid. Ik neem aan dat wat je met de nieuwste VS bouwt beter is, maar ik zou in ieder geval testen / checken of dat gaat werken.

[Voor 22% gewijzigd door Hydra op 18-10-2010 11:13]

https://niels.nu


  • Cartman!
  • Registratie: april 2000
  • Niet online
Ik ben zelf groot fan van Restful webservices waar je gewoon heen kunt POST/GET-en (http://site.com/rest.php?...ser.get&id=1&token=geheim bijv.). Het is dan in vrijwel iedere taal zeer makkelijk te implementeren omdat er meestal wel iets is om externe urls in te laden. Het is eventueel ook heel makkelijk schaalbaar te maken aan de serverside-kant mocht dat nodig zijn.

  • creator1988
  • Registratie: januari 2007
  • Laatst online: 19:11
En je hebt in de WCF Starter Kit de 'Paste XML as Type' knop voor Visual Studio waarmee je je classes kan generen adh van je output.

Bovendien kan je in WCF meerdere endpoints definieren, waarvan er één bv. soap uitspuugt, en een ander xml, en weer een ander JSON zonder andere code te schrijven.

  • Toolmaker
  • Registratie: april 2004
  • Laatst online: 28-03 15:55
Ik heb redelijk wat van die dingen gebouwd (contract-first, dus eerst de WSDL klussen en daaruit de server en client classes genereren), gebaseerd op Axis2. Dat 'praat' in princiepe met elk framework.
Hydra schreef op maandag 18 oktober 2010 @ 11:10:
Edit: Ik las over het server-side = .Net verhaal even heen. Kijk daar uit: ik weet niet of dat ondertussen gefixt is maar de SOAP services die je in VS .Net 2005 bouwde waren niet valid. Ik neem aan dat wat je met de nieuwste VS bouwt beter is, maar ik zou in ieder geval testen / checken of dat gaat werken.
Voor zover ik weet is dat geen probleem meer on 2008 en met WCF. Zoals creator1988 al zei, je kan meerdere endpoints pakken en verschillende protocollen gebruiken om over te communiceren. Dus betekent dat ik ook gewoon een non-mobile client kan ontwikkelen die over een van de andere WS* protocollen communiceert. Ideale oplossing, want ik kan mijn service ontwikkelen zonder me heel erg druk te hoeven maken over de wijze van communicatie.

Geen idee of het mogelijk is om proxy classes te genereren die gebruik maken van JSON in Android, maar zal ongetwijfeld een tool zijn die dat doet. Ik ben lui, dus hoe meer dingen te automatiseren zijn, hoe beter :). Ik heb in ieder geval al een klein voorbeeldje over hoe met een webservice te praten over JSON.

Echter, ik zit nog steeds met het probleem: Hoe handel ik authentication af? Het is voor mijn service van belang dat er een verschil is tussen user accounts, dus username/password auth is van belang. Server-side heb ik een afgeleidde klasse van UserNamePasswordValidator, en dat werkt perfect, als ik in de bindings bepaalde tags aan zet. Maar hoe ik dat vervolgens client-side oplos is mij nogal onduidelijk. Zowel op Android als in MonoTouch. Zelfs de basicHttpBinding op Windows Mobile ondersteunt geen TransportWithCredentials.

  • Toolmaker
  • Registratie: april 2004
  • Laatst online: 28-03 15:55
Ik ga deze draad toch even bumpen. Waar ik eerst eigenlijk heel erg zelfverzekerd was van de richting die ik op wilde gaan, begin ik nu toch heel erg te twijfelen hoe en wat. Veel googlen en het zoeken van voorbeelden lijken de boel alleen nog maar verwarrender te maken.

Ik ben niet slecht in het researchen van dingen, maar meestal heb ik een idee welke kant op ergens mee op wil. Echter, ik bevind me nu op een vlak waar ik totaal niet bekend mee ben, en waar mijn initiele ideeen volledig overboord kunnen.

Kan iemand mij enigzins een duwtje in de richting geven. Wat ik wil is dit:
Een web-service die over SSL werkt en waarbij de mogelijkheid tot authenticatie ingebakken zit. Oftewel, zonder username/password geen mogelijkheid tot gebruik van de aangeboden functionaliteit. Bij voorkeur wil ik authenticatie niet in iedere service functie regelen, maar voordat de daadwerkelijk call wordt gedaan.

Server-side gaat mijn voorkeur uit naar .NET, omdat ik hier goed bekend mee ben, en services gemakkelijk kan deployen naar een al bestaande server zonder teveel aanpassingen. Client-side is mijn target mobile devices, waarbij Android en iPhone(in die volgorde) hoofd targets zijn. Bij voorkeur proxies die ik kan genereren vanaf de server kant.

Ik verwacht niet dat alles me op een zilveren blaadje wordt aangeboden, maar ik ben momenteel zo in de war dat ik door de bomen het bos niet meer zie.

  • Mod_Aap
  • Registratie: oktober 2004
  • Laatst online: 23-09 13:59
Is het niet mogelijk om basis access authentication te gebruiken?

En ik ben het met de andere eens dat je het jezelf een stuk makkelijker maakt met een REST of plain XML webservice aangezien de soap ondersteuning vrij matig is in Android. (Heb geen idee betreft iOS)
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee