Web services - hvad er det egentligt, og hvornår skal du bruge dem ?

(https://www.eksperten.dk/spm/838571)

Vi befinder os i en era hvor ordet "service" bliver spyttet ud imellem tænderne på så mange forskellige i IT branchen. Cloud service, REST service, Web service, Data service, SQL Data service, ASMX service, WCF service, Software as a service, dårlig service etc.

Vi befinder os samtidig i en era som syntes aldrig at slutte, nemlig "vi snakker om det, men ved ikke hvad vi skal bruge det til". Der er så mange derude som stadig ikke har forstået hvad en simpel web service er og hvorfor man bør gøre brug af dem, og det er fuld forståeligt men samtidig lidt en skam.

En service kommer i det store hele ned til én ting, nemlig udstiling af noget funktionalitet. Man kan vel i princippet også kalde en service for et API, for et API udstiller også noget funktionalitet, dog med visse forventninger. Ofte er et API dog bundet sammen med en hvis teknologi, hvilket binder brugeren af API'et til samme teknologi, og det kan være en ulempe.

Lad os sige at jeg laver et .NET API til genering af OOXML dokuementer, ikke som en service, men som nogle dll filer du kan bruge i din applikation. Se, allerede der har en stor del af udviklerne mistet muligheden for at bruge mit API, fordi de ikke kender .NET, men f.eks PHP.

Lad os så sige at jeg laver en web service i .NET som gør præcis det samme som mit API (dll) gør, bortset fra at jeg nu udstiller funktionerne som en web service. En PHP udvikler kan sagtens kalde min .NET web service fra hans applikation, det eneste han skal sørge for er at han snakker igennem samme protokol som min webservice - f.eks SOAP. Nu har PHP udvikleren pludselig også adgang til den funktionalitet som før kun var udstillet igennem nogle dll filer og bundet til én platform.

En SOAP web service er bla. smart fordi så mange teknologier understøtter SOAP protocolen hvilket muliggør ovenstående scenarie. NuSOAP til PHP, SOAP4R til Ruby, SOAPpy til python, SOAP::WSDL til Perl. Det er bare en lille håndfuld af de teknologier der ville kunne snakke med en .NET web service.

Der er også sikkerhedsmæssige grunde der taler for en service istedet for så meget andet. Med en service behøver du kun have funkionaliteten ét sted, hvorimod dll filer skal pushes ud til brugeren og det kan være man ikke synes om den idé pga. af sikkerhed.

Der er en grund til at de udviklere der sidder på .NET platformen har meget stor mulighed for at benytte sig af mange forskellige slags services. Platformen understøtter at man udstiller både database elementer og forretnings logik ved hjælp af en eller flere services.

F.eks kan en ADO.NET Data Service udstille ens database tabeller samt data direkte, og ikke nok med det, det bliver sendt over ledningen som XML, så det ikke kun er .NET udviklere der kan bruge det.

Services er et vidt begreb, men der er helt klare fordele ved at benytte sig af services uanset hvilken platform man sidder på. Nogle platforme gør det meget nemmere at lave sine services med, og en af dem er .NET platformen.