oraz zapewnienie, przez dostawcę usługi, mechanizmów chroniącychskładowane informacje przed utratą lub uszkodzeniem,np. wskutek awarii sprzętowej.
4. Prywatność - wykorzystanie danych wyłącznie w celu świadczenia usług, a tam gdzie to możliwe zachowanie pełnej anonimowości. Dodatkowo ograniczenie dostępu do tych danych wyłącznie do właściciela lub wskazanych przez niego osób (administrator usługi i pracownicy rządowi zazwyczaj nie zaliczają się do tego grona).
W związku z dużym zainteresowaniem oprogramowaniem działającym w środowisku rozproszonym, w tym w pełni profesjonalnymi aplikacjami internetowymi, wzrasta potrzeba szybkiego projektowania i implementacji takiego oprogramowania z uwzględnieniem takich aspektów, jak bezpieczeństwo, skalowalność, wydajność oraz ergonomia. Wymaga to wykształcenia specjalistów w tym zakresie, co wpływa również na pracę szkół i podnoszenie kwalifikacji kadry (Żyła i Kęsik, 201 Ob).
Bogactwo środowisk deweloperskich, technologii oraz metodyk wytwarzania oprogramowania spowodowało wykształcenie dwóch głównych nurtów (szkół, metodyk)w tej dziedzinie - wytwarzania oprogramowania z punktu widzenia programisty (ang. programmer-likeapproach) i z punktu widzenia projektanta (ang. designer-likeapproach) (Żyła i Kęsik, 201 Oa).
Pierwsza ze szkół wykorzystuje gotowe biblioteki, wzorce projektowe, frameworki, szablony aplikacji, itp.. Niemniej wymagania stawiane osobie tworzącej oprogramowanie są dosyć wysokie - m.in. znajomość środowiska programistycznego i technologii, umiejętność implementacji założeń aplikacji przedstawionych przez analityków oraz umiejętność pisania schludnego i wydajnego kodu. Z drugiej strony programista ma pełną władzę nad kodem aplikacji, więc implementacja niestandardowej funkcjonalności nie jest szczególnie problematyczna (Żyła i Kęsik, 201 Oa).
Druga ze szkół wykorzystuje zalety Inżynierii Sterowanej Modelami. Różnorakie modele złożone z konfigurowalnych komponentów tworzą wyższą warstwę abstrakcji, pozwalającą skupić się na zasadzie działania aplikacji, jej funkcjonalności, układzie treści, sposobie nawigacji oraz przepływie informacji pomiędzy jej modułami. Zyskuje się dzięki temu oszczędność czasu oraz zmniejsza liczbę potencjalnych błędów, jakie mogłyby się pojawić podczas kodowania typowej funkcjonalności aplikacji.