KR100795765B1 - 사용자 인터페이스와 데이터 컴포넌트 간의 지능형 맵핑을이용한 무선 애플리케이션 구축 시스템 및 방법 - Google Patents

사용자 인터페이스와 데이터 컴포넌트 간의 지능형 맵핑을이용한 무선 애플리케이션 구축 시스템 및 방법 Download PDF

Info

Publication number
KR100795765B1
KR100795765B1 KR1020050016042A KR20050016042A KR100795765B1 KR 100795765 B1 KR100795765 B1 KR 100795765B1 KR 1020050016042 A KR1020050016042 A KR 1020050016042A KR 20050016042 A KR20050016042 A KR 20050016042A KR 100795765 B1 KR100795765 B1 KR 100795765B1
Authority
KR
South Korea
Prior art keywords
data
component
screen
mapping
definition
Prior art date
Application number
KR1020050016042A
Other languages
English (en)
Other versions
KR20060042393A (ko
Inventor
비에라 비브르
마이클 쉔필드
카멘 비 비타노브
브라이언 알 고링
Original Assignee
리서치 인 모션 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 리서치 인 모션 리미티드 filed Critical 리서치 인 모션 리미티드
Publication of KR20060042393A publication Critical patent/KR20060042393A/ko
Application granted granted Critical
Publication of KR100795765B1 publication Critical patent/KR100795765B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

애플리케이션 데이터 도메인과 UI 스크린 및 컨트롤 간의 직접 맵핑을 구현함으로써 무선 장치의 사용자 인터페이스(UI)의 효과적인 관리를 위한 시스템 및 방법이 개시되어 있다. 이 장치는 일련의 연결 스크린 및 데이터 컴포넌트 정의 등의 애플리케이션 등 무선 애플리케이션을 관리하는 일련의 기본 서비스를 제공하는 지능형 무선 장치 런타임 환경(장치 런타임)을 가지며, 이들의 상호작용은 개발 수고를 단순화하고 자원 할당을 감소시킬 수 있다. 이러한 카테고리의 애플리케이션에서의 데이터 도메인은 아토믹 데이터 컴포넌트 정의를 사용하여 정의된다. 장치 사용자 인터페이스와 데이터 컴포넌트 간의 통신은 아토믹 스크린 컴포넌트 정의를 사용하여 정의된다. 스크린 및 데이터 컴포넌트 정의는 모두 XML과 같은 구조화된 정의 언어를 사용하여 메타데이터로 기재된다. 스크린 및 데이터 컴포넌트 정의 간의 관계는 스크린/데이터 맵핑의 형태로 XML 정의에 임베드된다. 통상, 디스플레이를 위해 렌더링된 스크린은 몇몇 하부 데이터 컴포넌트로부터 유도되고, 사용자 이벤트에 의해 영향을 받은 스크린은 애플리케이션의 현재 상태(또는 데이터 표현)에 영향을 준다. 애플리케이션 도메인 데이터에 대한 변화는 사용자 인터페이스와 자동으로 동기화되고, 사용자 입력 데이터는 애플리케이션 도메인 데이터에 자동으로 반영된다. 이 동기화의 배후에 있는 주요 매커니즘은 스크린과 데이터의 맵핑이다. 이 메커니즘은 동적 대화형 스크린의 생성을 가능하게 한다. 데이터 컴포넌트에 대한 모든 변화는 스크린 상에 즉시 반영될 수 있으며, 그 역도 또한 마찬가지이다. 이 모델은 서버 대 장치 통지에 기초한 효과적인 무선 애플리케이션을 구축할 수 있게 한다. 서버로부터 비동기로 푸시된 데이터 갱신은 UI 스크린에서 순시 반영된다.
사용자 인터페이스, 런타임 환경, 스크린 컴포넌트, 데이터 컴포넌트, 구조화된 정의 언어

Description

사용자 인터페이스와 데이터 컴포넌트 간의 지능형 맵핑을 이용한 무선 애플리케이션 구축 시스템 및 방법{SYSTEM AND METHOD FOR BUILDING WIRELESS APPLICATIONS WITH INTELLIGENT MAPPING BETWEEN USER INTERFACE AND DATA COMPONENTS}
도 1은 네트워크 시스템의 블록도.
도 2는 도 1의 무선 장치의 블록도.
도 3은 도 2의 장치의 지능형 프레임워크의 블록도.
도 4는 도 2의 컴포넌트 애플리케이션 프로그램의 블록도.
도 5는 도 4의 예시적인 컴포넌트 애플리케이션에 대한 애플리케이션 패키징 및 호스팅 모델을 나타내는 도면.
도 6은 도 5의 컴포넌트 애플리케이션 프로그램을 구현하는 예시적인 방법을 나타내는 도면.
도 7은 도 5의 컴포넌트 애플리케이션 프로그램을 구현하는 다른 예시적인 방법을 나타내는 도면.
도 8은 도 2의 애플리케이션에 대하여 데이터 및 스크린 컴포넌트 간의 맵핑을 나타내는 도면.
도 9는 도 8의 맵핑에서 초기 스크린 디스플레이의 동작을 나타내는 도면.
도 10은 도 8의 맵핑에서 사용자 이벤트에 따른 데이터 객체의 갱신을 나타내는 도면.
도 11은 도 8의 맵핑에서 비동기 메시지에 따른 데이터 객체의 갱신을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
02 : 무선 네트워크 106 : 웹 서비스
110 : 애플리케이션 서버 104 : 무선 네트워크로
200 : 네트워크 접속 인터페이스 202 : 사용자 인터페이스
212 : 장치 기반구조 216 : 프레임워크
202 : 스크린 206 : 프레임워크
306 : 통신 관리자 308 : 프리젠테이션 관리자
310 : 데이터 관리자 312 : 맵핑 관리자
본 발명은 무선 장치의 사용자 인터페이스 상의 무선 애플리케이션의 디스플레이에 관한 것이다.
무선 통신 성능을 갖는 이동 전화, PDA 및 양방향 호출기 등 오늘날 사용되는 무선 장치의 수가 계속 증가하고 있다. 이들 장치 상에서 동작하는 소프트웨어 애플리케이션은 그 효용을 증가시키고 있다. 예를 들면, 이동 전화는 도시 영 역에 대한 날씨를 검색하는 애플리케이션을 포함할 수 있고, PDA는 사용자가 식료품 쇼핑할 수 있게 하는 애플리케이션을 포함할 수 있다. 이들 소프트웨어 애플리케이션은 사용자에게 시의적절하고 유용한 서비스를 제공하기 위해서 네트워크로의 접속을 이용한다. 그러나, 일부 장치의 한정된 자원과 대용량 데이터를 장치에 전달하는 복잡성으로 인해, 다양한 장치에 대한 소프트웨어 애플리케이션의 개발은 여전히 어렵고 시간 소모적인 작업이다.
현재, 장치들은 인터넷 기반 브라우저 및/또는 네이티브 애플리케이션을 통해 웹 서비스를 통신하도록 구성된다. 브라우저는 다양한 서로 다른 장치에 대하여 교차 플랫폼 기반 상에서 동작할 수 있는 이점을 갖지만, 웹 서비스로부터 페이지(HTML에서 스크린 정의)를 요청하는 단점을 가지며, 이는 스크린에 포함된 데이터의 유지를 방해한다. 네이티브 애플리케이션은 장치 플랫폼 유형에 대하여 특별히 개발되는 이점을 갖기 때문에, 각 런타임 환경에서 상대적으로 최적화된 애플리케이션 프로그램을 제공한다. 그러나, 네이티브 프로그램은 플랫폼 독립적이지 않는 단점을 갖기 때문에, 동일 애플리케이션의 다양한 버전의 개발을 요구할 뿐만 아니라, 크기가 상대적으로 커서 장치의 메모리 자원에 부담을 지운다. 또한, 애플리케이션 개발자는, 데이터 요소와 스크린 요소의 하드 코딩된 정적 상호작용을 포함하는 등의 이들 하드 코딩된 네이티브 애플리케이션을 구성하기 위해서 자바 및 C++과 같은 프로그래밍 언어에 익숙해질 필요가 있다. 데이터와 스크린 요소 간의 동적 상호작용을 사용하여 광범위한 런타임 환경을 가질 뿐만 아니라 장치 자원 소모가 감소하는 클라이언트 장치 상에서 동작할 수 있는 애플리케이션 프로그 램이 요구된다.
여기서 개시된 시스템 및 방법은 상술한 단점 중 적어도 일부를 제거 또는 완화하는 연결 스크린 및 데이터 컴포넌트 정의를 제공한다.
임의의 명시적 코딩을 행할 필요뿐만 아니라 준비된 경우 애플리케이션에 의해 사용되는 장치 자원을 감소시킴으로써 무선 애플리케이션 개발에 대한 복잡성을 낮추는 것이 바람직하다. 애플리케이션 데이터 도메인과 사용자 인터페이스(UI) 스크린 및 컨트롤 간의 직접 맵핑을 구현하여 무선 장치의 UI를 효율적으로 관리하는 시스템 및 방법을 설명한다. 이 장치는 일련의 기본 서비스를 제공하여 일련의 연결 스크린 및 데이터 컴포넌트 정의 등의 무선 애플리케이션을 관리하는 지능형 무선 장치 런타임 환경(장치 런타임)을 가지며, 이들의 상호작용은 개발 수고를 단순화하고 자원 할당을 감소시킬 수 있다. 이 애플리케이션 카테고리에 대한 데이터 도메인은 아토믹 데이터 컴포넌트 정의를 사용하여 정의된다. 장치 사용자 인터페이스와 데이터 컴포넌트 간의 통신은 아토믹 스크린 컴포넌트 정의를 사용하여 정의된다. 스크린 및 데이터 컴포넌트 정의 모두 XML과 같은 구조적 정의 언어를 사용하여 메타데이터로 기술된다. 스크린 및 데이터 컴포넌트 정의 간의 관계는 스크린/데이터 맵핑의 형태의 XML 정의에 임베드된다. 통상, 디스플레이용으로 렌더링된 스크린은 몇몇 하부 데이터 컴포넌트로부터 유도되고 사용자 이벤트에 의해 영향을 받은 스크린 컨트롤은 애플리케이션의 현재 상태(또는 데이터 표현)에 영향을 준다. 애플리케이션 도메인 데이터에 대한 도전은 자동적으로 사용 자 인터페이스에 동기되어, 사용자 입력된 데이터는 애플리케이션 도메인 데이터에 자동적으로 반영된다. 이러한 동기화 배후에 있는 주요 메커니즘은 스크린과 데이터의 맵핑이다. 이러한 메커니즘은 동적 및 상호작용 스크린의 생성을 가능하게 한다. 데이터 컴포넌트에 대한 모든 변화는 스크린 상에 즉시 반영될 수 있으며, 스크린 상의 변화 또한 즉시 데이터 컴포넌트에 반영될 수 있다. 이 모델은 서버 대 장치 통지에 기초하여 유효 무선 애플리케이션을 구축할 수 있게 한다. 서버로부터 비동기적으로 입력된 데이터 갱신은 UI 스크린에서 순시적으로 반영된다.
본 발명에 따르면, 무선 장치의 사용자 인터페이스 상에 디스플레이된 데이터 객체에 기초하여 무선 애플리케이션의 스크린 요소를 생성하는 방법이 제공되며, 상기 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 컴포넌트 정의는 구조적 정의 언어로 표현되는 것으로서, 상기 방법은, 디스플레이용으로 선택된 상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하는 단계; 상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하고, 상기 맵핑은 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 맵핑을 나타내는 식별자에 의해 정의된 바와 같이 규정하는 단계; 상기 맵핑 식별자에 따른 상기 맵핑에 의해 맵핑된 상기 데이터 컴포넌트를 선택하는 단계; 상기 맵핑된 데이터 컴포넌트의 데이터 필드 정의에 대응하는 데이터 객체 필드 값을 획득하는 단계; 상기 스크린 요소 정의로부터 스크린 요소를 생성하여 데이터 필드 정의의 포맷에 따라서 상기 맵핑된 데이터 컴포넌트에 정의된 바와 같이 데이터 객체 필드 값을 포함하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, 무선 장치의 사용자 인터페이스 상에 디스플레이된 데이터 객체에 기초하여 무선 애플리케이션의 스크린 요소를 생성하는 시스템이 제공되며, 상기 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 컴포넌트 정의는 구조적 정의 언어로 표현되는 것으로서, 상기 시스템은, 상기 스크린 요소에 대응하느 상기 스크린 컴포넌트를 선택하고, 상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하되, 상기 맵핑은 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 상기 맵핑을 나타내는 식별자에 의해 정의되는 바와 같이 규정하고, 상기 맵핑 식별자에 의해 따라서 상기 맵핑에 의해 맵핑되는 데이터 컴포넌트를 선택하는 맵핑 관리자; 상기 맵핑된 데이터 컴포넌트의 상기 데이터 필드 정의에 대응하는 데이터 객체 필드 값을 획득하는 데이터 관리자; 및 상기 스크린 요소 정의로부터 스크린 요소를 생성하여 데이터 필드 정의의 포맷에 따라서 상기 맵핑된 데이터 컴포넌트에 정의된 바와 같이 데이터 객체 필드 값을 포함시키는 스크린 관리자를 포함한다.
본 발명의 또다른 양태에 따르면, 무선 장치의 사용자 인터페이스 상에 디스플레이된 스크린 요소 내의 변화에 기초하여 무선 애플리케이션의 데이터 객체를 생성하는 방법이 제공되며, 상기 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 컴포넌트 정의는 구조적 정의 언어로 표현되는 것으로서, 상기 방법은, 상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하는 단계; 상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하되, 상기 맵핑은 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 규정하는 단계; 상기 맵핑에 의해 맵핑된 데이터 컴포넌트를 선택하는 단계; 상기 맵핑된 데이터 컴포넌트에 대응하는 상기 스크린 요소로부터 변경된 값을 획득하는 단계; 상기 맵핑된 데이터 컴포넌트에서 정의된 바와 같은 데이터 필드 정의의 포맷에 따라서 상기 데이터 객체의 데이터 필드 값에 상기 변경된 값을 할당하는 단계를 포함한다.
본 발명의 또다른 양태에 따르면, 무선 장치의 사용자 인터페이스 상에 디스플레이된 데이터 객체에 기초하여 무선 애플리케이션의 스크린 요소를 생성하는 장치가 제공되며, 상기 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 컴포넌트 정의는 구조적 정의 언어로 표현되는 것으로서, 상기 장치는, 디스플레이용으로 선택된 상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하는 수단; 상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하되, 상기 스크린과 상기 데이터 컴포넌트 간의 관계를 규정하는 수단; 상기 맵핑에 의해 맵핑되는 데이터 컴포넌트를 선택하는 수단; 상기 맵핑된 데이터 컴포넌트의 데이터 필드 정의에 대응하는 데이터 객체 필드 값을 획득하는 수단; 및 상기 스크린 요소 정의로부터 스크린 요소를 생성하여 데이터 필드 정의의 포맷에 따라서 상기 맵핑된 데이터 컴포넌트에 정의된 바와 같이 상기 데이터 객체 필드를 포함시키는 단계를 포함한다.
본 발명의 또다른 양태에 따르면, 무선 장치의 사용자 인터페이스 상에 디스플레이된 데이터 객체에 기초하여 무선 애플리케이션의 스크린 요소를 생성하는 컴퓨터 프로그램 제품이 제공되며, 상기 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 컴포넌트 정의는 구조적 정의 언어로 표현되는 것으로서, 상기 컴퓨터 프로그램 제품은, 컴퓨터 판독가능 매체; 상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하여 상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하기 위해 컴퓨터 판독가능 매체 상에 저장되며, 상기 맵핑은 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 상기 맵핑을 나타낸 식별자에 의해 정의된 바와 같이 규정하며, 상기 맵핑 식별자에 따라서 상기 맵핑에 의해 맵핑되는 상기 데이터 컴포넌트를 선택하는 맵핑 모듈; 상기 맵핑된 데이터 컴포넌트의 데이터 필드 정의에 따라서 데이터 객체 필드 값을 획득하기 위해 컴퓨터 판독가능 매체 상에 저장되는 데이터 모듈; 및 상기 스크린 요소 정의로부터 스크린 요소를 생성하여 데이터 필드 정의의 포맷에 따라서 상기 맵핑된 데이터 컴포넌트에 정의된 바와 같이 상기 데이터 객체 필드 값을 포함하기 위해 상기 컴퓨터 판독가능 매체 상에 저장되는 스크린 모듈을 포함한다.
이들 및 다른 특징은 후술하는 상세한 설명에서 보다 명백해 질 것이며, 참조부호는 단지 예시에 의해 첨부된 도면에 기재된다.
네트워크 시스템
도 1을 참조하면, 네트워크 시스템(10)은, 인터넷과 같은, 그러나 이에 국한되지 않는 결합된 광역 네트워크(WAN; 104)를 통해, 하나 이상의 범용 서비스(106)와 상호동작하는 복수의 무선 장치(100)를 포함한다. 이들 장치(100)는 PDA, 호출기, 셀룰러 폰 등을 포함하지만 이에 국한되지 않을 수 있다. 서비스(106)에 의해 제공되는 범용 서비스는 웹 서비스 및/또는 SQL 데이터베이스, IDL 기반 CORBA 및 RMI/IIOP 시스템, 레거시 데이터베이스, J2EE, SAP RFC, 및 COM/DCOM 컴포넌트 등을 포함하지만 이에 국한되지 않는 다른 서비스일 수 있다. 또한, 시스템(10)은 무선 장치(100)를 WAN(104)에 접속하는 무선 네트워크(102)를 가질 수 있다. 다른 장치(미도시)는 WAN(104) 및 도 1에 도시된 것 이외의 관련 네트워크를 통해 웹 서비스(106)에 접속될 수 있다. 간략화의 목적에서, 스키마에 의해 정의된 웹 서비스(106)는 시스템(10)의 후술하는 설명에 대하여 선택된다. 그러나, 다른 서비스가, 원하는 경우, 웹 서비스(106)를 대체할 수 있다. 또한, 시스템(10)의 네트워크(102, 104)는 이하, 간략화의 목적에서, 네트워크(104)로서 불릴 수 있다.
도 1을 다시 참조하면, 장치(100)는 웹 서비스(106)와 통신하는 경우 요청/응답 메시지(105)를 각각 송수신한다. 이 장치(100)는 메시지 헤더 정보와 관련 데이터 컨텐츠의 형태의 요청/응답 메시지(105)를 사용하여, 예를 들면, 온라인 상인으로부터 제품 가격 및 가용성을 요청하여 수신함으로써, 웹 서비스(106)의 웹 클라이언트로서 동작할 수 있다. 웹 서비스(106)는 통신 장치(100)의 사용자에게 유틸리티를 제공하기 위해서 통신 장치(100) 상의 클라이언트 애플리케이션 프로그램(302; 도 2 참조)이 네트워크(104)를 통해 상호동작하는 시스템의 일 예이다.
적절한 요청/응답 메시지(105)를 충족하기 위해, 웹 서비스(106)는 장치(100) 상에 준비된 경우 관련 비즈니즈 로직(방법)을 클라이언트 애플리케이션 프로그램(302; 도 2 참조)에 노출시키는(HTTP 및 컴포넌트 API를 포함하지만 이에 국한되지 않음) 다양한 프로토콜을 통해 애플리케이션 서버(110)와 통신할 수 있다. 이 애플리케이션 서버(110)는 또한 웹 서비스(106)가 애플리케이션 서버(110)의 부분집합으로서 간주될 수 있도록 웹 서비스(106) 소프트웨어를 포함할 수 있다. 장치(100)의 애플리케이션 프로그램(302)은 객체(또는 펑션) 상의 메소드를 호출하는 것과 유사하게 애플리케이션 서버(110)의 비즈니스 로직을 사용할 수 있다. 클라이언트 애플리케이션 프로그램(302)은 네트워크(104)를 경유한 메시지(105)를 통해 직접 장치(100)에 애플리케이션 서버(110)와 관련하여 다운로드/업로드될 수 있다. 또한, 장치(100)는 네트워크(104)를 통해 하나 이상의 웹 서비스(106)와 관련 애플리케이션 서버(110)와 통신할 수 있다.
서버 환경
도 1을 참조하면, 웹 서비스(106)는 장치(100) 상의 클라이언트 애플리케이션 프로그램(302; 도 2 참조)에 의해 (동기 또는 비동기로) 사용되는 정보 메시지(105)를 제공한다. 선택적으로 또는 부가적으로는, 웹 서비스(106)는 장치(100) 상에서 실행되는 클라이언트 애플리케이션 프로그램(302)에 의해 제공된 정보 메시지(105)를 수신 및 사용할 수 있으며, 장치(100) 상에서 실행되는 클라이언트 애플 리케이션 프로그램(302)을 대신하여 작업을 수행할 수 있다. 웹 서비스(106)는 웹 서비스 레지스트리에서 범용 디스커버리 기술 및 통합(Universal Discovery DEscription and Integration; UDDI)에 등록된 웹 서비스 기술 언어(Web Service Description Language; WSDL)를 사용하여 표현되는 것과 같은 인터페이스를 구현할 수 있으며, 단순 객체 액세스 프로토콜(SOAP)과 같은 적절한 프로토콜을 통해 네트워크(104) 상에 노출됨으로써 클라이언트 장치(100)와 메시지(105)를 통해 통신할 수 있다. 몇몇 구현예에서, SOAP는 그 SOAP 요소 내에 포함된 잘 형성된 XML 단편 등의 메시지(105)에 대한 XML 포맷을 한정하는 사양이다. 또한, SOAP는 SOAP 메시지(105)가 XML 문서 주변의 랩퍼(wrapper)인 문서 스타일 애플리케이션을 지원한다. SOAP의 추가 선택부는 HTTP 바인딩(즉, 헤더)를 한정하는 반면, 몇몇 SOAP 구현은 MSMQ, MQ 시리즈, SMTP 또는 TCP/IP 전송 프로토콜을 지원한다. 선택적으로는, 웹 서비스(106)는 다른 알려진 통신 프로토콜, 메시지(105) 포맷을 사용할 수 있으며, 상술한 것 이외의 웹 서비스 언어로 인터페이스가 표현될 수 있다.
클라이언트 환경
도 2를 참조하면, 컴포넌트 애플리케이션(302)은 네트워크(104)를 통해 전송되고, 장치(100)의 장치 기반구조(204)의 메모리 모듈(210)에 로딩된다. 선택적으로는, 컴포넌트 애플리케이션(302)은 직렬 접속, USB 접속, 또는 IR, 802.11(x) 블루투스TM(미도시)와 같은 단거리 무선 통신 시스템을 통해 로딩될 수 있다. 장치(100) 상으로 로딩되면, 컴포넌트 애플리케이션(302)은, 컴포넌트 애플리케이션(302)을 변환시킬 수 있는 장치(100) 상의 지능형 런타임 프레임워크(206)에 의해 장치 기반구조(204) 내의 프로세서(208)에 실행되는 네이티브 코드로 실행된 수 있다. 선택적으로는, 애플리케이션(302)은 장치(100) 상의 다른 소프트웨어 모듈 또는 운영 체계에 의해 인터프리트될 수 있다. 어느 경우이든, 컴포넌트 애플리케이션(302)은, 런타임 환경이 일련의 기본 서비스를 제공하여 통상의 애플리케이션(302) 동작(예를 들어, 유지, 메시징, 스크린 네비게이션 및 디스플레이)을 관리 및 실행하는 지능형 소프트웨어 프레임워크(206)이도록, 장치(100)에 의해 제공되는 단말 런타임 환경에서 동작한다.
도 1을 다시 참조하면, 장치(100)에 의해 제공되는 클라이언트 런타임 환경은 장치(100)가 웹 서비스(106)의 웹 클라이언트로서 동작하게 하도록 구성될 수 있다. 또한, 클라이언트 런타임 환경은 장치(100)가 네트워크(104) 상의 임의의 다른 일반 스키마 정의된 서비스의 클라이언트가 되게 할 수 있다. 장치(100)의 클라이언트 런타임 환경은 장치(100) 상에서 클라이언트 애플리케이션 프로그램(302)(도 4 및 후술하는 설명 참조 - 데이터(400) 및 스크린(402) 컴포넌트 정의를 포함)을 발생, 호스팅 및 실행할 수 있는 것이 바람직하다. 또한, 클라이언트 런타임 환경의 특정 펑션은 언어 지원, 메모리 할당 조정, 네트워킹, I/O 동작 동안 데이터 관리, 장치(100)의 출력 장치 상의 그래픽 조정 및 코어 객체 지향 클래스로의 액세스 제공과 파일/라이브러리 지원 등을 포함하지만 이에 국한되지 않을 수 있다. 장치(100)에 의해 구현된 런타임 환경의 예는 마이크로소프트에 의한 공통 언어 런타임(CLR)과 선 마이크로시스템스에 의한 자바 런타임 환경(JRE)을 포함하지만 이에 국한되지 않을 수 있다.
장치(100)의 단말 런타임 환경은 클라이언트 애플리케이션 프로그램(302; 도 2 참조)의 주재 실행가능 버전의 다음의 기본 펑션을 포함하지만 이에 국한되지 않는 펑션을 지원하는 것이 바람직하다:
통신 성능을 제공하여 메시지(105)를 웹 서비스(106)에 전송하거나 메시지(105)를 네트워크(104)를 통해 장치(100)에 접속된 임의의 다른 일반 스키마 정의된 서비스에 전송;
장치(100)의 입력 장치 상에 사용자에 의한 데이터 입력 성능을 제공하여 웹 서비스(106) 아웃고잉 메시지(105)에 대한 데이터 부분을 제공(서비스로의 메시지);
웹 서비스(106)의 응답 메시지(105; 인커밍 메시지) 또는 출력 장치 상의 무관련 통지에 대한 데이터 프리젠테이션 또는 출력 성능을 제공;
데이터 스토리지 서비스를 제공하여 장치(100)의 메모리 모듈(210; 도 2 참조)에 로컬 클라이언트 데이터를 유지; 및
클라이언트 애플리케이션 프로그램(302)의 컴포넌트들(400, 402; 도 4 참조)의 동작을 조정하는 스크립트 언어에 대한 실행 환경을 제공.
도 2, 4, 및 5를 참조하면, 클라이언트 런타임(예를 들어, 컴포넌트 프레임워크(206)에 의해 제공)은 컴포넌트(400, 402) 정의 내에 포함된 메타데이터를 로딩하고, 예를 들면, 실행 환경(300)을 통해 장치(100) 상의 애플리케이션 프로그램(302)의 실행가능 버전을 구현한다. 두개의 클라이언트 런타임 동작 모델, 즉, 템플릿 기반 네이티브 실행 및 메타데이터 기반 실행 등이 있지만 이에 국한되지는 않는다. 전체 정의된 컴포넌트 기반 애플리케이션(302)(도 4를 참조 - 데이터(400), 스크린(402), 메시지(404), 및 워크플로우(406) 컴포넌트를 가짐)의 경우, 프레임워크(206)는 네이티브 코드를 사용하여 장치(100) 상에 미리 구성된 데이터, 메시지 및 스크린 템플릿(500)을 호스팅하는 템플릿 기반 네이티브 실행 모델을 구현할 수 있다. 애플리케이션 프로그램(302) 정의가 로딩되는 경우, 프레임워크(206)에 의해 제공되는 클라이언트 환경은 템플릿(500)을 컴포넌트(400, 402, 404)로부터의 메타데이터 정의된 파라미터로 채우고, 네이티브 포맷으로 실행가능 클라이언트 애플리케이션 프로그램(302)을 구성한다. 워크플로우 컴포넌트(406)의 워크플로우 스크립트(예를 들면, ECMAScript)는 네이티브 코드에 변환되거나 네이티브 코드 리디렉터(504; native code redirector)에 적절한 스크립트 인터프리터(예를 들면, ECMAScript Interpreter)를 사용하여 실행될 수 있으며, 여기서, 리디렉터(504)는 네이티브 런타임 엔진(506)을 통해 네이티브 컴포넌트 상의 동작으로 스크립팅 언어에 대한 호출을 인터프리트한다. 메타데이터 기반 실행을 사용하여, 프레임워크(206)의 런타임 환경은, 실행 시간 동안 파싱되는 (예를 들면) XML에 컴포넌트(400, 402, 404, 406) 정의를 유지하거나 (예를 들면) XML 노드의 네이티브 표현을 사용한다. 실행 동안, 네이티브 런타임 엔진(506)은 네이티브 컴포넌트 엔티티 이외의 컴포넌트(400, 402, 404, 406)의 정의 상에 동작한다. 다른 유형의 실행 모델은 데이터와 스크린에 대한 컴포넌트 정의(400, 402)를 갖는 애플리케이션을 포함하면서, 애플리케이션(302)의 나머지 메시지와 워크플로우 요소에 대한 보다 많은 하드 코딩(405) 접근법을 갖는다.
따라서, 네이티브 클라이언트 런타임 환경은 클라이언트 애플리케이션 프로그램(302)에 대한 인터페이스를 프로세서(208)의 장치(100) 기능과 장치 기반구조(204)의 관련 운영 체계에 제공한다. 런타임 환경은 컴포넌트 애플리케이션 프로그램(302)이 실행하는 장치(100) 상에서 제어되고, 보안 및 안정된 환경을 제공하는 것이 바람직하다. 런타임 환경은 컴포넌트(400, 402)의 정의를 제공하여(사용되는 경우, 정의(404, 406)) 장치(100)의 개별 장치 기반구조(204) 각각에 대한 특정된 실제 웹 클라이언트를 생성한다. 간이함을 위해서, 후술하는 설명은, 단지 일 예로서, 프레임워크(206)에 의해 제공되는 클라이언트 런타임 환경을 이하 나타낼 수 있다.
통신 장치
도 2를 다시 참조하면, 장치(100)는 이동 전화, PDA, 양방향 호출기 또는 듀얼 모드 통신 장치를 포함하지만 이에 국한되지 않는 장치이다. 장치(100)는 접속(218)을 통해 장치 기반구조(204)에 결합된, 무선 트랜시버 등의, 네트워크 접속 인터페이스(200)를 포함한다. 접속 인터페이스(200)는 무선 링크(에를 들어, RF, IR 등)에 의해 무선 네트워크(102)와 같은 네트워크(104)에 장치(100)의 동작 동안 접속하능하게 되어, 장치(100)가 서로 통신하게 하고 네트워크(104)를 통해 외부 시스템(웹 서비스(106) 등)과 통신하게 하여 클라이언트 애플리케이션 프로그램(302) 및 서비스(106; 도 1) 간의 요청/응답 메시지(105)를 조정하게 할 수 있다. 네트워크(104)는 이 네트워크(104)에 접속된 장치와 외부 시스템 간의 요청/응답 메시지(105)에 데이터의 전송을 지원한다. 또한, 네트워크(104)는 장치(100)와 네트워크(104)의 외부에 있는 장치들 간의 전화 통화를 위한 음성 통신을 지원할 수 있다. 무선 데이터 전송 프로토콜은 DataTAC, GPRS, 또는 CDMA을 포함하지만 이에 국한되지 않은 무선 네트워크(102)에 의해 사용될 수 있다.
도 2를 다시 참조하면, 장치(100)는 접속(222)에 의해 장치 기반구조(204)에 접속된 사용자 인터페이스(202)를 구비하여 사용자(미도시)와 상호동작한다. 사용자 인터페이스(202)는 QWERTY 키보드, 키패드, 트랙휠, 스타일러스, 마우스, 및 마이크로폰를 포함하지만 이에 국한되지 않은 하나 이상의 사용자 입력 장치와 LCD 스크린 디스플레이 및/또는 스피커 등의 사용자 출력 장치를 포함한다. 스크린이 터치 감지형이면, 디스플레이는 또한 장치 기반구조(204)에 의해 제어가능한 바와 같이 사용자 입력 장치로서 사용될 수 있다. 사용자 인터페이스(202)는 장치(100)의 사용자에 의해 사용되어, 이하 상세히 후술하는, 프레임워크(206)의 클라이언트 애플리케이션 프로그램(302)에 의해 사용되는 것과 같은 시스템(10; 도 1 참조) 상으로 요청/응답 메시지(105)를 조정한다.
도 2를 다시 참조하면, 장치(100)의 동작은 장치 기반구조(204)에 의해 가능하다. 장치 기반구조(204)는 컴퓨터 프로세서(208)와 관련 메모리 모듈(210)을 포함한다. 컴퓨터 프로세서(208)는, 메모리 모듈(210)에 위치한 운영 체계 및 클라이언트 애플리케이션 프로그램(302)에 의해 제공되는 관련 명령을 실행함으로써, 통신 장치(100)의 네트워크 인터페이스(200), 사용자 인터페이스(202) 및 프레임워크(206)의 동작을 조절한다. 또한, 장치 기반구조(204)는 프로세서(208)에 접속되어 프로세서에 명령을 제공하고 및/또는 메모리 모듈(210)에서 클라이언트 애플리케이션 프로그램을 로딩/갱신하는 컴퓨터 판독가능 저장 매체(212)를 포함할 수 있다. 컴퓨터 판독가능 저장 매체(212)는, 단지 예를 들면, 자기 디스크, 자기 테이프, CD/DVD ROMS 등의 광학 판독가능 매체, 및 메모리 카드와 같은 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 어느 경우이든, 컴퓨터 판독가능 매체(212)는 소형 디스크, 플로피 디스켓, 카세트, 하드 디스크 드라이브, 고체 상태 메모리 카드, 또는 메모리 모듈(210) 내에 제공된 RAM의 형태를 취할 수 있다. 상기 열거된 예시적인 컴퓨터 판독가능 매체(212)는 단독으로 또는 조합으로 사용될 수 있음이 인식되어야 한다.
컴포넌트 간의 맵핑 관계
실제, 개발자에 의한 컴포넌트(400, 402)의 표현은 통상 중첩 컨텐츠를 가질 수 있지만, 애플리케이션(302)의 각 컴포넌트(400, 402)의 행동은 고유하다. 따라서, 사용자 인터페이스(202; 도 1 참조) 컨텐츠가 일부 하부 데이터 요소에서 생성된다는 사실을 인식함으로써, 그리고 이들 컴포넌트(400, 402)의 표면 간의 유사성의 관점에서, 후술한 바와 같이, 스크린 컴포넌트(402)의 표현에 대한 특정 맵핑(804; 도 8 참조)을 도입하는 것이 용이하다. 도 4 및 도 8을 참조하면, 이들 맵핑(804)은 기본적으로 스크린 컴포넌트(402)에 관련된 스크린 컴포넌트(802; 스크린 요소 정의)의 표현 및 애플리케이션(302)의 실행 동안 런타임 시에 스크린 컴포넌트(402)가 동작하는 방식에 대한 쇼트컷이다. 맵핑(804)은 스크린 컴포넌트(402)의 스크린 요소 정의와 데이터 컴포넌트(400) 정의 간의 관계를 나타낸다. 스크린 컴포넌트(402)의 표현에 관련하여, 맵핑(804)의 사용은 컴포넌트(402)를 나 타내는데 필요한 메타데이터 양을 감소시킬 수 있다. 따라서, 맵핑(804)의 사용은 애플리케이션(302)을 나타내는데 필요한 "코드"의 양에 대한 직접적인 영향을 가질 수 있다. 컴포넌트(402)가 런타임 시에 동작하는 방식에 관련하여, 맵핑(804)은 연결 데이터 요소(데이터 컴포넌트(400)로 표시)가 스크린 요소(802) 상태에 의해 결정되고 영향을 받는 방식을 규정한다. 이에 있어서, 맵핑(804)의 규정은 개발자가 애플리케이션(302)에서 추가 특정 스크린 조작 코드를 제공하는 요구를 감소시킬 수 있다.
도 8을 참조하면, 스크린 컴포넌트(402; 도 4 참조)의 스크린 표현은 사용자 인터페이스(202) 상에 디스플레이되고 대응 데이터 객체(800)의 데이터 필드 인스턴스에 관련되는 UI 컨트롤을 포함하지만 이에 국한되지 않은 스크린 요소(802)로 이루어진다. 따라서, 각각의 스크린 요소(802)는 개별 데이터 객체(800)의 필드에 한정 또는 맵핑된다(804). 애플리케이션(302)의 사용자는 사용자 인터페이스(202) 상에서 스크린 요소(802)를 선택할 수 있으며(도 1 참조), 그들 내에서, 즉, 사용자 이벤트에 의해 컨트롤을 편집할 수 있다. 스크린 요소(8021)의 임의의 변형은 스크린 요소(802)에 맵핑된 데이터 객체(800)에 전달된다. 유사하게, 데이터 객체(800)에 대한 모든 변형(애플리케이션(302) 로직 또는 인커밍 서버 메시지(105)에 의해 구동)은 이들 데이터 객체(800)에 맵핑된 스크린 요소(802)에 반영된다. 사용자 이벤트의 추적 및 데이터 객체(800)의 임의의 직접 변형은 후술하는 바와 같이 맵핑 관리자(312)를 통해 모니터된다. 맵핑(804)은 상기 맵핑(804)에 의해 영향을 받는 데이터 객체(800)의 식별 및 변형을 제공한다. 맵핑(804)은 대 응 스크린 컴포넌트(404)의 스크린 요소(802)가 연결되는 데이터 컴포넌트(400)의 데이터 객체(800)를 분리한다.
스크린 컴포넌트(402) 또는 데이터 컴포넌트(400) 정의는 맵핑(800)을 포함하며, 이는 데이터 객체(800)와 스크린 요소(802) 간의 관계 또는 데이터 객체(800)의 개별 데이터 필드(또는 데이터 필드 그룹)과 스크린 요소(802) 간의 관계를 한정한다. 데이터 객체(800)는 파라미터로서 사용자 인터페이스(202)에 전달될 수 있다. 이 경우, 스크린 요소(804)에 맵핑된 데이터 객체(800)의 데이터 필드 값은 전달된 파라미터로부터 추출될 수 있다. 예를 들면, 스크린 컴포넌트(402)의 스크린 필드 정의에 정의된 편집 컨트롤(스크린 요소(802))은 연결 데이터 컴포넌트(400)의 데이터 필드 정의에 맵핑되고(즉, 일대일 맵핑(804)), 또는, 스크린 컴포넌트(402)의 스크린 필드 정의에 정의된 선택 컨트롤(스크린 요소(802))은 데이터 컴포넌트(400) 모음의 특정 데이터 필드 정의에 맵핑될 수 있다(즉, 일대다(one to many) 맵핑(804)).
도 4 및 도 8을 참조하면, 스크린 컴포넌트 메타데이터는 다른 속성에 더하여 연결 데이터 컴포넌트(400)의 데이터 필드 정의에 대한 맵핑을 나타낼 수 있다. 예를 들면, 단일 스크린 요소(802)는 다음에 맵핑될 수 있다:
Figure 112005010266385-pat00001
데이터 컴포넌트(400)의 데이터 필드 정의 중 하나, 또는
Figure 112005010266385-pat00002
주요 키(또는 맵핑 식별자)에 의한 데이터 컴포넌트(400)의 모든 데이터 필드 정의 - 이 경우, 맵핑(804)은 주요 키 필드가 된다.
선택/리스트 스크린 요소(802)는 다음에 맵핑될 수 있다:
Figure 112005010266385-pat00003
데이터 컴포넌트(400)의 모든 인스턴스의 모음, 또는
Figure 112005010266385-pat00004
데이터 컴포넌트(400) 모음의 데이터 필드 정의 중 하나
'User' 데이터 컴포넌트(400)의 특정 데이터 객체(800)의 'name' 필드에 맵핑된 편집 스크린 요소(802) 'ebName'의 일 예에 대한 아래의 예시적인 컴포넌트 애플리케이션(302)과 'User' 데이터 컴포넌트(400)의 모든 데이터 객체(800)의 'name' 컴포넌트에 맵핑된 선택 스크린 요소(804) 'cbName'의 일 예를 참조하기 바란다.
장치 프레임워크
도 2를 다시 참조하면, 장치(100)의 프레임워크(206)는 접속(220)에 의해 장치 기반구조(204)에 결합된다. 클라이언트 런타임 환경에서, 장치(100)는 프레임워크(206)에서 제공되고, 메타데이터 정의로부터 클라이언트 애플리케이션 프로그램(302, 컴포넌트 정의를 포함 - 아래 참조)를 생성, 호스팅, 및 실행할 수 있는 것이 바람직하다. 장치 런타임은 일련의 기본 서비스(304)를 제공하여, 유지, 준비, 메시징, 스크린 네비게이션 및 사용자 인터페이스/스크린 서비스를 포함하지만 이에 국한되지 않은 통상의 애플리케이션(302) 동작을 관리 및 실행하는 지능형 소프트웨어 프레임워크(206)로서 간주될 수 있다. 따라서, 프레임워크(206)는 클라이언트 애플리케이션 프로그램(302)에 네이티브 클라이언트 런타임 환경을 제공하며, 장치 기반구조(204)의 프로세서(208)의 장치(100) 기능과 관련 운영 체계에 대한 인터페이스이다. 프레임워크(206)는, 바람직하게는, 장치(100) 상에 제어되고, 보안성있고 안정된 환경을 공급함으로써 런타임 환경을 제공하며, 여기서, 컴 포넌트 애플리케이션 프로그램(302)은 예를 들면 애플리케이션 컨테이너 또는 실행 환경(300)에서 실행한다.
도 3을 참조하면, 프레임워크(206)는 단말 런타임 환경 내에서 클라이언트 애플리케이션 프로그램(302; 웹 서비스 클라이언트 애플리케이션 등)을 실행하는데 사용될 수 있으며, 네트워크(104)를 통해 요청/응답 메시지(105)를 통해 웹 서비스(106) 및 관련 애플리케이션 서버(110; 도 1 참조)에 대한 액세스를 지원할 수 있다. 컴포넌트 애플리케이션 프로그램(302)은 프레임워크(206)에 의해 실행되는 소프트웨어 애플리케이션을 포함한다. 프레임워크(206)는 애플리케이션 프로그램(302)이 실행될 때마다 애플리케이션 프로그램(302)의 각 컴포넌트(400, 402)(및 정의(404, 406), 사용되는 경우 - 도 4 참조)에 대한 실행 환경(300)을 생성한다. 실행 환경(300)은 애플리케이션 프로그램(302)의 컴포넌트(사용되는 경우, 정의(404, 406))를 로딩하고, 장치 기반구조(204)에서 프로세서(208)에 의해 실행되는 네이티브 코드를 생성할 수 있다. 따라서, 프레임워크(206)는 컴포넌트(400, 402)의 정의(사용되는 경우, 정의(404, 406))를 준비하여 통신 장치(100)의 개별 장치 기반구조(204) 각각에 대한 특정한 실제 웹 클라이언트를 생성하는 호스트 실행 환경(300)을 제공한다. 실행 환경(300)은, 단지 예시로서, 상술한 바와 같은 템플릿 기반 네이티브 실행 및 메타데이터 기반 실행 모델에 따라서 애플리케이션(302)을 준비할 수 있다. 실행 환경(300)은 클라이언트 애플리케이션 프로그램(302)에 대한 스마트 호스트 컨테이너로서 불릴 수 있으며, (스크린 요소(802), 도 8을 참조)스크린 값을 분석하고 메모리 모듈(210) 내의 값(데이터 객체(800))의 표 현을 갱신하는 역할을 할 수 있다.
도 3을 다시 참조하면, 특정 서비스가 컴포넌트(400, 402)의 일부(사용되는 경우, 정의(404, 406) - 도 4 참조)로서 포함되거나 컴포넌트 애플리케이션 프로그램(302)의 일부로서 개별 컴포넌트(미도시)로서 수신되는 경우, 프레임워크(206)는 또한 클라이언트 애플리케이션 프로그램(302)에 프레임워크 서비스(304; 일련의 표준 일반 서비스)를 제공한다. 애플리케이션 프로그램(302)은 실행 환경(300)과 통신하며(214), 상기 실행 환경(300)은 필요시 프레임워크 서비스(304)와의 통신(216)을 조정할 수 있다. 프레임워크(206)의 프레임워크 서비스(304)는 장치 기반구조(204)와의 접속을 통해 통신을 조정한다. 따라서, 장치 기반구조(204), 사용자 인터페이스9202) 및 네트워크 인터페이스(200)로의 액세스는 프레임워크(206)와 관련 서비스(304)에 의해 클라이언트 애플리케이션 프로그램(302)에 제공된다. 장치 기반구조(204; 도 2 참조)의 운영 체계의 일부는 실행 환경(300) 및 프레임워크 서비스(304)의 선택된 서비스/관리자를 나타낼 수 있다.
도 3 및 도 8을 참조하면, 프레임워크 서비스(304)는 통신 관리자(306), 프리젠테이션 관리자(308), 데이터 관리자(310)를 포함하지만 이에 국한되지 않으며, 액세스 서비스, 준비 서비스 및 유틸리티 서비스를 포함할 수 있다. 액세스 서비스(미도시)는 통신 장치(100) 상에 있는 다른 소프트웨어 애플리케이션에 대한 애플리케이션 프로그램(302)을 제공한다. 준비 서비스(미도시)는 통신 장치(100) 상의 소프트웨어 애플리케이션(302)의 준비를 관리한다. 애플리케이션 준비는 신규 및 갱신 애플리케이션 프로그램(302)의 요청 및 수신, 네트워크(104)를 통해 액 세스가능한 서비스로의 액세스를 위한 애플리케이션 프로그램(302)의 구성, 애플리케이션 프로그램(302) 및 서비스의 구성을 변경, 및 애플리케이션 프로그램(302) 및 서비스의 제거를 포함할 수 있다. 유틸리티 서비스(미도시)는 문자열에서 다른 포맷으로의 변환으로 데이터 조작을 수행하는 등의 다양한 통상의 작업을 달성하는데 사용된다.
도 3, 도 8 및 도 9를 참조하면, 통신 관리자(306)는 애플리케이션(302)에 대신하여 (통신 관리자(306)에 의한) 웹 서비스(106)에 있어서 전송/수신된 메시지(105) 및 관련 데이터와 같이 애플리케이션 프로그램(302)과 관리 시스템(10) 간의 접속성을 관리한다. 보다 상세히 후술하는 바와 같이, 통신 관리자(306)는 일련의 맵핑(804)을 구현하는데 사용될 수 있다. 프리젠테이션 관리자(308)는 사용자 인터페이스(202)의 출력 장치 상에 출력됨에 따라(도 2 참조) 애플리케이션 프로그램(302)의 표시를 관리한다. 데이터 관리자(310)는 컴포넌트 애플리케이션 프로그램(312)이 장치 기반구조(204)의 메모리 모듈(210) 내의 데이터를 저장할 수 있게 한다(도 2 참조). 데이터 관리자(310)는 맵핑(804)을 통해 스크린 컴포넌트(402)에 연결된 데이터 컴포넌트(400)의 데이터 인스턴스의 변형/생성을 조정하는데 사용될 수 있다. 또한, 프레임워크(207)는 개별 데이터 객체(800)와 스크린 요소(802) 간의 각각의 관계(맵핑; 804)를 추적하는 맵핑 관리자(312)을 갖는다. 이 맵핑은 맵핑 관리자(312)에 결합되는 맵핑 테이블(309)에 저장된다. 스크린 요소(802)가 사용자 인터페이스(202) 상에서 초기화되면, 프리젠테이션 관리자(308)는 맵핑 관리자(302)를 사용하여 스크린 요소(802)와 디스플레이되는 대응 데 이터 객체(800) 사이에 동적 무결성을 유지한다. 스크린 요소(802) 중 하나가 사용자 인터페이스(202)를 통해 사용자에 의해 변경되는 경우, 맵핑 관리자(312)는 데이터 관리자(310)를 통해 메모리(210)에서 올바른 데이터 객체(800)에 대한 변경을 전달하는 역할을 한다. 메모리(210) 내의 데이터 객체(800) 중 하나가 변경되는 경우, 맵핑 관리자는 객체(800)가 사용자 인터페이스(202) 상에 현재 디스플레이되는지를 확인하여, 그러한 경우, 프리젠테이션 관리자(308)를 통해 대응 스크린 요소(802)를 갱신하여 테이블(409) 내의 대응 맵핑(804) 엔트리를 가리킴으로서 데이터 객체(800)의 변화를 반영하는 역할을 한다. 통신 장치(100)의 프레임워크 서비스(304)는 상술한 관리자들을 포함하는 컴포넌트 애플리케이션 프로그램(302)에 기능을 제공한다.
따라서, 프레임(206)은 사용자 인터페이스(202) 상에서 대화형 애플리케이션(302)의 디스플레이를 가능하게 하며, 통상 애플리케이션(302) 도메인으로부터 정보를 제공하고 사용자가 관련 데이터 객체(800) 및 스크린 요소(802)를 입력 및 변형할 수 있게 한다. 프레임워크(206)는 애플리케이션 데이터 도메인(데이터 객체(800))와 UI 스크린 요소(802; UI 컨트롤) 간의 직접 맵핑(800)을 구현하여 사용자 인터페이스(202)의 효과적인 관리를 시스템에 제공한다. 애플리케이션 도메인 데이터 객체(800)에 대한 변화는 사용자 인터페이스(202)와 자동 동기화되고, 사용자 입력된 데이터는 애플리케이션 도메인 데이터 객체(800)에 자동 반영된다. 이러한 동기화의 배후의 주요 매커니즘은 짝지워진 스크린 요소(802)와 데이터 객체(800) 간의 맵핑(804)이다. 맵핑 시스템은 XML 등의 구조 언어로 표현된 메타데 이터를 사용하여 정의된 무선 애플리케이션(302)에 관한 것이다. 맵핑(804) 메커니즘은 사용자 인터페이스(202) 상의 동적 및 대화형 스크린의 생성을 가능하게 한다. 데이터 객체(800)에 대한 모든 변화는 사용자 인터페이스 상에 동기적으로 반영될 수 있으며 그 역도 또한 마찬가지이다. 맵핑(804)의 구현은 서버 대 장치 통지에 기초하여 무선 애플리케이션(302)의 구축을 용이하게 한다. 서버(웹 서비스(106))로부터 비동기 푸시된 데이터 객체(800) 갱신은 사용자 인터페이스(202) 상의 연결 UI 스크린 요소(802)에 의해 동기적으로 반영된다. 이들 맵핑(800)은 주식 거래, 뉴스 갱신, 속보, 날씨 갱신 등의 다양한 무선 애플리케이션(302)에서 이용가능하다.
애플리케이션 컴포넌트
도 2를 참조하면, 클라이언트 애플리케이션 프로그램(302)은 프레임워크(206)의 단말 런타임 환경 내에 실행되고 서비스(106)에 의해 제공된 웹 서비스 동작에 대한 액세스를 지원한다(도 1 참조). WSDL 및 SOAP 프로토콜 정의는 메시지/데이터 패턴을 명확하게 포함한다. WSDL 웹 서비스 정의에서, 이 동작은 메시지 및 데이터 부분의 개념을 사용하여 정의되며, 상기 메시지 및 데이터 부분은 웹 서비스 클라이언트 애플리케이션 프로그램(302)을 일련의 관련 데이터(400) 및 메시지(404) 컴포넌트로서 정의하는데 사용될 수 있다(도 4 참조).
도 4를 참조하면, 컴포넌트 애플리케이션 프로그램(302)의 블록도는, 데이터 컴포넌트(400) 및 프리젠테이션 컴포넌트(402)를 포함한다. 애플리케이션(302)의 나머지 메시지/워크플로우 부분(405)은 실행 환경(300)과의 통신(214)을 통해 워크 플로우 컴포넌트(406)에 의해 조정되는 메시지 컴포넌트(404)에 의해 제공될 수 있거나, 애플리케이션(302)의 하드 코딩된 요소(405)로서 (애플리케이션 개발자에 의해 정의된 바와 같이) 제공될 수 있다. 구조화된 정의 언어는, 각 요소가 하나 이상의 값을 가질 수 있도록 자원의 특정 속성을 나타내는 다수의 미리정의된 요소로 이루어지는 일련의 메타데이터 기록으로서 컴포넌트(400, 402)(사용되는 경우, 404)를 구성하는데 사용될 수 있다. 각 메타데이터 스키마는 통상 한정된 갯수의 요소, 각 요소의 명칭, 및 각 요소의 의미를 포함하지만 이에 국한되지 않는 한정된 특성을 갖는다. 예시적인 메타데이터 스키마는 두블린 코어(Dublin Core; DC), 앵글로 아메리칸 카탈로깅 룰(Anglo-American Cataloging Rules; AACR2), 정부 정보 위치확인 서비스(Government Information Locator Service; GILS), 인코서 아카이브 설명(Encoded Archives Description; EAD), IMS 글로벌 학습 컨소시엄(IMS Global Learning Consortium), 및 오스트레일리아 정부 위치확인 서비스(Australian Government Locator Service; AGLS)를 포함하지만 이에 국한되는 것은 아니다. 인코딩 구문은 컴포넌트(400, 402; 및 사용되는 경우, 404)의 메타데이터가 장치 기반구조(204)에 의해 처리될 수 있게 하고(도 2 참조), 인코딩 스키마는 XML, HTML, XHTML, XSML, RDF, 머신 판독가능 카탈로깅(MARC), 및 다목적 인터넷 메일 확장(MIME)을 포함하지만 이에 국한되는 것은 아니다.
도 4 및 도 8을 다시 참조하면, 데이터 컴포넌트(400)는, 예를 들면 네이티브 코드 또는 XML에서 표현된 애플리케이션 데이터 등의 컴포넌트 애플리케이션 프로그램(302)에 의해 사용되는 데이터 객체(800)를 정의한다. 데이터 컴포넌트 (400)가 나타낼 수 있는 데이터 객체(800)의 예는 주문(order), 사용자 및 재정 트랜잭션이다. 데이터 컴포넌트(400)는 어느 정보가 데이터 객체(800)를 나타내는데 필요한지, 어느 포맷으로 정보가 표현되는지를 정의한다. 예를 들면, 데이터 컴포넌트(400)는 수치로서 포맷된 주문에 대한 공유 식별자, 문자열로 포맷된 일련의 항목, 날짜-시간 포맷을 갖는 주문이 생성된 시간, 문자열로서 포맷된 주문의 상태, 데이터 컴포넌트(400) 중 다른 하나의 정의에 따라서 포맷된 주문을 배치한 사용자로 이루어진 주문 등을 - 이에 국한 되지 않음 - 정의할 수 있다. 데이터 부분(요소)은 통산 웹 서비스(106)의 커레오그래피(choreography) 규칙에 따라서 통상 메시지(105)로부터 메시지(105)로 전달되며, 바람직하게는, 데이터 객체(800)가 지속된다. 데이터 객체(800)는 웹 서비스(106)의 커레오그래피 정의(이용가능한 경우)에 따라서 동적 생성되거나 복소형 정의 및/또는 메시지 상호관계 정보에 기초하여 애플리케이션 설계자에 의해 정의될 수 있다. 스크린 컴포넌트(402)는 보다 상세히 후술하는 바와 같이 맵핑(804)을 통해 데이터 컴포넌트(400)에 연결될 수 있음을 알 수 있다(도 9 참조).
또한, 데이터 컴포넌트(400)는 HTML, XHTML, XML 및 다른 구조화된 정의 언어로 기재된 일련의 데이터 필드 정의로 이루어질 수 있으며, 여기서, 데이터 객체(800)는 데이터 필드 정의에 따른 데이터 인스턴스이다. 데이터 객체 정의는, 데이터 객체(800)가 특정 데이터 객체 정의의 인스턴스이도록 데이터 필드 및 그들의 대응 데이터형의 구조의 정의를 제공한다. 데이터 필드는 데이터 객체 정의를 포함하고, 각 데이터 필드는 관련 데이터형을 갖는다. 또한, 복합 데이터 필드는 서브 데이터 필드의 구조를 포함한다. 데이터 객체(800)의 정의는 애플리케이션(302)의 컴포넌트(400) 스키마에 포함된다. 이들 데이터 정의는 애플리케이션(302)에 의해 사용되는 바와 같이 데이터 객체(800)를 정의하는 데이터 모델을 제공한다. 따라서, 데이터 컴포넌트(400)는 데이터 객체(800)로서 인스턴스화된 경우 대응 데이터 필드 값의 포맷을 정의하도록 함께 그룹화된 일련의 하나 이상의 데이터 필드 정의이다. 데이터 컴포넌트(400) 정의는 주요 키 또는 복합 키이거나 키 없이 선택적으로 정의될 수 있다. 키는 맵핑(804)과 함께 사용되어 맵핑된 데이터(400) 및 스크린(402) 컴포넌트 쌍 사이의 공유 링크를 제공한다.
도 4를 다시 참조하면, 프리젠테이션/스크린 컴포넌트(402)는 사용자 인터페이스(202)에 의해 디스플레이된 바와 같이 애플리케이션(302)의 외관 및 동작을 정의한다. 프리젠테이션 컴포넌트(402)는 사용자 인터페이스(202)를 사용하여 사용자가 컴포넌트 애플리케이션(302)과 상호동작하는 경우에 실행될 GUI 스크린 및 컨트롤 및 동작을 규정할 수 있다. 예를 들면, 프리젠테이션 컴포넌트(402)는 스크린, 라벨, 편집 상자, 버튼 및 메뉴, 및 사용자가 편집 상자에서 타이핑하거나 버튼을 누르는 경우에 취할 동작을 정의할 수 있다. 다수의 웹 서비스 소비자는 웹 서비스 동작 결과의 시각적 프리젠테이션을 사용하기 때문에, 사용자 인터페이스 스크린을 디스플레이할 수 있는 그들 장치(100) 상에 런타임 환경을 제공한다.
파라미터를 스크린 컴포넌트(402)에 전달하는 예시적인 애플리케이션(302) 뿐만 아니라 이 전달된 파라미터를 수용하는 스크린 컴포넌트(402)에 대하여 이하 설명한다.
다음을 구비한 애플리케이션을 고려한다.
Figure 112005010266385-pat00005
데이터 컴포넌트(400) 'User'
Figure 112005010266385-pat00006
선택된 사용자의 세부사항을 디스플레이하는 버튼/메뉴 항목을 구비한, 모든 사용자명의 선택 상자를 열거한 스크린 컴포넌트(402) 'scrAllUsers'
Figure 112005010266385-pat00007
파라미터로서 사용되는 사용자에 대한 세부사항을 디스플레이하는 스크린 컴포넌트(402) 'scrUserInfo'
예시적인 XML 데이터 컴포넌트(400)
주요 키 필드 'name'을 갖는 데이터 컴포넌트(400) 'User'는 다음 메타데이터를 사용하여 정의될 수 있다:
<cData name="User" pkey="name"> <dfield name="name" type="String"/>
<dfield name="street" type="String" />
<dfield name="city" type="String" />
<dfield name="postal" type="String" />
<dfield name="phone" type="String" />
</cData>
예시적인 XML 프리젠테이션 컴포넌트(402)
'scrAllUsers' 스크린은 'User' 데이터 컴포넌트(400)의 모든 인스턴스의 'name' 필드에 맵핑된 선택 제어 'cbNames'를 정의할 수 있다. 스크린 메타데이터 정의는 파라미터로서 사용자 인터페이스(202)에 선택 및 전달된 파라미터 'User'를 갖는 스크린 'scrUserInfo'를 디스플레이하는 동작으로 버튼 또는 메뉴 항목을 포함한다.
<cScr name="scrAllUsers">
...
<choice name="cbNames" mapping="User[].name" />
...
<action screen="scrUserInfo" param="cbNames.selected" />
</cScr>
스크린 'scrUserInfo'는 파라미터로서 전달된 'User' 데이터 컴포넌트(400)의 특정 인스턴스의 'name' 필드에 맵핑된 편집 컨트롤 'ebName'을 정의한다:
<cScr name="scrUserInfo" param="User">
...
<edit name="ebName" mapping="User.name" />
</cScr>
도 4를 다시 참조하면, 애플리케이션(302)의 나머지 메시지 및 다른 워크플로우 부분(105)은 하드 코딩된 애플리케이션(302) 요소에 의해 제공될 수 있으며, 구조화된 정의 언어와 코드/스크립트로 각각 기재된 다른 컴포넌트(404, 406)로서 제공될 수 있다. 아토믹 메시지 컴포넌트(404)를 사용하는 경우, 이들은 컴포넌트 애플리케이션 프로그램(302)에 의해 사용되는 메시지(105)의 포맷을 정의하여 웹 서비스(106) 등의 외부 시스템과 통신하며, 예를 들면 네이비트 코드 또는 XML로 표현되는 메시지 데이터를 포함한다. 예를 들면, 메시지 컴포넌트(404) 중 하 나는 고유 식별자를 포함하는 주문을 이 주문에 대하여 배치하는 메시지, 주문의 상태, 및 주문에 관련된 주석 등 - 이에 국한되지 않음 - 을 나타낼 수 있다. 구조화된 정의 언어로 기재된 메시지 컴포넌트(404) 정의는 WSDL 메시지를 고유하게 나타낼 수 있고(그리고 이에 맵핑), 런타임 시에 동적으로 생성될 수 있다. 따라서, 동적 생성은 클라이언트 애플리케이션 메시지(105)에 대한, 그리고 예를 들면 WSDL 및 BPEL를 포함하면서 이에 국한되지 않는 웹 서비스 인터페이스를 표현하는데 사용되는 정의 언어에서의 표준 웹 서비스 메타데이터로부터의 관련 데이터 컨텐츠에 대한 컴포넌트 정의에 대하여 행해질 수 있다. 웹 서비스 메시지(105)는 동작 내에서 정의되며, 컴포넌트 애플리케이션 프로그램(302) 정의 내의 메시지 컴포넌트(404) 간의 상호관계가 정의된다. 이 상호관계는 소정의 메시지 파라미터를 사용하여 그리고/또는 후술하는 바와 같이 개별 워크플로우 컴포넌트(406)를 사용하여 행해질 수 있다.
도 4를 다시 참조하면, 컴포넌트 애플리케이션 프로그램(302)의 전자 워크플로우 컴포넌트(406)를 사용하는 경우, 이들은 상술한 프리젠테이션 컴포넌트(402)에 의해 규정되는 동작 또는 메시지(105; 도 1 참조)가 시스템(10)으로부터 도달하는 경우에 수행될 동작 등의 동작이 수행될 경우에 발생하는 처리를 한정한다. 프리젠테이션 워크플로우 및 메시지(105) 처리는 워크플로우 컴포넌트(406)에 의해 한정될 수 있다. 워크플로우 컴포넌트(406)는 ECMAScript를 포함하지만 이에 국한되지 않는 스크립트 언어 또는 프로그래밍 언어로 일련의 명령으로서 기재되고, 상술한 바와 같이 네이티브 코드에 컴파일되고 실행 컴포넌트(300)에 의해 실행될 수 있다. 워크플로우 컴포넌트(406)의 일 예는 값을 데이터에 할당하고, 스크린을 조작하며, 메시지(105)를 전송하는 것일 수 있다. 워크플로우 컴포넌트(406)는 메시지(105) 간의 상호관계를 지원하고 다른 컴포넌트(400, 402, 404) 상의 동작에 대한 일련의 규칙으로서 애플리케이션 플로우를 한정한다. 다수의 워크플로우 컴포넌트는 해당 애플리케이션 프로그램(302)에 대하여 한정될 수 있다.
통상, ECMA(유럽 컴퓨터 제조사 협회) 스크립트는 표준 스크립트 언어이며, 여기서, 스크립트는 컴퓨터 프로세서가 아닌 다른 프로그램에 의해 인터프리트되고 실행되는 일련의 명령을 일컫는다. 스크립트 언어의 몇몇 다른 예는 Perl, Rexx, VBScript, JavaScript, 및 Tcl/Tk이다. 통상, 스크립트 언어는 장치(100)와 같은 기존 시스템의 설비를 조작, 사용자 지정, 및 자동화하는데 사용되는 명령어이다. 이러한 시스템에서, 유용한 기능은 이미 사용자 인터페이스(도 2 참조)를 통해 이미 이용가능하고, 스크립팅 언어는 그 기능을 프로그램 컨트롤에 노출하는 메커니즘이다. 이 방식으로, 장치(100)는 스크립팅 언어의 성능을 완성하는 객체 및 설비의 호스트 런타임 환경을 제공한다.
컴포넌트 기반 애플리케이션(302)에 대한 예시적인 컴포넌트(404, 406)은 다음과 같다:
예시적인 XML 메시지 컴포넌트(404)
<msg name="ordConfirmation" type="respnose" action="mhConfirmation">
<part name="orderId" type="String" />
<part name="status" type="String" />
</msg>
...
예시적인 ECMAScript 워크플로우 컴포넌트(406)
<actions>
<function name="mhConfirmation">
key=ordConfirmation.orderld;
order=Order.get(key);
order.orderStatus=ordConfirmation.status;
scrConfirmation.display(order);
</function>
...
</actions>
데이터(400), 메시지(404), 및 XML 또는 그 파생을 사용한 프리젠테이션(402) 컴포넌트와 ECMAScript 언어 또는 그 부분집합을 사용한 워크플로우 컴포넌트(406)의 표현은 애플리케이션 개발자가 임의의 특정 플랫폼 또는 환경으로부터 웹 서비스 클라이언트를 추출하고 원리상 "한번 개발하면 모든곳에서 동작(develop once run everywhere)" 애플리케이션을 구현할 수 있게 한다. 다음 예는 웹 서비스 클라이언트 애플리케이션 프로그램(302)이 XML을 포함하지만 이에 국한되지 않은 구조화된 정의 언어와, ECMAScript, 정의된 컴포넌트를 포함하지만 이에 국한되지 않은 플랫폼 독립 스크립팅/프로그래밍 언어를 사용하여 표현될 수 있다.
또한, 도 4를 참조하면, 상술한 바와 같이, 메시지 컴포넌트(404)는 메시지(105)의 입출력에 대하여 요청 데이터를 중계할 수 있음을 알 수 있다. 대응 데이터 컴포넌트(400)는 프리젠테이션 컴포넌트(402)에 의해 사용자 인터페이스(202; 도 2 참조) 상의 후속 프리젠테이션에 대하여 장치(100)의 메모리 모듈(210; 도 2 참조) 내의 데이터의 저장을 조정한다. 워크플로우 컴포넌트(406)는 데이터(400), 프리젠테이션(402), 및 메시지(404) 컴포넌트 간의 데이터 전송을 조정할 수 있다. 이러한 클라이언트 런타임은 전자 데이터 객체(800)를 직접 저장 및 갱신할 수 있다.
컴포넌트 기반 애플리케이션 모델의 예시적인 기본 동작
동작 열거 처리 맵핑(804)을 이하 도 9, 도 10, 및 도 11을 참조하여 설명한다.
도 1, 도 3 및 도 6을 참조하면, 예를 들어, 동작(600)은, 장치(100)가 메시지 데이터를 포함하는 응답 메시지(105)를 수신하는 경우(602), 적절한 워크플로우 컴포넌트(406)가 적절한 메시지 컴포넌트(404)에 따라서 메시지(105)의 데이터 컨텐츠를 인터프리트(604)하는 것을 나타낸다. 그 후, 워크플로우 컴포넌트(406)는 데이터 컨텐츠를 처리하고(606) 메모리 모듈(210)의 후속 저장(612)을 위해 대응 데이터 컴포넌트(400)에 데이터를 삽입한다(910; 도 2 참조). 또한, 필요시, 워크플로우 컴포넌트(406)는 또한 사용자 인터페이스(202) 상의 후속 디스플레이(614)에 대하여 적절한 프리젠테이션 컴포넌트(402)에 데이터를 삽입한다(608; 도 2 참조).
도 1, 도 3 및 도 7을 참조하면, 동작(700)은, 사용자가 사용자 인터페이스(202)를 통해 사용자 인터페이스 요소 상에서 수행하는(703) 메뉴 항목을 선택 또는 버튼을 누르는 등의 동작에 대한 데이터 입력(702)을 나타낸다(도 2 참조). 관련 워크플로우 컴포넌트(406)는 적절한 프리젠테이션 컴포넌트(404)에 따라서 입력 데이터를 인터프리트하고(704) 적절한 데이터 컴포넌트(400)에 의해 정의된 데이터 엔티티를 생성한다(706). 그 후, 워크플로우 컴포넌트(406)는 데이터 컴포넌트(400)를 메모리 모듈(210) 내의 후속 저장(712)을 위해 사용자에 의해 제공되는 입력 데이터를 채운다(710; 도 2 참조). 또한, 워크플로우 컴포넌트(406)는 메시지 컴포넌트(404)에 의해 한정되는 바와 같이 메시지(105) 내의 웹 서비스에 대한 데이터 엔티티로서 데이터 입력의 후속 전송(714)을 위해 적절한 메시지 컴포넌트(404)에 데이터 입력을 삽입한다(708).
상술한 동작에서, 워크플로우(406) 및 메시지(404) 컴포넌트의 동작은 애플리케이션(302)의 하드 코딩된 부분(405)으로서 포함되는 경우 대응하여 그러지 않을 수 있음을 알 수 있다.
미리 정의되고 동적인 스크린 생성
무선 애플리케이션(302)은 데이터 컴포넌트(400)와 스크린 컴포넌트(400)의 필드 정의 내의 애플리케이션 디자인 단계에서 식별된 이들 집합들 간의 관계(맵핑(800))로, 스크린 요소(802)와 데이터 객체(800)의 소정 집합을 가질 수 있다. 이 모델은 사용자와 데이터 객체(800)에 제공된 스크린 요소(802) 간의 맵핑(804)이 XML 등의 구조 언어를 사용하여 컴포넌트 필드 정의에서 메타데이터로 표현될 수 있기 때문에 소정 스크린과 데이터 관계 모델이라 불릴 수 있다.
또한, 사용자 인터페이스(202)의 스크린은 스크린 요소(802)에 관련된 데이터 객체(800)의 구조에 기초하여 동적 생성될 수 있다. 몇몇 상황에서, 메시지(105)를 통해 서버(웹 서비스(106))로부터의 입력으로서 수신되는 데이터 스트림의 포맷(도 1 참조)은 미리 예측될 수 없다(예를 들어, 임의의 XML을 리턴하는 웹 서비스(106) 동작). 수신 데이터 스트림이 구조 포맷(예를 들어, XML)으로 제공되는 경우, 장치(100)는 데이터 스트림으로 나타낸 데이터 객체(800)를 제공하기 위해서 스크린 포맷(예를 들어, UI 컨트롤, 레이아웃 등) 상의 정의된 번역 규칙을 사용하여 프레임워크(206)에 의해 지능형 예측을 행할 수 있다. 이는, 데이터 스트림 내의 (예를 들면) XML 상에서 동작하여 맵핑 관리자(312; 도 8 참조)에 의해 인터프리트되는 대응 데이터 컴포넌트(400)를 구성하고 프레임워크(206)에 의해 최적으로 결정된 맵핑 스크린 컴포넌트(402)를 통해 대응 스크린 요소(802)를 할당하여 변형된 데이터 스트림의 데이터 컨텐츠를 처리함으로써, 행해질 수 있다. XML 컨텐츠에 대한 스키마는 무선 애플리케이션(302)의 개발 동안 미리 정의되고, 맵핑 관리자(312)와 변역 규칙의 개발자에 의해 잘 이해되는 컴포넌트 정의 포맷으로 스키마에 기초한 데이터 스트림을 번역하는 규칙일 수 있다. 번역 규칙은 맵핑 관리자(312)의 일부일 수 있으며 가장 흔하게 겪는 (예를 들면)XML 구조 데이터 스트림 컨텐츠를 번역하도록 설계될 수 있다. 또한, 사용자는 장치(100)에 저장되기 전에 또는 서버에 전송되기 전에 UI 필드를 갱신하여 데이터를 변형할 기회를 가질 수 있다.
다음 예는 XML 스키마의 임의의 XML 데이터 스트림 단편을 나타낸다.
<dataNode1 attr1='var1' attr2='var2'>
<subDataNode1>abcdefg</subDataNode1>
<subDataNode2>222</subDataNode2>
<subDataNode3>333</subDataNode3>
</dataNode1>
<dataNode1 attr1='var1' attr2='var2'>
<subDataNode1>hijklmnop</subDataNode1>
<subDataNode2>555</subDataNode2>
<subDataNode3>666</subDataNode3>
</dataNode1>
맵핑 관리자(312)는 데이터 필드 정의를 포함하는 애플리케이션 개발자에 의해 제공된 스키마 정의를 사용하고,
<dataEntity name='dataNode1'>
<dfield name='subDataNode1' type='String' />
<dfield name='subDataNode2' type='int' />
<dfield name='subDataNode3' type='int' />
</dataEntity>
번역 규칙을 동적으로 적용하여 애플리케이션 허용가능 포맷(제공된 스키마 당)으로 XML 데이터 스트림으로 변환하고 잘 구성된 XML 데이터 객체(400)를 생성 한다:
<dataEntity name='dataNode1' key='0'>
<dfield name='subDataNode1>abcdefg</>
<dfield name='subDataNode2'>222</>
</dataEntity>
<dataEntity name='dataNode1' key='1'>
<dfield name='subDataNode1>hijklmnop</>
<dfield name='subDataNode2' type='int'>555</>
</dataEntity>
사용자 인터페이스 상의 데이터 객체의 프리젠테이션
사용자 인터페이스(202)의 스크린이 표시된 경우, 맵핑된 스크린 요소(802)에 대하여 디스플레이된 데이터 객체(800)가 정해질 필요가 있다. 초기값에 대하여 사용될 특정 데이터 객체(800)를 결정하는 상이한 옵션은 다음과 같다:
스크린 파라미터 기반 초기화
통상, 맵핑된 스크린 요소(802)에 대한 값을 갖는 데이터 컴포넌트(400)의 데이터 객체(800)는 파라미터로서 사용자 인터페이스(202)의 스크린에 전달된다. 상술한 예시적인 스크린 컴포넌트(404)에서, 스크린 'scrUserInfo'는 사용자의 데이터 객체(800)를 파라미터로서 수신한다. 사용자 데이터 컴포넌트(400)의 데이터 필드 정의에 맵핑된 스크린 상의 스크린 요소(802)는 이 파라미터로부터 데이터 값을 디스플레이할 수 있다.
미결정 초기값
맵핑(804)이 스크린에 대하여 한정되지만, 관련 데이터 컴포넌트(400)의 어떤 초기 데이터 객체(800)도 결정되지 않은 경우, 어떤 초기 데이터값도 맵핑된 스크린 요소(802)에 대하여 디스플레이되지 않을 수 있다. 이 예는 새로운 사용자에 대한 데이터값을 입력하도록 한정된 스크린일 수 있다. 초기 사용자 데이터 컴포넌트(400)는 관련되지 않을 수 있다. 사용자가 스크린 요소(802)의 데이터 필드에 새로운 값을 입력한 후에, 맵핑 정의는 사용자 데이터 갱신에 관하여 후술하는 바와 같이 이러한 데이터 컴포넌트(400)의 새로운 데이터 객체(800)를 생성하는데 사용된다.
모든 데이터 객체 리스트
스크린 요소(802)의 선택 컨트롤/리스트 유형에 있어서, 맵핑(804)은 모든 생성된 데이터 객체(800)가 상술한 예시적인 스크린 컴포넌트(404)에서 나타낸 바와 같이 사용될 것임을 규정할 수 있다.
스크린 프리젠테이션
도 3, 도 8 및 도 9를 참조하면, 이 시나리오(850)는 새로운 스크린이 사용자 인터페이스(202) 상에 표시된 경우 스크린 요소(802)에 대하여 실행되는 단계를 나타낸다. 단계(852)에서, 맵핑 관리자(312)는 데이터 컴포넌트(400) 필드에 맵핑된 스크린 요소(802)를 검출한다. 단계(854)에서, 맵핑 관리자(312)는 이 데이터 객체(800)의 유형이 스크린에 부착되는지, 즉, 파라미터로서 전달되는지를 점검한다. 그러한 경우, 맵핑 관리자는 단계(858)에서 데이터 객체(800)의 데이터 필드 값을 검색하여 이를 프리젠테이션 관리자(308)에 전달하고 이를 스크린 상에 디스플레이한다. 그렇지 않은 경우, 필드형에 대한 기준값이 단계(856)에서 스크린(202) 상에 디스플레이된다(예를 들면, 스크린에 대하여 블랭크, 수치에 대하여 0).
데이터 갱신 제어
도 3 및 도 8을 참조하면, 맵핑(804) 데이터베이스에 기초하여, 사용자가 입력한 값은 메모리(210) 내의 관련 데이터 객체(800)의 필드 값에 반영된다.
이 처리는 다음 기능을 포함할 수 있다.
Figure 112005010266385-pat00008
입력 확인
Figure 112005010266385-pat00009
데이터 생성
Figure 112005010266385-pat00010
데이터 갱신
입력 확인
사용자 입력된 데이터의 확인은 자동적으로 데이터 cmp(예를 들어, 전화번호)에 기초할 수 있다.
데이터 생성
입력된 값에 기초하여, 새로운 데이터 키 값을 만나는 경우, 새로운 데이터 객체(800)가 생성될 수 있다. 상술한 예시적인 데이터 컴포넌트(400)에서, 이전에 미정의된 이름이 입력되면, 새로운 사용자 데이터 객체(800)가 생성된다.
데이터 갱신
기존 데이터 컴포넌트(400)에 대한 데이터 객체(800)의 필드 값은 사용자 인터페이스(202) 상의 사용자 입력의 결과로서 갱신될 수 있다.
갱신 동작
양방향 갱신 모델은 두가지 모드에서 동작할 수 있다:
Figure 112005010266385-pat00011
자동 커미트(automatic commit)
데이터는 사용자가 스크린을 떠나는 경우 커미트된다.
Figure 112005010266385-pat00012
관리된 트랜잭션 모드
특정 메뉴 동작(스크린 요소(802))이 데이터를 처리하도록 맵핑된다. 예를 들면, 다수의 주문 스크린에서, 마지막 스크린 상의 '제출' 메뉴 항목은 결과적인 데이터 객체(800)를 갱신/생성할 수 있다. 다른 메뉴 항목(예를 들어, '취소')은 입력된 데이터를 폐기할 수 있다.
도 3, 도 8 및 도 10을 참조하면, 후술하는 시나리오(870)는 데이터 객체(800)로 사용자 인터페이스(202) 상의 사용자 입력된 데이터(사용자 이벤트)를 맵핑하는 흐름을 나타낸다. 단계(872)에서, 사용자가 스크린 요소(802) 상의 데이터를 입력/갱신함에 따라, UI 관리자(308)는 이 값을 맵핑 관리자(312)에게 전달한다. 단계(874)에서, 이것이 맵핑된 스크린 요소(802)이면, 맵핑 관리자(312)는 적절한 데이터 컴포넌트(400)를 결정하여 데이터 관리자(310)로부터 데이터 객체(800)를 요청한다. 단계(876)에서, 데이터 관리자(312)는 스크린 요소(802)에 입력된 값이 이러한 스크린 요소(802)가 맵핑되는 데이터 컴포넌트(400) 필드 유형에 맵핑되었는지를 확인한다. 단계(878)에서, 데이터 관리자(310)는 임시 저장소에 변형된 데이터값을 커미트되지 않은 것 -'더티(dirty)' 데이터 - 으로서 유지한다. 또한, 데이터 관리자(310)는 이것이 기존 데이터 객체(800)의 갱신인지 또는 새로운 데이터 객체(800)의 생성인지를 결정한다. 단계(880)에서, 사용자 이벤트는 커미트(옵션 A) 또는 중단(옵션 B)으로서 결정된다. 커미트된 결정에 대하여:
옵션 A: 커미트,
1) 사용자는 커미트 동작에 맵핑된 버튼 또는 메뉴 항목(스크린 요소(802))을 선택한다;
2) UI 관리자(308)는 동작을 맵핑 관리자(312)에 통지한다;
3) 맵핑 관리자(312)는 데이터 관리자(310)에 변경을 요청한다;
4) 데이터 관리자(310)는 변경을 행하고 메모리(210)에 데이터 객체(800)를 저장한다.
중단 결정에 대하여: 옵션 B 롤백(rollback),
1) 사용자는 커미트 동작에 맵핑되지 않은 버튼 또는 메뉴 항목(스크린 요소(802))를 선택하여 스크린을 떠날 것을 선택한다;
2) UI 관리자(308)는 동작을 맵핑 관리자(312)에 통지한다;
3) 맵핑 관리자(312)는 데이터 관리자(310)에게 변경을 롤백할 것을 요청한다.
4) 데이터 관리자(312)는 변경을 폐기한다 - 이는 새로운 것이 데이터 컴포넌트(400) 맵핑에 대한 스크린 컴포넌트(402)의 결과로서 생성된 경우(804) 개별 필드에 대한 변경만을 폐기하거나 전체 데이터 객체(800)를 제거(800)하는 것을 의미할 수 있다.
컨트롤 갱신 데이터
장치(100)가 외부 소스(예를 들면, 서비스(106))로부터 데이터 갱신을 비동기로 수신한 경우, 스크린 요소(802)에 관련된 데이터 값에 대한 변화는 새로운 정보를 갖는 스크린 리프레시를 야기할 수 있다. 도 3, 도 8 및 도 11을 참조하면, 서버(106)로부터 메시지(105)를 수신할 때(952), 메시지 관리자(312)는 이러한 메시지(105)가 프레임워크(206) 내에서 현재 실행하는 애플리케이션(302)의 데이터 컴포넌트(400)에 맵핑되는지를 판정한다(984). 그러한 경우, 다음 추가 단계가 수행된다: 단계(956)에서, 장치 프레임워크(256)는 서버(106)로부터 데이터 변화에 대한 통지를 수신한다; 단계(958)에서, 메시지 관리자(306)는 데이터 관리자(310)에 통지하여 데이터 객체(800)에 대한 임의의 관련된 데이터 갱신을 수행한다; 단계(960)에서, 메시지 관리자(306)는 또한 맵핑 관리자(312)에게 데이터 변화를 통지한다; 단계(962)에서, 맵핑(804) 메타데이터를 사용하여, 맵핑 관리자(312)는 데이터 변화가 현재 스크린에 관련되는지를 확인한다; 단계(964)에서, 변화가 현재 디스플레이된 정보에 관련되지 않으면, 맵핑 관리자(312)는 UI 관리자(308)에 스크린 리프레시를 요청한다; 단계(966)에서, 스크린은 갱신된 데이터 객체(800)를 디스플레이하도록 리프레시된다. 선택적으로는, 단계(968)에서, 메시지(105)는 사용자 인터페이스(202) 상에 디스플레이된 스크린 요소(802)의 현재 값에 영향을 주지않는다.
본 발명은 하나 이상의 예시적인 시스템 및 방법에 대하여 설명하지만, 많은 변형이 당업자에게 명백할 수 있으며, 이러한 변형은 본 발명의 범위 내에 있다. 예를 들면, XML 및 ECMAScript의 부분집합이 제공된 예에 사용되지만, 다른 언어 및 언어 변형이 컴포넌트 애플리케이션(302)을 한정하는데 사용될 수 있다. 또한, 상술한 맵핑(804)에 대한 대안으로서, 데이터 필드의 정의가 스크린 컴포넌트(402; 도 4)에 포함될 수 있다. 따라서, 스크린 요소(802)의 생성은 스크린 컴포넌트(402) 정의에 포함된 데이터 필드 정의에 기초할 수 있으며, 데이터 컴포넌트(400)는 포함된 데이터 필드 정의를 갖는 대응 스크린 컴포넌트(402)에 맵핑된다(804). 따라서, 데이터 객체(800)의 생성은 맵핑된 스크린 컴포넌트(402)에 포함된 데이터 필드 정의에 의존할 수 있다.
상술한 본 발명에 따르면, 임의의 명시적 코딩을 행할 필요뿐만 아니라 준비된 경우 애플리케이션에 의해 사용되는 장치 자원을 감소시킴으로써 무선 애플리케이션 개발에 대한 복잡성을 낮출 수 있으며, 애플리케이션 데이터 도메인과 사용자 인터페이스(UI) 스크린 및 컨트롤 간의 직접 맵핑을 구현하여 무선 장치의 UI를 효율적으로 관리할 수 있다.

Claims (38)

  1. 무선 장치의 사용자 인터페이스 상에 디스플레이하기 위해 상기 무선 장치 상에서 실행하는 컴포넌트 애플리케이션의 스크린 요소를 데이터 객체에 기초하여 생성하는 방법에 있어서 - 상기 컴포넌트 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 상기 컴포넌트는 구조화된 정의 언어로 정의됨 -,
    디스플레이용으로 선택된 상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하는 단계;
    상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하는 단계 - 상기 맵핑은, 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 상기 맵핑을 나타내는 식별자에 의해 정의된 바와 같이 규정함 -;
    상기 맵핑 식별자에 따라 상기 맵핑에 의해 맵핑된 상기 데이터 컴포넌트를 선택하는 단계;
    상기 맵핑된 데이터 컴포넌트의 상기 데이터 필드 정의에 대응하는 데이터 객체 필드 값을 획득하는 단계; 및
    상기 맵핑된 데이터 컴포넌트에서 정의된 상기 데이터 필드 정의의 포맷에 따라 상기 데이터 객체 필드 값을 포함하도록 상기 스크린 요소 정의로부터 스크린 요소를 생성하는 단계를 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  2. 제1항에 있어서, 상기 데이터 컴포넌트의 복수의 데이터 필드 정의는 상기 맵핑에 의해 표시된 바와 같이 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 사이에서 공유되는 것을 특징으로 하는 스크린 요소 생성 방법.
  3. 제2항에 있어서, 상기 스크린 컴포넌트의 상기 스크린 요소 정의 중 대응하는 하나의 스크린 요소 정의에 상기 복수의 데이터 필드 정의를 상기 식별자에 의해 표시된 바와 같이 연결하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  4. 제3항에 있어서, 상기 스크린 요소에 관련된 상기 사용자 인터페이스의 사용자 이벤트를 검출하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  5. 제4항에 있어서, 상기 사용자 이벤트에 관련된 상기 스크린 요소의 연결 데이터 컴포넌트에 대응하는 상기 스크린 컴포넌트에서의 상기 맵핑을 식별하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  6. 제5항에 있어서, 상기 연결 데이터 컴포넌트의 상기 데이터 필드 정의를 사용하여 메모리 내의 상기 데이터 객체를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  7. 제5항에 있어서, 상기 연결 데이터 컴포넌트의 상기 데이터 필드 정의를 사용하여 메모리 내의 상기 데이터 객체의 새로운 객체를 생성하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  8. 제1항에 있어서, 상기 데이터 객체 필드 값은 상기 사용자 인터페이스에 파라미터로서 전달됨으로써 획득되는 것을 특징으로 하는 스크린 요소 생성 방법.
  9. 제1항에 있어서, 제1 스크린 요소 정의가 상기 식별자 중 제1 식별자에 의해 상기 데이터 컴포넌트 중 제1 데이터 컴포넌트에 맵핑되고, 제2 스크린 요소 정의가 상기 식별자 중 제2 식별자에 의해 상기 데이터 컴포넌트 중 상기 제1 데이터 컴포넌트와 상이한 제2 데이터 컴포넌트에 맵핑되는 것을 특징으로 하는 스크린 요소 생성 방법.
  10. 제1항에 있어서, 상이한 스크린 요소 정의들이, 상기 식별자를 사용하여 동일한 데이터 컴포넌트에 맵핑되는 것을 특징으로 하는 스크린 요소 생성 방법.
  11. 제1항에 있어서, 상기 구조화된 정의 언어는 XML 기반인 것을 특징으로 하는 스크린 요소 생성 방법.
  12. 제1항에 있어서, 상기 식별자는 단순 주요 키인 것을 특징으로 하는 스크린 요소 생성 방법.
  13. 제1항에 있어서, 상기 식별자는 복합 키인 것을 특징으로 하는 스크린 요소 생성 방법.
  14. 제1항에 있어서, 메시지 데이터 객체를 포함하는 비동기 통신 메시지를 상기 장치에 결합된 네트워크를 통해 상기 장치에 의해 수신하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  15. 제14항에 있어서, 상기 장치 상에 제공된 상기 애플리케이션의 데이터 컴포넌트에 대응하는 상기 맵핑에 대한 상기 메시지를 점검하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  16. 제15항에 있어서, 상기 데이터 컴포넌트를 상기 메시지에 따라 갱신하고 상기 데이터 컴포넌트에 연결된 상기 스크린 요소에서 상기 갱신을 반영하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  17. 제15항에 있어서, 상기 연결 데이터 컴포넌트의 상기 데이터 필드 정의를 사용하여 메모리 내의 상기 메시지에 대응하는 상기 데이터 객체를 생성하는 단계를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 방법.
  18. 무선 장치의 사용자 인터페이스 상에 디스플레이되는 스크린 요소에 있어서의 변화에 기초하여 상기 무선 장치 상에서 실행하는 컴포넌트 애플리케이션의 데이터 객체를 생성하는 방법에 있어서 - 상기 컴포넌트 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 상기 컴포넌트는 구조화된 정의 언어로 정의됨 -,
    상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하는 단계;
    상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하는 단계 - 상기 맵핑은 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 규정함 -;
    상기 맵핑에 의해 맵핑된 상기 데이터 컴포넌트를 선택하는 단계;
    상기 맵핑된 데이터 컴포넌트에 대응하는 상기 스크린 요소로부터, 변화된 값을 획득하는 단계; 및
    상기 맵핑된 데이터 컴포넌트에서 정의된 상기 데이터 필드 정의의 포맷에 따라 상기 데이터 객체의 데이터 필드 값에 상기 변화된 값을 할당하는 단계를 포함하는 것을 특징으로 하는 데이터 객체 생성 방법.
  19. 장치의 사용자 인터페이스 상에 디스플레이하기 위해 상기 장치 상에서 실행하는 컴포넌트 애플리케이션의 스크린 요소를 데이터 객체에 기초하여 생성하는 시스템에 있어서 - 상기 컴포넌트 애플리케이션은 적어도 하나의 데이터 필드 정의를 갖는 데이터 컴포넌트와 적어도 하나의 스크린 요소 정의를 갖는 스크린 컴포넌트를 포함하고, 상기 컴포넌트는 구조화된 정의 언어로 정의됨 -,
    디스플레이용으로 선택된 상기 스크린 요소에 대응하는 상기 스크린 컴포넌트를 선택하는 수단;
    상기 스크린 컴포넌트에 존재하는 적어도 하나의 맵핑을 식별하는 수단 - 상기 맵핑은, 상기 스크린 컴포넌트와 상기 데이터 컴포넌트 간의 관계를 상기 맵핑을 나타내는 식별자에 의해 정의된 바와 같이 규정함 -;
    상기 맵핑 식별자에 따라 상기 맵핑에 의해 맵핑된 상기 데이터 컴포넌트를 선택하는 수단;
    상기 맵핑된 데이터 컴포넌트의 상기 데이터 필드 정의에 대응하는 데이터 객체 필드 값을 획득하는 수단; 및
    상기 맵핑된 데이터 컴포넌트에서 정의된 상기 데이터 필드 정의의 포맷에 따라 상기 데이터 객체 필드 값을 포함하도록 상기 스크린 요소 정의로부터 스크린 요소를 생성하는 수단을 포함하는 것을 특징으로 하는 스크린 요소 생성 시스템.
  20. 제19항에 있어서, 상기 데이터의 복수의 데이터 필드 정의는 상기 맵핑에 의해 표기된 바와 같이 상기 스크린 컴포넌트 및 상기 데이터 컴포넌트 사이에 공유되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  21. 제20항에 있어서, 상상기 복수의 데이터 필드 정의는 상기 식별자에 의해 표기된 바와 같이 상기 스크린 컴포넌트의 스크린 요소 정의 중 대응하는 하나의 스크린 요소 정의에 연결되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  22. 제21항에 있어서, 상기 스크린 요소 생성 수단은 상기 스크린 요소에 관련된 상기 사용자 인터페이스의 사용자 이벤트를 검출하도록 더 구성되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  23. 제22항에 있어서, 상기 적어도 하나의 맵핑을 식별하는 수단은 상기 사용자 이벤트에 관련된 상기 스크린 요소의 연결 데이터 컴포넌트에 대응하는 상기 스크린 컴포넌트에서의 상기 맵핑을 식별하도록 더 구성되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  24. 제23항에 있어서, 상기 데이터 객체 필드 값을 획득하는 수단은 상기 연결 데이터 컴포넌트의 상기 데이터 필드 정의를 이용하여 메모리 내의 상기 데이터 객체를 갱신하도록 더 구성되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  25. 제24항에 있어서, 상기 데이터 객체 필드 값을 획득하는 수단은 상기 연결 데이터 컴포넌트의 상기 데이터 필드 정의를 이용하여 메모리 내의 상기 데이터 객체의 새로운 객체를 생성하도록 더 구성되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  26. 제19항에 있어서, 상기 데이터 객체 필드 값은 상기 사용자 인터페이스에 파리미터로서 전달됨으로써 획득되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  27. 제19항에 있어서, 제1 스크린 요소 정의가 상기 식별자 중 제1 식별자에 의해 상기 데이터 컴포넌트 중 제1 데이터 컴포넌트에 맵핑되고, 제2 스크린 요소 정의가 상기 식별자 중 제2 식별자에 의해 상기 데이터 컴포넌트 중 상기 제1 데이터 컴포넌트와 상이한 제2 데이터 컴포넌트에 맵핑되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  28. 제19항에 있어서, 상이한 스크린 요소 정의들이, 상기 식별자를 사용하여 동일한 데이터 컴포넌트에 맵핑되는 것을 특징으로 하는 스크린 요소 생성 시스템.
  29. 제19항에 있어서, 상기 구조화된 정의 언어는 XML 기반인 것을 특징으로 하는 스크린 요소 생성 시스템.
  30. 제19항에 있어서, 상기 식별자는 단순 주요 키인 것을 특징으로 하는 스크린 요소 생성 시스템.
  31. 제19항에 있어서, 상기 식별자는 복합 키인 것을 특징으로 하는 스크린 요소 생성 시스템.
  32. 제19항에 있어서, 메시지 데이터 객체를 포함하는 비동기 통신 메시지를 상기 장치에 결합된 네트워크를 통해 상기 장치에 의해 수신하는 통신 관리자를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 시스템.
  33. 제32항에 있어서, 상기 장치 상에 제공된 상기 애플리케이션의 데이터 컴포넌트에 대응하는 상기 맵핑에 대한 상기 메시지를 점검하도록 구성되는 맵핑 관리자 더 포함하는 것을 특징으로 하는 스크린 요소 생성 시스템.
  34. 제33항에 있어서, 상기 데이터 컴포넌트를 상기 메시지에 따라 갱신하고 상기 데이터 컴포넌트에 연결된 상기 스크린 요소에서 상기 갱신을 반영하도록 구성되는 데이터 관리자를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 시스템.
  35. 제33항에 있어서, 상기 연결 데이터 컴포넌트의 상기 데이터 필드 정의를 사용하여 메모리 내의 상기 메시지 데이터 객체를 생성하도록 구성되는 데이터 관리자를 더 포함하는 것을 특징으로 하는 스크린 요소 생성 시스템.
  36. 컴포넌트 애플리케이션의 스크린 요소를 생성하기 위해 제19항 내지 제35항 중 어느 한 항의 시스템과 사용자 디스플레이를 포함하는 무선 통신 장치.
  37. 제1항 내지 제18항 중 어느 한 항에 기재된 방법을 구현하기 위해 장치 상에서 실행 가능한 프로그램 코드를 포함하는 컴퓨터에 의해 판독 가능한 기록 매체.
  38. 제37항에 있어서, 상기 컴퓨터에 의해 판독 가능한 기록 매체는 상기 장치에 포함되는 것을 특징으로 하는 컴퓨터에 의해 판독 가능한 기록 매체.
KR1020050016042A 2004-02-27 2005-02-25 사용자 인터페이스와 데이터 컴포넌트 간의 지능형 맵핑을이용한 무선 애플리케이션 구축 시스템 및 방법 KR100795765B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04251160.0 2004-02-27
EP04251160A EP1571547A1 (en) 2004-02-27 2004-02-27 System and method for building wireless applications with intelligent mapping between user interface and data components

Publications (2)

Publication Number Publication Date
KR20060042393A KR20060042393A (ko) 2006-05-12
KR100795765B1 true KR100795765B1 (ko) 2008-01-21

Family

ID=34746128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050016042A KR100795765B1 (ko) 2004-02-27 2005-02-25 사용자 인터페이스와 데이터 컴포넌트 간의 지능형 맵핑을이용한 무선 애플리케이션 구축 시스템 및 방법

Country Status (9)

Country Link
EP (1) EP1571547A1 (ko)
JP (3) JP2005259131A (ko)
KR (1) KR100795765B1 (ko)
CN (1) CN100424637C (ko)
AU (1) AU2005200852A1 (ko)
CA (1) CA2498540C (ko)
MX (1) MXPA05002276A (ko)
SG (3) SG172622A1 (ko)
TW (1) TWI314415B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101117165B1 (ko) * 2010-05-28 2012-03-07 단국대학교 산학협력단 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100808662B1 (ko) 2005-12-08 2008-02-29 한국전자통신연구원 Sca 기반 애플리케이션 시스템 및 이의 운용 중컴포넌트 교체방법
EP1816562A1 (en) * 2006-02-03 2007-08-08 Research In Motion Limited System and method for extending a component-based application platform with custom services
EP1835397A1 (en) * 2006-02-27 2007-09-19 Software Ag Application framework
US20080301236A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Contextual social language
US8103865B2 (en) 2007-08-01 2012-01-24 Phunware, Inc. Server method and system for rendering content on a wireless device
US8478245B2 (en) 2007-08-01 2013-07-02 Phunware, Inc. Method and system for rendering content on a wireless device
US8667412B2 (en) * 2007-09-06 2014-03-04 Google Inc. Dynamic virtual input device configuration
US7979350B1 (en) 2007-10-23 2011-07-12 Gotv Networks, Inc. Method and system for accessing wireless account information
US8060594B1 (en) 2007-10-23 2011-11-15 Phunware, Inc. Client-side wireless communications link support for mobile handheld devices
US9015692B1 (en) 2007-10-23 2015-04-21 Phunware, Inc. Method and system for customizing content on a server for rendering on a wireless device
US8009619B1 (en) 2007-10-23 2011-08-30 Phunware, Inc. Server-side wireless communications link support for mobile handheld devices
KR100973543B1 (ko) * 2008-01-15 2010-08-02 포항공과대학교 산학협력단 모바일 응용 애플리케이션의 동적 아키텍처를 모델링하기위한 방법 및 그 장치
US8271579B2 (en) 2008-04-07 2012-09-18 Phunware, Inc. Server method and system for executing applications on a wireless device
US20090251488A1 (en) * 2008-04-07 2009-10-08 Hands-On Mobile, Inc. Method and system for executing applications on a wireless device
US8209355B2 (en) * 2008-07-28 2012-06-26 Microsoft Corporation Automatic user interface generation for entity interaction
TWI393047B (zh) * 2009-06-30 2013-04-11 Accton Technology Corp 一種智慧型顯示裝置
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
KR101878488B1 (ko) 2011-12-20 2018-08-20 한국전자통신연구원 대화 연관 컨텐츠 제공 방법 및 장치
US10296562B2 (en) 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9342300B2 (en) 2014-03-11 2016-05-17 Blue Wolf Group, LLC Analyzing components related to a software application in a software development environment
CN110012040B (zh) * 2018-01-04 2022-06-21 武汉斗鱼网络科技有限公司 一种移动终端中多状态的挂件更新方法及系统
CN108920133B (zh) * 2018-06-14 2021-06-18 北京三快在线科技有限公司 跨语言编程方法、装置、电子设备及存储介质
CN111414410B (zh) * 2019-01-07 2023-07-14 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
EP3931714A4 (en) * 2019-06-14 2022-09-28 Hewlett-Packard Development Company, L.P. MODIFYING DATA ITEMS
CN114564176B (zh) * 2022-01-27 2023-08-22 阿里云计算有限公司 一种代码开发方法、服务器及存储介质
KR20230151676A (ko) * 2022-04-26 2023-11-02 쿠팡 주식회사 전자 장치 및 그의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010045963A1 (en) 1997-04-14 2001-11-29 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
JP2003140893A (ja) 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体
WO2003044654A2 (en) 2001-11-15 2003-05-30 Softplumbers S.A. Method for developing and managing large-scale web user interfaces
KR20030070685A (ko) * 2002-02-26 2003-09-02 삼성전자주식회사 그래픽 사용자 인터페이스의 변경 방법 및 이를 위한기록매체
KR20050057822A (ko) * 2003-12-11 2005-06-16 에스케이씨앤씨 주식회사 Xml을 이용한 gui 구현방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
JP4490026B2 (ja) * 2002-01-28 2010-06-23 日立オムロンターミナルソリューションズ株式会社 カスタマイズ可能な情報処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010045963A1 (en) 1997-04-14 2001-11-29 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
JP2003140893A (ja) 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体
WO2003044654A2 (en) 2001-11-15 2003-05-30 Softplumbers S.A. Method for developing and managing large-scale web user interfaces
KR20030070685A (ko) * 2002-02-26 2003-09-02 삼성전자주식회사 그래픽 사용자 인터페이스의 변경 방법 및 이를 위한기록매체
KR20050057822A (ko) * 2003-12-11 2005-06-16 에스케이씨앤씨 주식회사 Xml을 이용한 gui 구현방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101117165B1 (ko) * 2010-05-28 2012-03-07 단국대학교 산학협력단 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛

