KR101516508B1 - 무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 시스템 및 방법 - Google Patents

무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101516508B1
KR101516508B1 KR1020137011479A KR20137011479A KR101516508B1 KR 101516508 B1 KR101516508 B1 KR 101516508B1 KR 1020137011479 A KR1020137011479 A KR 1020137011479A KR 20137011479 A KR20137011479 A KR 20137011479A KR 101516508 B1 KR101516508 B1 KR 101516508B1
Authority
KR
South Korea
Prior art keywords
memory resources
web browser
priority
browser module
computing device
Prior art date
Application number
KR1020137011479A
Other languages
English (en)
Other versions
KR20130061761A (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 KR20130061761A publication Critical patent/KR20130061761A/ko
Application granted granted Critical
Publication of KR101516508B1 publication Critical patent/KR101516508B1/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
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephone Function (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 방법 및 시스템이 기술된다. 이러한 방법 및 시스템은 웹 브라우저 모듈을 개시하기 위한 요청을 수신하는 것 및 웹 어드레스에 대한 입력을 수신하는 것을 포함할 수도 있다. 또한, 이러한 방법 및 시스템은 웹 어드레스에 대응하는 파일을 수신하는 것 및 이 파일 내에 존재하는 객체들을 리뷰하는 것을 포함할 수도 있다. 이러한 방법 및 시스템은 객체가 하나 이상의 메모리 리소스들 내에 이미 존재하는지를 결정할 수도 있다. 그리고 객체가 하나 이상의 메모리 리소스들 내에 존재하지 않으면, 이러한 방법 및 시스템은 그 객체에 대한 우선순위를 계산할 수도 있다. 그러면, 객체의 우선순위는 할당되고 저장될 수도 있다. 또한, 객체가 하나 이상의 메모리 리소스들의 임계를 초과할지가 결정될 수도 있고, 그리고 필요에 따라 더 낮은 우선순위를 갖는 다른 객체들을 폐기하는 것이 이러한 방법 및 시스템에 포함될 수도 있다.

Description

무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR MANAGING MEMORY RESOURCE(S) OF A WIRELESS HANDHELD COMPUTING DEVICE}
오늘날의 컴퓨팅 환경은 점점 더 휴대가 가능하도록 되어가고 있다. 사람들은, 그들이 보통의 전화 호들을 걸기 위해 이동 전화기들을 어떻게 이용하기 시작했는지와 유사한 그러한 용이성을 가지고 그들의 무선 핸드헬드 컴퓨팅 디바이스들을 가지고 자주 인터넷을 서핑한다. 통상적인 종래의 무선 핸드헬드 컴퓨팅 디바이스들은 모바일 폰들, 개인 휴대정보 단말기들 ("PDAs"), 및 "스마트" 폰들과 같은 디바이스들을 포함하는데, 하지만 이들에 한정되는 것은 아니다. 이러한 무선 핸드헬드 컴퓨팅 디바이스들은 보통 사람의 손 내에 맞춤되며 또는 개인의 한 손을 이용해서 이리저리로 운반될 수 있다.
이러한 무선 핸드헬드 컴퓨팅 디바이스들이 컴퓨팅 환경을 사람들이 "이동중" 인 동안에도 더욱 액세스가능하도록 만들어 온 반면에, 무선 핸드헬드 컴퓨팅 디바이스들은 무선 네트워크 내에서의 이러한 디바이스들의 성능과 관련하여 몇 개의 고유한 문제점들을 생성하여 왔다. 성능에 관련한 몇 개의 문제점들은, 무선 네트워크 대역폭이 낮은 경우의 데이터의 저속 다운로드, 및 수신 에러들에 기인한 저속 통신들을 포함한다. 이러한 성능은 흔히 이러한 핸드헬드 사이즈의 유닛들의 조밀한 전자적 패키징 내에 포함될 수 있는 하드웨어 및 소프트웨어의 함수이다. 또한, 이러한 핸드헬드 사이즈의 유닛들의 성능은, 그 내부에서 무선 핸드헬드 컴퓨팅 디바이스가 통신 링크를 설립하는 무선 네트워크의 함수일 수도 있다.
무선 핸드헬드 컴퓨팅 디바이스들의 사용자들에 의해 소망되는 통상적인 통신 링크들은, 인터넷 또는 웹을 핸드헬드 컴퓨팅 디바이스의 중앙 처리 유닛에 의해 실행될 수도 있는 웹-기반 브라우저 애플리케이션 프로그램을 가지고 서핑하는 것을 일반적으로 수반하는 것들이다. 통상적으로, 웹페이지들의 콘텐츠는 모바일 네트워크에 관련한 인자들 때문에 무선 핸드헬드 컴퓨팅 디바이스 상에 로드되기 위해 어느 정도의 시간이 걸릴 수도 있다. 무선 핸드헬드 컴퓨팅 디바이스의 성능에 부정적으로 영향을 미칠 수 있는 하나의 인자는, 핸드헬드 컴퓨팅 디바이스가 더 낮은 대역폭을 경험하고 있을 수도 있는 무선 통신 네트워크와 통신 링크를 설립하는 경우이다.
무선 통신 네트워크들과 관련한 다른 인자는 레이턴시이다. 패킷-교환 네트워크들에서의 레이턴시는 단방향으로 (패킷을 전송하는 소스로부터 이것을 수신하는 목적지까지의 시간), 또는 왕복으로 (소스로부터 목적지까지의 단방향 레이턴시 더하기 목적지로부터 다시 소스까지의 단방향 레이턴시) 측정된다. 무선 통신 네트워크에서의 더 높은 레이턴시는 일반적으로, 낮거나 최소 레이턴시들을 갖는 그러한 네트워크와 비교하여, 무선 핸드헬드 컴퓨팅 디바이스 상의 웹 페이지들이 로드하는데 더 시간을 소요하도록 야기한다. 일반적으로, 거의 모든 무선 핸드헬드 컴퓨팅 디바이스들은 무선 통신 네트워크의 성능에 부정적으로 영향을 미치는 인자들을 보상하지 않는다.
필요한 것은, 무선 핸드헬드 컴퓨팅 디바이스들이 무선 통신 네트워크로 커플링될 때 이들의 성능에 부정적으로 영향을 미치는 인자들을 오프셋하거나 보상할 수 있는 시스템 및 방법이다.
제 1 예시적인 양태에 다르면, 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 방법이 기술된다. 이러한 방법은, 웹 브라우저 모듈을 개시하기 위한 요청을 수신하는 단계 및 웹 어드레스에 대한 입력을 수신하는 단계를 포함할 수도 있다. 이러한 방법은 상기 웹 어드레스에 대응하는 파일을 수신하는 단계 및 상기 파일 내에 존재하는 객체들의 하나 이상의 어드레스들을 리뷰하는 단계를 포함한다. 이러한 방법은 소정 어드레스에서의 객체가 상기 하나 이상의 메모리 리소스들 내에 이미 존재하는지를 결정할 수도 있다. 그리고, 상기 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않으면, 이러한 방법은 상기 객체에 대한 우선순위를 계산할 수도 있다. 그러면 상기 객체의 상기 우선순위가 할당되고 저장될 수도 있다.
다른 양태에 다르면, 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 컴퓨터 시스템이 기술된다. 이러한 컴퓨터 시스템은, 웹 브라우저 모듈을 개시하기 위한 요청을 수신하도록 동작가능하고, 그리고 웹 어드레스에 대한 입력을 수신하도록 동작가능한 프로세서를 포함한다. 이러한 프로세서는 상기 웹 어드레스에 대응하는 파일을 수신하고, 그리고 상기 파일 내에 존재하는 하나 이상의 객체 어드레스들을 리뷰하도록 동작가능하다. 그러면, 이러한 프로세서는 객체가 상기 하나 이상의 메모리 리소스들 내에 이미 존재하는지를 결정할 수도 있고, 그리고 상기 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않으면, 이러한 프로세서는 상기 객체에 대한 우선순위를 계산할 수도 있다. 다음으로, 프로세서는 상기 우선순위를 상기 객체에 할당할 수도 있다.
다른 예시적인 양태에 다르면, 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 컴퓨터 시스템이 기술된다. 이러한 시스템은 웹 브라우저 모듈을 개시하기 위한 요청을 수신하기 위한 수단 및 웹 어드레스에 대한 입력을 수신하기 위한 수단을 포함한다. 더 나아가, 이러한 시스템은 상기 웹 어드레스에 대응하는 파일을 수신하기 위한 수단 및 상기 파일 내에 존재하는 하나 이상의 객체 어드레스들을 리뷰하기 위한 수단을 포함한다. 또한, 이러한 시스템은 객체가 상기 하나 이상의 메모리 리소스들 내에 이미 존재하는지를 결정하기 위한 수단을 가질 수도 있다. 이러한 시스템은, 상기 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않으면, 상기 객체에 대한 우선순위를 계산하기 위한 수단 및 상기 우선순위를 상기 객체에 할당하기 위한 수단을 가질 수도 있다.
또 다른 예시적인 양태에 다르면, 내부에 구현된 컴퓨터 판독가능 프로그램 코드를 갖는 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 판독가능 프로그램 코드는 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 방법을 구현하기 위해 실행되도록 적응되는, 상기 컴퓨터 프로그램 제품이 기술된다. 상기 방법을 구현하는 상기 프로그램 코드를 갖는 컴퓨터 프로그램 제품은 웹 브라우저 모듈을 개시하기 위한 요청을 수신하는 단계 및 웹 어드레스에 대한 입력을 수신하는 단계를 포함한다. 또한, 상기 방법을 구현하는 상기 프로그램 코드를 갖는 컴퓨터 프로그램 제품은 상기 웹 어드레스에 대응하는 파일을 수신하는 단계 및 상기 파일 내에 존재하는 하나 이상의 객체 어드레스들을 리뷰하는 단계를 포함한다. 더 나아가, 상기 방법을 구현하는 상기 프로그램 코드를 갖는 컴퓨터 프로그램 제품은 객체가 상기 하나 이상의 메모리 리소스들 내에 이미 존재하는지를 결정하는 단계 및 상기 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않으면, 이제 상기 객체에 대한 우선순위를 계산하는 단계를 포함할 수도 있다. 또한, 상기 방법을 구현하는 상기 프로그램 코드를 갖는 컴퓨터 프로그램 제품은 상기 우선순위를 상기 객체에 할당하는 단계를 가질 수도 있다.
도면들에서, 그렇지 않다고 표시되지 않는 한 유사한 참조 번호들은 다양한 도면들 전체에서 유사한 부분들을 지칭한다. "102A" 또는 "102B" 와 같은 문자 지시자들이 있는 참조 번호들에 대해서는, 문자 지시자들이 동일한 도면 내에 존재하는 두 개의 유사한 부분들 또는 엘리먼트들을 구별할 수도 있다. 부재 번호들에 대한 문자 지시자들은, 참조 번호가 모든 도면들 내의 동일한 부재 번호를 갖는 모든 부품들을 망라하는 것이 의도되면 생략될 수도 있다.
도 1a 는 무선 통신 네트워크로 커플링되는 무선 핸드헬드 컴퓨팅 디바이스의 도면이다;
도 1b 는 도 2 의 무선의, 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)을 관리하는 시스템에 대한 소프트웨어 아키텍처의 제 1 양태의 도면이다;
도 2 는 모바일 전화기를 포함하는 예시적인 무선 핸드헬드 컴퓨팅 디바이스의 도면이다;
도 3 은 무선 핸드헬드 컴퓨팅 디바이스에 대한 터치 스크린의 도면이다;
도 4 는 무선 핸드헬드 컴퓨팅 디바이스에 의해 다운로드된 웹페이지의 콘텐츠를 제공하는 스크린의 도면이다;
도 5 는, 스크린을 포함하는 사용자 인터페이스로부터의 입력에 응답하여, 그 내부에서 마우스-오버 (mouse-over) 디스플레이가 웹페이지 상에서 생성되는,예시되는 웹페이지의 콘텐츠를 목록화하는 스크린의 도면이다;
도 6 은 무선 핸드헬드 컴퓨팅 디바이스에 의해 다운로드될 수도 있는 예시적인 하이퍼텍스트 마크업 언어 (hypertext markup language; "HTML") 파일에 대한 데이터 구조의 도면이다;
도 7 은 무선 핸드헬드 컴퓨팅 디바이스에 의해 다운로드될 수도 있는 예시적인 캐스케이딩 스타일 시트 (cascading style sheet; "CSS") 파일에 대한 데이터 구조의 도면이다;
도 8 은 무선 핸드헬드 컴퓨팅 디바이스에 의해 다운로드될 수도 있는 예시적인 이미지 파일에 대한 데이터 구조의 도면이다;
도 9 는 무선 핸드헬드 컴퓨팅 디바이스에 의해 다운로드될 수도 있는 예시적인 자바스크립트 (JavaScript; JS) 파일에 대한 데이터 구조의 도면이다;
도 10 은 무선 핸드헬드 컴퓨팅 디바이스에 의해 유지될 수도 있는 예시적인 객체 추적 테이블에 대한 데이터 구조의 도면이다;
도 11 은 무선 핸드헬드 컴퓨팅 디바이스에 의해 유지될 수도 있는 예시적인 우선순위 테이블에 대한 데이터 구조의 도면이다;
도 12 는 무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 방법을 도시하는 흐름도이다;
도 13 은, 메모리 리소스들의 현재 상태를 결정하고 그리고 무선 핸드헬드 컴퓨팅 디바이스 내의 메모리 할당들을 조절하기 위한, 도 12 의 루틴의 서브-방법을 도시하는 흐름도이다; 그리고
도 14 는 객체에 대한 우선순위를 결정하기 위한, 도 12 의 루틴의 서브-방법 또는 루틴을 도시하는 흐름도이다.
"예시적인" 이라는 단어는 본 명세서에서는 "예, 실례 (instance), 또는 예시의 역할을 하는"을 의미하는 것으로 이용된다. "예시적인" 것으로서 본 명세서에서 설명되는 임의의 양태는 반드시 다른 양태들에 비하여 반드시 더 바람직하거나 유리한 것으로 해석될 필요가 없다.
이러한 발명을 실시하기 위한 구체적인 내용에서, 용어 "애플리케이션" 은 실행가능한 콘텐츠, 예컨대: 객체 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들을 갖는 파일들을 역시 포함할 수도 있다. 또한, 본 명세서에서 지칭되는 "애플리케이션" 도 역시 성질상 실행가능하지 않은 파일들, 예컨대 열릴 필요가 있을 수도 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들을 포함할 수도 있다.
이러한 발명을 실시하기 위한 구체적인 내용에서는, "통신 디바이스", "무선 디바이스", "무선 전화기", "무선 통신 디바이스", 및 "무선 핸드셋" 라는 용어는 상호 교환가능하도록 이용된다. 제 3 무선 기술의 도래와 함께, 더 큰 대역폭 이용가능성이 더 많이 다양한 무선 성능들을 갖는 더 많은 전자 디바이스들을 이네이블해 왔다. 그러므로, 무선 디바이스는 셀룰러 전화기, 페이저, PDA, 스마트 폰, 네비게이션 디바이스, 또는 무선 접속 또는 링크를 갖는 핸드 헬드 컴퓨터일 수도 있다.
도 1a 는 무선 통신 네트워크 (206) 로 커플링되는 무선 핸드헬드 컴퓨팅 디바이스 (200) 의 도면이다. 도 1 에 도시된 시스템 엘리먼트들 중 많은 것들이 통신 링크들 (103A-103B) 을 통하여 통신 네트워크 (206) 로 커플링된다. 도 1 에서 예시되는 링크들 (103) 은 무선 링크들을 포함할 수도 있다. 무선 링크들은 무선-주파수 ("RF") 링크들, 적외선 링크들, 음향 링크들, 및 다른 무선 매체들을 포함하지만, 이들에 한정되는 것은 아니다. 통신 네트워크 (206) 는 광역 네트워크 (wide area network; "WAN"), 근거리 네크워크 (local area network; "LAN"), 인터넷, 공중 전화 교환 네트워크 (Public Switched Telephony Network; "PSTN"), 페이징 네트워크, 또는 이들의 조합을 포함할 수도 있다. 통신 네트워크 (206) 는 브로드캐스트 RF 송수신기 타워들 (208) 에 의해 설립될 수도 있다. 그러나, 당업자는 브로드캐스트 RF 송수신기 타워들 (208) 이외의 통신 디바이스들의 다른 타입들이 통신 네트워크 (206) 를 설립하기 위해, 본 발명의 범위 내에 포함된다는 것을 인식한다.
서버 (210) 는, 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 다운로드되고 그리고 메모리 내에 저장될 수도 있는 웹 페이지들 (402) 을 지원할 수도 있다. 핸드헬드 컴퓨팅 디바이스 (200) 는 안테나 (372) 를 가짐으로써, 개별 핸드헬드 디바이스 (200) 가 무선 통신 링크들 (103) 을 통신 네트워크 (206) 와 설립할 수도 있도록 도시된다.
서버 (210) 는, 무선 핸드헬드 컴퓨팅 디바이스 (200) 의 애플리케이션 서브시스템 (102) 및 모뎀 서브시스템 (133) 에 의해 처리되고 관리되는, 자신의 웹 페이지들 (402) 을 핸드헬드 컴퓨팅 디바이스 (200) 와 공유하기 위해, 통신 네트워크 (206) 를 통하여 무선 핸드헬드 컴퓨팅 디바이스 (200) 와 통신할 수도 있다.
도 1b 는 무선의, 핸드헬드 컴퓨팅 디바이스 (200) 의 메모리 리소스(들)를 관리하는 시스템 (102) 에 대한 소프트웨어 아키텍처의 제 1 양태의 도면이다. 애플리케이션 서브시스템 (102) 은 중앙 처리 유닛 (324) 에 의해 실행되는 모바일 웹 브라우저 애플리케이션 (105) 을 포함할 수도 있다 (도 2 참조). 모바일 웹 브라우저 애플리케이션 또는 모듈 (105) 은, 당업자에게 이해되고 아래에서 설명되는 바와 같이, 인터넷 프로토콜 (Internet protocol; "IP") 계층 (129) 상에 상주하는 전달 통신 프로토콜 (transfer communication protocol; "TCP") 모듈들 (127) 과 통신할 수도 있다.
IP 계층 (129) 은 당업자에 의해 이해되는 바와 같이, 네트워크 버퍼 계층 (131) 과 통신한다. IP 계층 (129) 은 제 2 중앙 처리 유닛 (326) 에 의해 실행되는 모뎀 서브시스템 (133) 과 통신한다 (도 2 참조).
더 나아가, 모바일 웹 브라우저 모듈 (105) 은 사용자 인터페이스 모듈 (106), 네트워크 스택 모듈 (107), 하이퍼텍스트 전달 프로토콜 (hypertext transfer protocol; "HTTP") 스택 (111), 도메인 명칭 서버 모듈 (113), 운영 체제 (115), 브라우저 엔진 (117), 및 캐시, 랜덤 액세스 메모리 (random access memory; "RAM"), 플래시 메모리 (123), 시큐어 디지털 (Secure Digital; "SD") 메모리 카드 (125), 및 이들의 임의의 조합을 포함할 수도 있지만 이들에 한정되는 것은 아닌 하나 이상의 메모리 리소스들 (119) 을 포함할 수도 있다.
더 나아가, 네트워크 스택 모듈 (107) 은, 아래에서 더욱 상세하게 설명되는 바와 같은, 도 12 내지 도 14 에 도시되는 로직을 포함하는 동적 메모리 할당 시스템 (dynamic memory allocation system; "DMAS") 모듈 (109A) 을 포함할 수도 있다. 대안적으로는, 또는 네트워크 스택 (107) 에 추가하여, 브라우저 엔진 (117) 도 역시, 아래에서 설명되는 도 12 내지 도 14 의 로직을 역시 포함하는 DMAS 모듈 (109B) 을 포함할 수도 있다. 또 다른 대안적인 예시적인 실시형태에서는, DMAS 모듈 (109C) 은 네트워크 스택 (107) 및 브라우저 엔진 (117) 에 대해 상대적인 별개의 모듈로서 상주할 수도 있다.
DMAS 모듈(들) (109) 은 어떻게 브라우저 엔진 (117) 이, 캐시, RAM (121), 플래시 메모리 (123), 및/또는 SD 메모리 카드 (125) 를 포함할 수도 있는 메모리 리소스들 (119) 을 관리해야 하는지 제어하거나 명령하는 것을 담당할 수도 있다. DMAS 모듈 (109) 은, 이것이 모바일 웹 브라우저 (105) 및 애플리케이션 서브시스템 (102) 의 엘리먼트들을 계속적으로 모니터링할 수도 있다는 점에서는 동적일 수도 있다. 더 나아가, DMAS 모듈 (109) 은 모바일 웹 브라우저 (105) 및 애플리케이션 서브시스템 (102) 내의 엘리먼트들로부터 메모리들을 역시 수신할 수도 있다.
네트워크 스택 모듈 (107) 은 사용자 인터페이스 (106), HTTP 스택 모듈 (111), 운영 체제 ("OS") (115), 및 브라우저 엔진 (117) 과 통신할 수도 있다. 네트워크 스택 모듈 (107) 은, 예컨대 서버 (210) 상에 저장된 새로운 웹 페이지 (402) 에 액세스하라는 명령과 같은 명령들을 사용자 인터페이스 (106) 로부터 수신할 수도 있다. 또한, 네트워크 스택 (107) 은 운영 체제 (115) 로부터 수신되는, 현재 상태를 진술할 수도 있는 메시지들을 모니터링하여, 모바일 웹 브라우저 (105) 이외의, 이미 오픈되었고 중앙 처리 유닛 (324) 에 의해 실행되는 중인 다른 애플리케이션 프로그램들을 식별할 수도 있다.
네트워크 스택 모듈 (107) 은 사용자에 의해 제공되는, 원하는 웹 페이지 (402) 에 대한 텍스트 기반 도메인 명칭을 HTTP 스택 모듈 (111) 로 제공하는 것과 같은 커맨드들을 발행할 수도 있다. HTTP 스택 모듈 (111) 은 도메인 명칭 서버 (domain name server; "DNS") 모듈 (113) 로 커플링될 수도 있다. DNS 모듈 (113) 은, 당업자에 의해 이해되는 바와 같이 텍스트 기반 도메인 명칭을 수치적 인터넷 프로토콜 (IP) 어드레스로 변환하는 것을 담당할 수도 있다. DNS 모듈 (113) 은 IP 어드레스를 다시 HTTP 스택 (111) 으로 통신할 수도 있는데, 이것은 이제 이러한 IP 주소를 TCP 접속 모듈 (127) 로 릴레이한다.
HTTP 스택 (111) 이 HTML 파일 (600) (도 6 참조) 을 TCP 접속 모듈 (127) 로부터 반환하면, 네트워크 스택 모듈 (107) 은 이러한 파일 (600) 을 브라우저 엔진 (117) 으로 릴레이한다. 브라우저 엔진 (117) 은 취출된 파일들을 파싱 (parsing) 및/또는 리뷰하는 것 및 요청들을 파일들의 자신의 리뷰에 기초하여 네트워크 스택 (107) 으로 송신하는 것을 담당한다. 또한, 브라우저 엔진 (117) 은, 캐시, RAM (121), 플래시 메모리 (123), 및 SD 메모리 카드 (125) 를 포함할 수도 있는 메모리 리소스들 (119) 의 할당을 제어하라는 명령들을 발행할 수도 있다.
OS (115) 는 프로세스들의 관리 및 조율 (coordination) 및 핸드헬드 컴퓨팅 디바이스 내의 하드웨어 리소스들의 공유를 담당할 수도 있다. OS (115) 는 그 OS (115) 상에서 실행하는 컴퓨팅 애플리케이션들에 대한 호스트로서의 역할을 할 수도 있다. 운영 체제 (115) 의 목적들 중 하나는 리소스 할당, 그리고 하드웨어, 예컨대 디스플레이 (332) 및 마이크 (360) 의 의 액세스 보호를 핸들링하는 것이다. 본 문서에서와 같은 예시적인 핸드헬드 OS (115) 는 모바일 운영 체제들 (115) 의 윈도우즈 ( TM ) 모바일 브랜드 및 모바일 운영 체제들 (115) 의 안드로이드 (TM) 브랜드를 포함할 수도 있지만, 이들에 한정되는 것은 아니다,
이송 제어 프로토콜 (Transport Control Protocol; "TCP") 접속 모듈 (127) 은, 당업자에 의해 이해되는 바와 같이, 범용 네트워킹의 개방형 시스템들 상호접속 (Open Systems Interconnection; "OSI") 모델의 이송 계층 (Transport Layer) 에서 동작한다. TCP 접속 모듈 (127) 은, 애플리케이션 데이터 블록들을, 목적지 호스트로의 송신을 위해 네트워크 기반구조로 전달되기에 적합한 데이터 유닛들 (데이터그램들, 세그먼트들) 로 캡슐화화는 것, 또는 네트워크 데이터그램들을 추상화함으로써 역방향 트랜잭션을 관리하며, 그리고 그들의 페이로드를 모바일 웹 브라우저 (105) 로 배달하는 것을 담당한다.
인터넷 프로토콜 (Internet Protocol; "IP") 모듈 (129) 은 TCP 접속 모듈 (127) 및 네트워크 버퍼 계층 (131) 과 통신한다. IP 모듈 (129) 은 모바일 웹 브라우저로부터 구별된 프로토콜 데이터그램들 (패킷들) 을 그들의 어드레스들에 기초하여 모바일 웹 브라우저로부터 서버 (210) 로 배달하는 태스크를 가진다. IP 모듈 (129) 은 데이터그램 캡슐화를 위한 어드레싱 방법들 및 구조들을 정의한다. IP 모듈 (129) 은 인터넷 프로토콜 버전 4 (Internet Protocol Version 4; "IPv4") 및 인터넷 프로토콜 버전 6 (Internet Protocol Version 6; "IPv6") 을 사용할 수도 있는데, 이것은 본 문서와 관련하여 적극적으로 배치되는 중이다. 그러나, 아직 개발되지 않은 미래의 것들을 포함하는 인터넷 프로토콜의 다른 버전들이 본 발명의 범위 내에 포함된다.
네트워크 버퍼 계층 (131) 은 IP 모듈 (129) 및 모뎀 서브시스템 (133) 과 통신한다. 네트워크 버퍼 계층 (131) 은 모든 하드웨어 특유의 인터페이스 방법들, 예컨대 이더넷 및 다른 IEEE 802 캡슐화 방식들을 포함할 수도 있다. 네트워크 버퍼 계층 (131) 은 로컬 네트워크, 예컨대 네트워크 (206) 와 같은 통신 네트워크의 토폴로지를 탐지할 수도 있다. 이것은 라우터들 및 이웃하는 호스트들을 발견할 수도 있고, 그리고 이것은 링크 상의 다른 노드들의 발견을 담당할 수도 있다. 네트워크 버퍼 계층 (131) 은 다른 노드들의 링크 계층 어드레스들을 결정하고, 이용가능한 라우터들을 찾으며, 그리고 다른 활성 이웃 노드들로의 경로들에 대한 도달가능성 정보 (reachability information) 를 유지할 수도 있다.
모뎀 서브시스템 (133) 은 무선 링크 제어 계층, 미디어 액세스 제어 (MAC) 계층들, 및 물리적 계층을 포함할 수도 있다. 도 2 에 도시된 바와 같이, 이러한 계층들은 통신 하드웨어, 예컨대 RF 송수신기 (368) 와 통신하는 것을 담당할 수도 있다.
도 2 를 참조하면, 이 도면은 도 1 의 무선 핸드헬드 컴퓨팅 디바이스와 부합하는 무선 전화기를 포함하는 무선 핸드헬드 컴퓨팅 디바이스 (200) 의 예시적이며 비한정적인 양태의 도면이다. 도시된 바와 같이, 무선 핸드헬드 컴퓨팅 디바이스 (200) 는, 서로 커플링되는 디지털 신호 프로세서 및/또는 제 1 중앙 처리 유닛 (324) 및 아날로그 신호 프로세서 및/또는 제 2 중앙 처리 유닛 (326) 를 포함하는 온-칩 시스템 (322) 를 포함한다. 더 나아가, 제 1 프로세서 (324) 및 메모리 리소스들 (119) 은 도 12 내지 도 14 와 연계하여 본 개시물에서 설명되는 하나 이상의 방법 단계들을 실행하기 위한 수단으로서 역할을 수행할 수도 있다. 한편, 제 2 디지털 신호 프로세서 / 중앙 처리 유닛 (326) 은 모뎀 서브시스템 (133) 과 관련한 하나 이상의 명령들을 실행할 수도 있다.
도 2 에 도시된 바와 같이, 디스플레이 제어기 (328) 및 터치스크린 제어기 (330) 는 디지털 신호 프로세서 (324) 로 커플링된다. 온-칩 시스템 (322) 외부의 터치스크린 디스플레이 (332) 는 디스플레이 제어기 (328) 및 터치스크린 제어기 (330) 로 커플링된다.
더 나아가, 도 2 는 비디오 인코더 (334), 예를 들어, 위상 교번 라인 (phase alternating line; "PAL") 인코더, 순차적 컬러 아베크 메무아 (sequential couleur avec memoire; "SECAM") 인코더, 또는 국립 텔레비전 시스템(들) 위원회 (national television system (s) committee; "NTSC") 인코더 또는 임의의 다른 비디오 인코더가 디지털 신호 프로세서 (324) 로 커플링되는 것을 표시한다. 이전에 언급된 바와 같이, 제 1 디지털 신호 프로세서 (324) 및/또는 제 2 디지털 신호 프로세서 (326) 은 당업자에게 이해되는 바와 같은 중앙 프로세서 유닛으로 대체될 수도 있다. 어떠한 하드웨어 유닛도 도 12 내지 도 14 의 소프트웨어 엘리먼트들/명령어들의 서브시스템을 실행할 수도 있다.
비디오 증폭기 (336) 는 비디오 인코더 (334) 및 터치스크린 디스플레이 (332) 로 커플링된다. 비디오 포트 (338) 는 비디오 증폭기 (336) 로 커플링된다. 도 2 에서 도시된 바와 같이, 범용 시리얼 버스 (universal serial bus; "USB") 제어기 (340) 는 디지털 신호 프로세서 (324) 로 커플링된다. 또한, USB 포트 (342) 는 USB 제어기 (340) 로 커플링된다. 또한, 메모리 리소스들 (119) 및 가입자 식별 모듈 (subscriber identity module; SIM) 카드 (346) 도 디지털 신호 프로세서 (324) 로 커플링될 수도 있다. 더 나아가, 도 2 에서 도시된 바와 같이, 디지털 카메라 (348) 가 디지털 신호 프로세서 (324) 로 커플링될 수도 있다. 예시적인 양태에서는, 디지털 카메라 (348) 는 전하-결합 소자 (charge-coupled device; "CCD") 카메라 또는 상보형 금속-산화물 반도체 (complementary metal-oxide semiconductor; "CMOS") 카메라이다.
도 2 에서 더욱 도시된 바와 같이, 스테레오 오디오 코덱 (350) 이 아날로그 신호 프로세서 (326) 로 커플링될 수도 있다. 더욱이, 오디오 증폭기 (352) 가가 스테레오 오디오 코덱 (350) 으로 커플링될 수도 있다. 예시적인 양태에서는, 제 1 스테레오 스피커 (354) 및 제 2 스테레오 스피커 (356) 가 오디오 증폭기 (352) 로 커플링된다. 도 2 는 마이크 증폭기 (358) 도 역시 스테레오 오디오 코덱 (350) 으로 커플링될 수 있다는 것을 도시한다. 추가적으로, 마이크 (360) 가 마이크 증폭기 (358) 로 커플링될 수도 있다. 특정한 양태에서는, 주파수 변조 (frequency modulation; "FM") 라디오 튜너 (362) 가 스테레오 오디오 코덱 (350) 으로 커플링될 수도 있다. 또한, FM 안테나 (364) 가 스테레오 오디오 코덱 (350) 으로 커플링될 수도 있다. 더 나아가, 스테레오 헤드폰들 (366) 이 스테레오 오디오 코덱 (350) 으로 커플링될 수도 있다.
더 나아가, 도 2 는 무선 주파수 ("RF") 송수신기 (368) 가 아날로그 신호 프로세서 (326) 로 커플링될 수도 있다는 것을 표시한다. RF 스위치 (370) 가 RF 송수신기 (368) 및 RF 안테나 (372) 로 커플링될 수도 있다. RF 송수신기 (368) 는 지리적 좌표들에 대한 GPS 신호들을 획득하기 위해, 통상적인 통신 네트워크들과 그리고 광역 포지셔닝 시스템 (global positioning system; "GPS") 과 통신할 수도 있다.
도 2 에서 도시된 바와 같이, 키패드 (374) 는 아날로그 신호 프로세서 (326) 로 커플링될 수도 있다. 또한, 마이크 (376) 가 있는 모노 헤드셋이 아날로그 신호 프로세서 (326) 로 커플링될 수도 있다. 더 나아가, 진동기 디바이스 (378) 가 아날로그 신호 프로세서 (326) 로 커플링될 수도 있다. 또한, 도 2 는 전원 (380) 이 온칩 시스템 (322) 으로 커플링될 수도 있다는 것을 도시한다. 특정한 양태에서는, 전원 (380) 은 전력을 요구하는 무선 핸드헬드 컴퓨팅 디바이스 (200) 의 다양한 컴포넌트들에게 전력을 제공하는 직류 ("DC") 전원이다. 더 나아가, 특정한 양태에서는, 전원은 충전 가능한 DC 배터리 또는 AC 전력 소스에 연결된 교류 전류 ("AC")-DC 변압기로부터 유도된 DC 전원이다.
도 2 에서 도시된 바와 같이, 터치 스크린 디스플레이 (332), 비디오 포트 (338), USB 포트 (342), 카메라 (348), 제 1 스테레오 스피커 (354), 제 2 스테레오 스피커 (356), 마이크 (360), FM안테나 (364), 스테레오 헤드폰들 (366), RF 스위치 (370), RF 안테나 (372), 키패드 (374), 모노 헤드셋 (376), 진동기 (378), 및 전원 (380) 은 온칩 시스템 (322) 의 외부에 있다.
도 3 은 무선 핸드헬드 컴퓨팅 디바이스 (200) 를 위한 터치 스크린 디스플레이 (332) 의 도면이다. 도시된 바와 같이, 무선 핸드헬드 컴퓨팅 디바이스 (200) 는, 본 예시적인 실시형태에서는 사각형 박스들로서 표현되는, 프로그램 아이콘들 (505) 의 메뉴 또는 목록 (510) 을 포함할 수도 있다. 또한, 무선 핸드헬드 컴퓨팅 디바이스 (200) 는 모바일 폰 대화를 청취하기 위해 사용자의 귀 옆에 포지셔닝될 수도 있는 헤드셋 또는 스피커 (376) 를 포함한다.
도 4 는 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 다운로드된 웹페이지 (402) 의 콘텐츠를 제공하는 스크린 (400) 의 도면이다. 웹페이지 (42) 는 그래픽 이미지 (403), 제 1 텍스트 (406), 제 2 텍스트 (409), 제 3 텍스트 (412), 티커 텍스트 (ticker text) (444), 및 그래픽 사각형 테두리 (418) 를 포함할 수도 있다. 사용자 인터페이스 (106) 의 일부로서, 스크린 포인터 (415) 가 제공될 수도 있다. 도시된 예시적인 실시형태에서는, 그래픽 이미지 (403) 는 개요들로써 도시된 대륙들이 제공된 지구를 포함한다. 어구, "남미 지역의 지진"을 포함하는 티커 텍스트 (444) 는, 뉴스 티커와 같이 방향 화살표 (448) 와 함께 웹 페이지 (402) 를 가로질러 이동하도록 설계될 수도 있는데, 이것이 페이퍼 테이프 (paper tape) 상의 출력된 도래하는 뉴스 스토리들을 시뮬레이션한다.
제 1 텍스트 (406) 는 단어 "매일의 (DAILY)" 를 포함할 수도 있는데, 반면에 제 2 텍스트 (409) 는 단어 "지구촌 (PLANET)" 을 포함할 수도 있다. 제 1 텍스트 (406) 는 제 1 폰트 및 제 1 컬러를 가질 수도 있다. 제 1 텍스트 (406) 에 대해 도시된 예시적인 제 1 컬러는 백색이다. 이와 유사하게, 제 2 텍스트 (409) 는 제 1 폰트 및 제 2 컬러를 가질 수도 있다. 제 2 텍스트 (409) 에 대해 도시된 제 2 컬러는 흑색이다. 이러한 도면에서, 티커 텍스트 (444) 는 페이지 (402) 를 가로질러 방향성 화살표 (448) 를 따라 스크롤되어 텍스트 "...남미 - 수백 명 인명 피해... (...South America - Hundreds injured...)" 를 드러낸다. 당업자는 본 발명이 도시된 예시적인 텍스트 (406), 409, 412, 444), 또는 예시적인 이미지 (403) 로 한정되지 않는다는 것을 이해한다. 다른 텍스트 및 다른 이미지들이 본 발명의 범위 내에 속한다.
도 5 는, 그 내부에 마우스-오버 디스플레이 (503) 가 스크린 (500) 을 포함하는 사용자 인터페이스 (106) 로부터의 입력에 응답하여 웹페이지 (402) 상에 생성되는, 도 4 에 도시된 웹페이지 (402) 의 콘텐츠를 제공하는 스크린 (500) 의 도면이다. 구체적으로 설명하면, 이러한 예시적인 실시형태들에서는, 스크린 포인터 (415) 가 제 3 텍스트 (412) 위에서 이동되었다. 제 3 텍스트 (412) 위에서의 이러한 이동에 응답하여, 사용자 인터페이스 (106) 는, 그 안에서 제 3 텍스트 (412) 가 이러한 예시적인 실시형태에 따라서 생성되었던 연대순의 시간 목록을 포함하는 마우스-오버 디스플레이 (503) 를 생성한다.
구체적으로 설명하면, 마우스-오버 디스플레이 (503) 는, 이러한 예시적인 실시형태에서는 구 "현재 뉴스 (Current News)"를 포함하는 제 3 텍스트 (412) 위로 이동되는 스크린 포인터 (415) 에 응답하여 제 3 텍스트 (412) 가 생산되었던 시간을 디스플레이한다. 이러한 마우스-오버 디스플레이 (503) 는 사이즈에게 웹 페이지 (402) 상에 디코딩되는 중인 정보가 얼마나 "현재의 (current)" 것인지를 정확하게 수긍하거나 이해하도록 허용한다. 당업자는 이러한 특정한 마우스-오버 디스플레이 (503) 가 성질에 있어서 예시적인 것이며, 그러므로 다른 마우스-오버 디스플레이들 (503) 또는 상호작용하는 사용자 인터페이스들의 다른 타입들이 역시 본 발명의 범위 내에 속한다는 것을 인식한다.
도 6 은 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 다운로드될 수도 있으며, 그리고 도 5 에 도시되는 웹페이지 (402) 에 대응하는 예시적인 하이퍼텍스트 마크업 언어 ("HTML") 파일 (600) 에 대한 데이터 구조의 도면이다. HTML 파일 (600) 은, 캐스케이딩 스타일 시트 ("CSS") 파일 (605A) 에 대한 명칭 "CSS 파일 #1", 이미지 파일 (605B) 에 대한 명칭 "이미지 파일 #1", 및 자바스크립트 ("JS") 파일 (605C) 에 대한 명칭 "JS 파일 #1"을 포함할 수도 있다. 이러한 3 개의 파일 명칭들에 인접하여 당업자에 의해 이해되는 바와 같은 인터넷 프로토콜 ("IP") 어드레스들 또는 도메인 명칭들의 (양쪽 모두의) 목록 (620) 이 존재할 수도 있다.
브라우저 엔진 (117) 은 HTML 파일 (600) 을 리뷰하고 파싱하여, 객체들이라고도 지칭되는 상이한 파일들 (605A, 605B, 및 605C) 에 대응하는 목록 (620) 내의 IP 어드레스들을 발견할 수 있다. 또한, 브라우저 엔진 (117) 은, 당업자에 의해 이해되는 바와 같이 헤더 정보 내에 목록화된 파일 타입들에 기초하여 객체들 (605) 의 타입을 결정할 수 있다.
도 7 은 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 다운로드될 수도 있는 예시적인 캐스케이딩 스타일 시트 ("CSS") 파일 (605A) - "CSS 파일 #1" 에 대한 데이터 구조의 도면이다. 예시적인 실시형태에서는, CSS 파일 (605A) 은 단순 구문을 가질 수도 있고 그리고 다수의 영어 키워드들을 이용하여 다양한 스타일 특징들 (properties) 의 명칭들을 식별할 수도 있다. CSS 파일 (605A) 은 규칙들의 리스트를 포함할 수도 있다. 각각의 규칙 또는 규칙-세트는 하나 이상의 선택자들 (selectors) 및 선언 블록을 포함할 수도 있다. 선언-블록은 보통 괄호로 감싸진 선언들의 리스트를 포함한다.
각각의 선언 자체는 특징, 콜론 (:), 값, 그리고, 세미-콜론 (;) 을 포함할 수도 있다. CSS 파일 (605A) 은 스타일이 마크업 엘리먼트들 중 어느 것으로 적용되는지를 선언하기 위해 이용되는, 일종의 매치 표현식 (match expression) 일 수도 있다. CSS 파일 (605A) 은 선택자들 (selectors) 을 포함할 수도 있다. 선택자들은 특정한 타입의 모든 엘리먼트들로 적용되거나, 또는 특정 속성 (attribute) 과 매치하는 그러한 엘리먼트들에만 적용될 수도 있다; 엘리먼트들은, 그들이 마크업 코드 내에서 서로에 대해 상대적으로 어떻게 배치되는지, 또는 어떻게 그들이 문서 객체 모델 내에서 네스팅되는지 (nested) 에 의존하여 매칭될 수도 있다.
인쇄에서, CSS 파일 (605A) 은 컬러, 폰트, 텍스트 정렬, 사이즈, 테두리들 (borders), 스페이싱, 레이아웃 및 많은 다른 글자 특성들을 정의할 수도 있다. 이것은 온-스크린 및 인쇄된 뷰들에 대해 독립적으로 이것을 할 수 있다. 또한, CSS 파일 (605A) 은 비-시각적 스타일들, 청각적 텍스트 리더기들 (aural text readers) 에 의해 텍스트가 읽어지는 속도 및 강조 (emphasis) 를 정의할 수도 있다.
도 7 에서 예시되는 예시적인 실시형태에서는, CSS 파일 (605A) 은 제 1 및 제 2 텍스트 (406 및 409) 에 대한 백색 테두리 (418) 및 폰트 및 컬러를 진술하는 데이터 (702) 를 포함한다. 구체적으로 설명하면, CSS 파일 (605A) 은 테두리 (418) 의 컬러가 백색이라고, 그리고 제 1 및 제 2 텍스트 (406 및 409) 의 컬러를 기술한다. 제 1 텍스트 (406) 는 백색의 컬러로 제공되었으며, 반면에 제 2 텍스트 (409) 는 흑색의 컬러로 제공되었다. 하나의 비한정적인 예로서, 제 1 및 제 2 텍스트 (406, 409) 에 대한 폰트는 42 포인트 에리얼 (Arial) 폰트로 설정되었다.
도 8 은, 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 다운로드될 수도 있는, "이미지 파일 #1" 이라는 명칭을 갖는 예시적인 이미지 파일 (605B) 에 대한 데이터 구조의 도면이다. 이미지 파일 (605B) 은 도 4 및 도 5 에 도시되는 바와 같이 이미지 (403) 의 물리적 특징들을 제공하는 데이터 (802) 를 포함할 수도 있다. 도 8 에서 도시되는 예시적인 실시형태에서는, 이미지 데이터 (802) 는 도 4 의 이미지 (403) 와 같이 묘사된 지구의 컬러 및 사이즈에 관련한 정보를 제공한다.
도 9 는 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 다운로드될 수도 있는 예시적인 자바스크립트 (JS) 파일 (605C) 에 대한 데이터 구조의 도면이다. JS 파일 (605C) 은 HTML 페이지들 내에 내장하거나 또는 이로부터 포함하고 그리고 웹 페이지 (402) 의 문서 객체 모델 (Document Object Model; DOM) 과 상호작용하기 위해 이용되는 쓰기 함수들을 포함할 수도 있다. 예를 들어, JS 파일 (605C) 은, 새로운 윈도우의 사이즈, 포지션, 및 속성들 (예를 들어 메뉴들, 툴바들 등이 가시적인지 여부) 상의 프로그램적인 제어를 가지고 새로운 윈도우를 열거나 팝업시키는 것을 담당할 수도 있다. 예를 들어, 도 5 의 마우스-오버 디스플레이 (503) 및 도 4 및 도 5 의 티커 텍스트 (444) 를 참조한다.
JS 파일 (605C) 내의 자바스크립트 코드는 사용자의 브라우저 (105) 내에서 국지적으로 실행할 수도 있다. 이것은 사용자 액션들에 대해 신속하게 반응함으로써, 애플리케이션이 더욱 반응적인 것으로 느껴지게 할 수 있다. 더욱이, JS 파일 (605C) 의 자바스크립트 코드는, 보통 HTML 단독으로는 검출할 수 없는, 개별 키스트로크들과 같은 사용자 액션들을 검출할 수도 있다. 도 9 의 예시적인 실시형태에서는, JS 파일 (605C) 의 데이터 (902) 는 어떻게 마우스-오버 디스플레이 (503) 가 도 5 에 도시된 바와 같이 웹 페이지 (402) 상에 디스플레이되는지에 대한 명령어들을 포함할 수도 있다.
도 10 은, 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 유지될 수도 있는 예시적인 객체 추적 테이블 (1000) 에 대한 데이터 구조, 그리고 더욱 상세하게는 네트워크 스택 (107) 및/또는 HTTP 스택 (111) 의 일부일 수도 있는, 도 1 의 DMAS (109A, 109B) 의 도면이다. 객체 추적 테이블 (1000) 은 데이터의 두 개의 열들을 포함할 수도 있다. 제 1 열은 객체 명칭들 (1005) 을 포함할 수도 있고, 반면에 제 2 열은 특정 객체가 호출되었던 횟수들 (1010) 을 포함할 수도 있다.
도 10 에서 예시되는 예시적인 실시형태에서는, 객체 명칭 열 (1005) 은 CSS 파일 (605A), 이미지 파일 (605B), 및 JS 파일 (605C) 을 포함한다. 당업자는 다른 객체들이 본 발명의 범위 내에 속한다는 것을 인식한다. 호출된 횟수들 열 (1010) 의 숫자는, CSS 파일 (605A) 이 브라우징 엔진 (117) 에 의해 적어도 3 회 호출되거나 취출되었다는 것을 표시한다. 이와 유사하게, 호출된 횟수들 열 (1010) 의 숫자는, 이미지 파일 (605B) 이 브라우징 엔진 (117) 에 의해 적어도 2 회 취출되었다는 것을 표시한다. 그리고 최종적으로는, 호출된 횟수들 열 (1010) 의 숫자는, JS 파일 (605C) 이 브라우징 엔진 (117) 에 의해 적어도 6 회 호출되거나 취출되었다는 것을 표시한다.
DMAS (109) 는 호출된 횟수들 열 (1010) 의 숫자 내의 데이터를 이용하여, 서버 (210) 로부터의 정보의 취출을 감소시키기 위해서는, 어떤 객체들이 다른 객체들에 비해 상대적으로 더 긴 시간 기간들 동안 메모리 리소스들 (119) 에 의해 보유되어야 하는지를 결정할 수 있다. 이러한 방식으로, DMAS (109) 는 통신 링크를 설립하고 그리고 서버 (210) 와 데이터를 교환하기 위해 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 요구되는 시간을 감소시킬 수도 있다. 시간은 브라우징 엔진 (117) 이 객체들을 메모리 리소스들 (119) 로부터 직접적으로 당겨오는 경우에 감소될 수도 있는데, 이것은 캐시, RAM (121), 플래시 메모리 (123), 및 SD 카드 메모리 (125) 와 같은 것을 포함할 수도 있다.
도 11 은 무선 핸드헬드 컴퓨팅 디바이스 (200) 에 의해 메모리 리소스 (119) 내에서 유지될 수도 있는 예시적인 우선순위 테이블 (1100) 에 대한 데이터 구조의 도면이다. 구체적으로 설명하면, 우선순위 테이블 (1100) 은 도 1b 의 DMAS (109) 에 의해 생성될 수도 있고, 그리고 이것은 하나 이상의 메모리 리소스(들) (119) 내에 저장될 수도 있다. 우선순위 테이블 (1100) 은 메모리 리소스들 (119) 내에서 저장되는 객체들을, 우선순위 테이블 (1100) 의 가장 낮은 숫자가 이러한 특정 객체가 메모리 리소스들 (119) 로부터 제거되어야 하는 우선순위 테이블 (1100) 에 의해 추적되는 객체들 전체 중 마지막 것이 될 거라는 것을 표시하는 우선순위화된 방식으로 목록화할 수도 있다. 우선순위 테이블 (1100) 에서의 더 높은 숫자들은 더 적거나 또는 감소된 우선순위를 갖는 그러한 객체들을 표시함으로써, DMAS (109) 가 네트워크 스택 (107) 에 의해 모니터링되는 바와 같은 조건들이 필요한 것으로 진술하는 경우에 이러한 더 낮은 우선순위 객체들을 제거하도록 브라우징 엔진 (117) 에게 명령하도록 할 수도 있다.
예를 들어, 도 11 에서 예시되는 예시적인 실시형태에서는, 다중 사이트들 (1105) 에 의해 액세스되는 자바스크립트 라이브러리는 이미지 파일 #1 (605A) 에 비해 상대적으로 더 높은 우선순위를 가진다. 구체적으로 설명하면, 자바스크립트 라이브러리 (1105) 가 1 의 우선순위 값을 가지며 반면에 이미지 파일 #1 은 5 의 우선순위 값을 가진다. 도 1a 의 DMAS (109) 가 용량에 맞추어 또는 전체 용량에 근접하도록 채워졌다고 결정하면, DMAS (109) 는 네트워크 스택 (107) 또는 브라우저 엔진 (117) 에게 더 낮은 DMAS (109) 값을 갖는 하나 이상의 객체들을 폐기하도록 명령할 수 있다. 이미지 파일 #1 (605A) 은 사각형 점선 상자 (1115) 로써 강조되어서, DMAS (109) 가 하나 이상의 메모리 리소스들 (119) 내에 공간이 필요하다는 결정을 한다면, 이 객체가 폐기될 첫 번째 객체가 될 것이라는 것을 표시한다.
당업자는 우선순위 테이블 (1100) 이 본 발명의 기술 범위에서 벗어나지 않으면서 대안적인 방식으로 조직화될 수도 있다는 것을 인식한다. 예를 들어, 대안적인 예시적인 실시형태로서, 우선순위 테이블 (1100) 의 더 낮은 숫자들은 더 낮은 우선순위를 갖는 객체들을 표시하고, 반면에 더 높은 숫자들은 우선순위 테이블 (1100) 에 의해 추적되는 다른 객체들보다 더 큰 우선순위를 갖는 객체들을 반영할 수도 있다.
DMAS (109) 는, 하나 이상의 규칙들 및/또는 함수들에 의해 결정될 수도 있으며 객체에 할당된 우선순위에 기초하여 우선순위 테이블 (1100) 내의 임의의 포지션에 객체를 삽입할 수도 있다. DMAS (109) 에 의해 실행되고 그리고/또는 추적될 수도 있는 하나의 예시적인 규칙 또는 함수는 도 10 에서 도시되고 위에서 설명된 객체 추적 테이블 (1000) 을 포함한다.
도 12 를 참조하면, 이 도면은 무선 핸드헬드 컴퓨팅 디바이스 (200) 의 메모리 리소스(들) (119) 를 관리하기 위한 방법 (1200) 을 도시하는 흐름도이다. 블록 (1205) 은, 그 안에서 모바일 웹 브라우저 모듈 (105) 이 사용자가 도 3 에 도시된 인터페이스와 같은 사용자 인터페이스를 통하여 그 모듈 (105) 을 활성화하는 것에 응답하여 개시되는 프로세스 (1200) 내의 제 1 단계이다. 다음으로, 루틴 블록 (1210) 에서는, 동적 메모리 할당 시스템 (DMAS) (109) 은 메모리 리소스들 (119) 의 현재 상태를 결정하고 그리고 그러한 메모리 리소스들 (119) 의 할당들 및/또는 사이즈들을 필요할 때 조절할 수도 있다. 더 나아가, 이러한 루틴 블록 (1210) 의 세부 사항이 도 13 과 연계하여 아래에서 설명될 것이다.
다음으로, 블록 (1215) 에서는, 모바일 웹 브라우저 (105) 및 특히 사용자 인터페이스 (106) 는 원하는 웹페이지에 대한 웹 어드레스에 대한 입력을 수신할 수도 있다. 블록 (1220) 에서는, 네트워크 스택 (107) 은 웹 어드레스를 사용자 인터페이스 (106) 로부터 수신하고 그리고 이것을 HTTP 스택 (111) 으로 건네주는데, 이것은 이제 그 데이터를 도메인 명칭 서버 모듈 (113) 으로 전송한다. 당업자에게 이해되는 바와 같이, 도메인 명칭 서버 모듈 (113) 은 텍스트-기반 웹 어드레스를 수치적 인터넷 프로토콜 어드레스로 변환한다.
다음으로, 블록 (1225) 에서는, HTTP 스택 (111) 은, 도메인 명칭 서버 모듈 (113) 에 의해 결정되는 인터넷 프로토콜 어드레스를 이용하여 TCP 접속을 열거나 개시하기 위한 명령들을 TCP 접속 모듈 (127) 로 발행한다. 후속하여, 블록 (1230) 에서는, 모바일 웹 브라우저 (105), 및 구체적으로 설명하면 브라우저 엔진 (117) 이 웹페이지 (402) 에 대응하는 HTML 파일 (600) 을 웹 서버 (210) 로부터 수신한다.
블록 (1235) 에서는, 브라우저 엔진 모듈 (117) 은 HTML 파일 (600) 을 리뷰하여 HTML 파일 (600) 내에 포함되는 객체들 (605) 의 타입을 결정한다. 또한, 브라우저 엔진 모듈 (117) 은 HTML 파일 (600) 내에 포함되는 객체들 (605) 각각과 연관되는 인터넷 프로토콜 어드레스들 (620) 을 결정한다. 도 6 에서 예시되는 예시적인 HTML 파일 (600) 에서는, 3 개의 객체 타입들: CSS 파일 (605A), 이미지 파일 (605B), 및 JS 파일 (605C) 이 존재한다. 이러한 객체들 (605) 의 각각은 상이한 인터넷 프로토콜 어드레스들 (620) 을 가지며 그리고 이러한 어드레스들 (620) 은 객체들 (605) 을 저장하거나 하우징하는 하나 이상의 상이한 서버들과 부합할 수도 있다.
다음으로, 결정 블록 (1245) 에서는, DMAS (109) 는 브라우저 엔진 (117) 에게 현재 리뷰되는 중인 객체 (605) 및 그것의 대응하는 어드레스가 이미 하나 이상의 메모리 리소스들 (119) 내에 존재하는지를 결정하도록 명령할 수도 있다. 이러한 블록 (1245) 에서는, 브라우저 엔진 (117) 은 객체 추적 테이블 (1000) 및/또는 우선순위 테이블 (1100) 을 리뷰하여, 특정 객체 (605) 가 이미 메모리 리소스 (119) 내에 존재하는지를 결정할 수도 있다. 메모리 리소스 (119) 내에 특정 객체 (605) 가 이미 존재하면, 프로세스는, 그 안에서 브라우저 엔진 (117) 이 HTML 파일 (600) 의 객체들 (605) 의 마지막 것이 리뷰되었는지를 결정하는 결정 블록 (1270) 으로 진행한다.
특정 객체 (605) 가 메모리 리소스들 (119) 의 하나 내에 존재하지 않으면, 프로세스는 그 안에서 브라우저 엔진 (117) 이 TCP 접속 모듈 (127) 에게 도 6 에 도시된 바와 같이 객체 (605) 로 할당된 인터넷 프로토콜 어드레스 (620) 에 기초하여 접속을 개시하라고 명령하는 블록 (1250) 으로 진행한다.
다음으로, 루틴 블록 (1255) 에서는, 객체 (605) 가 취출되고 그리고 브라우저 엔진 (117) 으로 전송되기만 하면, DMAS (109) 는 취출된 객체 (605) 에 대한 우선순위를 계산할 수도 있다. 우선순위 계산 루틴 블록 (1255) 의 다른 세부 사항들이 도 14 과 연계하여 아래에서 설명될 것이다.
우선순위가 취출된 객체 (605) 에 대해 DMAS (109) 에 의해 계산되었으면, 그 우선순위는 블록 (1260) 내에서 객체에 할당될 수도 있다. 이러한 우선순위는 도 11 의 우선순위 테이블 (1100) 내에 저장될 수도 있다. 단계 (1265) 에서는, 이 객체는 메모리 내에 저장될 수도 있으며 그리고 다른 더 낮은 우선순위 객체들은 필요할 경우 폐기될 수도 있다. 이러한 단계에서는, DMAS가 현재 객체를 추가하는 것이 메모리 리소스들 (119) 의 임계를 초과할 것이라고 결정한다면, DMAS (119) 는 도 11 과 연계하여 위에서 논의된 바와 같이 더 낮은 우선순위를 갖는 객체들을 폐기할 수 있다.
후속하여, 결정 블록 (1270) 에서는, 브라우저 엔진 (117) 은 이것이 리뷰되는 중인 특정 HTML 파일 (600) 에 대한 자신의 객체 리스트의 끝에 도달했는지를 결정할 수도 있다. 브라우저 엔진 (117) 이 자신이 그의 리스트의 끝에 도달했다고 결정한다면, "예" 브랜치가 후속되고 그리고 프로세스는 루틴 블록 (1210) 으로 다시 복귀할 수도 있다.
도 13 은, 메모리 리소스들 (119) 의 현재 상태를 결정하고 그리고 무선 핸드헬드 컴퓨팅 디바이스 (200) 내의 이러한 하나 이상의 메모리 리소스들 (119) 의 할당들을 조절하기 위한, 도 12 의 서브-방법 또는 루틴 (1210) 을 도시하는 흐름도이다. 블록 (1305) 은, 그 안에서 DMAS (109) 가 웹 브라우저 (105) 에 대해 이용가능한 하나 이상의 메모리 리소스들 (119) 의 양을 결정할 수도 있는, 서브-방법 또는 루틴 (1210) 의 제 1 단계이다. 블록 (1305) 에서는, DMAS (109) 는 운영 체제 (115) 와 통신하여, 웹 브라우저 (105) 에 의해 이용가능할 수도 있는 하나 이상의 메모리 리소스들 (119) 의 용량을 결정할 수 있다.
다음으로, 블록 (1310) 에서는, DMAS (109) 는 네트워크 스택 (107) 또는 브라우저 엔진 (117) 에게 애플리케이션 서브시스템 (102) 의 현재 상태에 기초하여 하나 이상의 메모리 리소스들 (119) 을 할당하도록 명령할 수 있다. 이러한 블록 (1310) 에서는, 브라우저 엔진 (117) 은 웹 브라우저 모듈 (105) 에 의해 이용될 수도 있는 메모리의 사이즈 또는 양을 조절하여 객체들 (605) 을 하나 이상의 메모리 리소스들 (119) 내에 저장할 수 있다.
결정 블록 (1315) 에서는, DMAS (109) 는 추가적인 병행 애플리케이션 모듈들이 사용자에 의해 개시되었는지를 결정할 수 있다. 이러한 블록 (1315) 에서는, DMAS (109) 는 운영 체제 (115) 를 핑 (ping) 할 수도 있고, 그리고/또는 운영 체제 (115) 는 하나 이상의 애플리케이션 모듈들이 사용자에 의해 개시되었다면 메시지를 DMAS (109) 으로 전송할 수도 있다. 또한, 그리고 이러한 결정 블록 (1315) 에서는, DMAS (109) 는 모바일 웹 브라우저 (105) 와 병렬적으로 개시되었던 애플리케이션 모듈들의 각각에 대해 요구되는 양 또는 용량도 역시 결정할 수도 있다.
DMAS (109) 가 추가적인 병행 애플리케이션 모듈이 개시되었다고 결정하면, "예" 브랜치는, 그 안에서 DMAS (109) 가 브라우저 엔진 (117) 에게 하나 이상의 메모리 리소스들 (119) 을 재-할당하여 병행 애플리케이션 모듈들의 동작을 수용하도록 명령할 수도 있는 블록 (1320) 으로 후속된다. 일반적으로, 이것은 DMAS (109) 가 일반적으로 모바일 웹 브라우저 (105) 에 대해 배분되거나 할당된 용량을 감소시켜서 다른 병행 애플리케이션 모듈들이 부드럽게 동작하기 위해 충분한 메모리 리소스들 (119) 을 가지도록 할 것이라는 것을 의미한다. DMAS (109) 가 추가적 병행 애플리케이션 모듈들이 개시되지 않았다고 결정 블록 (1315) 에서 결정하면, "아니오" 브랜치가 후속되는데 여기서 프로세스는 도 12 의 블록 (1215) 으로 복귀한다.
도 14 는 객체 (605) 의 우선순위를 결정하기 위한, 도 12 의 서브-방법 또는 루틴 (1255) 을 도시하는 흐름도이다. 블록 (1305) 은 도 14 의 서브-방법 또는 루틴 (1255) 의 제 1 단계이다. 블록 (1305) 에서는, DMAS (109) 는 HTML 파일 (600) 내에서 참조될 수도 있는 객체 (605) 의 타입을 결정할 수도 있다. 객체 타입들에는 선결정된 우선순위가 제공될 수도 있는데, 여기서 더 복잡한 객체들 (605), 예컨대 자바스크립트 파일들 (605C) 및 캐스케이드 스타일 시트 파일들 (605A) 에는 일반적으로 다른 객체들, 예컨대 이미지 파일들 (605B) 에 비해 상대적으로 더 높은 우선순위가 할당된다. 또한, 라이브러리 파일들, 예컨대 웹사이트들 전체에서 취출되는 자바스크립트 라이브러리 파일들 (1105) 에게도 역시 가중치가 부여되고 그리고 이들에게는 객체 (605) 의 모든 다른 타입들에 비해 상대적으로 더 높은 우선 순위가 제공될 수도 있다.
블록 (1310) 에서는, DMAS (109) 는 우선순위를 블록 (1305) 와 연계하여 위에서 논의된 선결정된 우선순위에 기초하여 객체 (605) 로 할당할 수도 있다. 다음으로, 결정 블록 (1315) 에서는, DMAS (109) 는 특정 객체 (605) 가 이전에 웹 브라우저 (105) 에 의해 액세스되었는지를 결정할 수도 있다. 이러한 결정 블록 (1315) 에서는, DMAS (109) 는 객체 추적 테이블 (1000) 에 액세스하여 특정 객체 (605) 가 웹 브라우저 (105) 에 의해 이전에 액세스되었는지를 결정할 수도 있다.
DMAS (109) 가 객체가 이전에 액세스되었다고 결정하면, "예" 브랜치는, 그 안에서 DMAS (109) 가 객체 (605) 의 우선순위를 브라우저 (105) 에 의해 액세스 되었던 객체 (605) 의 횟수에 기초하여 조절할 수도 있는 블록 (1320) 으로 후속된다. DMAS (109) 는 도 10 의 객체 추적 테이블 (1000) 의 호출된 횟수 열 (1010) 의 숫자에 의해 표시되는 바와 같이 더 빈번하게 액세스되었던 객체들 (605) 에게 더 높은 우선순위를 할당할 수 있다. DMAS (109) 는 사용자에 의해 빈번하게 액세스되는 상위 "10 개의" 사이트들의 목록 및 대응하는 객체들을 형성할 수 있다. 본 발명은 10 개의 사이트들로 한정되지 않으며 그리고 이러한 양보다 더 높거나 더 낮은 양들을 포함할 수 있다.
DMAS (109) 가 어떤 객체가 이전에 액세스된 바 없다고 결정하면 이것은 그 객체 (605) 가 객체 추적 테이블 (1000) 내에 존재하지 않는다는 것을 의미하는데, 그러면, DMAS (109) 는 그 객체 (605) 에 대한 엔트리를 객체 추적 테이블 (1004) 내에 만들고 그리고 이제는 결정 블록 (1325) 으로 진행할 수도 있는데, 여기서 DMAS (109) 는 그 객체 (605) 가 웹 브라우저 (105) 에 관하여 글로벌 애플리케이션들을 가질 수도 있는지를 결정할 수 있다. 이러한 결정 블록 (1325) 에서는, DMAS (109) 는 객체 타입에 기초하여 그 객체 (605) 가 글로벌 애플리케이션들을 갖는지를 결정할 수 있다. 이전에 논의된 바와 같이, 글로벌 애플리케이션들을 갖는 객체 (605) 는 도 11 에 의해 도시된 바와 같이 다중 사이트들 (1105) 에 의해 액세스되는 자바스크립트 라이브러리와 같은 그러한 것들을 포함할 수도 있다. 이러한 스테이지에서는, DMAS (109) 가 객체 (605) 가 글로벌 애플리케이션들을 갖는 것으로 결정하면, "예" 브랜치는 그 안에서 DMAS (109) 가 단지 객체 (605) 의 우선순위일 수도 있는 블록 (1330) 으로 후속될 수도 있다. 이러한 단계에서는, 일반적으로 객체 (605) 의 우선순위가 조절됨으로써, 객체 (605) 가 상이한 웹사이트들에 걸쳐 글로벌 애플리케이션들을 가질 수도 있다는 것이 결정되었기 때문에 이 객체 (605) 가 더 높은 우선순위를 가지도록 할 수 있다. 결정 블록 (1325) 으로의 질의가 부정적이라면, 이것은 DMAS (109) 가 그 객체 (605) 가 웹사이트들에 걸쳐 글로벌 애플리케이션들을 가지지 않는다고 결정했다는 것을 의미하는데, 그러면, 프로세스는 "아니오" 브랜치를 추종하고 그리고 프로세스는 도 12 의 블록 (1260) 으로 복귀한다.
본 발명의 대안적인 예시적인 실시형태들은 도 14 의 우선순위 루틴 (1255) 에 대해 더 적은 단계들을 이용할 수도 있다. 예를 들어, 이것은, 대안적인 예시적인 실시형태가 타입에 의해 우선순위를 할당하는 블록 (1310) 만을 실행하고, 도시된 도 14 에 도시된 우선순위 루틴 (1255) 의 임의의 다른 블록을 실행하지 않을 수도 있다는 것을 의미한다. 또 다른 예시적인 실시형태들에서는, 우선순위 루틴 (1255) 의 모든 단계들이 수행될 수도 있는데, 그러나, 각각의 단계에는 애플리케이션 또는 모바일 디바이스 (200) 의 개발자에 의해 선택된 선결정된 가중치가 제공될 수도 있다. 예를 들어, 객체 타입들에 대한 블록 (1310) 에는 0.9 의 가중치가 할당될 수도 있고, 반면에 우선순위를 방문들/액세스의 빈도에 의해 조절하는 블록 (1320) 에는 블록 (1310) 에 대한 가중치보다 더 적은 0.5 의 가중치가 할당될 수도 있다. 다른 가중치들 및 도 14 의 블록들 중 어느 블록들이 실행되는지에 대한 다른 조합들도 본 발명의 범위 내에 양호하게 속한다.
본 명세서에서 설명된 프로세스들 또는 프로세스 흐름들 내의 특정 단계들은 본 발명이 설명된 바와 같이 기능하도록 하기 위해 다른 것들에 자연적으로 선행한다. 그러나, 이러한 순서 또는 시퀀스가 본 발명의 기능성을 변경하지 않는다면, 본 발명은 설명된 단계들의 순서로 한정되지 않는다. 즉, 어떤 단계들은 본 발명의 범위 및 사상에서 벗어나지 않으면서 다른 단계 이전에, 이후에, 또는 병렬적으로 (실질적으로 동시에) 수행될 수도 있다는 것이 인식된다. 몇 가지 실례들에서는, 어떤 단계들은 본 발명을 벗어나지 않으면서 생략되거나 수행되지 않을 수도 있다. 더 나아가, 단어들 "그 이후에", "그러면", "다음으로" 등은 단계들의 순서를 한정하려고 의도되지 않는다. 이러한 단어들은 독자를 예시적인 방법들의 설명을 통해서 인도하기 위해 이용될 뿐이다.
추가적으로, 프로그래밍 분야의 당업자는, 예를 들어 본 명세서 내의 흐름도들 및 연관된 발명을 실시하기 위한 구체적인 내용에 기초하여 어려움이 없이 개시된 발명을 구현하기 위한 컴퓨터 코드를 작성하거나 또는 적절한 하드웨어 및/또는 회로들을 식별할 수 있다.
그러므로, 프로그램 코드 명령어들의 특정한 세트 또는 세부적인 하드웨어 디바이스들의 개시는 어떻게 본 발명을 생산하고 사용할 지에 대한 적합한 이해를 위해 필요한 것으로 간주되지 않는다. 청구된 컴퓨터로 구현된 프로세스들의 진보적인 기능성은 위의 발명을 실시하기 위한 구체적인 내용에서 그리고 다양한 프로세스 흐름들을 도시할 수도 있는 도면들과 공동으로 더욱 상세하게 설명된다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 그 기능들은 컴퓨터-판독가능 매체 상에서 저장되거나 또는 하나 이상의 명령어들 또는 코드로서 송신될 수도 있다. 컴퓨터-판독가능 미디어는 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 미디어 및 통신 미디어 양쪽 모두를 포함한다. 저장 미디어는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 미디어일 수도 있다. 한정이 아니라 예를 들기 위해서, 이러한 컴퓨터-판독가능 미디어는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령어들 또는 데이터 구조들의 형태로 운반하거나 저장하는데 이용될 수 있고 그리고 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다.
또한, 임의의 접속이 적절히 컴퓨터-판독가능 매체로서 칭해진다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파를 이용하여 송신되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 무선 기술들은, 예컨대 적외선, 라디오, 및 마이크로파는 이러한 매체의 정의에 포함된다.
본 명세서에서 사용될 때, 디스크 (Disk 및 disc) 는 콤팩트 디스크 (compact disc; CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하지만, 디스크 (disc) 들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기한 것들의 조합들도 컴퓨터-판독가능 미디어의 범위 내에 역시 포함되어야 한다.
비록 선택된 양태들이 상세하게 도시되고 설명되었지만, 후속하는 특허청구범위에 의해 정의되는 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않으면서 선택된 양태들 내에 다양한 대체들 및 변경들이 이루어질 수도 있다는 것이 이해될 것이다.

Claims (40)

  1. 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하는 방법으로서, 상기 방법은 컴퓨터 시스템에 의해 수행되고,
    웹 브라우저 모듈을 개시하기 위한 요청을 수신하는 단계;
    웹 어드레스에 대한 입력을 수신하는 단계;
    상기 웹 어드레스에 대응하는 파일을 수신하는 단계;
    상기 파일 내의 하나 이상의 어드레스들을 리뷰하는 단계로서, 상기 하나 이상의 어드레스들은 상기 웹 브라우저 모듈에 의해 액세스되는 객체를 각각 가리키는, 상기 리뷰하는 단계;
    각 객체에 대한 액세스 빈도를 기록하는 객체 추적 테이블을 업데이트하는 단계로서, 상기 액세스 빈도는 상기 웹 브라우저 모듈에 의해 특정 객체가 액세스된 특정 경과 시간 동안의 인스턴스(instance)들의 수를 나타내는, 상기 객체 추적 테이블을 업데이트하는 단계;
    상기 하나 이상의 메모리 리소스들 내에 제 1 객체가 이미 존재하는지를 확인하는 단계;
    상기 제 1 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않는 경우 상기 제 1 객체에 대한 우선순위를 계산하는 단계로서, 상기 우선순위는 상기 제 1 객체의 타입, 상기 객체 추적 테이블 내의 상기 제 1 객체와 연관된 액세스 빈도, 및 상기 제 1 객체가 상기 웹 브라우저 모듈의 동작에 관한 글로벌 어플리케이션들을 갖는지에 기초하는, 상기 제 1 객체에 대한 우선순위를 계산하는 단계;
    상기 우선순위를 상기 제 1 객체에 할당하는 단계;
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는지를 확인하는 단계;
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는 경우, 상기 제 1 객체에 할당된 상기 우선순위에 관한 우선순위 테이블 내에서 낮은 우선순위들이 할당된 하나 이상의 다른 저장된 객체들을 상기 하나 이상의 메모리 리소스들로부터 폐기하는 단계로서, 상기 제 1 객체는 상기 하나 이상의 다른 저장된 객체들과 타입을 달리하는, 상기 폐기하는 단계; 및
    상기 용량의 임계를 초과한 경우 상기 하나 이상의 다른 저장된 객체들 중 어떤 객체를 버린 후에, 상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체를 저장하는 단계;
    를 포함하는, 메모리 리소스 관리 방법.
  2. 제 1 항에 있어서,
    상기 웹브라우저 모듈을 개시하기 위한 요청을 수신하는 단계 이후에, 상기 하나 이상의 메모리 리소스들의 현재 상태를 확인하는 단계를 더 포함하는, 메모리 리소스 관리 방법.
  3. 제 2 항에 있어서,
    상기 하나 이상의 메모리 리소스들의 상태가, 상기 웹 브라우저 모듈에 대해 용량의 증가가 가능하다는 것을 나타내면, 상기 웹 브라우저 모듈에 대해 가능한 용량을 증가시키는, 메모리 리소스 관리 방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체를 저장하는 단계 이후에, 상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체가 저장된 것을 기록하는 상기 우선순위 테이블을 업데이트하는 단계를 더 포함하는, 메모리 리소스 관리 방법.
  8. 삭제
  9. 제 1 항에 있어서,
    상기 제 1 객체는, 캐스케이딩 스타일 시트 (cascading style sheet), 자바 스크립트 파일, 이미지 파일, 및 자바 스크립트 라이브러리 중 적어도 하나를 포함하는, 메모리 리소스 관리 방법.
  10. 제 1 항에 있어서,
    상기 무선 핸드헬드 컴퓨팅 디바이스는,
    모바일 전화기, 개인 휴대정보 단말기, 페이저, 스마트폰, 네비게이션 디바이스, 및 무선 접속 또는 링크를 갖는 핸드 헬드 컴퓨터 중 적어도 하나를 포함하는, 메모리 리소스 관리 방법.
  11. 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 컴퓨터 시스템으로서,
    프로세서를 포함하고,
    상기 프로세서는,
    웹 브라우저 모듈을 개시하기 위한 요청을 수신하고;
    웹 어드레스에 대한 입력을 수신하고;
    상기 웹 어드레스에 대응하는 파일을 수신하고;
    상기 파일 내에 존재하는 하나 이상의 어드레스들을 리뷰하고, 상기 하나 이상의 어드레스들은 상기 웹 브라우저 모듈에 의해 액세스되는 객체를 각각 가리키고;
    각 객체에 대한 액세스 빈도를 기록하는 객체 추적 테이블을 업데이트하고, 상기 액세스 빈도는 상기 웹 브라우저 모듈에 의해 특정 객체가 액세스된 특정 경과 시간 동안의 인스턴스들의 수를 나타내고;
    상기 하나 이상의 메모리 리소스들 내에 제 1 객체가 이미 존재하는지를 확인하고;
    상기 제 1 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않는 경우 상기 제 1 객체에 대한 우선순위를 계산하고, 상기 우선순위는 상기 제 1 객체의 타입, 상기 객체 추적 테이블 내의 상기 제 1 객체와 연관된 액세스 빈도, 및 상기 제 1 객체가 상기 웹 브라우저 모듈의 동작에 관한 글로벌 어플리케이션들을 갖는지에 기초하며;
    상기 우선순위를 상기 제 1 객체에 할당하고,
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는지를 확인하고,
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는 경우, 상기 제 1 객체에 할당된 상기 우선순위에 관한 우선순위 테이블 내에서 낮은 우선순위들이 할당된 하나 이상의 다른 저장된 객체들을 상기 하나 이상의 메모리 리소스들로부터 폐기하고, 상기 제 1 객체는 상기 하나 이상의 다른 저장된 객체들과 타입을 달리하고,
    상기 용량의 임계를 초과한 경우 상기 하나 이상의 다른 저장된 객체들 중 어떤 객체를 버린 후에, 상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체를 저장하도록 구성된, 컴퓨터 시스템.
  12. 제 11 항에 있어서,
    상기 프로세서는 또한,
    상기 무선 핸드헬드 컴퓨팅 디바이스 내의 상기 하나 이상의 메모리 리소스들의 현재 상태를 확인하도록 구성된, 컴퓨터 시스템.
  13. 제 12 항에 있어서,
    상기 하나 이상의 메모리 리소스들의 상태가, 상기 웹 브라우저 모듈에 대해 용량의 증가가 가능하다는 것을 나타내면, 상기 프로세서는 상기 웹 브라우저 모듈에 대해 가능한 용량을 증가시키도록 구성된, 컴퓨터 시스템.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 제 11 항에 있어서,
    상기 프로세서는 또한,
    상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체가 저장된 것을 기록하는 상기 우선순위 테이블을 업데이트하도록 구성된, 컴퓨터 시스템.
  18. 삭제
  19. 제 11 항에 있어서,
    상기 제 1 객체는, 캐스케이딩 스타일 시트, 자바 스크립트 파일, 이미지 파일, 및 자바 스크립트 라이브러리 중 적어도 하나를 포함하는, 컴퓨터 시스템.
  20. 제 11 항에 있어서,
    상기 무선 핸드헬드 컴퓨팅 디바이스는,
    모바일 전화기, 개인 휴대정보 단말기, 페이저, 스마트폰, 네비게이션 디바이스, 및 무선 접속 또는 링크를 갖는 핸드 헬드 컴퓨터 중 적어도 하나를 포함하는, 컴퓨터 시스템.
  21. 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하기 위한 컴퓨터 시스템으로서,
    웹 브라우저 모듈을 개시하기 위한 요청을 수신하기 위한 수단;
    웹 어드레스에 대한 입력을 수신하기 위한 수단;
    상기 웹 어드레스에 대응하는 파일을 수신하기 위한 수단;
    상기 파일 내에 존재하는 하나 이상의 어드레스들을 리뷰하기 위한 수단으로서, 상기 하나 이상의 어드레스들은 상기 웹 브라우저 모듈에 의해 액세스되는 객체를 각각 가리키는, 상기 리뷰하기 위한 수단;
    각 객체에 대한 액세스 빈도를 기록하는 객체 추적 테이블을 업데이트하는 수단으로서, 상기 액세스 빈도는 상기 웹 브라우저 모듈에 의해 특정 객체가 액세스된 특정 경과 시간 동안의 인스턴스들의 수를 나타내는, 상기 객체 추적 테이블을 업데이트하기 위한 수단;
    상기 하나 이상의 메모리 리소스들 내에 제 1 객체가 이미 존재하는지를 확인하기 위한 수단;
    상기 제 1 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않는 경우, 상기 제 1 객체에 대한 우선순위를 계산하기 위한 수단으로서, 상기 우선순위는 상기 제 1 객체의 타입, 상기 객체 추적 테이블 내의 상기 제 1 객체와 연관된 액세스 빈도, 및 상기 제 1 객체가 상기 웹 브라우저 모듈의 동작에 관한 글로벌 어플리케이션들을 갖는지에 기초하는, 상기 우선순위를 계산하기 위한 수단;
    상기 우선순위를 상기 제 1 객체에 할당하기 위한 수단;
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는지를 확인하는 수단;
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는 경우, 상기 제 1 객체에 할당된 상기 우선순위에 관한 우선순위 테이블 내에서 낮은 우선순위들이 할당된 하나 이상의 다른 저장된 객체들을 상기 하나 이상의 메모리 리소스들로부터 폐기하는 수단으로서, 상기 제 1 객체는 상기 하나 이상의 다른 저장된 객체들과 타입을 달리하는, 상기 폐기하는 수단; 및
    상기 용량의 임계를 초과한 경우 상기 하나 이상의 다른 저장된 객체들 중 어떤 객체를 버린 후에, 상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체를 저장하는 수단을 포함하는, 컴퓨터 시스템.
  22. 제 21 항에 있어서,
    상기 무선 핸드헬드 컴퓨팅 디바이스 내의 상기 하나 이상의 메모리 리소스들의 현재 상태를 확인하기 위한 수단을 더 포함하는, 컴퓨터 시스템.
  23. 제 22 항에 있어서,
    상기 하나 이상의 메모리 리소스들의 상태가, 상기 웹 브라우저 모듈에 대해 용량의 증가가 가능하다는 것을 나타내면, 상기 웹 브라우저 모듈에 대해 가능한 용량을 증가시키는, 컴퓨터 시스템.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 제 21 항에 있어서,
    상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체가 저장된 것을 기록하는 상기 우선순위 테이블을 업데이트하는 수단을 더 포함하는, 컴퓨터 시스템.
  28. 삭제
  29. 제 21 항에 있어서,
    상기 제 1 객체는, 캐스케이딩 스타일 시트, 자바 스크립트 파일, 이미지 파일, 및 자바 스크립트 라이브러리 중 적어도 하나를 포함하는, 컴퓨터 시스템.
  30. 제 21 항에 있어서,
    상기 무선 핸드헬드 컴퓨팅 디바이스는,
    모바일 전화기, 개인 휴대정보 단말기, 페이저, 스마트폰, 네비게이션 디바이스, 및 무선 접속 또는 링크를 갖는 핸드 헬드 컴퓨터 중 적어도 하나를 포함하는, 컴퓨터 시스템.
  31. 컴퓨터 판독가능 프로그램 코드가 수록되어 있는 컴퓨터 판독가능한 저장 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는 무선 핸드헬드 컴퓨팅 디바이스의 하나 이상의 메모리 리소스들을 관리하는 방법을 구현하기 위해 실행되도록 구성되고,
    상기 방법은,
    웹 브라우저 모듈을 개시하기 위한 요청을 수신하는 단계;
    웹 어드레스에 대한 입력을 수신하는 단계;
    상기 웹 어드레스에 대응하는 파일을 수신하는 단계;
    상기 파일 내에 존재하는 하나 이상의 어드레스들을 리뷰하는 단계로서, 상기 하나 이상의 어드레스들은 상기 웹 브라우저 모듈에 의해 액세스되는 객체를 각각 가리키는, 상기 리뷰하는 단계;
    각 객체에 대한 액세스 빈도를 기록하는 객체 추적 테이블을 업데이트하는 단계로서, 상기 액세스 빈도는 상기 웹 브라우저 모듈에 의해 특정 객체가 액세스된 특정 경과 시간 동안의 인스턴스들의 수를 나타내는, 상기 객체 추적 테이블을 업데이트하는 단계;
    상기 하나 이상의 메모리 리소스들 내에 제 1 객체가 이미 존재하는지를 확인하는 단계;
    상기 제 1 객체가 상기 하나 이상의 메모리 리소스들 내에 존재하지 않는 경우, 상기 제 1 객체에 대한 우선순위를 계산하는 단계로서, 상기 우선순위는 상기 제 1 객체의 타입, 상기 객체 추적 테이블 내의 상기 제 1 객체와 연관된 액세스 빈도, 및 상기 제 1 객체가 상기 웹 브라우저 모듈의 동작에 관한 글로벌 어플리케이션들을 갖는지에 기초하는, 상기 제 1 객체에 대한 우선순위를 계산하는 단계;
    상기 우선순위를 상기 제 1 객체에 할당하는 단계;
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는지를 확인하는 단계;
    상기 제 1 객체를 상기 하나 이상의 메모리 리소스들에 저장하는 것이 용량의 임계를 초과하는 경우, 상기 제 1 객체에 할당된 상기 우선순위에 관한 우선순위 테이블 내에서 낮은 우선순위들이 할당된 하나 이상의 다른 저장된 객체들을 상기 하나 이상의 메모리 리소스들로부터 폐기하는 단계로서, 상기 제 1 객체는 상기 하나 이상의 다른 저장된 객체들과 타입을 달리하는, 상기 폐기하는 단계; 및
    상기 용량의 임계를 초과한 경우 상기 하나 이상의 다른 저장된 객체들 중 어떤 객체를 버린 후에, 상기 하나 이상의 메모리 리소스들 내에 상기 제 1 객체를 저장하는 단계를 포함하는, 컴퓨터 판독가능한 저장 매체.
  32. 제 31 항에 있어서,
    상기 방법을 구현하는 상기 프로그램 코드는,
    상기 무선 핸드헬드 컴퓨팅 디바이스 내의 상기 하나 이상의 메모리 리소스들의 현재 상태를 확인하는 것을 더 포함하는, 컴퓨터 판독가능한 저장 매체.
  33. 제 31 항에 있어서,
    상기 방법을 구현하는 상기 프로그램 코드는,
    상기 하나 이상의 메모리 리소스들의 상태가, 상기 웹 브라우저 모듈에 대해 용량의 증가가 가능하다는 것을 나타내는지를 결정하고,
    상기 웹 브라우저 모듈에 대해 가능한 용량을 증가시키는 것을 더 포함하는, 컴퓨터 판독가능한 저장 매체.
  34. 삭제
  35. 삭제
  36. 삭제
  37. 제 31 항에 있어서,
    상기 방법을 구현하는 상기 프로그램 코드는,
    상기 하나 이상의 메모리 리소스들 내에 상기 상기 제 1 객체가 저장된 것을 기록하는 상기 우선순위 테이블을 업데이트하는 것을 더 포함하는, 컴퓨터 판독가능한 저장 매체.
  38. 삭제
  39. 제 31 항에 있어서,
    상기 제 1 객체는, 캐스케이딩 스타일 시트, 자바 스크립트 파일, 이미지 파일, 및 자바 스크립트 라이브러리 중 적어도 하나를 포함하는, 컴퓨터 판독가능한 저장 매체.
  40. 제 31 항에 있어서,
    상기 무선 핸드헬드 컴퓨팅 디바이스는,
    모바일 전화기, 개인 휴대정보 단말기, 페이저, 스마트폰, 네비게이션 디바이스, 및 무선 접속 또는 링크를 갖는 핸드 헬드 컴퓨터 중 적어도 하나를 포함하는, 컴퓨터 판독가능한 저장 매체.
KR1020137011479A 2010-10-04 2011-08-31 무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 시스템 및 방법 KR101516508B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/897,327 2010-10-04
US12/897,327 US8453154B2 (en) 2010-10-04 2010-10-04 System and method for managing memory resource(s) of a wireless handheld computing device
PCT/US2011/049839 WO2012047419A1 (en) 2010-10-04 2011-08-31 System and method for managing memory resource(s) of a wireless handheld computing device

Publications (2)

Publication Number Publication Date
KR20130061761A KR20130061761A (ko) 2013-06-11
KR101516508B1 true KR101516508B1 (ko) 2015-05-04

Family

ID=44721064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137011479A KR101516508B1 (ko) 2010-10-04 2011-08-31 무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US8453154B2 (ko)
EP (1) EP2625632A1 (ko)
JP (2) JP2013540322A (ko)
KR (1) KR101516508B1 (ko)
CN (1) CN103140852B (ko)
BR (1) BR112013007611A2 (ko)
WO (1) WO2012047419A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9509827B2 (en) * 2014-03-12 2016-11-29 Intel IP Corporation Apparatus, system and method of managing at a mobile device execution of an application by a computing device
CN106162500B (zh) * 2015-04-08 2020-06-16 杜比实验室特许公司 音频内容的呈现
CN106209944A (zh) * 2015-05-07 2016-12-07 中兴通讯股份有限公司 一种云服务***的资源设备管理方法和装置
US10372876B2 (en) 2017-01-20 2019-08-06 Agfa Healthcare Inc. System and method for providing breast image data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272598B1 (en) 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6651143B2 (en) 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
JP2006146967A (ja) * 2000-03-20 2006-06-08 Nec Corp ウェブコンテントの知的フェッチと配送のためのシステムと方法
JP2008009618A (ja) * 2006-06-28 2008-01-17 Nec Corp 電子機器におけるキャッシュ管理方法及び電子機器及びネットワークシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05308366A (ja) * 1992-05-06 1993-11-19 Ricoh Co Ltd Lanにおけるキャッシュシステム
JP3140621B2 (ja) * 1993-09-28 2001-03-05 株式会社日立製作所 分散ファイルシステム
JPH1165916A (ja) * 1997-08-19 1999-03-09 Hitachi Ltd ネットワーク用キャッシュ管理方法
US6266742B1 (en) * 1997-10-27 2001-07-24 International Business Machines Corporation Algorithm for cache replacement
US6915307B1 (en) * 1998-04-15 2005-07-05 Inktomi Corporation High performance object cache
JP2001043158A (ja) * 1999-07-28 2001-02-16 Toshiba Tec Corp 管理データ処理装置及び管理データ処理プログラムを記録したコンピュータ読取可能な記録媒体
JP3788121B2 (ja) * 1999-08-06 2006-06-21 日本電信電話株式会社 キャッシュサーバ性能値算出方法及び装置及びキャッシュサーバ性能値算出プログラムを格納した記憶媒体
JP3690720B2 (ja) * 1999-09-14 2005-08-31 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアントサーバーシステム、オブジェクトのプール方法および記憶媒体
JP2003022203A (ja) * 2001-04-27 2003-01-24 Matsushita Electric Ind Co Ltd コンテンツ解析装置、コンテンツ解析方法、プログラム及びその記録媒体
US6546473B2 (en) * 2001-05-29 2003-04-08 Hewlett-Packard Company Method for cache replacement of web documents
US7043606B2 (en) * 2002-10-01 2006-05-09 America Online, Inc. Automatic browser web cache resizing system
US7076611B2 (en) * 2003-08-01 2006-07-11 Microsoft Corporation System and method for managing objects stored in a cache
US7644149B2 (en) * 2006-04-28 2010-01-05 Research In Motion Limited Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device
CN100446004C (zh) * 2007-03-13 2008-12-24 博思天地(北京)科技有限公司 一种利用记忆性缓存器显示门户主页的方法
GB2499534B (en) * 2010-11-01 2018-09-19 Seven Networks Llc Caching adapted for mobile application behavior and network conditions
WO2012061437A1 (en) * 2010-11-01 2012-05-10 Michael Luna Cache defeat detection and caching of content addressed by identifiers intended to defeat cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272598B1 (en) 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
JP2006146967A (ja) * 2000-03-20 2006-06-08 Nec Corp ウェブコンテントの知的フェッチと配送のためのシステムと方法
US6651143B2 (en) 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
JP2008009618A (ja) * 2006-06-28 2008-01-17 Nec Corp 電子機器におけるキャッシュ管理方法及び電子機器及びネットワークシステム

Also Published As

Publication number Publication date
WO2012047419A1 (en) 2012-04-12
CN103140852B (zh) 2016-03-02
US20120084784A1 (en) 2012-04-05
US8453154B2 (en) 2013-05-28
EP2625632A1 (en) 2013-08-14
JP2013540322A (ja) 2013-10-31
CN103140852A (zh) 2013-06-05
JP2015135690A (ja) 2015-07-27
KR20130061761A (ko) 2013-06-11
BR112013007611A2 (pt) 2018-01-23

Similar Documents

Publication Publication Date Title
KR102245025B1 (ko) 메모리 반환 방법 및 장치
US10109079B2 (en) Method and apparatus for processing tab in graphical interface
US20050254453A1 (en) Priority session management system and method for a mobile communication device
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
JP6896876B2 (ja) 通信方法及び通信機器
KR101516508B1 (ko) 무선 핸드헬드 컴퓨팅 디바이스의 메모리 리소스(들)를 관리하기 위한 시스템 및 방법
CN104239332A (zh) 网页内容处理方法、装置及浏览器客户端
US11516705B2 (en) Network performance improvement method and device
JP2021513281A (ja) 検索空間の傍受情報の決定方法及び検索空間の傍受方法の決定装置
US11706301B2 (en) Server node selection method and terminal device
CN110020338B (zh) 浏览器、网页打开方法及设备
CN111435318A (zh) 应用程序的dex优化方法及终端
CN103729440B (zh) 一种访问网站的方法及装置
CN104615622A (zh) 打开文件的方法、装置及移动终端
KR20120025176A (ko) 모바일 단말기의 데이터 사용량을 제어하는 방법 및 장치
CN105681370A (zh) 文件同步方法、服务器及客户端
CN110677456A (zh) 一种资源配置的方法及设备
CN107623788B (zh) 应用启动速度的提高方法、装置及计算机可读存储介质
WO2019140565A1 (zh) 云存储命令管理方法及***
KR20110063951A (ko) 이동단말에서 네트워크 접속 방법 및 장치
KR100884665B1 (ko) 갱신된 IP 주소를 SIP 서버에 등록하는 VoIP단말기 및 방법
JP4794581B2 (ja) 情報処理装置およびプログラム
CN104615623A (zh) 一种获取网络资源的方法和装置
CN112235874B (zh) 减少前端无线传输时间方法、***、存储介质及移动终端
WO2019140578A1 (zh) 数据备份指令管理方法及***

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee