`(12) Patent Application Publication (10) Pub. No.: US 2002/0069263 A1
`Jun. 6, 2002
`Sears et al.
`(43) Pub. Date:
`
`US 20020069263A1
`
`(54) WIRELESS JAVA TECHNOLOGY
`
`(76) Inventors: Mark Sears, Calgary (CA); Tim
`Rahrer, Ottawa (CA); Stephen
`Gargan, San Diego, CA (US); Vincent
`Deschenes, OttaWa (CA)
`
`Correspondence Address:
`Zucotto Wireless
`c/o Mark Wards
`Suite 400
`4225 Executive Square
`La Jolla, CA 92037 (US)
`
`(21)
`(22)
`
`Appl. No.:
`
`09/966,345
`
`Filed:
`
`Sep. 28, 2001
`
`Related US. Application Data
`
`(63)
`
`Non-provisional of provisional application No.
`60/240,454, ?led on Oct. 13, 2000. Non-provisional
`
`of provisional application No. 60/307,965, ?led on
`Jul. 26, 2001. Non-provisional of provisional appli
`cation No. 60/247,403, ?led on Nov. 9, 2000. Non
`provisional of provisional application No. 60/316,
`734, ?led on Aug. 31, 2001.
`
`Publication Classi?cation
`
`Int. Cl.7 ................................................... .. G06F 15/16
`
`US. Cl. ............................................................ .. 709/218
`
`ABSTRACT
`
`(51)
`(52)
`
`(57)
`
`An apparatus, method, and means are provided for seamless
`and optimized interaction betWeen users, devices, and appli
`cations located in a network environment. The applications
`may be Java or J ava-like applications, and the devices may
`be mobile communication devices.
`
`User data, BClII‘v'lt'y'
`log, preferences,
`dewce capabillhes,
`processor, etc.
`
`Datab
`age
`
`5*
`1
`213 :
`
`Infe mwwemr wastes.
`mm:
`- wiaizie ?nch 5pm
`» 5m. Poms
`* W W mmmmm
`mi mmm
`“Wm-mm
`
`101 Java Application
`Repositow
`mama's
`
`mun“
`
`Java Application
`Dwelwer
`
`$585k
`
`Add
`
`Upgrade
`
`140
`
`IE]
`Usey
`Devlce
`
`JAM
`105
`
`3am‘; Appiica?mt
`Search Engine
`1 I33
`
`4} mi: éngnes updated 2:)
`te?eei Que me mam
`
`witnessed “ligated are: moment emmm
`
`Netflix v. VideoLabs
`IPR2023-00628
`Netflix. Ex. 1014
`
`
`
`Patent Application Publication
`
`Jun. 6, 2002 Sheet 1 0f 2
`
`US 2002/0069263 A1
`
`BE
`
`101 Java Wicatiun
`Emmy
`Servers
`
`i‘
`12D 5
`
`User data’ activity Database
`lugJ preferences,
`-
`dfgéceggp?lgues’
`p
`1
`-
`Inf: :mmmm ?am
`mfg:
`~ ‘salable M spmzi
`» it: mans
`Q my mum
`and
`
`_
`
`Java App?tatbn
`?wébper
`
`fl} azmzam ma slat-16mm‘:
`WW ‘3
`‘1 6w ‘£5 EPW338593 LEWE
`A,
`Mmafm aim to
`ram
`mtg m 1% wih mt‘maé
`snfmmatierrm?mmfmra
`mm mm,
`
`Add
`
`14g
`
`Us
`EV
`Dewce
`
`JAM
`“15
`
`km the “in
`3 - 69:?
`3mm‘
`weak martin: as aw
`9'! the 1W5?
`
`Java Appkication
`sea-ch
`he
`?nglug
`
`4'} 82m}: ingnes updated ta
`mm M haw mam
`
`we M? 1mm amp‘:
`M mm mm wijlx mess
`
`mm
`
`
`
`Patent Application Publication
`
`Jun. 6, 2002 Sheet 2 0f 2
`
`US 2002/0069263 A1
`
`‘ Reinéval
`
`Database
`
`P
`
`..
`
`
`
`US 2002/0069263 A1
`
`Jun. 6, 2002
`
`WIRELESS JAVA TECHNOLOGY
`
`RELATED APPLICATIONS
`
`[0001] This application is related to and claims priority
`from commonly assigned U.S. applications Ser. No. 60/240,
`454 ?led on Oct. 13, 2000; Ser. No. 60/307,965 ?led on Jul.
`26, 2001; Ser. No. 60/247,403 ?led on Nov. 9, 2000; Ser. No.
`60/316,734 ?led on Aug. 31, 2001; and Ser. No. 09/829,235
`?led on Apr. 9, 2001.
`
`SCOPE
`
`[0002] This application is generally related to an infra
`structure that alloWs for seamless and optimiZed interactions
`to occur betWeen users, devices, providers, and applications
`located in a netWork environment; and is more particularly
`related to applications that implement Java or J ava-like
`technology in a Wireless netWork.
`
`BACKGROUND
`
`[0003] Consumers Who live and Work “on the ?y” need
`full access to Internet style services and applications that
`may be as mobile as they are. This type of dynamic
`connected lifestyle is pushing mobile devices into a neW era
`of utility as netWork appliances. Consumers expect mobile
`devices to support e-mail, e-commerce, gaming, and Internet
`broWsing. Such diverse functionality requires an open stan
`dards-based netWorked technology platform that can bridge
`the gap betWeen consumers, Wireless carriers, device manu
`facturers, content providers, and application developers.
`HoWever, until recently, the dissemination of Wireless infor
`mation Was constrained. The accessibility to netWorks by
`individual mobile devices Was limited by proprietary tech
`nology and applications.
`[0004] Currently, content delivery to mobile devices can
`be implemented in tWo Ways: With a markup language such
`as WML (Wireless Markup Language) used in the Wireless
`Application Protocol WAP or Compact HTML (cHTML), or
`With a portable application programming language such as
`Java. Use of these technologies can result in bene?ts as Well
`as limitations, but Java technology provides a single open
`platform that alloWs developers to create dynamic, personal,
`and functionality-rich applications, Which content providers
`can provide and deliver to mobile devices.
`
`[0005] With WAP, a simple broWser application built into
`a mobile device may display information doWnloaded over
`a Wireless or other type of data link. Although WAP alloWs
`“scripts” that are run Within the broWser to be doWnloaded
`and executed, it does not provide a frameWork for doWn
`loading of generic applications for execution on mobile
`devices. Today’s WAP devices act as dumb terminals to
`Which text ?les are sent and rendered into static Web pages.
`WAP on a mobile device is limited to providing static Web
`broWsing and basic graphics capabilities, a model that
`precludes the delivery of dynamic, interactive, and personal
`content.
`
`[0006] Mobile device users Want services and applications
`that can deliver individualiZed information. Factors other
`than personal preferences, such as location and circum
`stance, play a part in determining What exactly “individu
`aliZed” means. For example, a tourist stranded at HeathroW
`airport in London, Whose plane has just been cancelled Will
`
`have different information needs than When en route to an
`of?ce in San Jose, Calif. In the former case, important
`information might include the availability of other ?ights,
`the location of nearby hotels and restaurants, or information
`about entertainment that evening. In the latter case, impor
`tant tasks might include booking a meeting, checking e-mail
`or traf?c reports, or on-line trading.
`[0007] Java technology enables developers to Write rich
`dynamic personaliZed services and applications for use on
`mobile devices. In one embodiment, a mobile device, as
`described in commonly assigned US. application Ser. No.
`09/871,483 ?led May 31, 2001, may be used to execute Java
`programs that are as rich in content and usability as those
`executed on PC based platforms. Java technology-based
`applications support more content-rich graphics and faster
`interaction than broWser-based environments (such as WAP
`or cHTML), enabling mobile devices to perform tasks as
`varied as e-mail, neWs updates, doWnloadable games, cal
`endaring, and access to business data. Client-generated
`graphics may be vector-based, enabling a richer vieWer
`experience and reduced netWork demand. As Well, applica
`tions may be doWnloaded and run locally on client devices,
`and upgrades or neW applications may be doWnloaded “on
`the ?y.” With Java technology, applications and code may be
`brought to mobile devices and users such that they may both
`interact With each other.
`
`[0008] While Java platforms may be open and alloW
`developers to create applications that are portable, dynamic,
`and personal, these key features are not the only reason a
`Java solution is best suited for use With mobile devices. Java
`technology also offers the ability to ensure data security and
`to provide disconnected access-critical differentiators. A
`Java platform is inherently secure. Built-in features such as
`byte-code veri?cation, no direct memory pointers, and digi
`tal signatures for dynamic applications provide a good
`security base. There are also multiple third-party extensions
`for Java platforms covering areas like authentication and
`cryptography. Portable Java applications can easily be Writ
`ten to be distributed over TCP/IP, eliminating the potential
`for security breaches during gateWay protocol conversions,
`a risk that currently exists With WAP-based gateWays.
`Unlike WAP-enabled devices, Java-enabled devices alloW
`applications to reside on mobile devices so they can run even
`When a mobile device is out of a netWork’s coverage area.
`Application processing need not, thus, be interrupted When
`a netWork is unavailable. A device or device user can also
`put certain tasks on hold until a netWork connection is
`reestablished. Java code can be dynamically and securely
`doWnloaded from remote servers, providing the proper envi
`ronment to run applications locally on client devices, regard
`less of Whether necessary library ?les Were shipped With a
`particular device.
`
`[0009] HoWever, in contrast to personal computers (PC’s),
`mobile devices are constrained by user interface, siZe,
`memory, and poWer limitations. Although markup languages
`may bring Web sur?ng to mobile devices and the ability to
`doWnload and save .Zip or setup.exe ?les With Which to
`install and run the ?les, this static model on a mobile device
`brings the PC paradigm to mobile devices Without changing
`its context to suit the differing limited memory, limited
`poWer, and small display siZe environments of different
`mobile devices. With present mobile devices, users are not
`able to doWnload and save all the applications they desire.
`
`
`
`US 2002/0069263 A1
`
`Jun. 6, 2002
`
`With limited processing and memory resources, users need
`to load, run and delete those applications they use infre
`quently to save memory for those applications that are used
`daily. For example, limited memory of mobile devices may
`mean that resident virus checking softWare may be limited
`in its limitation. In addition, mobile device user interfaces
`make it dif?cult to “surf” for neW applications.
`
`[0010] Although Java environments alloW for the devel
`opment and Widespread distribution of portable content-rich
`Internet applications to a PC desktop (e.g., games, invest
`ment portfolios, and calendars), the portability of such
`applications to memory-constrained, loW-poWer mobile
`devices, While possible, has previously not been practical in
`terms of performance.
`
`[0011] As more access to information “on the ?y”
`becomes the standard, Java technology available from Sun
`Microsystems Inc., and Java-like technology available from
`various other manufacturers Will be there to deliver it.
`HoWever, the question remains, hoW can semi-compiled/
`interpreted or byte compiled languages like Java be utiliZed
`seamlessly Within a communications netWork?
`
`SUMMARY
`
`[0012] Aspects of the present invention include various
`embodiments. In one embodiment, the present invention
`includes a server that may be used as a central point of focus
`for users of mobile devices, carriers, netWork operators,
`content providers, application developers, and device manu
`facturers. In one embodiment, the present invention may
`provide a location for users to look for content and infor
`mation; a service and content delivery platform for main
`taining statistics and metrics for use by the users of mobile
`devices, carriers, netWork operators, content providers,
`application developers, and device manufacturers; and a
`location for manufacturers to upload information about their
`products for use by developers. In one embodiment the
`content and information may be Java information. In one
`embodiment, the content and information may be J ava-like
`information. In one embodiment, the present invention com
`prises a location Where the content and information maybe
`optimiZed for use by speci?c users or for use on speci?c
`mobile device platforms. In one embodiment, the applica
`tions may be quali?ed, for eXample, by authentication, for
`security, for trust level, and/or for compatibility. In one
`embodiment, applications may be altered or repackaged to
`include either a subset or superset of functionality required
`by users and devices in a netWork as determined by metrics
`and characteristics describing the applications, users, and
`devices. In one embodiment, user, device, and application
`metrics and characteristics may be stored on a netWork
`server. In one embodiment, based on the metrics and char
`acteristics, applications and content may be quali?ed, pro
`cessed, optimiZed, and/or customiZed prior to dissemination
`of the applications to users and/or devices in the netWork. In
`one embodiment, users may request applications and content
`and may be provided them based on the metrics and char
`acteristics speci?c to the users and/or their devices. In one
`embodiment, customiZed search paths may be established by
`carriers and service providers that could be based on user
`preferences, past applications used, applications for sale,
`trusted applications, application provider, popular fre
`quently used applications, cost, siZe, compatibility With
`currently stored applications and resources. In one embodi
`
`ment, the present invention may provide a database of
`mobile device characteristics and capabilities. The database
`may be accessible through a secure connection by device
`manufacturers and to update When neW products are
`released. In one embodiment, the database may also be
`accessible to information and content providers so as to
`provide and qualify content based on look up to the device
`characteristics and capabilities, for example, by device
`manufacturer name, device model number, or uniquely
`assigned ID. numbers.
`[0013] In one embodiment, a system for disseminating
`information to users and devices in a netWork may comprise:
`a server, Wherein the server disseminates Java information to
`the users and devices in the netWork, Wherein the Java
`information is disseminated to users and devices based on
`characteristics of the users and the devices; at least one
`computer readable medium comprising the characteristics of
`the users and devices; and a tool, Wherein each computer
`readable medium, the tool, and the server are operatively
`coupled, Wherein the tool processes the Java information
`based on the characteristics of the users and devices prior to
`dissemination. The Java information may comprise infor
`mation submitted to the server by application developers.
`The Java information may comprise information submitted
`to the server by content providers and service providers. The
`server may disseminate the characteristics of the users and
`devices in the netWork to providers of the information. The
`Java information may comprise one or more application,
`Wherein the computer readable medium further comprises
`characteristics of the one or more application, and Wherein
`the server disseminates one or more of the characteristics to
`the netWork.
`
`[0014] In one embodiment, a system for disseminating
`information may comprise: a server; and a plurality of
`mobile communication devices, Wherein the server dissemi
`nates the information to the mobile communication devices
`according to characteristics of the mobile communication
`devices, and Wherein the information comprises Java infor
`mation.
`
`[0015] In one embodiment, the system may comprise a
`tool, Wherein the information comprises byte-codes, and
`Wherein the tool processes the information by changing at
`least some of the byte-codes.
`[0016] In one embodiment, the system may comprise a
`tool, Wherein the information comprises byte-codes, and
`Wherein the tool processes the information by adding byte
`codes to the information.
`
`[0017] In one embodiment, the system may comprise a
`tool, Wherein the information comprises byte-codes, and
`Wherein the tool processes the information by removing
`byte-codes from the information.
`[0018] In one embodiment, a server for disseminating
`information to devices in a netWork may comprise: a tool,
`the tool for receiving information and for processing the
`information according to characteristics of the netWork,
`Wherein the characteristics comprise characteristics of the
`devices. The devices may comprise mobile communication
`devices. The characteristics of the devices may be selected
`from a group consisting of display, memory, interface,
`processor, and installed softWare characteristics.
`
`[0019] In one embodiment, a server for disseminating
`information to users in a netWork may comprise: a tool, the
`
`
`
`US 2002/0069263 A1
`
`Jun. 6, 2002
`
`tool for receiving information and for processing the infor
`mation according to characteristics of the network, wherein
`the characteristics comprise characteristics of the users. the
`characteristics of the users may be selected from a group
`consisting of download history, log of frequently used
`applications, billing and subscription info, user ranking of
`applications, applications used in the past, and download
`history.
`[0020] In one embodiment, a method for disseminating
`information in a network may comprise the steps of: pro
`viding information to the network as byte-codes; processing
`the byte-codes according to characteristics of the network;
`and disseminating the processed byte-codes to the network.
`The step of processing may comprise adding byte-codes to
`the information, removing byte-codes from the information,
`and altering the byte-codes.
`
`[0021] In one embodiment, a method for disseminating
`information in a network may comprise the steps of provid
`ing Java information to the network; processing the Java
`information according to characteristics of the network; and
`disseminating the processed Java information to the net
`work. The method may further comprise the step of pro
`cessing the Java information by processing byte-codes of the
`Java information. The method may further comprise the step
`of processing the information by qualifying, pro?ling, opti
`miZing, or customiZing the information.
`
`[0022] In one embodiment, a method for disseminating
`information in a network may comprise the steps of: pro
`viding a JAR ?le to the network; processing the JAR ?le
`according to characteristics of one or more mobile devices
`in the network; and disseminating the processed JAR ?le to
`one or more mobile devices in the network.
`
`[0023] In one embodiment, a method for disseminating
`information to devices and users in a network may comprise
`the steps of providing Java information to the network;
`optimiZing the Java information according to characteristics
`of users and devices in the network; disseminating the
`processed Java information to the users and devices.
`
`[0024] In one embodiment, a method for disseminating
`information to devices and users in a network may comprise
`the steps of: providing Java information to a server in the
`network; qualifying the Java information; and disseminating
`the quali?ed Java information to the users and devices.
`
`[0025] In one embodiment, a method for disseminating
`information to devices in a network may comprise the steps
`of: storing Java information in the network to server; storing
`characteristics of a speci?c users and devices in the network
`to the server; disseminating the Java information in the
`network to speci?c users and devices in the network accord
`ing to the characteristics of the speci?c users and devices. In
`one embodiment, a computer readable medium may com
`prise program instructions, wherein the program instructions
`interact with the a network to receive Java or Java-like
`information and to process the information according to
`characteristics of the network, wherein the characteristics
`comprise characteristics of devices in the network. The
`program instructions may interact with the network to
`disseminate the processed information to the network.
`
`[0026] In one embodiment, a system for disseminating
`information to users and devices in a network may comprise
`a means for registering users and devices in the network;
`
`means for receiving information; means for processing the
`information based on characteristics of the users and devices
`in the network; and means for disseminating the processed
`information to the network.
`
`[0027] These as well as other aspects of the invention
`discussed herein may be present in embodiments, in other
`combinations, separately, or in combination with other
`aspects and will be better understood with reference to the
`following Figures, description, and appended claims.
`
`BRIEF DESCRIPTION OF FIGURES
`[0028] In FIG. 1 an infrastructure 100 including a reposi
`tory server 101 is shown.
`
`[0029] In FIG. 2 there is seen how free or low cost access
`to development tools, including from different vendors, and
`special incentives could be provided with or on the server
`101 to build a developer community.
`
`DESCRIPTION
`[0030] With the release of the Java 2 Micro Edition
`(J2ME) platform, and particularly the Connected Limited
`Device Con?guration (CLDC) from Sun MicrosystemsTM, a
`small-footprint Java runtime environment developed
`directly for the mobile device market is now available.
`CLDC speci?es the features of the Java virtual machine
`(VM) and the core developer libraries to be used for small,
`low-power, memory-constrained devices. The J2ME plat
`form was designed with closed environment security in
`mind so it can leverage the platform security features
`available in eXisting security infrastructures such as WAP or
`end-to-end solutions. Unlike WAP, J2ME does not create
`another Internet for devices, instead it provides a direct path
`for tying eXisting mobile devices into “the” Internet.
`
`[0031] The J2ME Mobile Information Device Pro?le
`(MIDP), layered on top of CLDC, includes frameworks for
`application life cycles, HTTP networking, persistent data
`storage, and graphical user interfaces. Both CLDC and
`MIDP allow Java applications to deliver high-end security
`and graphics capabilities, along with the ability to download
`MlDlets (applications written using the MIDP framework)
`and store them on a device. Just like other Java applications,
`MlDlets are easy to create, install, upgrade, and port to
`different platforms.
`[0032] Java technology enabled devices can offer dynamic
`and secure delivery of multiple applications and services in
`real time. Through CLDC and MIDP, J2ME provides a
`modular, scalable architecture to support the ?exible deploy
`ment of technology to devices with diverse features, func
`tions, and memory/performance capabilities. Such technol
`ogy provides the neXt logical step in maXimiZing the
`portability of applications and the performance and memory
`of mobile devices. For wireless carriers, the Java platform
`enables traditional functionalities like e-commerce, stock
`trading, and banking to be eXtended into the wireless realm.
`For mobile wireless device manufacturers, Java technology
`means products may be capable of running a whole new
`generation of applications and services. For content provid
`ers, the cross-platform capability of Java programs reduces
`time to market and provides access to an entirely new set of
`customers.
`
`[0033] While most current mobile devices run on propri
`etary platforms, such as Microsoft’s WindowsCE or Pal
`
`
`
`US 2002/0069263 A1
`
`Jun. 6, 2002
`
`mOSTM, the device as described in commonly assigned US.
`patent application Ser. No. 09/871,483 ?led May 31, 2001,
`With its Java native processor and supporting softWare and
`hardWare provides an open platform for mobile Internet
`device applications. The described processor natively
`executes Java byte-code and supports an optimiZed and
`enhanced J2ME/CLDC framework, and delivers to mobile
`devices an efficient, optimiZed balance betWeen high speed
`and loW poWer consumption. By designing device proces
`sors to integrate With existing technology, a future path for
`service providers and device manufacturers alike may be
`provided to seamlessly run the exciting rich content of
`next-generation mobile devices, as is described herein.
`
`[0034] Referring noW to FIG. 1, an embodiment of the
`present invention is shoWn. In one embodiment, a netWork
`infrastructure 100 is implemented to permit seamless and
`optimiZed interaction betWeen users, devices, and applica
`tions located therein. Network 100 may have disposed
`therein, one or more repository server 101, one or more
`device 140, and one or more database 120. As described
`herein, one or more application 110 submitted to the infra
`structure 100 may be pre-processed, veri?ed, and/or pro?led
`for use by devices 140 and/or users in the netWork 100. In
`one embodiment, devices 140 and/or users in the netWork
`100 may be registered With a registry (not shoWn). In one
`embodiment, one or more of the devices 140 may comprise
`mobile devices that may communicate over a Wireless
`medium. In one embodiment, one or more of the devices
`may comprise a cellular phone and/or a Personal Digital
`Assistant (PDA), but it is understood that the scope of the
`present invention may include other devices, as Well as other
`Wireless and Wired devices and, thus, the present invention
`should be limited only by the claims as recited beloW.
`Furthermore, to the extent necessary to implement com
`monly knoWn elements described herein, it is understood
`that those of ordinary skill in the art Would be capable of
`doing so. For example, netWork, server, database, and
`mobile device technology discussed herein, may be imple
`mented utiliZing hardWare, ?rmWare, and softWare technolo
`gies that are Well knoWn in the art, and, thus, are not
`discussed in other than the detail necessary.
`
`[0035] In one embodiment, a server 101 may communi
`cate With one or more device 140 either directly, or through
`a proxy server or gateWay server (not shoWn). The server
`101 and the proxy or gateWay server may or may not be
`co-located or oWned by the same entity. In one embodiment,
`a server 101 may be implemented by one company focused
`on services, Which may be made available via a connection
`to other customers’(ex. Wireless carriers) Wireless applica
`tion proxy or gateWay servers that communicate to the
`customers’Wireless subscriber devices via a Wireless net
`Work.
`
`[0036] In one embodiment, a server 101 may comprise, or
`may be operatively coupled to interact With, one or more
`storage device or means for storing one or more application
`110 and one or more database 120. In one embodiment, more
`than one server 101 may be linked to form a “community”
`of servers, applications, databases, and services. In one
`embodiment, an application 110 may be uploaded to a server
`101 as a package comprising one or more of the folloWing:
`a JAR Java Archive (JAR) containing an application Suite
`and its associated Resources, an associated application
`descriptor ?le (JAD ?le), upload time developer selected
`
`con?guration information (eg category, netWorks, sup
`ported devices), and/or optional source code and screen
`shots of the application. In one embodiment, packaging
`applications in JAR format permits application 110 manifest
`information and descriptor information to be stored in a
`database 120 for subsequent indexing. Application descrip
`tor information may be used by search engines looking for
`applications With particular name, provider, siZe, capabili
`ties and/or functionality. Other resources that may be
`uploaded, alone, or With an application 110, include, for
`example, other applications, enhancements speci?c to the
`requirements of devices and users in the netWork 100,
`documentation, proprietary API’s, etc. In one embodiment,
`one or more application 110 may be embodied to comprise
`a Java MIDlet, and/or a Java MIDlet Suite, etc. Although
`described above to comprise speci?c embodiments, each
`application 110 may comprise or may be subsequently
`modi?ed to include greater, feWer, or different resources and
`should, thus, be limited only by the claims as recited beloW.
`
`[0037] Server 101 may comprise the backend for a net
`Work connected information server, for example, a Web site
`supporting WAP, HTML, XHTML, cHTML, XML, etc. Just
`as Webservers may be used to host PC-based application
`servers, a Web site as described herein may contain
`Webpages and links to Webpages and other application
`resources it can deliver to devices 140 and their users.
`
`[0038] One or more database 120 may store information
`that may include, but is not limited to, individual user
`preferences/characteristics, a log of recently doWnloaded
`applications, a log of most frequently used applications,
`billing and subscription info, user ranking of applications,
`applications used in the past by a user, history of doWnloads,
`and user device capabilities/characteristics. User device
`capabilities/characteristics may include, but are not limited
`to, display screen siZe/resolution/color depth; memory siZe
`(total and remaining); user interface capabilities and related
`APIs; text, touch, biometrics, speech recognition, handWrit
`ing recognition, image capture, input, output, audio, and
`vibrate capabilities; processor type and processor features;
`processor optimiZations possible; current applications
`installed; Java and Java-like virtual machine manufacturer
`and version; etc. The device capabilities/characteristics (and
`possibly the user preferences as Well) may be integrated With
`a Jini architecture to provide service and capability discov
`ery. In one embodiment, user preferences and device capa
`bilities may be implemented using the Composite Capability
`/Preference Pro?le (CC/PP) currently being developed by
`the World Wide Web Consortium (W3C) and described at:
`http://WWW.W3.org/TR/NOTE-CCPP/. In one embodiment,
`database 120 may be provided in a form (x500 for example)
`accessed by industry standard LDAP (LightWeight Directory
`Access Protocol) and the Java speci?c JNDI (Java Naming
`and Directory Interface) application programming interface
`(API). In one embodiment, as permitted or needed, each
`database 120 may be made accessible not only to server 101,
`but to individual users, devices, developers, service provid
`ers, and/or content providers in netWork 100.
`
`[0039] One or more database 120 may be used to store
`communications from devices 140 and/or their users, includ
`ing communications that indicate Whether a particular user
`has saved or deleted an application after using it, thereby
`providing statistics that may assist in tracking user prefer
`ences and in ranking applications (those apps Which are
`
`
`
`US 2002/0069263 A1
`
`Jun. 6, 2002
`
`saved by users Will be more highly rated and generally more
`valuable as compared to those users don’t give up precious
`local storage to and simply delete after use). Content and/or
`service provider ratings of applications as Well as doWnload
`statistics may also be stored in database 120 and may be
`used in selecting the best softWare for use by a device 140
`or user. By searching the log of other users of an application
`(AppA), and examining other applications that have been
`rated highly by these other users, doWnload logs matched by
`user and preferences may alloW other users and service
`providers to ?nd applications based on a method that uses
`current applications (AppA) they like as a key to ?nd related
`applications (AppB) or other highly rated applications
`(AppC, AppD, etc.). To compensate for the limited display,
`storage and netWork bandWidth capabilities of mobile
`devices, a log of the frequency of doWnload of applications
`may aid users in ?nding popular applications, and in ranking
`and narroWing user search results.
`[0040] Information stored in database 120 may be used to
`optimiZe device 140 interactions With applications 110, as
`Well as to optimiZe interactions betWeen, and performance
`of, server 101, and/or devices and/or users registered thereto.
`For example, information stored in database 120 may reduce
`the need for a device 140 and/or the device’s user to search
`repository server 101 more than once for an application 110
`that a user may have used in the past, but could not store on
`his/her device. More rapid access to applications stored on
`repository server 101 may thereby be facilitate to conserve
`processing resources and poWer of both the netWork 100 and
`devices 140 therein. In one embodiment, database 120 or
`other information repository mechanism may store copies of
`applications 110 used by particular users in the past. In this
`Way, the memory siZe of the device 140 may be increased by
`providing devices in netWork 100 With extra accessible
`memory implemented in a loWer cost persistent storage
`medium. In one embodiment, database 120 or other infor
`mation repository mechanism, or local storage on device
`140 may store a l