Also Published As

Publication number Publication date
CA2498540A1 (en) 2005-08-27
MXPA05002276A (es) 2008-11-24
CA2498540C (en) 2013-07-30
SG172622A1 (en) 2011-07-28
CN1661554A (zh) 2005-08-31
JP2005259131A (ja) 2005-09-22
TW200605588A (en) 2006-02-01
KR20060042393A (ko) 2006-05-12
SG114770A1 (en) 2005-09-28
JP2012142017A (ja) 2012-07-26
EP1571547A1 (en) 2005-09-07
JP5248964B2 (ja) 2013-07-31
TWI314415B (en) 2009-09-01
CN100424637C (zh) 2008-10-08
AU2005200852A1 (en) 2005-09-15
JP2009087340A (ja) 2009-04-23
SG135202A1 (en) 2007-09-28

Similar Documents

Publication Publication Date Title
KR100795765B1 (ko) 사용자 인터페이스와 데이터 컴포넌트 간의 지능형 맵핑을이용한 무선 애플리케이션 구축 시스템 및 방법
US8108830B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components
US7698383B2 (en) System and method for building component applications using metadata defined mapping between message and data domains
US6985939B2 (en) Building distributed software services as aggregations of other services
US7035944B2 (en) Programmatic management of software resources in a content framework environment
US7937500B2 (en) Dynamic, real-time integration of software resources through services of a content framework
US7509649B2 (en) System and method for conversion of generic services&#39; applications into component based applications for devices
US7814404B2 (en) System and method for applying workflow of generic services to component based applications for devices
KR100752564B1 (ko) 메시지와 데이터 도메인간의 메타데이터가 정의된 맵핑을이용하여 구성요소 애플리케이션을 구축하는 시스템 및 방법
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
EP1569095A1 (en) System and method for presentation of wireless application data using repetitive UI layouts
AU2008202421B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components

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
FPAY Annual fee payment

Payment date: 20121227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161230

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191227

Year of fee payment: 13