KR20060064003A - 사용자 인터페이스 응용들에서 뷰 라우팅 - Google Patents
사용자 인터페이스 응용들에서 뷰 라우팅 Download PDFInfo
- Publication number
- KR20060064003A KR20060064003A KR1020067007927A KR20067007927A KR20060064003A KR 20060064003 A KR20060064003 A KR 20060064003A KR 1020067007927 A KR1020067007927 A KR 1020067007927A KR 20067007927 A KR20067007927 A KR 20067007927A KR 20060064003 A KR20060064003 A KR 20060064003A
- Authority
- KR
- South Korea
- Prior art keywords
- view
- application
- route
- data
- electronic device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 사용자 인터페이스 응용들에서 뷰 라우팅을 이용하는 방법, 컴퓨터 프로그램, 시스템 및 전자 디바이스에 관한 것이다. 컴퓨터는 적어도 제 1 응용과 제 2 응용을 포함하는데, 여기서 상기 제 1 응용은 사용자에게 개시될 뷰들의 체인을 초기화하며, 상기 제 2 응용은 상기 제 1 응용과 관련된 적어도 하나의 뷰를 갖는다. 적어도 하나의 뷰를 포함하는 뷰 라우트가 결정된다. 뷰 라우트는 제 1 응용으로부터 뷰 라우터로 전달된다. 뷰 라우트에 기초하여 적어도 하나의 뷰가 개시된다. 뷰 라우트의 적어도 일부가 처리된 때에, 제어는 제 1 응용으로 복귀한다. 본 발명의 이점들은 사용자 인터페이스 응용들의 설계에 있어서 유연성 개선에 관한 것이다.
사용자 인터페이스, 뷰 라우트, XML
Description
본 발명은 컴퓨팅 장치에서 사용자 인터페이스들에 관한 것이다. 특히, 본 발명은 컴퓨터 단말기들에서 사용되는 그래픽 사용자 인터페이스들에서 뷰 라우팅에 관한 것이다.
사용자 친화성은 모든 컴퓨터 응용들에서 중요한 요소이다. 특히, 보통 사용자들 및 빈번한 사용을 목표로 한 응용들에서 더욱 중요하다. 최근에, 그래픽 사용자 인터페이스들 및 운영 체제들이 다수의 청중(audience)들에게 이용가능한 컴퓨터 응용들을 만들게 되었다. 최근에 데스크톱 및 랩탑 컴퓨터들에서 유행하는 운영 체제들은 Microsoft Windows® 및 Linux ™ 이다. Symbian™ 운영 체제는 이동 디바이스들 및 다른 유사한 핸드-헬드(hand-held) 디바이스들에 그래픽 사용자 인터페이스 및 운영 체제를 제공한다.
사용자가 다양한 엔티티들에 관련된 데이터를 채워야 하는 데이터 엔트리 응용들(data entry applications)에서, 채워질 정보를 조직화하는 2개의 방식들: 데이터 지향 방식 및 프로세스-지향 방식이 있다. 데이터 지향 방식이 응용 설계자 관점에서 훨씬 단순하다. 사용자가 관심을 가진 엔티티들과 관련된 데이터를 채울 수 있는 단순한 데이터 엔트리 형태들이 제공되어야 한다. 통상적으로, 데이터 지향 방식은 데이터 엔트리 형태들 세트 또는 시퀀스를 제공함으로써 단순화되는데, 여기서 데이터 엔트리 형태들은 데이터가 현실적으로 수집되는 프로세스를 고수(adhere)한다. 유사하게는, 데이터 질문 시퀀스들 및 갱신 형태들이 제공되는데, 이들은 데이터가 이용되고 정정되는 프로세스들을 고수한다. 하지만, 프로세스-지향 방식에서의 문제점은 데이터가 수집, 이용 및 갱신되는 매우 다양한 프로세스들이 있다는 것이다. 이러한 문제는 유사한 데이터가 다양한 개별 응용들에서 처리되어야 한다는 사실에 의해 더욱 심각하게 된다. 데이터 검색 및 데이터 엔트리 단계들을 다수의 응용들로부터 단계들의 하나의 논리적 시퀀스로 통합할 수 있는 것이 중요하다. 전형적으로, 하나의 단계는 소정의 응용에서 소정의 뷰(view)에 의해 표시된다. 뷰는 입력 사용자 인터페이스 요소들 세트와 정보 사용자 입력 요소들의 조합으로서 정의될 수 있다. 입력 사용자 인터페이스 요소들은 전형적으로 일정 작업을 수행하는데에 사용될 수 있는 요소들이며, 사용자 입력이 요구되는 때에 정상적으로 사용된다. 이러한 요소들은 예를 들어, 라디오 버튼들, 체크박스들, 입력 필드들, 승인(OK) 버튼들 및 취소(Cancel) 버튼들 등이다. 정보 사용자 인터페이스 요소들은 전형적으로 텍스트 및/또는 사진들을 포함하며, 사용자에게 통지하거나 지시하는데에 사용된다. 가령, 접촉(contact) 응용에서, 검색 워드와 같은 검색 식을 입력하기 위한 하나의 뷰 및 검색 식에 부합하는 모든 접촉들을 디스플레이하기 위한 다른 뷰가 있다. 실제로, 뷰는 전형적으로 사용자에게 디스플레이되는 사용자 인터페이스 형태 또는 윈도우로서 보여질 수 있다. 뷰는 또한 전체 스크린을 커버 할 수 있다. 예시적으로, Symbian™ 운영 체제 환경에서 사용하는 경우를 고려하면, 사용자는 새로운 단말기를 보유하고 있으며 단말기의 동작에 요구되는 세팅들을 입력해야 한다. 첫째로, 사용자는 세계 시각 서비스를 위한 시간대(time zone)를 세팅해야 하는데, 여기서 시간대는 서로다른 시간대들에서의 시간을 예시한다. 둘째로, 사용자는 동일한 응용에서 시간을 설정해야 한다. 셋째로, 사용자는 접촉 응용에서 자신의 명함의 세부사항들을 특정해야 한다. 넷째로, 사용자는 인터넷 액세스 응용에서 인터넷 액세스 정보를 특정해야 한다. 다섯째로, 사용자는 메시지 응용(Messaging Application)에서 이-메일 세팅들을 특정해야 한다.
도 1을 참조하면, 사용자가 구입한 새로운 단말기의 셋업에 관련된 세팅들을 입력하기 위한 상술된 프로세스가 도시된다. 도 1은 단말기 셋업 응용의 뷰 시퀀스를 예시한다. 사용자가 셋업 응용을 시작하거나 사용자를 대신하여 자동으로 시작된다. 셋업 응용은 각 필요한 뷰를 하나씩 호출한다. 호출된 뷰들은 서로다른 응용들에서 구현될 수 있다. 단계(11)에서, "세계 시각(World Clock)" 응용이 위치 세팅을 위한 뷰에서 시작된다. 사용자는 자신이 현재 있는 국가를 선택해야 한다. 국가가 스크롤가능한 리스트로부터 선택되는 때에, "세계 시각" 응용이 나타나서 사용자 선택을 단말기 셋업 응용으로 복귀시킨다. 단계(12)에서, "세계 시각" 응용이 다시 시작되며, 이번에는 시간 세팅을 위한 뷰가 개시된다. 사용자가 현재시간을 입력한 이후에, "세계 시각" 응용이 나타나서 사용자 선택을 단말기 셋업 응용으로 복귀시킨다. 프로세싱은 각 응용 및 단말기 셋업 응용에 의해 개시되는 뷰에 대해 유사하게 진행된다. 단계(13)에서, "접촉" 응용이 또한 자신의 카드 세부사항들을 특정하기 위한 뷰로부터 시작된다. 단계(14)에서, "인터넷 액세스" 응용이 현재의 범용 전파 서비스(GPRS) 액세스 포인트를 선택하기 위한 뷰로부터 시작된다. 단계(15)에서, "메시지" 응용은 사용되는 이-메일 서버를 위한 정보를 입력하기 위한 뷰로부터 시작되는데, 여기서 이-메일 서버는 가령, 서버 이름 및/또는 IP-주소를 포함한다. 사용자가 이-메일 서버를 위한 정보를 입력하고 "승인" 버튼을 누르는 때에, "인터넷 액세스" 응용이 나타나서 입력 정보를 단말기 셋업 응용으로 복귀시킨다.
도 2를 참조하면, 클라이언트 응용으로부터 뷰들을 하나씩 호출하기 위한 상술한 일반적인 패턴이 도시된다. 도 2에서, 클라이언트 응용으로서 동작하는 응용(100)이 있다. 3개의 다른 응용들, 즉 응용들(140, 150 및 170)이 있다. 뷰들(141, 152 및 172)은 응용(100)에 의해 사용될 것이다. 뷰들은 인터페이스들(143, 153 및 173)에서의 방법에 의해 개시된다. 데이터가 인터페이스들(144, 154 및 174)에서의 리스너 방법(listener method) 들에 의해 뷰들로부터 복귀된다.
예를 들어, 뷰(112)에서, 뷰(112)를 위한 데이터 충전에 있어서 디그레션(digression)(탈선)을 야기하는 버튼 또는 다른 선택이 있을 수 있다. 이 디그레션은 뷰들(141, 152, 172)에서 데이터 엔트리 형태들의 충전을 발생시키며, 정보를 뷰(112)로 복귀시킨다. 예컨대, 사용자에게 버튼이 제공될 수 있는데, 이는 뷰(112)에 관련된 명령(command)의 실행에 필요한 일부 정보들이 조기에 정의되었는지를 검사한다. 예컨대, 응용(100)은 먼저 인터페이스(143)를 통해 응용(140)에서 뷰(141)를 개시한다. 이는 뷰(141)와 관련된 사용자 인터페이스 윈도우 또는 형 태의 표시를 발생시킨다. 뷰(141)가 나타나는 때에, 가령 사용자에 의한 "승인" 명령의 선택 때문에, 응용(140)은 인터페이스(145)에서 리스너 방법을 통해 사용자에 의해 충전된 데이터를 응용(100)으로 복귀시킨다. 본질적으로 유사한 단계들이 응용(150) 내의 뷰(152)와 응용(170) 내의 뷰(172)에 대해 반복된다.
도 2에 도시된 것과 같은 사용자 인터페이스 응용들에서 뷰 체인(view chain)과 관련된 문제점들이 있다. 첫째로, 뷰 개시 시퀀스들은 클라이언트 응용, 즉 도 2에서의 응용(100)에 하드-코딩(hard-coding) 되어야 한다. 따라서, 이러한 뷰 체인들, 즉 뷰들 사이의 뷰 라우트(view route)들을 정의하는 어떤 용이하고도 유연성있는 방법이 없다. 이는, 프로그램 코드가 뷰 개시 시퀀스를 명시적으로 특정해야 함을 의미한다. 뷰 개시들 시퀀스를 변경해야 할 필요가 있는 경우에, 응용(100)을 위한 프로그램 코드는 갱신되어야 한다. 추가적인 단점은, 서버 응용들, 즉 도 2의 응용들(140, 150 및 170)에서 임의의 변경이 있는 경우에, 클라이언트 응용도 역시 갱신되어야 한다는 것이다. 예컨대, 비지니스 카드들과 같은 일부 정보와 관련된 데이터 엔트리 뷰들이 새로운 특성들 때문에 재조정되는 경우에, 이 뷰들을 사용한 모든 응용이 비록 이 새로운 특성들을 이용하지는 않을 것이지만 갱신되어야 한다.
둘째로, 뷰로부터의 데이터를 뷰를 개시시킨 응용으로 복귀시키는 어떠한 용이한 방법도 없다. 서버 응용은 각 뷰를 위한 방법 인터페이스를 공표 및 구현해야 하는데, 이는 다른 응용들의 사용에 대비하는 것이다. 다른 응용들은 뷰를 개시하기 위해 이 방법을 호출해야 한다. 사용자가 뷰와 관련된 데이터를 입력하고, "승 인"과 같은 명령을 선택한 때에, 방법이 서버 응용에서 호출된다. 이 방법은 또한 클라이언트 응용에 의해 공표 및 구현되는 리스너 방법을 호출해야 한다. 바꾸어 말하면, 인터페이스는 본 기술분야의 전문가에게는 익숙한 객체 지향 프로그래밍으로부터의 통상적인 방식으로 사용된다. 이 방법은 상술한 바와같이 유연성이 없고 정적인데, 이는 인터페이스 정의들과 관련된 서버 응용에서의 각 변화가 클라이언트 응용을 또한 갱신할 필요를 야기하며, 그 반대 경우도 발생하기 때문이다. 이는 수많은 방식들로 상호연결되어야 하는 다수의 응용들을 제공하는 시스템에서 복잡한 작업이 될 수 있다. 응용들의 상호연결은 일반적으로 효과도 없는 노력을 들여 다시 시작해야 하는 즉, "접촉" 응용 외의 응용들에서 동일한 데이터(예를 들어, 전화번호부 데이터)를 입력 및 처리해야 하는 문제들을 피할 수 있다.
셋째로, 실시간으로 전체적으로 새로운 뷰 라우터들을 도입 및 개시하는 것이 가능하지 않다. 데이터를 클라이언트와 서버 응용 사이에서 동적으로 전달하는 일반적인 방식이 필요한데, 이는 개별적인 뷰들의 갱신 및 새로운 뷰 라우트들의 생성을 허용한다.
본 발명은 전자 디바이스에서 사용자 상호작용을 제공하는 방법에 관한 것인데, 상기 전자 디바이스는 적어도 제 1 응용과 이와 관련된 적어도 하나의 뷰를 갖는 제 2 응용을 포함한다. 상기 방법에서, 적어도 하나의 뷰를 포함하는 뷰 라우트가 결정되며; 상기 뷰 라우트는 상기 제 1 응용으로부터 뷰 라우터로 전달되며; 상기 뷰 라우트에 기초하여 적어도 하나의 뷰가 개시되며; 그리고 상기 뷰 라우트의 적어도 일부가 처리되는 때에 상기 제 1 응용이 계속된다.
본 발명은 또한 적어도 제 1 응용과 이와 관련된 적어도 하나의 뷰를 갖는 제 2 응용을 저장하는 시스템에 관한 것이다. 상기 시스템은: 적어도 하나의 뷰를 포함하는 뷰 라우트를 결정하기 위한 수단과; 상기 뷰 라우트를 처리함과 아울러 상기 뷰 라우트에 기초하여 적어도 하나의 뷰를 개시하기 위한 뷰 라우터와; 그리고 상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 계속하기 위한 수단을 포함한다.
본 발명은 또한 적어도 제 1 응용과 이와 관련된 적어도 하나의 뷰를 갖는 제 2 응용을 저장하는 전자 디바이스에 관한 것이다. 상기 전자 디바이스는: 적어도 하나의 뷰를 포함하는 뷰 라우트를 결정하기 위한 수단과; 상기 뷰 라우트를 처리함과 아울러 상기 뷰 라우트에 기초하여 적어도 하나의 뷰를 개시하기 위한 뷰 라우터와; 그리고 상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 계속하기 위한 수단을 포함한다.
본 발명은 또한 데이터-처리 시스템에서 실행되는 때에: 적어도 하나의 뷰를 포함하는 뷰 라우트를 결정하는 단계와; 상기 뷰 라우트를 제 1 응용으로부터 뷰 라우터로 전달하는 단계와; 상기 뷰 라우트에 기초하여 제 2 응용과 관련된 적어도 하나의 뷰를 개시하는 단계와; 그리고 상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 계속하는 단계를 수행하는 코드를 포함하는 컴퓨터 프로그램에 관한 것이다.
본 발명의 일 실시예에서, 상기 뷰 라우트가 처리된 때에 상기 제 1 응용은 재개된다. 상기 뷰 라우트의 종료는 뷰 라우트 리스트를 검사함으로써 결정될 수 있다. 본 발명의 일 실시예에서, 개시된 뷰로부터 존재하는 것은 상기 뷰 라우트에 개시되지않은 다른 뷰들이 여전히 남아있는 경우에도 상기 제 1 응용이 재개되게 한다.
본 발명의 일 실시예에서, 상기 방법은 상기 적어도 하나의 뷰로부터 데이터를 수집하는 단계, 및 상기 수집된 데이터를 상기 뷰 라우터로부터 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 전달하는 단계를 더 포함한다. 본원에서, 상기 뷰 라우트의 후속 응용은 상기 뷰 라우트에서 이미 존재하였으며, 제어를 상기 뷰 라우터에 다시 전달한 뷰를 뒤따르는 뷰 및 응용을 의미한다.
본 발명의 일 실시예에서, 상기 뷰 라우트는 적어도 상기 제 2 응용 및 이와 관련된 뷰를 식별하는 정보를 포함하는 리스트로서 정의된다. 전형적으로, 상기 리스트는 하나 이상의 엔트리를 포함한다. 각 엔트리는 응용, 상기 응용 내의 뷰, 및 선택적으로 상기 뷰와 관련된 명령을 특정한다. 상기 리스트는 엔트리들 리스트의 링크가 될 수 있다.
본 발명의 일 실시예에서, 수집된 데이터는 상기 뷰 라우트에서 각 뷰을 위한 엔트리를 포함하는 저널 리스트로 조직화된다. 본 발명의 일 실시예에서, 수집된 데이터는 타입 및 값 쌍들의 리스트로 조직화된다. 상기 데이터 타입 및 값 쌍들은 XML(extensible markup language format)과 같은 마크업 언어 포맷(markup language format)으로 정의될 수 있다.
본 발명의 일 실시예에서, 상기 뷰 라우터는 총칭적 방법들로 총칭적 인터페이스를 제공하며, 정보를 개시된 상기 뷰로부터 상기 제 1 응용 또는 뷰 체인의 후속 응용으로 복귀시키기 위한 어댑터(adapter)로서 동작한다.
본 발명의 일 실시예에서, 상기 뷰 라우터는 라이브러리로서 구현된다. 본 발명의 다른 실시예에서, 상기 뷰 라우터는 자신의 응용으로서 구현된다.
본 발명의 일 실시예에서, 상기 뷰 라우트의 적어도 일부는 전자 디바이스의 메모리에 특정된다. 상기 전자 디바이스는 상기 제 1 응용 및 제 2 응용들을 실행시킨다. 상기 뷰 라우트의 적어도 일부는 메모리 또는 상기 제 1 응용과 관련된 위치에서 특정될 수 있다. 상기 뷰 라우트는 전적으로 상기 메모리 영역 또는 위치에 저장된 정보에 기초하여 갱신되거나 결정될 수 있다. 사용자 동작들은 상기 제 1 응용 또는 이에 선행하는 일부 다른 응용에서 수행되었을 수 있다. 상기 응용과 관련된 메모리 영역은 상기 제 1 응용이나 상기 뷰 라우터가 액세스하는 버퍼 또는 버퍼들의 세트이다. 상기 메모리 영역은 상기 제 1 응용과 관련된 메모리 세그먼트에 위치되거나, 제 1 응용이 액세스하는 다른 응용에 소속되는 세그먼트에 위치될 수 있다.
본 발명의 일 실시예에서, 컴퓨터는 그래픽 사용자 인터페이스를 갖는다. 상기 그래픽 사용자 인터페이스는 예를 들어, Symbian™ 운영 체제, Microsoft Windows® 또는 다른 운영 체제에 기반할 수 있다. 상기 뷰는 데이터 엔트리 또는 데이터 디스플레이와 관련될 수 있는 사용자 인터페이스 요소들을 포함할 수 있다. 상기 뷰는 전체 디스플레이 영역을 커버하거나, 상기 뷰가 개시되는 때에 개방되는 개별 윈도우 내에 있을 수 있다.
본 발명의 일 실시예에서, 컴퓨터 프로그램은 컴퓨터 판독가능 매체상에 저장된다. 상기 컴퓨터 판독가능 매체는 착탈가능한 메모리 카드, 자기 디스크, 광 디스크 또는 자기 테이프가 될 수 있다.
본 발명의 일 실시예에서, 상기 전자 디바이스는 이동 디바이스, 예를 들어 랩탑 컴퓨터, 팜탑 컴퓨터, 이동 단말기 또는 개인 디지털 어시스턴트(PDA)이다. 본 발명의 일 실시예에서, 상기 전자 디바이스는 데스크톱 컴퓨터 또는 임의의 다른 컴퓨팅 디바이스들이다.
본 발명의 이점들은 응용 사용자 인터페이스 설계에서 유연성 개선에 관련된다. 본 발명은 클라이언트와 서버 응용 사이에서 데이터를 동적으로 전달하는 일반적인 방식을 제공한다. 본 발명은 다른 응용들을 갱신할 필요없이 소정의 응용 내에서 개별적인 뷰들의 갱신을 허용한다. 예를 들어, 클라이언트 응용은 상기 클라이언트 응용이 뷰들을 개시하는 서버 응용들의 변경없이 갱신될 수 있다. 일 응용에서의 변경은 자동으로 다른 응용들을 갱신할 필요성을 도입하지 않는다. 더욱이, 본 발명에서, 심지어 응용 실행 시간 동안에도 새로운 뷰 라우트들을 동적으로 정의하는 것이 가능하다.
본 발명의 추가적 이해를 제공함과 아울러 본원 명세서의 일부를 구성하도록 포함되는 첨부 도면들은 본 발명의 실시예들을 도시하며, 상세한 설명과 함께 본 발명의 원리들의 설명을 돕는다.
도 1은 종래 기술의 단말기 셋업 응용의 뷰 시퀀스를 예시하는 블록도이다.
도 2는 뷰 라우트를 호출하는 종래 기술의 사용자 인터페이스 응용을 예시하는 블록도이다.
도 3은 본 발명에 따라 사용자 인터페이스 응용에 의해 사용되는 뷰 라우트를 도시하는 블록도이다.
도 4는 본 발명에 따라 뷰 라우트를 정의하기 위한 데이터 구조를 예시하는 블록도이다.
도 5는 본 발명에 따라 뷰 라우트 저널 데이터(journal data)를 저장하기 위한 데이터 구조를 예시하는 블록도이다.
도 6는 본 발명에 따라 도 3의 뷰 라우터를 사용하여 뷰 라우팅 방법의 일 실시예를 도시하는 흐름도이다.
도 7은 본 발명에 따라 전자 디바이스를 도시한다.
도 8은 본 발명에 따라 컴퓨터를 도시한다.
예시들이 첨부 도면들에서 도시되는 본 발명의 실시예들에 대한 상세한 참조가 있을 것이다.
도 3은 본 발명의 일 실시예에서 사용자 인터페이스 응용에 의해 사용되는 뷰 라우터를 도시하는 블록도이다. 응용(310)은 뷰 체인, 즉 뷰 라우트를 호출할 필요가 있는 사용자 인터페이스 응용인데, 여기서 상기 뷰 라우트에서의 뷰는 다른 응용들에 의해 서비스제공된다. 우선, 상기 뷰(312)는 활성이며, 사용자에게 디스플레이된다. 상기 뷰는 데이터 엔트리 필드들, 스크롤가능한 바들을 갖는 선택 리 스트들, 라디오 버튼들 및 다른 유사한 사용자 인터페이스 요소들을 포함할 수 있다. 뷰(312)는 동작 명령을 제공하기 위한 사용자 인터페이스 요소를 포함한다. 상기 요소는 예를 들어, 버튼, 메뉴 항목 또는 다른 제어 객체가 될 수 있다. 상기 요소의 선택은 뷰 라우트를 처리하게 한다. 상기 뷰 라우트는 메모리 영역 또는 응용(310)과 관련된 위치에 특정될 수 있거나, 상기 뷰 라우트는 응용(310) 또는 다른 위치에서의 이전 사용자 동작들에 기초하여 결정된다. 유사하게는, 상기 뷰 라우트의 단지 적어도 일부만이 미리 특정될 수 있으며, 다른 뷰들은 응용(310)에서의 프로세스의 진행 동안에 또는 임의의 이전에 활성 응용에서의 프로세스의 진행 동안에 동적으로 상기 뷰 라우트에 추가될 수 있다.
도 3의 뷰 라우트는 응용(320)으로부터의 뷰(321), 응용(330)으로부터의 뷰(331) 및 응용(340)으로부터의 뷰(341)를 상기 순서로 포함한다. 뷰들, 응용들 및 일 응용 내의 뷰들의 정확한 개수는 결코 제한적이지 않으며, 이는 단지 예시적 목적을 위한 것이다. 원하는 뷰 라우트상의 정보는 인터페이스(301)에서 일반적인 뷰 라우트 호출 방법을 호출함으로써 응용(310)으로부터 뷰 라우터(300)에 제공된다. 두 응용들 사이에서 정보 전달 및 호출 방법들은 화살표들(313, 323, 333 및 343)과 같은 화살표들을 사용하여 도시된다. 뷰 라우터(300)에서 방법의 구현은 뷰 라우트 정보의 처리로 시작한다. 뷰 라우트는 가능한한 다른 응용들에서 조기에 만들어진 사용자 전문지식 레벨과 같은 다양한 조건들 및 선택들에 의존하여 런-타임 동안에 응용(310)에 의해 결정되었을 것이다. 먼저, 뷰 라우터(300)는 인터페이스(322)와 관련된 방법을 호출함으로써 응용(320)에서 뷰(321)를 개시한다. 이러한 과정 동안에 사용자는 데이터를 뷰(321)과 관련된 사용자 인터페이스에 입력시킨다. 사용자가 뷰(321)를 종료시키는 사용자 인터페이스 요소, 예를 들어 "승인" 버튼을 선택하는 때에, 응용(320)은 뷰 라우터(300)와 관련된 인터페이스(302)에서 리스너 방법을 호출한다. 이를 수행하기 이전에, 응용(320)은 미래의 사용을 위해 사용자가 입력한 데이터를 메모리에 저장하였을 것이다. 리스너 방법은 일반적인 방법인데, 이는 서버 응용(예를 들어, 응용(320)), 클라이언트 응용(예를 들어, 응용(310)) 및 뷰와 관계없이 동일한 파라메터들을 가짐을 의미한다. 이런 식으로, 클라이언트 응용과 관련된 세부사항들은 숨겨진다. 뷰 라우트에 여전히 계류중인 뷰들이 있는 때에, 뷰 라우터(300)는 제 2 뷰(즉, 인터페이스(332)를 통해 응용(330) 내의 뷰(331))를 개시함으로써 계속된다. 본 발명의 일 실시예에서, 응용(330)에는 사용자에 의해 입력된 데이터와 같은 응용(320)에 의해 수집된 정보가 전달된다. 일반적으로, 응용 내에서 개시된 뷰에는 이미 처리된, 뷰 라우트의 일부에 의해 수집된 정보가 전달된다. 이런 식으로, 앞선(earlier) 뷰는 후속 뷰에 정보를 전달한다. 이후에, 프로세싱은 전체 뷰 라우트가 처리될 때까지 계속된다.
전체 뷰 라우트가 처리된 때에, 뷰 라우터(300)는 응용(310)의 인터페이스(314)에서 리스너 방법을 호출한다. 본 발명의 일 실시예에서, 리스너 방법은 뷰 라우트에 의해 수집된 정보를 응용(310)에 제공한다. 사용자에 의해 입력된 일부 정보는 단지 응용(310)의 메모리에만 저장되는 반면에, 일부 정보는 뷰들이 개시된 응용들에서 이미 저장되어 있을 수 있다. 본 발명의 일 실시예에서, 각 뷰에 의해 수집된 정보는 저널 리스트로 모여진다. 응용에 전달된 정보의 분석은 응용(310) 또는 여전히 뷰 라우트에 있는 응용에 달려 있다. 저널 리스트를 검사함으로써, 뷰 라우트에서 아직 개시되지 않은 뷰 또는 응용(310)이 이미 개시 및 처리된 각 뷰에서 무슨 정보가 수집되어 있는지를 결정할 수 있다.
고려될 필요가 있는 두가지 양상들이 있다. 첫째로, 서비스를 제공하는 응용(이하, 제공자 또는 서비스 제공자)이 무엇을 다른 응용들에게 제공하는 지이다. 둘째로, 다른 응용들의 서비스를 이용하는 응용(이하, 클라이언트 응용)이 무엇을 해야 할지이다. 무엇보다도, 서버 응용(예를 들어, 320)은 클라이언트 응용 및 제공자 모두를 위한 뷰들, 명령들 및 데이터 구조들의 구현을 담당한다. 이는 응용을 위한 특정 헤더를 정의, 구현 및 보급한다. 라우트에서 데이터 또는 저널의 세팅은 즉시처리(line) 기능들로서 구현되는데, 이는 요구된 데이터를 플랫 버퍼(flat buffer)로 랩(wrap) 하는데에 어떠한 라이브러리도 요구되지 않음을 의미한다.
클라이언트 응용은 당연히 라우트에서 일정 명령 및 경로들에 대해 무슨 데이터가 필요한지를 알아야 한다. 반면에, 제공자는 경로에서 다른 데이터 또는 명령이 무엇을 의미하는지를 알거나 이해할 필요가 없다. 단지, 제공자는 자신이 요구한 명령들을 적절히 처리하는 방법을 알 필요가 있다.
도 4는 본 발명의 일 실시예에서 도 3의 뷰 라우터(300)와 같은 뷰 라우터에 대한 뷰 라우트를 정의하기 위한 데이터 구조를 도시하는 블록도이다. 데이터 구조는 리스트(400)이다. 리스트는 엔트리들(410, 420 및 430)을 포함한다. 각 엔트리는 응용 UID를 특정하는데, 이는 개시되는 뷰를 갖는 응용을 결정하기 위해 라우터(300)에 의해 사용된다. 뷰는 뷰 UID를 사용하여 식별된다. 만일 뷰와 관련된 명 령이 개시와 관련하여 호출되는 경우에, 명령 UID가 이를 특정한다. 상기 명령은 전형적으로 파인드(find)와 같은 뷰와 관련된 방법이다. 예를 들어, 상기 방법은 개시 방법 호출과 관련하여 제공되는 키 식별자와 관련된 데이터를 페치(fetch)할 수 있다. 데이터 필드(Data Field)는 개시되는 뷰로 전달되는 데이터를 포함한다. 개시되는 뷰는 응용 UID와 뷰 UID에 의해 특정된 것이다. 후속 단계 색인 필드는 뷰 라우트 리스트에서 후속 엔트리에 대한 포인터를 제공한다. 리스트의 최종 엔트리에서, 후속 단계 색인 필드는 예를 들어, 널 포인터(null pointer)를 포함한다. 일 실시예에서, 뷰 라우트 정보는 XML(extensible markup language) 문서를 사용하여 특정될 수 있다. 본 실시예에서, 뷰 라우터(300)는 뷰 라우트를 결정하기 위해 XML 문서를 분석한다.
도 5는 본 발명의 일 실시예에서 뷰 라우트 저널 데이터를 저장하기 위한 데이터 구조를 도시하는 블록도이다. 데이터 구조는 리스트(500)이다. 저널 리스트(Journal List)는 각 응용으로부터 복귀된 데이터를 포함한다. 각 응용에 대한 엔트리가 있다. 도 5는 엔트리들(510, 520 및 530)을 포함한다. 식별자 응용 UID는 엔트리를 위한 데이터를 남겨놓은 응용을 특정한다. 식별자 뷰 UID는 엔트리를 위한 데이터를 남겨놓은 응용 내의 뷰를 특정한다. 복귀되는 데이터는 데이터 필드에 포함된다. 후속 데이터 필드는 저널 리스트에서 후속 엔트리에 대한 포인터를 제공한다. 최종 엔트리에서, 이 필드는 예를 들어, 널 포인터를 제공한다. 저널 리스트는 데이터를 다시 호출한 응용으로 복귀시키는데에 사용된다. 이는 임의 타입의 데이터 및 임의 개수의 저널 엔트리들을 포함할 수 있다.
본 발명의 일 실시예에서, 저널 리스트 정보는 XML(extensible markup language) 문서를 사용하여 특정될 수 있다. 본 실시예에서, 뷰 라우트에서 후속 응용 또는 클라이언트 응용(예를 들어, 도 3의 응용(310))은 저널 리스트를 결정하기 위해 XML 문서를 분석한다. 일 실시예에서, 저널 데이터는 응용 및 뷰 마다 조직화되지 않고 데이터 타입마다 조직화된다. 이는, 저널이 타입 및 값 쌍들의 세트를 포함한다는 것을 의미한다. 저널에 존재하는 타입들을 검사함으로써, 도 3의 응용 또는 뷰 라우트에서 후속 응용이 데이터 사용자가 무엇을 충전하였는지를 결정할 수 있다. 예를 들어, 만일 "전화 번호" 타입이 존재하는 경우에, 사용자가 필드들 중 하나에 전화 번호를 충전하였음을 나타낸다. 전형적으로, 타입 및 값 쌍들은 XML 포맷으로 제공된다.
도 6은 도 3의 뷰 라우터를 사용하여 뷰 라우팅 방법의 일 실시예를 도시하는 블록도이다. 단계(600)에서, 클라이언트 응용은 뷰 라우트를 시작해야 함을 결정한다. 이는 사용자의 이전의 선택들 및 도 3의 응용(310)에서 검출된 일부 다른 조건들 때문이다. 예컨대, 응용(310)이 도 1에 도시된 바와같이 단말기 셋업 응용인 경우에, 필요한 사용자 파라메터들이 존재하지 않는 것으로 응용(310)에서 결정되었을 수 있다.
단계(602)에서, 분실 사용자 파라메터들 세트를 검사함으로써, 응용(310)은 사용자에게 이 파라메터들을 알려주기 위해 무슨 뷰들이 개시되어야 하는지를 결정한다. 뷰 라우트가 도 3에 도시된 바와같이 응용들(320, 330 및 340)로부터의 뷰를 포함해야 함을 응용(310)이 결정하는 것으로 가정한다. 본 발명의 일 실시예에서, 뷰 라우트의 결정은 일부 다른 응용들에 의해서도 수행될 수 있는데, 여기서 다른 응용들은 응용(310)이 작업을 위해 호출하는 것이며, 결정된 뷰 라우트를 다시 응용(310)으로 복귀시킨다. 뷰 라우트 결정자 응용은 응용(310)에 의해 표시되는 분실 정보 요소 타입들에 기초하여 뷰 결정을 수행할 수 있다. 뷰 라우트는 또한 이전에 메모리에 저장된 분실 정보를 사용하여 결정될 수 있다. 본 발명의 일 실시예에서, 뷰 결정 응용은 도 3의 뷰 라우터(300)이다. 단계(604)에서, 응용(310)은 뷰 라우터(300)를 호출한다. 본 발명의 일 실시예에서, 뷰 라우터는 응용(310)에 링크된 라이브러리이다. 본 발명의 다른 실시예에서, 뷰 라우터는 개별 응용이다. 응용(310)은 인터페이스(301)와 관련된 방법을 호출한다. 뷰 라우터(300)에는 뷰 라우트 정보가 전달된다. 본 발명의 일 실시예에서, 뷰 라우트는 도 4에 도시된 바와같이 구조화된다. 뷰 라우트는 응용(310)에 의해 구성되는 객체이다. 실제 구성은 뷰들을 뷰 라우트에 추가시키기 위한 방법 호출들에 의해 발생한다.
단계(606)에서, 도 3의 뷰 라우터(300)는 뷰 라우트 엔트리 리스트에서 후속 항목에 관한 정보를 추출한다. 예를 들어, 현재 뷰가 응용(320) 내의 뷰(321)임을 가정한다. 단계(608)에서, 뷰 라우터(300)는 현재 뷰 라우트 리스트 엔트리에서 표시된 뷰를 개시한다. 뷰 라우터(300)는 뷰를 개시하는 방법을 결정하기 위해 응용 UID, 뷰 UID 및 명령 ID 파라메터들을 이용한다. 데이터 파라메터 콘텐츠가 개시된 뷰에 전달된다. 본 발명의 일 실시예에서, 뷰 라우트로부터 이전에 처리된 뷰들에 의해 수집된 데이터는 뷰가 개시되는 응용에 전달된다. 수집된 데이터는 도 5에 도시된 바와같이 저널 엔트리 리스트 형태이다. 본 발명의 일 실시예에서, 인터페이 스(322)와 관련된 방법이 호출되도록 뷰가 개시된다. 데이터 파라메터는 방법 파라메터들을 나타낸다. 저널 엔트리 리스트에 대한 추가 파라메터가 있을 수 있다. 사용자가 뷰에 대한 일부 데이터를 채운 때에, 응용(320)은 채워진 데이터를 획득하며, 적어도 일부를 뷰 라우터(300)에 복귀시킨다. 본 발명의 일 실시예에서, 사용자에 의해 입력된 일부 데이터는 이미 응용(320)에 있는 메모리에 저장될 수 있다. 응용(320)은 인터페이스(302)와 관련된 리스너 방법을 호출한다. 도 3에 도시된 바와같이, 리스너 방법 및 인터페이스는 뷰 라우트의 모든 응용들 및 뷰에 대해 유사하다. 이런 식으로, 이들은 뷰 라우터(300)를 호출한 응용에 의존하지 않는다. 단계(610)에서, 저널 데이터가 뷰 라우터(300)에 의해 수집되어야 하는지를 체크한다. 단계(612)에서, 뷰 라우터는 응용(320)에 의해 복귀된 데이터에 관한 저널 엔트리를 형성한다.
단계(614)에서, 뷰 라우터(300)는 뷰 라우트에 더 많은 뷰들이 있는지를 결정한다. 본 발명의 일 실시예에서, 상기 결정은 뷰 라우트 리스트에 더 많은 엔트리들이 있는지를 체크하는 것을 포함한다. 본 발명의 일 실시예에서, 일반적으로 뷰 라우트로부터 뷰 처리를 계속해야 하는지가 결정된다. 예컨대, 뷰 라우터(300)는 사용자가 이미 요구되는 모든 데이터를 입력하였으며, 뷰 라우트에서 잔여 뷰들을 처리할 필요가 없음을 결정할 수 있다. 또한, 사용자가 마지막 뷰의 처리 동안에 선택했을 가능성이 있는데, 이는 뷰 라우트로부터 더 많은 뷰들을 처리할 필요가 없음을 나타낸다. 예컨대, 사용자는 뷰 라우트에 관한 정보 엔트리 처리를 중지하는 결정의 선택을 할 수 있다. 만일 처리되어야 할 더 많은 엔트리들이 있는 경 우에, 방법은 단계(606)에서 계속된다.
단계(616)에서, 뷰 라우트의 뷰들에 의해 수집된 데이터는 응용(310)으로 복귀된다. 모든 사용자 입력 데이터가 뷰 체인에서의 응용들에 의해 저장되었지만은, 정보의 일부 상태는 응용(310)으로 복귀될 수 있다. 본 발명의 일 실시예에서, 수집된 데이터는 도 5에 도시된 바와같이 저널 엔트리 리스트의 형태이다. 뷰 라우터(300)는 인터페이스(314)와 관련된 응용(310)에서 리스너 방법을 호출한다. 이런 식으로, 제어는 응용(310) 내의 뷰(312)로 복귀된다. 단계(618)에서, 클라이언트 응용은 류 라우트의 뷰들에 의해 수집된 정보를 필요로 하였던 작업을 종료한다. 이후에, 클라이언트 응용은 종료된다.
도 7은 이동 단말기와 같은 전자 디바이스(700)가 뷰 라우팅 방법을 이용하는 본 발명의 일 실시예를 도시한다. 이동 디바이스는 컴퓨터 프로그램을 실행하도록 조직화되는데, 여기서 컴퓨터 프로그램은 본원에서 개시된 본 발명과 관련된 기능들을 구현한다. 전자 디바이스(700)는 키패드(710), 기능 키들(720 및 724), 디스플레이(730) 및 포인터 디바이스(722)를 갖는다. 디스플레이(730)는 다양한 응용들에 관한 뷰가 디스플레이되는 그래픽 사용자 인터페이스(740)를 도시한다. 본 발명의 뷰 라우팅 방법은 그래픽 사용자 인터페이스(740)와 관련된 뷰 라우트들을 처리하는데에 사용된다. 본 발명의 다른 실시예들에서, 이동 디바이스는 다른 타입들의 디스플레이들, 키보드들 또는 다른 입력 디바이스들 및 포인터 디바이스들을 갖는다. 본 발명의 일 실시예에서, 이동 디바이스는 이동 네트워크, 예를 들어 범용 이동 통신 서비스(UMTS), 이동 통신 글로벌 시스템(GSM) 네트워크 또는 무선 근거 리망(WLAN)에 접속된다.
도 8은 컴퓨터(800)가 뷰 라우팅 방법을 이용하는 본 발명의 일 실시예를 도시한다. 컴퓨터는 컴퓨터 프로그램을 실행하도록 조직화되는데, 여기서 컴퓨터 프로그램은 본원에서 개시된 본 발명과 관련된 기능들을 구현한다. 컴퓨터(800)는 디스플레이(810), 키보드(820), 버튼들(824 및 826)을 갖는 포인터 디바이스(822)를 갖는다. 디스플레이는 그래픽 사용자 인터페이스(811)를 제공한다. 그래픽 사용자 인터페이스(811)는 윈도우들(812 및 814)을 포함한다. 윈도우(814)상에서 텍스트 필드(815) 및 2개의 명령 버튼들(816 및 818)이 있다. 예컨대, 윈도우(814)는 본 발명에 따라 뷰 라우트 처리와 관련하여 개시된 뷰가 될 수 있다. 도 8에서, 컴퓨터(800)은 현재의 랩탑 컴퓨터와 유사하지만은, 본 발명은 데스크톱 컴퓨터들, 핸드헬드 컴퓨터들, 팜탑 컴퓨터들 및 대형 워크스테이션들에도 또한 응용가능하다. 본 발명은 임의 타입들의 사용자 인터페이스들, 예를 들어 텍스트 기반 사용자 인터페이스들, 그래픽 사용자 인터페이스들 및 단순한 음성 기반 사용자 인터페이스들에 응용가능하다.
다음으로, 본 발명은 일부 사용례들에 의해 예시된다. 제 1 사용례는 뷰 라우트들의 생성 및 이들의 전환의 단순성을 보여준다.
개별 응용들은 위치, 시간, 인터넷 액세스 포인트(Internet access Point), 이-메일 세팅들 등과 같은 데이터를 셋업하기 위해 자신의 뷰 스위치들을 지원할 것이다. 디바이스 시작 응용(Device Start-up application)은 하기내용으로 구성되는 뷰 라우트를 생성할 수 있다.
<World Clock, Set Location, "">
<World Clock, Set Time, "">
<Internet access, Create new access point, "">
<Messaging, Create new Setting, "E-Mail">
<Device Start-up, Finish, "">
상기 항목들은 <응용 식별자, 명령, 데이터> 포맷으로 된다. 기호("")는 어떤 데이터도 전달될 필요가 없음을 의미한다.
세계 시각 응용은 뷰 라우트를 수신하고, 최상부 항목을 택할 것이다. 이후에, 위치 뷰의 디스플레이를 허용하고, 사용자가 위치를 선택하도록 요구할 것이다. 일단 사용자가 하나의 위치를 선택하면, 응용은 뷰 라우팅 코드, 즉 뷰 라우터에게 라우트를 계속하도록 요청할 것이다. 이는 세계 시각이 다시 호출되게 하지만, 이번에는 시간을 세팅하게 할 것이다. 일단 사용자가 시간을 세팅하면, 다시 세계 시각 응용은 뷰 라우터에게 후속 뷰로 진행하도록 요청할 것이다. 이는 인터넷 액세스 응용으로의 뷰 스위치를 야기할 것이며, 여기서 인터넷 액세스 응용은 사용자에게 새로운 인터넷 액세스 포인트를 생성하도록 요청한다. 일단 사용자가 액세스 포인트를 생성하면, 인터넷 세팅들 응용(Internet Settings application)이 뷰 라우터에게 후속 뷰로 진행하도록 요청할 것인데, 이 경우에 후속 뷰는 메시지 응용이다.
이후에, 메시지 응용은 사용자에게 새로운 이메일 계정을 생성하도록 요청하고, 일단 생성되면, 메시지 응용은 뷰 라우터에게 뷰 라우트를 계속하도록 요청하 는데, 이는 다시 전체 뷰 라우트를 시작한 응용, 즉 디바이스 시작 응용을 야기할 것이다.
디바이스 시작 응용은 마지막 뷰 라우트 메시지를 수신하여, 다른 응용들에 대한 자신의 요구가 완료되었으며, 따라서 존재하고 있음을 알게 된다.
제 2 사용례는 시간의 세팅 이후에 소유자 정보의 셋업을 추가해야 할 필요를 예시한다. 이는 뷰 라우터를 사용함으로써 용이하게 된다. 상기 라우트는 단지 하기내용으로 변경된다.
<World Clock, Set Location, "">
<World Clock, Set Time, "">
<Contacts, Set Contact details, "Own card">
<Internet access, Create new access point, "">
<Messaging, Create new Setting, "E-Mail">
<Device Start-up, Finish, "">
호출자 이외의 어떤 응용도 변경될 필요가 없다. 세계 시각 응용이 시간 세팅을 종료한 이후에, 접촉들 응용이 스위칭 되며, 개인 세부사항들이 입력된다.
이후에, 접촉들 응용은 뷰 라우터에게 후속 뷰, 즉 인터넷 액세스 포인트 응용을 계속하도록 요청한다.
제 3 사용례는 응용들 사이에서 데이터의 전달을 예시한다. 사용자가 노트 문서(note document)를 선택하고, 이후에 텍스트를 워드 프로세싱 응용으로 옮기도록 요청하고자 한다. 이를 수행하는 하나의 방법은 하기 뷰 라우트를 생성 및 개시 하는 워드 프로세싱 응용에 의하는 것이다.
<Note taker, Select document, "", "">
<Word processor, Insert text, "", "">
상기 포맷은 <응용, 명령, 명령을 위한 데이터, 이전 명령으로부터 복귀된 데이터>가 된다. 따라서, 일단 노트 응용이 사용자로 하여금 노트를 선택하게 하면, 잔여 뷰 라우트는 하기내용이 될 것이다.
<Word processor, Insert text, "", text from note>
노트 응용은 후속 뷰 라우트 엔트리에 관해 알 필요없이 데이터를 후속 뷰 라우트 엔트리에 추가하였다. 노트 응용은 뷰 라우트가 비어있지 않음을 알게 되고, 뷰 라우터에게 뷰 라우트를 계속하도록 요청할 것인데, 여기서 뷰 라우트는 이제 노트들 응용으로부터 전달된 데이터를 또한 갖게 된다. 이것은 뷰가 워드 프로세싱 응용으로 스위칭 되게 하며, 이는 텍스트를 현재 문서에 삽입시킬 것이다.
제 4 사용례는 확장된 데이터 전달을 예시한다. 노트가 워드 프로세서에 삽입되기 이전에 노트를 불어로 번역하기를 원한다. 이를 달성하는 하나의 방법은 하기 뷰 라우트를 생성하는 워드 프로세서에 의한 것이다.
<Note taker, Select document, "", "">
<Translator, Translator text, "French", "">
<Word processor, Insert text, "", "">
노트를 선택하는 노트들 응용이 종료된 이후에, 뷰 라우트는 하기내용이 될 것이다.
<Translator, Translate text, "French", notes text>
<Word processor, Insert text, "", "">
이후에, 뷰 라우터에게 뷰 라우트를 계속하도록 요청할 것인데, 이에 의해 번역을 하기 위해 번역기로 스위칭 될 것이다.
일단 사용자가 번역을 확인하면, 뷰 라우트는 하기내용과 같을 것이다.
<Word processor, Insert text, "", translated text>
번역 응용은 라우트가 비어있지 않았던 것으로 결론지으며, 뷰 라우터에게 뷰 라우트를 계속하도록 요청할 것인데, 이에 의해 워드 프로세서로 스위칭 되며, 번역된 텍스트를 삽입시킬 것이다.
라우트 동안 어느 시점에서도, 응용들로의 스위칭이 후속 뷰 라우트를 인식할 필요가 없게 되었다. 단지 뷰 스위치로부터 무슨 데이터를 전달해야 할지를 알아야만 했는데, 이는 응용들 자신이 정의하는 것이다.
기술이 진보함에 따라, 본 발명의 기본 사상은 다양한 방식들로 구현될 수 있음이 기술분야의 당업자에게는 자명할 것이다. 따라서, 본 발명 및 그 실시예들은 상술된 예들에 국한되지 않으며, 청구범위의 범주 내에서 변할 수 있다.
Claims (62)
- 전자 디바이스- 상기 전자 디바이스는 적어도 제 1 응용과 이와 관련된 적어도 하나의 뷰를 갖는 제 2 응용을 포함한다 -에서 사용자 상호작용을 제공하는 방법에 있어서,적어도 하나의 뷰를 포함하는 뷰 라우트(view route)를 결정하는 단계와;상기 뷰 라우트를 상기 제 1 응용으로부터 뷰 라우터로 전달하는 단계와;상기 뷰 라우트에 기초하여 적어도 하나의 뷰를 개시하는 단계와; 그리고상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 재개하는 단계를 포함하는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서,상기 적어도 하나의 뷰로부터 데이터를 수집하는 단계와; 그리고상기 데이터를 상기 뷰 라우터로부터 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 전달하는 단계를 더 포함하는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서, 상기 뷰 라우트는 적어도 상기 제 2 응용 및 이와 관련된 뷰를 식별하는 정보를 포함하는 리스트로서 정의되는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 2항에 있어서, 상기 데이터는 상기 뷰 라우트에서 각 뷰을 위한 엔트리를 포함하는 저널 리스트(journal list)로 조직화되는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 2항에 있어서, 상기 데이터는 타입 및 값 쌍들의 리스트로 조직화되는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 5항에 있어서, 상기 데이터 타입 및 값 쌍은 마크업 언어 포맷(markup language format)인 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 2항에 있어서, 상기 뷰 라우터는 총칭적 방법들로 총칭적 인터페이스를 제공하며, 데이터를 개시된 상기 적어도 하나의 뷰로부터 상기 제 1 응용 또는 상기 뷰 체인의 후속 응용으로 복귀시키기 위한 어댑터(adapter)로서 동작하는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서, 상기 전자 디바이스는 그래픽 사용자 인터페이스를 갖는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서, 상기 뷰는 사용자 인터페이스 요소들을 포함하는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 8항에 있어서, 상기 뷰는 상기 개시 단계 동안에 개방되는 개별 윈도우인 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서, 상기 전자 디바이스는 Symbian™ 운영 체제 디바이스인 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서, 상기 뷰 라우트의 적어도 일부는 상기 전자 디바이스의 메모리에서 특정되는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 12항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 갱신되는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 제 1항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 결정되는 것을 특징으로 하는 전자 디바이스에서 사용자 상호작용 제공 방법.
- 적어도 제 1 응용과 이와 관련된 적어도 하나의 뷰를 갖는 제 2 응용을 포함 하는 시스템에 있어서,적어도 하나의 뷰를 포함하는 뷰 라우트를 결정하기 위한 수단과;상기 뷰 라우트를 처리함과 아울러 상기 뷰 라우트에 기초하여 적어도 하나의 뷰를 개시하기 위한 뷰 라우터와; 그리고상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 재개하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 뷰 라우터는 상기 적어도 하나의 뷰로부터 데이터를 수집하고, 상기 데이터를 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 전달하는 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 뷰 라우트는 적어도 상기 제 2 응용 및 이와 관련된 뷰를 식별하는 정보를 포함하는 리스트로서 정의되는 것을 특징으로 하는 시스템.
- 제 16항에 있어서, 상기 데이터는 상기 뷰 라우트에서 각 뷰을 위한 엔트리를 포함하는 저널 리스트로 조직화되는 것을 특징으로 하는 시스템.
- 제 16항에 있어서, 상기 데이터는 타입 및 값 쌍들의 리스트로 조직화되는 것을 특징으로 하는 시스템.
- 제 16항에 있어서, 상기 데이터 타입 및 값 쌍은 마크업 언어 포맷인 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 뷰 라우터는 총칭적 방법들로 총칭적 인터페이스를 제공하며, 정보를 상기 적어도 하나의 뷰로부터 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 복귀시키기 위한 어댑터로서 동작하는 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 시스템은 그래픽 사용자 인터페이스를 갖는 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 뷰는 사용자 인터페이스 요소들을 포함하는 것을 특징으로 하는 시스템.
- 제 22항에 있어서, 상기 뷰는 뷰 개시 동안에 개방되는 윈도우인 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 시스템은 Symbian™ 운영 체제 디바이스에서 동작하는 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 뷰 라우트의 적어도 일부는 전자 디바이스의 메모리에서 특정되는 것을 특징으로 하는 시스템.
- 제 26항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 갱신되는 것을 특징으로 하는 시스템.
- 제 15항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 결정되는 것을 특징으로 하는 시스템.
- 적어도 제 1 응용과 이와 관련된 적어도 하나의 뷰를 갖는 제 2 응용을 저장하는 전자 디바이스에 있어서,적어도 하나의 뷰를 포함하는 뷰 라우트를 결정하기 위한 수단과;상기 뷰 라우트를 처리함과 아울러 상기 뷰 라우트에 기초하여 적어도 하나의 뷰를 개시하기 위한 뷰 라우터와; 그리고상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 재개하기 위한 수단을 포함하는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰 라우터는 상기 적어도 하나의 뷰로부터 데이터를 수집하고, 상기 데이터를 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 전달하는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰 라우트는 적어도 상기 제 2 응용 및 이와 관련된 뷰를 식별하는 정보를 포함하는 리스트로서 정의되는 것을 특징으로 하는 전자 디바이스.
- 제 30항에 있어서, 상기 데이터는 상기 뷰 라우트에서 각 뷰을 위한 엔트리를 포함하는 저널 리스트로 조직화되는 것을 특징으로 하는 전자 디바이스.
- 제 30항에 있어서, 상기 데이터는 타입 및 값 쌍들의 리스트로 조직화되는 것을 특징으로 하는 전자 디바이스.
- 제 30항에 있어서, 상기 데이터 타입 및 값 쌍은 마크업 언어 포맷인 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰 라우터는 총칭적 방법들로 총칭적 인터페이스를 제공하며, 정보를 상기 적어도 하나의 뷰로부터 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 복귀시키기 위한 어댑터로서 동작하는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 전자 디바이스는 그래픽 사용자 인터페이스를 갖는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰는 사용자 인터페이스 요소들을 포함하는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰는 뷰 개시 동안에 개방되는 윈도우인 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 전자 디바이스는 Symbian™ 운영 체제 디바이스인 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰 라우트의 적어도 일부는 상기 전자 디바이스의 메모리 영역에서 특정되는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 갱신되는 것을 특징으로 하는 전자 디바이스.
- 제 29항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 결정되는 것을 특징으로 하는 전자 디바이스.
- 데이터-처리 시스템에서 실행되는 때에:적어도 하나의 뷰를 포함하는 뷰 라우트를 결정하는 단계와;상기 뷰 라우트를 제 1 응용으로부터 뷰 라우터로 전달하는 단계와;상기 뷰 라우트에 기초하여 제 2 응용과 관련된 적어도 하나의 뷰를 개시하는 단계와; 그리고상기 뷰 라우트의 적어도 일부가 처리된 때에 상기 제 1 응용을 재개하는 단계를 수행하는 코드를 포함하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 컴퓨터 프로그램은 컴퓨터 판독가능 매체에 저장되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 컴퓨터 판독가능 매체는 착탈가능한 메모리 카드인 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 컴퓨터 판독가능 매체는 자기 디스크 또는 광 디스크인 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 데이터-처리 시스템에서 실행되는 때에:상기 적어도 하나의 뷰로부터 데이터를 수집하는 단계와; 그리고상기 데이터를 상기 뷰 라우터로부터 상기 제 1 응용 또는 상기 뷰 라우트의 후속 응용으로 전달하는 단계를 더 수행하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 뷰 라우트는 적어도 상기 제 2 응용 및 이와 관련된 뷰를 식별하는 정보를 포함하는 리스트로서 정의되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 47항에 있어서, 상기 데이터는 상기 뷰 라우트에서 각 뷰을 위한 엔트리를 포함하는 저널 리스트로 조직화되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 47항에 있어서, 상기 데이터는 타입 및 값 쌍들의 리스트로 조직화되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 50항에 있어서, 상기 데이터 타입 및 값 쌍은 마크업 언어 포맷인 것을 특징으로 하는 컴퓨터 프로그램.
- 제 47항에 있어서, 상기 뷰 라우터는 총칭적 방법들로 총칭적 인터페이스를 제공하며, 데이터를 개시된 상기 적어도 하나의 뷰로부터 상기 제 1 응용 또는 상기 뷰 체인의 후속 응용으로 복귀시키기 위한 어댑터로서 동작하는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 컴퓨터 프로그램은 그래픽 사용자 인터페이스를 갖는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 뷰는 사용자 인터페이스 요소들을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 53항에 있어서, 상기 뷰는 상기 개시 단계 동안에 개방되는 윈도우인 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 뷰 라우트의 적어도 일부는 전자 디바이스의 메모리 에서 특정되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 56항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 갱신되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 뷰 라우트는 사용자 동작들에 기초하여 결정되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 53항에 있어서, 상기 뷰는 상기 개시 단계 동안에 개방되는 윈도우인 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 컴퓨터 프로그램은 Symbian™ 운영 체제 디바이스를 위해 설계되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 뷰 라우터는 라이브러리로서 구현되는 것을 특징으로 하는 컴퓨터 프로그램.
- 제 43항에 있어서, 상기 뷰 라우터는 자신의 응용으로서 구현되는 것을 특징으로 하는 컴퓨터 프로그램.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/694,568 | 2003-10-27 | ||
US10/694,568 US20050091400A1 (en) | 2003-10-27 | 2003-10-27 | View routing in user interface applications |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060064003A true KR20060064003A (ko) | 2006-06-12 |
KR100866165B1 KR100866165B1 (ko) | 2008-10-31 |
Family
ID=34522634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067007927A KR100866165B1 (ko) | 2003-10-27 | 2004-10-27 | 사용자 인터페이스 애플리케이션들에서 뷰 라우팅 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20050091400A1 (ko) |
EP (1) | EP1678603B1 (ko) |
KR (1) | KR100866165B1 (ko) |
AT (1) | ATE430960T1 (ko) |
DE (1) | DE602004021015D1 (ko) |
ES (1) | ES2325442T3 (ko) |
WO (1) | WO2005041027A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438537B2 (en) * | 2005-03-07 | 2013-05-07 | Siemens Aktiengesellschaft | System arrangement and method for automated application development with user guidance |
US8935634B2 (en) * | 2005-12-21 | 2015-01-13 | International Business Machines Corporation | Displaying dynamic graphical content in graphical user interface (GUI) controls |
US9009662B2 (en) * | 2008-12-18 | 2015-04-14 | Adobe Systems Incorporated | Platform sensitive application characteristics |
US9009661B2 (en) | 2008-12-18 | 2015-04-14 | Adobe Systems Incorporated | Platform sensitive application characteristics |
US20100235430A1 (en) * | 2009-03-13 | 2010-09-16 | Bruce Kim | Methods and systems to provide services to a mobile device |
US20100325565A1 (en) * | 2009-06-17 | 2010-12-23 | EchoStar Technologies, L.L.C. | Apparatus and methods for generating graphical interfaces |
US8634807B2 (en) | 2011-10-17 | 2014-01-21 | Blackberry Limited | System and method for managing electronic groups |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4714918A (en) * | 1984-04-30 | 1987-12-22 | International Business Machines Corporation | Window view control |
US5542069A (en) * | 1994-03-02 | 1996-07-30 | Sun Microsystems, Inc. | Method and apparatus for simulating input events in a windowed environment |
US5737557A (en) * | 1995-05-26 | 1998-04-07 | Ast Research, Inc. | Intelligent window user interface for computers |
US5926177A (en) * | 1997-10-17 | 1999-07-20 | International Business Machines Corporation | Providing multiple views in a model-view-controller architecture |
US6002398A (en) * | 1997-10-30 | 1999-12-14 | Novell, Inc. | Navigation between property pages with tabs and menus |
US6065012A (en) * | 1998-02-27 | 2000-05-16 | Microsoft Corporation | System and method for displaying and manipulating user-relevant data |
US6161136A (en) * | 1998-10-16 | 2000-12-12 | Nortel Networks Limited | High performance user interface and method of structuring same |
US6335741B1 (en) * | 1999-01-06 | 2002-01-01 | International Business Machines Corporation | Apparatus and method for user indication of model state in a model view controller |
US7181686B1 (en) * | 1999-10-29 | 2007-02-20 | International Business Machines Corporation | Selecting screens in a GUI using events generated by a set of view controllers |
EP1170673A1 (en) * | 2000-07-05 | 2002-01-09 | Sony International (Europe) GmbH | Portal application |
US7114127B2 (en) * | 2002-03-28 | 2006-09-26 | International Business Machines Corporation | Method, system and program product in a model-view-controller (MVC) programming architecture for inter-object communication with transformation |
US7187376B2 (en) * | 2002-06-04 | 2007-03-06 | Sap Aktiengesellschaft | Displaying views on computer screens |
-
2003
- 2003-10-27 US US10/694,568 patent/US20050091400A1/en not_active Abandoned
-
2004
- 2004-10-27 AT AT04767136T patent/ATE430960T1/de not_active IP Right Cessation
- 2004-10-27 DE DE602004021015T patent/DE602004021015D1/de active Active
- 2004-10-27 EP EP04767136A patent/EP1678603B1/en not_active Not-in-force
- 2004-10-27 ES ES04767136T patent/ES2325442T3/es active Active
- 2004-10-27 KR KR1020067007927A patent/KR100866165B1/ko not_active IP Right Cessation
- 2004-10-27 WO PCT/FI2004/000634 patent/WO2005041027A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR100866165B1 (ko) | 2008-10-31 |
EP1678603A1 (en) | 2006-07-12 |
US20050091400A1 (en) | 2005-04-28 |
ATE430960T1 (de) | 2009-05-15 |
ES2325442T3 (es) | 2009-09-04 |
WO2005041027A1 (en) | 2005-05-06 |
EP1678603B1 (en) | 2009-05-06 |
DE602004021015D1 (de) | 2009-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7934162B2 (en) | Running state migration of platform specific graphical user interface widgets between heterogeneous device platforms | |
US7953804B2 (en) | User interface for a handheld device | |
US7895522B2 (en) | Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms | |
US7392483B2 (en) | Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms | |
US20130219333A1 (en) | Extensible Framework for Facilitating Interaction with Devices | |
US20030063120A1 (en) | Scalable graphical user interface architecture | |
EP2089790A1 (en) | Input prediction | |
KR100425831B1 (ko) | 개인정보 단말기에서의 데이터 저장방법 | |
US9875109B2 (en) | Method and apparatus for generating user adaptive application in mobile terminal | |
US10146771B2 (en) | Mobile terminal device implementing character-pictogram translation using pictogram search site | |
US20050198612A1 (en) | Unified application, user interface and data linking | |
US7984455B2 (en) | Enhanced native contact book application | |
KR100866165B1 (ko) | 사용자 인터페이스 애플리케이션들에서 뷰 라우팅 | |
US7675435B2 (en) | Smart filtering with multiple simultaneous keyboard inputs | |
JP2010257392A (ja) | 文字入力装置、文字入力方法、コンピュータ読取可能なプログラムおよび記録媒体 | |
KR100789467B1 (ko) | 소프트웨어 애플리케이션 다운로드 | |
KR100764651B1 (ko) | 휴대용 단말에서 애플리케이션을 실행시키는 방법 및 장치 | |
US20210026913A1 (en) | Web browser control feature | |
US20060171657A1 (en) | Information terminal and recording medium for recording program of a computer to operate as the information terminal | |
KR101154717B1 (ko) | 데이터 언어로 다수 언어들을 관리하기 위한 방법 및 장치 | |
CN114296845B (zh) | 界面处理方法、装置、电子装置以及存储介质 | |
US20100262927A1 (en) | Method and a device for controlling the display of an information area on the welcome screen of a mobile terminal | |
US8898187B2 (en) | Default location that may be dynamically changed | |
KR102158544B1 (ko) | 모바일 기기의 입력 인터페이스 내에서 맞춤법 검사를 지원하는 방법 및 시스템 | |
JP2003186789A (ja) | 電子メール翻訳システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |