프런트엔드와 백엔드
소프트웨어 공학에서 프론트 엔드와 백엔드라는 용어는 소프트웨어의 presentation layer (프론트 엔드)과 data access layer (백엔드) 또는 물리구조 또는 하드웨어 사이의 관심사를 분리하는 것을 의미한다. 클라이언트 - 서버 모델에서 클라이언트는 일반적으로 프런트 엔드로 간주되며 서버에서 실제로 presentation 작업이 수행되는 경우에도 일반적으로 서버가 백 엔드로 간주된다.
클라우드 컴퓨팅
SaaS 모델에서 사용자들은 응용 소프트웨어와 데이터베이스에 대한 접근 권한을 가진다. 클라우드 제공자들은 응용 프로그램을 실행하는 인프라스트럭처와 플랫폼을 관리한다. SaaS는 "주문형 소프트웨어"(on-demand software)를 가리키기도 하며 가격 정책은 일반적으로 종량제(pay-per-use) 기반이거나 구독 비용 기반이다. SaaS 모델에서 클라우드 제공자들은 클라우드에 응용 소프트웨어를 설치, 운영하며 클라우드 사용자들은 클라우드 클라이언트의 소프트웨어를 접근한다. 클라우드 사용자들은 이러한 응용 프로그램들이 실행하는 클라우드 인프라스트럭처와 플랫폼을 관리하지 않는다. 이로 말미암아 클라우드 사용자 자신의 컴퓨터에 응용 프로그램을 설치하고 실행할 필요가 없으므로 유지보수와 지원이 단순하게 된다.
클라우드 응용 프로그램들은 확장성 관점에서 다른 응용 프로그램들과 차이가 있는데, 확장성은 변화하는 작업 수요를 충족하기 위해 런타임 중에 태스크들을 여러 개의 가상 머신으로 복제함으로써 수행할 수 있다. 로드 밸런서들은 가상 머신들의 집합을 통해 작업을 분산시킨다. 이 과정은 오직 하나의 단일 액세스 포인트를 바라보는 클라우드 사용자에게는 투명하게 보인다. 수많은 클라우드 사용자들을 수용하기 위해 클라우드 애플리케이션들은 멀티테넌트일 수 있으며, 즉 어떠한 머신이라도 하나 이상의 클라우드 사용자 조직에 서비스를 제공할 수 있다는 것을 뜻한다.