Plattformar för flera användare
Nyckeln till framgång för on-demand
Hjärtat i många av fördelarna med modellen för on-demand är en nyckelinnovation - en arkitektur för flera sessioner där alla användare och program delar en enda gemensam infrastruktur och kodbas som underhålls centralt.
I motsats till företagsprogram eller postservrar för klient/server delar kunder i flera sessioners program såsom Salesforce, Google Mail och eBay samma fysiska instans och version av ett program. Enstaka installationer av dessa program upptar virtuella partitioner snarare än separata fysiska travar av maskinvara och programvara. Dessa partitioner lagrar metadata som för varje organisation definierar affärsregler, använda fält, anpassade objekt och gränssnitt till andra system.
Inte alla "Programvara som en tjänst" är lika
Många leverantörer som marknadsför sig själva som en "värdtjänst" eller "program som en tjänst" debiterar kunder för att helt enkelt installera, konfigurera och underhålla sin programvara som separata kundinstanser på leverantörens maskinvara och på leverantörens plats. Precis som med traditionell programvara uppstår stora kostnader varje gång dessa program för "värdtjänster" uppgraderas eftersom tidigare anpassningar går förlorade och programmet måste ominstalleras för varje kund.
Separera affärslogik och data
Arkitektur med flera sessioner ger en gräns mellan plattformen och programmen som körs på den vilket gör det möjligt att skapa program vars logik är oberoende av de data den styr.
Istället för att hårdkoda datatabeller och sidlayouter definierar användare attribut och beteenden som metadata, vilka fungerar som programmets logiska "blåkopia". Denna gör det möjligt för affärsanvändare - de användare som det är mest troligt att de känner till affärsprocesserna som programmet har utformats för att stöda - att skapa programmet genom att använda enkla verktyg för peka-och-klicka. Utöver ett programs metadata kommer dessa virtuella partitioner också att lagra anpassad kod som utvecklats med programmeringsspråket Apex - vilket försäkrar dig om att eventuella problem med koden inte påverkar andra kunder och förhindrar dålig kod associerad med ett objekt från att påverka andra delar av programmet för en enstaka kund.

