En service er en afgrænset, server-baseret tjeneste på nettet, som aktiviseres via en protokol over nettet. Der er tale om maskine-til-maskine interaktion.
Der vil hyppigst være tale om webservices, altså services baseret på http og SOAP eller SRW/SRU, men der kan også være tale om andre protokoller, f.eks. Z39.50, RSS, SMS.
Af forståelsesårsager foreslås at vi generelt taler om webservices, selv om dette altså i nogle tilfælde kan være formelt forkert.
Webservices kan være funktionalitetsorienterede, f.eks. Administrer et fjernlån, eller indholdsorienterede, f.eks. Udlever materialevurdering af en titel eller Stream en film. Endvidere kan webservices være af vidt forskellig omfang og kompleksitet fra f.eks. Foretag lånerverifikation over Bestil titel til en metaservice, der samler flere underliggende services, f.eks. OpenRS.
Ved udviklingen og drift af webservices er anvendelse af standardværktøjer i et open source miljø helt afgørende. Afgørende egenskaber for en service er at den skal være kendt, læsbar, accesbar, veldrevet, vedligeholdt og publiceret som open source.
Anatomien i en webservice
Kernen i en webservice er et eller flere stykker eksekverbare kode. Disse kodestykker vil typisk være kodet i en C-variant eller Java. Særkendet ved webservicen er, at funktionerne ”pakkes ind” i et maskine-til-maskine grænsefladelag, der giver adgang til webservicen via http på en åben og veldokumenteret måde.
Den, der benytter en webservice, behøver ikke kende noget til de funktioner, der ligger inde i servicen og hvordan disse funktioner kaldes, men skal alene forholde sig til webservicens ”indpakning”.
”Indpakningen” sker typisk i scriptsprog som f.eks. php eller javascript. Data til og fra webservicen flyder i en veldefineret struktur, og webservicens udlevering af data forudsætter en formatering, som i øjeblikket typisk vil være DBMF-baseret. Formatering må stigende omfang forventes udført i javascript.
Open source og webservices
DBC publicerer kode, programbiblioteker, interfacedefinitioner, skemaer for webservices, selve webservices egen kode, SOA-policies, designdokumenter og lignende - åbent og tilgængeligt.
Open source vedrører ikke datalaget i webservices. De normale betingelser for anvendelse af data, der tilgængeliggøres via webservices er fortsat gældende. Det kræver f.eks. abonnement på Materialevurderingsbasen at kunne få adgang til materialevurderinger gennem DBC's webservice. I datalaget taler vi i om "open content", hvis der er tale om fri anvendelse.
Anvendelse af webservices
En serviceorienteret arkitektur i Danbib betyder at Danbib funktionalitet kan bruges af bibliotekerne i lokalsystemsammenhæng, og at Danbib kan integreres i andre grænseflader, forudsat disse tillader integration med services.
DBC webservices lægges ud som open source. På basis heraf kan et bibliotek vælge at sætte sine egne webservices op og selv drifte dem. I sådanne tilfælde vil DBC ikke have indtægter på salg og drift, men alene på konsulentydelser og evt. support.
Hvis biblioteket vælger at give andre biblioteker adgang til dets webservices - det kan sammenlignes med at et bibliotek drifter andre bibliotekers system - betragtes dette som kommerciel udnyttelse, hvilket kun kan ske på særlige licensvilkår. Det betragtes ligeledes som kommerciel udnyttelse, hvis en systemleverandør sætter sine egne services op.