`US007552124B2
`
`c12) United States Patent
`Dru kin
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,552,124 B2
`Jun.23,2009
`
`(54) NATURAL LANGUAGE FOR
`PROGRAMMING A SPECIALIZED
`COMPUTING SYSTEM
`
`(75)
`
`Inventor: Vladimir Drukin, Raanana (IL)
`
`(73) Assignee: IXI Mobile (R&D), Ltd. (IL)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 560 days.
`
`(21) Appl. No.: 10/872,289
`
`(22) Filed:
`
`Jun.17,2004
`
`(65)
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Prior Publication Data
`
`US 2005/0283467 Al
`
`Dec. 22, 2005
`
`Int. Cl.
`G06F 17130
`(2006.01)
`U.S. Cl. ......................... 707/10; 707/100; 707/101;
`707/102
`Field of Classification Search . ... ... ... ... .. .. 7071200,
`707/100, 101, 10; 717/172-177
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`7,027,975 Bl*
`2003/0074184 Al*
`2003/0083861 Al*
`
`412006 Pazandak et al ................ 704/9
`4/2003 Hayosh et al.
`................. 704/1
`5/2003 Weise ............................ 704/9
`
`* cited by examiner
`Primary Examiner-Khanh B Pham
`(74) Attorney, Agent, or Firm-Century IP Group, Inc.; F.
`Jason Far-hadian, Esq.
`
`(57)
`
`ABSTRACT
`
`A method for programming a mobile communication device
`based on a high-level code comprising operative language is
`provided. The method comprises parsing the high-level code
`for keywords to recognize the operative language; determin(cid:173)
`ing at least one operation associated with the operative lan(cid:173)
`guage; determining whether high-level code comprises key(cid:173)
`words defining one or more relationships and conditions
`corresponding to the operative language; and producing an
`executable code that can be executed by a microcontroller of
`the mobile communication device to perform the respective
`operation associated with the operative language, wherein the
`high-level code comprises at least one sentence formatted in
`accordance with a first context.
`
`6,766,320 Bl*
`
`7/2004 Wang et al ..................... 707/5
`
`10 Claims, 3 Drawing Sheets
`
`Start
`
`S21
`
`Process High
`Level Code
`
`S220
`
`Recognize
`Operative
`Language
`
`S23
`
`Recognize
`data source
`
`S240
`
`Determine
`requested
`operation
`
`S250
`
`Determine
`relationships
`and
`Conditions
`
`S26
`
`Produce
`Executable
`Code
`
`End
`
`Page 1 of 9
`
`
`
`~ = N
`"' "'"" N
`-....l u.
`rJl
`d
`
`N
`tit
`
`FIG. I
`
`0 .....
`....
`.....
`1J1 =(cid:173)
`
`('D
`('D
`
`(.H
`
`100
`
`Network Server
`
`:=
`2'
`
`"°
`
`0
`0
`N
`"'
`(.H
`N
`
`~ = ~
`
`~
`~
`~
`•
`00
`~
`
`1122
`
`Software
`
`Application
`
`150
`Code
`
`High Level
`
`¢
`¢
`160
`Code
`
`Executable
`
`~
`
`110
`
`Network
`
`Communication
`
`120
`
`Mobile Device
`
`150
`Code
`
`High Level
`
`i}
`1122
`
`Software
`Application
`
`i}
`160
`Code
`
`Executable
`
`Page 2 of 9
`
`
`
`U.S. Patent
`
`Jun.23,2009
`
`Sheet 2 of 3
`
`US 7,552,124 B2
`
`Start
`
`S220
`
`Recognize
`Operative
`Language
`
`S23
`
`Recognize
`data source
`
`S240
`
`Determine
`requested
`operation
`
`S250
`
`Determine
`relationships
`and
`Conditions
`
`S26
`
`Produce
`Executable
`Code
`
`End
`
`FIG. 2
`
`Page 3 of 9
`
`
`
`U.S. Patent
`
`Jun.23,2009
`
`Sheet 3 of 3
`
`US 7,552,124 B2
`
`Hardware Environment 1110 -...._
`
`1101 \
`
`CPU
`
`1102 \
`
`1103 \
`
`1104 \
`
`Main
`Memory
`
`IIO
`Controller
`
`Cache
`Memory
`
`Bus 1100
`
`User
`Interface
`
`Storage
`Media
`
`Display
`Screen
`
`Connntmication
`Interface
`
`1105 _/
`
`1106 _/
`
`1107 _/
`
`1108 _/
`
`FIG. 3A
`
`Software Environment 1120 ~
`1122 --........
`
`Application
`Software
`
`1124 1'\_,
`
`User
`Interface
`
`Browser ~
`1126
`
`System
`Software
`
`1121 ~
`
`FIG. 3B
`
`Page 4 of 9
`
`
`
`US 7,552,124 B2
`
`1
`NATURAL LANGUAGE FOR
`PROGRAMMING A SPECIALIZED
`COMPUTING SYSTEM
`
`BACKGROUND
`
`2
`In one embodiment, a method for programming a mobile
`communication device based on a high-level code comprising
`operative language comprises parsing the high-level code for
`keywords to recognize the operative language; determining at
`least one operation associated with the operative language;
`determining whether high-level code comprises keywords
`defining one or more relationships and conditions corre(cid:173)
`sponding to the operative language; and producing an execut(cid:173)
`able code that can be executed by a microcontroller of the
`10 mobile communication device to perform the respective
`operation associated with the operative language, wherein the
`high-level code comprises at least one sentence formatted in
`accordance with a first context.
`In one embodiment, application software is executed on
`the mobile communication device performs the parsing and
`determining steps, when the high-level code comprises a first
`level of complexity. In another embodiment, application soft(cid:173)
`ware executed on a network server connected to the mobile
`communication device performs the parsing and determining
`steps, when the high-level code comprises a second level of
`complexity. In yet another embodiment, application software
`executed on a distributed environment, comprising the
`mobile communication device and a network server con(cid:173)
`nected to the mobile communication device, performs the
`25 parsing and determining steps.
`The high-level code is transmitted to the network server to
`produce the executable code after the network server per(cid:173)
`forms the parsing and determining steps. The executable code
`is transmitted to the mobile communication device to be
`30 executed by the microcontroller of the mobile communica(cid:173)
`tion device. In one embodiment, at least one sentence com(cid:173)
`prises one or more keywords and the first context is a natural
`language context. The high-level code may be contained in a
`script. The script is written by a user of the mobile commu-
`35 nication device.
`In accordance with another embodiment, a system for pro(cid:173)
`gramming a mobile communication device based on a high(cid:173)
`level code comprising operative language is provided. The
`system comprises means for parsing the high-level code for
`40 keywords to recognize the operative language; means for
`determining at least one operation associated with the opera(cid:173)
`tive language; means for determining whether high-level
`code comprises keywords defining one or more relationships
`and conditions corresponding to the operative language; and
`45 means for producing an executable code that can be executed
`by a microcontroller of the mobile communication device to
`perform the respective operation associated with the opera(cid:173)
`tive language, wherein the high-level code comprises at least
`one sentence formatted in accordance with a first context.
`These and other embodiments of the present invention will
`also become readily apparent to those skilled in the art from
`the following detailed description of the embodiments having
`reference to the attached figures, the invention not being
`limited to any particular embodiments disclosed.
`
`1. Field oflnvention
`The present invention relates generally to specialized com(cid:173)
`puting systems and, more particularly, to a system and
`method for programming a mobile communication device
`using a high-level natural language.
`2. Copyright & Trademark Notices
`A portion of the disclosure of this patent document con(cid:173)
`tains material, which is subject to copyright protection. The
`owner has no objection to the facsimile reproduction by any 15
`one of the patent document or the patent disclosure, as it
`appears in the Patent and Trademark Office patent file or
`records, but otherwise reserves all copyrights whatsoever.
`Certain marks referenced herein may be common law or
`registered trademarks of third parties affiliated or unaffiliated 20
`with the applicant or the assignee. Use of these marks is for
`providing an enabling disclosure by way of example and shall
`not be construed to limit the scope of this invention to material
`associated with such marks.
`3. Related Art
`Computing systems continue to dramatically enhance our
`quality oflife. Many specialized computing systems, such as
`mobile communication devices (e.g., cellular phones) and
`data organizers (e.g., personal digital assistants (PDAs)) are
`particularly popular these days. The technically savvy con(cid:173)
`sumers can operate these specialized devices to perform
`many operational features for which the devices are config(cid:173)
`ured.
`For example, some cellular phones have special features
`that allow a consumer to program the phone to produce a
`special tone, if a call is received from a designated phone
`number (i.e., audio caller identification). Other programming
`features may include voice-activated dialing, voice mail man(cid:173)
`agement, or other functions that may be configured in accor(cid:173)
`dance with occurrence of particular conditions and events.
`Unfortunately for the less technically inclined consumer,
`most of said operational features are hardly usable, because
`the consumer either does not possess the skill or cam10t learn
`the requisite steps to properly program the device to perform
`various functions. Generally, most consumers find it tedious
`to program the device to perform the special features, and
`therefore forgo using said features altogether.
`Thus, a more natural method for programming specialized
`computing systems is desirable to promote use and enhance 50
`the user's level of enjoyment.
`
`SUMMARY
`
`55
`
`The present disclosure is directed to a system and corre(cid:173)
`sponding methods that facilitate programming a mobile com(cid:173)
`munication device or other specialized computing device
`using a natural language.
`For purposes of summarizing, certain aspects, advantages,
`and novel features of the invention have been described
`herein. It is to be understood that not necessarily all such
`advantages may be achieved in accordance with any one
`particular embodiment of the invention. Thus, the invention
`may be embodied or carried out in a mamier that achieves or
`optimizes one advantage or group of advantages as taught 65
`herein without necessarily achieving other advantages as may
`be taught or suggested herein.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Embodiments of the present invention are understood by
`60 referring to the figures in the attached drawings, as provided
`below.
`FIG. 1 illustrates an exemplary communications environ(cid:173)
`ment, in accordance with one or more embodiments of the
`invention;
`FIG. 2 is a flow diagram ofa method for providing a natural
`programming language for a specialized computing device,
`in accordance with one or more embodiments; and
`
`Page 5 of 9
`
`
`
`US 7,552,124 B2
`
`3
`FIGS. 3A and 3B are block diagrams of hardware and
`software environments in which a system of the present
`invention may operate, in accordance with one or more
`embodiments.
`Features, elements, and aspects of the invention that are
`referenced by the same numerals in different figures represent
`the same, equivalent, or similar features, elements, or aspects,
`in accordance with one or more embodiments.
`
`DETAILED DESCRIPTION
`
`4
`In some embodiments, communication network 110 can be
`a part of the world wide web (i.e., the Internet). The Internet,
`in a well-known manner, connects millions of computers
`world wide through standard common addressing systems
`and communications protocols (e.g., Transmission Control
`Protocol/Internet Protocol (TCP/IP), HyperText Transport
`Protocol) creating a vast communications network.
`In either context, mobile device 120 can communicate with
`network server 100 to send and receive electronic packets of
`10 information, in form of electronic requests and responses. In
`a particular embodiment, a high-level code 150 written by a
`user and stored in mobile device 120' s memory, for example,
`may be transmitted over communication network 110 from
`mobile device 120 to network server 100 for processing.
`High-level code 150, in a preferred embodiment, com-
`prises text formatted in the context of a natural language (e.g.,
`English, French, Spanish, Japanese, etc.). High-level code
`150 may comprise one or more sentences, wherein each sen(cid:173)
`tence comprises at least one operative language (i.e. keyword)
`20 defining an instruction for a function or an operation to be
`performed. In one embodiment, the sentences also comprise
`keywords defining conditions or relationships based on
`which an operation is performed.
`To illustrate, an exemplary script written by a user in a
`25 natural language may include a sentence such as "Transfer
`call to voice mail if call is from Bob". The operative language
`(i.e., keyword or instruction) in the sentence is "transfer". The
`condition is "if call is from Bob". Keywords such as "if' or the
`like are used to indicate a condition or relationship. Applica-
`30 tion software 1122 can process sentences written in natural
`language to recognize the included keywords.
`In one or more embodiments, the operations that can be
`performed by mobile device 120 are limited because mobile
`device 120 is a specialized computing system developed and
`35 manufactured to perform particular functions or operations
`(e.g., related to making and receiving telephone calls). There(cid:173)
`fore, the corresponding conditions and relationships associ(cid:173)
`ated with the particular functions fall within a finite set for
`each operation. For example, the conditions associated with
`40 an operation to receive a call may include answering the call,
`transferring the call to voice mail, or disconnecting the call.
`Accordingly, application software 1122 can act as a natural
`language compiler to processes high-level code 150 to control
`the operation of mobile device 120 based a defined set of
`45 conditions. In one embodiment, as shown in FIG. 1, depend(cid:173)
`ing on the level of sophistication and complexity, high-level
`code 150 may be processed by application software 1122 to
`produce executable code 160.
`Thus, if high-level code 150 comprises a complex set of
`50 instructions, then high-level code 150 is transmitted to net(cid:173)
`work server 100, so that a more powerful system is utilized to
`process and compile high-level code 150. Therefore, in one
`embodiment, application software 1122 or a portion thereofis
`installed and executed on network server 100 to process high-
`55 level code 150 and to produce executable code 160. Execut(cid:173)
`able code 160 is then transmitted over communication net(cid:173)
`work 110 to mobile device 120.
`Alternatively, ifhigh-level code 150 comprises a less com(cid:173)
`plex structure, then application software 1122 or a portion
`thereof is installed and executed on mobile device 120 to
`process high-level code 150 to produce executable code 160,
`without the need for transferring high-level code 150 to a
`more powerful processing environment implemented on net(cid:173)
`work server 100. As such, simple instructions implemented in
`a natural language context can be processed more efficiently
`by a locally executed version of application software 1122. In
`some embodiments, depending on implementation, a first
`
`15
`
`An electronic system and corresponding methods, accord(cid:173)
`ing to an embodiment of the present invention, facilitate and
`provide a method and system for programming a specialized
`computing device.
`The terms electronic services, services, and online services
`are used interchangeably herein. The services provided by the
`system of this invention, in one or more embodiments, are
`provided by a service provider. A service provider is an entity
`that operates and maintains the computing systems and envi(cid:173)
`ronment, such as server systems and infrastructures that
`enable the delivery of information. Typically, server architec(cid:173)
`ture includes components (e.g., hardware, software, and com(cid:173)
`munication lines) that store and offer electronic or online
`services.
`In the following, numerous specific details are set forth to
`provide a thorough description of various embodiments of the
`invention. Certain embodiments of the invention may be prac(cid:173)
`ticed without these specific details or with some variations in
`detail. In some instances, features not pertinent to the novelty
`of the system are described in less detail so as not to obscure
`other aspects of the invention.
`Referring to the drawings, FIG. 1 illustrates an exemplary
`communications environment in which the system of the
`present invention may operate. In accordance with one aspect
`of the invention, the system environment comprises a net(cid:173)
`work server 100, a communication network 110, and a mobile
`device 120. The network server 100 and mobile device 120
`are connected by way of the communication network 110.
`The terms "connected," "coupled," or any variant thereof,
`mean any connection or coupling, either direct or indirect,
`between two or more elements. The coupling or connection
`between the elements can be physical, logical, or a combina(cid:173)
`tion thereof.
`In one embodiment, communication network 110 provides
`the medium and infrastructure for transmitting digital or ana(cid:173)
`log signals between network server 100 and mobile device
`120. In certain embodiments, mobile device 120 is a cellular
`telephone and communication network 110 is a wireless tele(cid:173)
`phone network, for example. Mobile device 120, network
`server 100 and communication network 110, however, may
`be implemented over any type of mobile, fixed, wired or
`wireless communication technology (e.g., landline tele(cid:173)
`phony, cellular, radio, radar, infrared, etc.).
`One of ordinary skill in the art will appreciate that com(cid:173)
`munication network 110 may advantageously be comprised
`of one or a combination of various types of networks without
`detracting from the scope of the invention. Such networks
`can, for example, comprise personal area networks (PANs),
`local area networks (LANs), wide area networks (WANs), 60
`public, private or secure networks, value-added networks,
`interactive television networks, wireless communications
`networks, two-way cable networks, satellite networks, inter(cid:173)
`active kiosk networks, cellular networks, personal mobile
`gateways (PMGs) and/or any other suitable communications 65
`networks that can provide a means of communication
`between mobile device 120 and network server 100.
`
`Page 6 of 9
`
`
`
`US 7,552,124 B2
`
`5
`part of high-level code 150 is processed by application soft(cid:173)
`ware 1122 executed on mobile device 120 and a second part
`of high-level code 150 is processed by application software
`1122 executed on network server 100.
`Executable code 160, according to one embodiment, com(cid:173)
`prises binary or hex code that can be processed by a micro(cid:173)
`controller or processor embedded in mobile device 120 to
`cause mobile device 120 to perform the requisite operations
`according to the operational language included in high-level
`code 150. Exemplary operational language may include an
`instruction to tum mobile device 120 on or off at a certain
`time, to set an alarm with a particular tune, to display a
`particular image when a call from an identifiable party is
`received, to automatically place a call to a designated desti(cid:173)
`nation, to forward received text messages from an identifiable
`source to a designated email account, and numerous other
`telephony related operations.
`In accordance with one embodiment, in addition to mobile
`device 120 or network server 100, application software 1122
`may be installed or executed on at least one of a third party
`portal, a service provider or a combination of said systems. As
`used herein, the terms mobile device, third party portal, ser(cid:173)
`vice provider and communication network are to be viewed as
`designations of one or more computing environments that
`comprise application, client or server software for servicing 25
`requests submitted by respective software included in devices
`or other computing systems connected there to. These terms
`are not to be otherwise limiting in any manner. Application
`software 1122, for example, may be comprised of one or more
`modules that execute on one or more computing systems.
`Referring to FIG. 2, once a user has edited and stored a
`high-level code written in a natural language (e.g., "Transfer
`all text messages from Mary to my Yahoo account"), by way
`of interacting with mobile device 120's user interface, for
`example, application software 1122 processes the high-level
`code 150 (S210). Thus, application software 1122 pareses
`high-level code 150 for keywords in an attempt to recognize
`any operative language included in high-level code 150
`(S220). For example, application software 1122 may deter(cid:173)
`mine that "transfer" as used in the above example is the 40
`operative language for performing a function, namely trans(cid:173)
`ferring a certain content received by mobile device 120 to a
`destination.
`Application software 1122 is also be implemented to parse
`high-level code 150 for keywords in an attempt to recognize 45
`any data sources (S230). For example, application software
`1122 may search mobile device 120's internal memory to
`determine if a data source (e.g., a contacts database) stores
`information associated with the name "Mary", so that when a
`text message is received from "Mary" the corresponding 50
`function or operation defined in high-level code 150 is per(cid:173)
`formed.
`Once application software 1122 parses high-level code 150
`for the particular keywords, then application software 1122
`determines the requested operation that is to be performed in
`accordance with the recognized keywords (S240). As noted
`above, for example, the keyword "transfer" would indicate
`that a transfer operation is to be performed. Furthermore,
`application software 1122 determines the relationships and
`conditions that are to be taken into account for the operation
`to be performed (S250). That is, the "transfer" operation is,
`for example, to be performed when a particular condition,
`namely "receipt of a text message from Mary", is satisfied.
`Once the operations, conditions, and relationships are rec(cid:173)
`ognized, then application software 1122 produces executable
`code 160 (S260). A processor of mobile device 120 executes
`executable code 260 in order to accomplish the results con-
`
`6
`templated according to instructions in high-level code 150.
`Thus, for example, mobile device 120 will operate to monitor
`text messages received from various sources in order to deter(cid:173)
`mine if a message is from "Mary", for example, and transfers
`such messages to a designated destination, such as a Yahoo
`email account, for example, instead of storing the messages in
`mobile device 120's memory.
`As such, a user can manipulate the operation of mobile
`device 120 by writing a high-level code 150 in a natural
`10 language (e.g., "if Eugene calls on Saturday morning, for(cid:173)
`ward call to voice mail" or "if Bob calls anytime then show
`picture bob.jpg and play ring tone ring! .wav").
`Application software 1122 may be implemented, installed
`or executed on a device or a system other than mobile device
`15 120. For example, application software 1122 or its compo(cid:173)
`nents may be implemented, installed, and executed either in a
`singular or in a distributed environment. That is, certain com(cid:173)
`ponents of the application software may be installed and
`executed on mobile device 120, while other components may
`20 be executed and installed on a third party portal, one or more
`network servers 100, a PMG server or other systems attached
`thereto.
`In one or more embodiments of the system, network server
`100, communication network 110, and mobile device 120
`comprise a controlled computing system environment that
`can be presented largely in terms of hardware components
`and software code executed to perform processes that achieve
`the results contemplated by the system of the present inven(cid:173)
`tion. A more detailed description of such system environment
`30 is provided below with reference to FIGS. 3A and 3B.
`As shown, a computing system environment is composed
`of two environments, a hardware environment 1110 and a
`software environment 1120. The hardware environment 1110
`comprises the machinery and equipment that provide an
`35 execution environment for the software. The software pro(cid:173)
`vides the execution instructions for the hardware. It should be
`noted that certain hardware and software components may be
`interchangeably implemented in either form, in accordance
`with different embodiments.
`Software environment 1120 is divided into two major
`classes comprising system software 1121 and application
`software 1122. System software 1121 comprises control pro(cid:173)
`grams, such as the operating system (OS) and information
`management systems that instruct the hardware how to func(cid:173)
`tion and process information.
`Application software 1122 is a program that performs a
`specific task. In embodiments of the invention, system and
`application software are implemented and executed on one or
`more hardware environments to program a mobile device
`using a high-level code.
`Referring to FIG. 3A, an embodiment of application soft(cid:173)
`ware 1122 can be implemented as computer software in the
`form of computer readable code executed on a general pur(cid:173)
`pose hardware environment 1110 that comprises a central
`55 processor unit (CPU) 1101, a main memory 1102, an input/
`output controller 1103, optional cache memory 1104, a user
`interface 1105 (e.g., keypad, pointing device, etc.), storage
`media 1106 (e.g., hard drive, memory, etc.), a display screen
`1107, a communication interface 1108 (e.g., a network card,
`60 a modem, or an integrated services digital network (ISDN)
`card, etc.), and a system synchronizer (e.g., a clock).
`Processor 1101 may or may not include cache memory
`1104 utilized for storing frequently accessed information. A
`communication mechanism, such as a bi-directional data bus
`65 1100, can be utilized to provide for means of communication
`between system components. Hardware Environment 1110 is
`capable of communicating with local or remotes systems
`
`Page 7 of 9
`
`
`
`US 7,552,124 B2
`
`7
`connected to a communications network (e.g., a PAN or a
`WAN) through communication interface 1108.
`In one or more embodiments, hardware environment 1110
`may not include all the above components, or may include
`additional components for additional functionality or utility.
`For example, hardware environment 1110 can be a laptop
`computer or other portable computing device that can send
`messages and receive data through communication interface
`1108. Hardware environment 1110 may also be embodied in
`an embedded system such as a set-top box, a personal data 10
`assistant (PDA), a wireless communication unit (e.g., cellular
`phone), or other similar hardware platforms that have infor(cid:173)
`mation processing and/or data storage and communication
`capabilities. For example, in embodiments of the system
`mobile device 120 may be a PMG phone or equivalent.
`In embodiments of the system, communication interface
`1108 can send and receive electrical, electromagnetic, or
`optical signals that carry digital data streams representing
`various types ofinformation including program code. If com(cid:173)
`munication is established via the Internet, hardware environ- 20
`ment 1110 may transmit program code through an Internet
`connection. Central processor unit 1101 or stored in storage
`media 1106 or other non-volatile storage for later execution
`can execute the program code.
`Program code may be transmitted via a carrier wave or may 25
`be embodied in any other form of computer program product.
`A computer program product comprises a medium config(cid:173)
`ured to store or transport computer readable code or a medium
`in which computer readable code may be embedded. Some
`examples of computer program products are CD-ROM disks, 30
`ROM cards, floppy disks, magnetic tapes, computer hard
`drives, and network server systems.
`In one or more embodiments of the invention, processor
`1101 is a microprocessor manufactured by Motorola, Qual(cid:173)
`comm, Intel, Texas Instrunients, or Sun Microsystems Cor- 35
`porations. The named processors are for the purpose of
`example only. Any other suitable microprocessor, microcon(cid:173)
`troller, or microcomputer may be utilized.
`Referring to FIG. 3B, software environment 1120 is stored
`in storage media 1106 and is loaded into memory 1102 prior 40
`to execution. Software environment 1120 comprises system
`software 1121 and application software 1122. Depending on
`system implementation, certain aspects of software environ(cid:173)
`ment 1120 can be loaded on one or more hardware environ(cid:173)
`ments 1110.
`System software 1121 comprises control software such as
`an operating system that controls the low-level operations of
`hardware environment 1110. Low-level operations comprise
`the management of the system's resources such as memory
`allocation, file swapping, and other core computing tasks. In 50
`one or more embodiments of the invention, the operating
`system comprises at least one of Symbian, Nucleus,
`Microsoft Windows, Palm, or Macintosh operating systems.
`However, any other suitable operating system may be uti(cid:173)
`lized.
`Application software 1122 can comprise one or more com(cid:173)
`puter programs that are executed on top of system software
`1121 after being loaded from storage media 1106 into
`memory 1102. In a client-server architecture, application
`software 1122 may comprise client software and server soft- 60
`ware. Referring to FIG. 1, for example, in one embodiment of
`the invention, client software is executed on mobile device
`120 and server software is executed on network server 100.
`Software environment 1120 may also comprise web
`browser software 1126 for communicating with the Internet. 65
`Further, software environment 1120 may comprise a user
`interface 1124 (e.g., a Graphical User Interface (GUI)) for
`
`8
`receiving user commands and data. The commands and data
`received are processed by the software applications that run
`on the hardware environment 1110. The hardware and soft(cid:173)
`ware architectures and environments described above are for
`purposes of example. Embodiments of the invention may be
`implemented in any type of system architecture or processing
`environment.
`Embodiments of the invention are described by way of
`example as applicable to systems and corresponding methods
`that facilitate optimizing power consumption in a mobile
`device. In this exemplary embodiment, logic code for per-
`forming these methods is implemented in the form of, for
`example, application software 1122. The logic code, in one
`embodiment, may be comprised of one or more modules that
`15 execute on one or more processors in a distributed or non(cid:173)
`distributed communication model.
`It should also be understood that the programs, modules,
`processes, methods, and the like, described herein are but an
`exemplary implementation and are not related, or limited, to
`any particular computer, apparatus, or computer program(cid:173)
`ming language. Rather, various types of general-purpose
`computing machines or devices may be used with logic code
`implemented in accordance with the teachings provided,
`herein. Further, the order in which the steps of the present
`method are performed is purely illustrative in nature. In fact,
`the steps can be performed in any order or in parallel, unless
`indicated otherwise in the present disclosure.
`The method of the present invention may be performed in
`either hardware, software, or any combination thereof. In
`particular, the present method may be carried out by software,
`firmware, or macrocode operating on a computer or comput(cid:173)
`ers of any type. Additionally, software embodying the present
`invention may comprise computer instructions and be stored
`in a recording medium (e.g., memory stick, ROM, RAM,
`magnetic media, punched tape or card, compact disk (CD),
`DVD, etc.). Furthermore, such software may be transmitted
`in the form of a computer signal embodied in a carrier wave,
`and through communication networks by way of Internet
`portals or websites, for example. Accordingly, the present
`invention is not limited to any particular platform, unless
`specifically stated otherwise in the present disclosure.
`The present invention has been described above with ref(cid:173)
`erence to preferred embodiments. However, those skilled in
`the art will recogni