웹 애플리케이션 아키텍처
웹 애플리케이션 아키텍처가 래퍼 애플리케이션을 이용하여 웹 브라우저 내에 가상 머신 환경을 제공할 수 있고 웹 애플리케이션들은 래퍼 애플리케이션 상에서 실행될 수 있다.
래퍼 애플리케이션은 웹 애플리케이션들에 대 한 라이프 사이클 관리를 제공하고 환경 내의 웹 애플리케이션들 모두에 대한 로그인 및 로그아웃과 같은 다른 기능을 제공할 수 있다.
기 술 분 야
본 출원은 2011년 7월 26일에 출원된 미국 특허 가출원 번호 61/511,938의 이득을 주장하고, 이 가출원은 참조 로서 본 명세서에 통합된다.
본 발명은 웹 애플리케이션에 관한 것으로 특히 하나 이상의 웹 서버와 상호작용하여 특정 웹 서비스를 제공하 는 클라이언트 장치 상의 웹 브라우저의 사용을 통해 이메일 서비스 또는 달력 서비스 또는 연락처 서비스 등과 같은 서비스들을 제공할 수 있는 웹 애플리케이션에 관한 것이다.
배 경 기 술
종래 기술에서의 웹 애플리케이션 시스템은 사용자가 웹 브라우저를 통해 이들의 이메일에 액세스하고 상호작용 하도록 한다. 예를 들어, 웹 이메일은 사용자로 하여금 이메일 클라이언트보다는 표준 웹 브라우저의 사용을 통해 자신의 이메일을 보고 상호작용할 수 있게 한다.
예를 들어, 마이크로소프트사의 Exchange Server 상에서 유지되는 이메일 시스템들은 사용자로 하여금 네트워크에 연결될 수 있는 임의의 머신 상의 웹 브라우저를 통해 이들의 이메일, 달력, 및 연락처에 액세스할 수 있게 하여, 이메일 등에 액세스하는데 Entourage 또는 마이크로 소프트 아웃룩을 사용할 필요가 없다.
Comcast와 같은 인터넷 서비스 제공자, 구글 및 야후와 같은 인터넷 검 색 제공자는 또한 기존의 웹 브라우저를 통해 사용자의 이메일 또는 다른 서비스로의 액세스를 가능하게 한다.
발명의 내용
웹 애플리케이션 아키텍처의 다양한 예시가 명세서에서 설명된다. 웹 애플리케이션 아키 텍처는 자신이 데이터 프로세싱 시스템의 오퍼레이팅 시스템 상에서 실행되는 표준 웹 브라우저 상에서 실행되 도록 구성되는 래퍼(wrapper) 애플리케이션을 포함한다.
애플리케이션들의 세트는 래퍼 애플리케이션 상에서 실행되도록 구성되고(예컨대, 각 애플리케이션은 래퍼 애플리케이션의 아이프레임(iframe) 내에서 실행된다), 애플리케이션들의 세트 내의 각각의 애플리케이션은 데이터를 하나 이상의 웹 서버와 주고받도록 구성된다.
하나 이상의 웹 서버는 이메일 데이터, 달력 데이터, 연락처 데이터 및 기타 유형의 데이터를 저장할 수 있다. 래퍼 애플리케이션은 애플리케이션들의 세트 내의 각 애플리케이션에 대한 라이프 사이클 관리를 제공하도록 구성되고 애플리케이션들의 세트 내의 애플리케이션들 간의 전환을 제공할 수 있다.
래퍼 애플리케이션은 선점 다중 작업 오퍼레이팅 시스템(preemptive multitasking operating system)과 같은 또 다른 오퍼레이팅 시스템 상에서 자신이 실행되고 있는 웹 브라우저 상에서 실행되고 있는 가상 머신형 오퍼레이팅 시스템(virtual- machine-like operating system)으로 간주될 수 있다.
애플리케이션들의 세트는 이메일 애플리 케이션, 및 달력 애플리케이션, 및 연락처 또는 주소록 애플리케이션을 포함할 수 있다. 세트 내의 각 애플리케이션이 표시되는 경우, 이는 가장 앞 애플리케이션으로 표시되고 다른 애플리케 이션들은 완전히 가려지거나 부분적으로 희미해진다. 각각의 애플리케이션은 표시되는 경우 웹 브라우저에 의해 제공되는 동일한 단일 웹 브라우저 윈도우 내에 표시된다.
하나 이상의 애플 리케이션 프로그래밍 인터페이스(Application Programming Interfaces; APIs)를 통해 래퍼 애플리케이션과 애 플리케이션들의 세트 내의 각 애플리케이션 간에서 호출들이 전송될 수 있다.
이러한 호출들은 각 애플리케이 션이 시작되는 경우 및 각각의 애플리케이션이 가장 앞에 있는 경우와 가장 앞에 있지 않은 경우 간에서 전환되 는 경우 전송될 수 있다.
래퍼 애플리케이션에 의해 제공되는 라이프 사이클 관리는 애플리케이션들의 세트 내 의 각각의 애플리케이션의 시작 및 종료를 포함할 수 있다. 더욱이, 래퍼 애플리케이션은 애플리케이션들의 세 트 내의 각각의 애플리케이션의 실행을 지원하기 위해 래퍼 애플리케이션과 웹 브라우저 간에서 호출들을 전송 할 수 있다.
애플리케이션들의 세트 내의 각각의 애플리케이션이 맨 앞 상태에 있지 않은 경우 (예컨대, 본 명세서에서 설명된 바와 같이 완전히 또는 부분적으로 가려지거나 유예(suspend)되는 경우) 실행되 는 상태로 유지된다.
래퍼 애플리케이션은 아이콘들의 세트를 표시할 수 있는데, 각 아이콘은 웹 브라우저로부터의 호출에 응답하여 애플리케이션들의 세트 내의 하나의 애플리케이션을 나타내고, 아이콘들 의 세트는 선택하거나 전환할 이용가능한 애플리케이션들의 팔레트를 형성할 수 있다.
본 발명에 따른 방법은 제1 오퍼레이팅 시스템을 실행하는 단계, 제1 오퍼레이팅 시스템 상에서 웹 브라우저를 실행하는 단계, 웹 브라우저 상에서 래퍼 애플리케이션을 실행하는 단계, 및 래퍼 애플리케이션 에서 적어도 하나의 애플리케이션을 실행하는 단계를 포함할 수 있다.
래퍼 애플리케이션은 이메일 애플리케이 션, 달력 애플리케이션, 연락처 또는 주소록 애플리케이션 등과 같은 애플리케이션들의 세트의 일부가 될 수 있 는 적어도 하나의 애플리케이션을 위한 라이프 사이클 관리를 제공할 수 있다.
또한 각 애플리케이션이 실행되거나 시작되거나 종료되는 경우 API를 통해 래퍼 애플리케이션과 애플리케이션들의 세트 내의 각각의 애플리케이션 간에서 적어도 하나의 호출을 전송하는 것을 포함할 수 있다.
제1 애플리케이션이 시작되는 경우 웹 브라우저와 래퍼 애플리케이션 간에서 적어도 하나의 호출을 전송 하는 것을 포함할 수 있다. 적어도 하나의 호출의 전송은 API를 통해 호출 또는 소프트웨어 메시지의 발행, 개 시, 불러오기 또는 수신 중 하나가 될 수 있다.
실행가능 프로그래밍 명령어들을 포함하는 머신 판독가능 비일시적 저장 매체가 본 명 세서에서 설명된 방법들을 구현하는데 사용될 수 있다. 또한, 데이터 프로세싱 시스템이 본 명세서에서 설명된 바와 같이 작동하도록 구성될 수 있고, 이 데이터 프로세싱 시스템은 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 시스템, 스마트폰, 임베디드 디바이스, 및 기타 소비자 가전 제품과 같은 기타 전자 장치를 포함할 수 있다. 본 발명의 다른 특징은 첨부된 도면 및 아래의 상세한 설명을 통해 명백할 것이다.
위의 설명은 본 발명의 모든 양태 전체를 망라하는 목록을 포함하지 않는다. 본 발명은 위에서 설명되고 아래 의 상세한 설명에 개시된 다양한 양태들의 모든 적절한 조합으로부터 실시될 수 있는 모든 시스템 및 방법을 포 함하는 것이 고려된다.