Een vraag die mij regelmatig wordt gesteld is 'wat is software + services?'. Is het SaaS, maar dan met een Microsoft-sausje erover, omdat ze graag licenties willen blijven verkopen van Windows en Office? Misschien wel, maar misschien zit er ook een minder commerciële gedachte achter. Wat is S+S precies?
S+S is een architectuurvisie die zowel het gebruik van lokale software (on-premise) als services die toegankelijk zijn via het internet beschrijft.
Laten we eens de betekenis van deze definitie in ogenschouw nemen en beginnen bij de eerste S. Desktop sofware binnen een enterprise omgeving kan volledig op zichzelf draaien, maar kan ook gebruik maken van server software die op een andere machine draait binnen dezelfde enterprise. Denk bijvoorbeeld aan een smart client die gebruikt maakt van een lokale service. In een S+S wereld wordt dit soort software on-premise software genoemd, wat feitelijk niks anders betekent dan software die op de eigen servers draaien. Een enterprise is zelf verantwoordelijk voor installatie, onderhoud, licenties en dergelijke.
Desktop en/of server software kan ook gebruik maken van server software die via het internet aangeboden wordt door een service provider. Dit scenario wordt bedoeld met de tweede S, services. Dit soort services worden typisch gezien ontsloten via een web browser of via een web service. Van dit soort services wordt ook wel gezegd dat ze in the cloud leven. Dit betekent dus niets meer dan server software, die via het internet wordt aangeboden. In een woord, SaaS.
On-premise software is niets nieuws. Dit type software gebruikt bijna elke organisatie vandaag de dag. SaaS is ook niets nieuws en is erg populair bij kleinere organisaties. Daarnaast neemt het gebruik van SaaS ook bij grote organisaties steeds verder toe. Wat in hemelsnaam is dan nieuw aan Software+Services?
Door verschillende brillen kijken
Het enige nieuwe is dat het kijken naar applicatieontwikkeling door een S+S bril fundamenteel verschilt ten opzichte van het kijken naar applicatieontwikkeling door puur een software of puur een services bril. De wereld van morgen zal geen pure services wereld zijn. Het is ook geen pure software wereld zijn. Het is naar alle waarschijnlijkheid een combinatie van beide.
Momenteel zijn er al diverse voorbeelden van S+S implementaties. Email is een mooi voorbeeld. Exchange kun je als lokale software draaien. De eerste S. Je kunt het ook laten hosten bij een service provider. Dit is de tweede S. Je kunt er ook voor kiezen om Exchange lokaal te installeren en je daarnaast te abonneren op Microsoft Exchange Hosted Services. Deze services bieden bovenop de lokale Exchange Server veel extra functionaliteit als beveiliging tegen malware, email archivering enzovoorts. Dit is S+S.
Nu we weten wat S+S inhoudt is een logische vervolgvraag wat S+S voor impact heeft op de hedendaagse applicatieontwikkeling. Laten we als voorbeeld BizTalk Server nemen. De basis van BizTalk Server bestaat feitelijk uit twee logische eenheden. Het messaging gedeelte is verantwoordelijk voor het integratieproces tussen verschillen applicaties. Het workflow gedeelte staat toe om extra business logica aan het integratieproces toe te voegen. BizTalk in de huidige vorm is typisch een voorbeeld van on-premise software. Maar wat als je de integratiediensten wilt uitbesteden aan een service provider? De fundamentele principes van integratie op basis van BizTalk zullen niet verschillen, maar er zijn wel een aantal verschillen zichtbaar. Daarom heeft Microsoft ook een apart product ontwikkeld, genaamd BizTalk Services. Dit staat ook wel bekend onder de naam Internet Service Bus.
Voor zowel BizTalk Server als BizTalk Services is workflow functionaliteit nodig. Hier zit geen verschil in. Het verschil zit hem in eerste instantie in het messaging gedeelte. In BizTalk Services wordt dit connectivity genoemd. Op het eerste gezicht lijkt dit hetzelfde, maar het connectivity component is ontworpen om integratie tussen applicaties mogelijk te maken zonder rekening te hoeven houden met firewalls. Ook kun je een globale naamgeving geven aan een service die door een applicatie wordt geleverd om deze te kunnen lokaliseren op internet. Daarnaast zijn functionaliteiten als message-multicasting ook ingebouwd.
Wat ook een rol speelt bij een service provider is identity management. In een enterprise omgeving kan BizTalk gebruik maken van bijvoorbeeld Active Directory. Een service provider heeft deze luxe niet. BizTalk Services zal zelf een identity management oplossing moeten aanbieden. Dit wordt gerealiseerd door middel van een Security Token Service (STS) en is gebaseerd op de open standaard WS-Trust. Deze service geeft tokens uit die externe applicaties kunnen gebruiken om toegang te krijgen tot de connectivity service.
Het S+S principe is weer dat je zowel BizTalk Server als BizTalk Services kunt combineren. Een organisatie kan er bijvoorbeeld voor kiezen om BizTalk Server in te zetten voor integratie tussen interne applicaties en BizTalk Services in te zetten voor internetgebaseerde integratie met applicaties van externe leveranciers.
Momenteel biedt de Microsoft-ontwikkelomgeving (Visual Studio en .NET Framework) weinig tot geen bouwblokken om eenvoudig internetgebaseerde services te kunnen ontwikkelen. Natuurlijk, WCF biedt al veel mogelijkheden met zijn ondersteuning voor WS-standaarden, maar we zijn er nog lang niet. Eenvoudig een STS-bouwsteen aan een service toevoegen is er niet echt bij. Om maar nog niet te spreken van het eenvoudig kunnen ontwikkelen van SaaS-applicaties die moeten werken op basis van een multi-tenacy model. Microsoft is momenteel druk bezig om ontwikkelaars hierin tegemoet te komen. Onder codenaam OSLO wordt een services platform ontwikkeld waardoor het voor ontwikkelaars eenvoudiger zal zijn om services volgens het S+S model te ontwikkelen. OSLO is geen product op zich, maar ontstaat uit toekomstige releases van Visual Studio, .NET Framework, BizTalk Server en System Centre. Tijdens het Microsoft PDC event komende oktober wordt een eerste versie van OSLO aan de wereld getoond. Ik ben zeer benieuwd.
Zie ook http://adi.atosoriginblog.nl/2008/07/04/wat-software-services/