Abstract:
A method, device, system, and a computer program product for association of memory to folder information are disclosed. The electronic device includes one or more memory elements and a sending module. Each of the memory elements is adapted to store folders therein, and the sending module is adapted to send a capability object and a folder-listing object to a receiving module. The capability object includes memory information corresponding to the one or more memory elements, and the folder-listing object includes folder information corresponding to a folder contained in one of the memory elements. The folder information includes an attribute identifying the one memory element containing the folder.

Description:
FIELD OF THE INVENTION 
     The present invention relates to data exchange between electronic devices. In particular, the invention provides for association of folder-listing information to corresponding memory devices in the data exchange. 
     BACKGROUND OF THE INVENTION 
     Object Exchange Protocol (OBEX) is a data exchange protocol which allows efficient and simple exchange of data or objects between a wide range of devices. For example, OBEX may be used to exchange calendar or contact information between a desktop and a handheld device. 
     OBEX may also be used within a device to convey system properties of the device to various modules of the device. For example, in a mobile phone, third-party applications may be installed which, due to an unfamiliar operating system, may be unable to directly integrate with the device. Rather, such applications may interact with the operating system or other modules in the mobile phone through OBEX. 
     Certain electronic devices, such as mobile phones, may include different physical memory areas or memory elements, such as a flash memory and a Multimedia Card (MMC) memory. Information relating to these memory elements can be conveyed through OBEX within the capability object. Meanwhile, an OBEX folder-listing object can convey information relating to a folder residing on one of the memory elements, which may include a logical device or drive. 
     However, current OBEX objects do not allow association of the folder to its respective memory element. Thus, for example, a PC application on a mobile phone may be unable to provide a user with proper information relating to the memory elements, such as free and used memory in the memory elements, for example. 
     SUMMARY OF THE INVENTION 
     The present invention is directed to a method, device, system, and a computer program product where an information exchange between a sending module and a receiving module includes association of folder-listing information to corresponding memory devices. 
     In one embodiment, a method of information exchange from a sending module to a receiving module includes transmitting a capability object and transmitting a folder-listing object. The capacity object includes memory information corresponding to at least one memory element of a sending device, the sending device containing the sending module. The folder-listing object includes folder information corresponding to a folder contained in one of the at least one memory elements, the folder information including an attribute identifying the memory element containing the folder. 
     In another embodiment, an electronic device includes one or more memory elements and a sending module. Each of the memory elements is adapted to store folders therein, and the sending module is adapted to send a capacity object and a folder-listing object to a receiving module. The capacity object includes memory information corresponding to the one or more memory elements, and the folder-listing object includes folder information corresponding to a folder contained in one of the memory elements. The folder information includes an attribute identifying the memory element containing the folder. 
     Another embodiment provides an information exchange system for facilitating exchange of information between a sending module and a receiving module. The system includes a capability object and a folder-listing object. The capability object includes memory information corresponding to at least one memory element of a sending device, the sending device containing the sending module. The folder-listing object includes folder information corresponding to a folder contained in one of the at least one memory elements, the folder information including an attribute identifying the memory element containing the folder. 
     Other principle features and advantages of the invention will become apparent to those skilled in the art upon review of the following drawings, the detailed description, and the appended claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary embodiments will hereafter be described with reference to the accompanying drawings, in which: 
         FIG. 1  is a schematic illustration of an embodiment of an electronic device; and 
         FIG. 2  is a schematic illustration of an embodiment of an information exchange system. 
     
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       FIG. 1  illustrates a system including a device  100  according to an exemplary embodiment. The device  100  can be a phone, a personal digital assistant (PDA), a computer, or any other electronic device. The device  100  includes a central processing unit (CPU)  102  and a memory  150 . The memory  150  may be a nonvolatile memory, such as a flash memory device, and may be integrally formed with the device  100 . The device  100  may include additional memory elements, such as a removable memory card  160 . 
     The device  100  is provided with an operating system  110  to facilitate operation of the device  100  and the CPU  102 . The operating system  110  may be any of a variety of commercially available or proprietary operating systems. In a particular embodiment, the device  100  is a mobile phone, and the operating system  110  is the Symbian operating system. For more information on the Symbian operating system, reference may be made to www.symbian.com. The operating system  110  includes fundamental base services for a device, including various services, libraries, protocols and frameworks. 
     The operating system  110  facilitates the operation of various applications which may be installed on the device  100 . The applications may include a set of applications  130  which may be provided with the operating system  110 , or provided separately but interfaceable with the operating system  110 . 
     Additional applications  140  may be provided by third parties and may be installed on an external device  100   a  and may be accessible by the device  100  through a transport protocol. In this regard, the external device  100   a  may be provided with similar components as the device  100  described above, such as a CPU  102   a , memory  150   a  and an operating system  110   a . Such applications  140  may provide sufficient functionality in the device  100  but may require interfacing with the external device  100   a  through corresponding information exchange modules  120 ,  120   a . The external device  100   a  may also comprise additional memory elements (not drawn in the  FIG. 1 ) similar to the device  100 . 
     In one embodiment, the information exchange module  120  operating according to the OBEX protocol. As is generally known in the art, the OBEX protocol is an Object Exchange protocol that uses Request/Response based messages with Headers in the same style as HTTP. OBEX is used as a Session Layer to transport any data type. 
     The information exchange module  120  is adapted to facilitate exchange of information between a sending module and a receiving module. In the embodiment illustrated in  FIG. 1 , the sending module may be the CPU  102 , the operating system  110 , the information exchange module  120 , one or more of the set of applications  130  or other components of the device  100 . In a particular embodiment, the sending module is the information exchange module  120 , through which information relating to other components may be exchanged with the receiving module. In the embodiment illustrated in  FIG. 1 , the receiving module may be one of the third-party applications  140  or the information exchange module  120   a  of the external device  100   a.    
       FIG. 2  illustrates an embodiment of an information exchange system. In this system  200 , information is exchanged between two devices  210 ,  220 . In this regard, the sending module  216  is positioned in a first device, the sending device  210 , while the receiving module  226  is positioned in a second device, the receiving device  220 . It is noted that, although the terms “sending device” and “receiving device” are used herein, communication between the two devices may, in fact, require signals to be sent and received by each item. According to one embodiment of the invention, the roles of devices in information exchange may be switched between, i.e. device  220  becomes sending device and device  210  becomes receiving device. 
     The sending device  210  may include one or more memory elements  212 ,  214 , which may include various types of memory devices. As described above, the memory elements  212 ,  214  may include flash memory or memory cards or logical drives and devices. The sending device  210  also includes a sending module  216  an information exchange module  216  adapted to facilitate exchange of information  230  with a receiving module  226  in the receiving device  220 . As noted above, in a particular embodiment, the exchange of information uses the OBEX protocol. 
     The exchange of information between the two devices  210 ,  220  may occur in a variety of manners. For example, the exchange may occur through wireless communication between the two devices. In one embodiment, the information exchange uses, but is not limited to, at least one of the IrDa, USB, RS232 and Bluetooth protocol. 
     In the exchange of information using the OBEX protocol, within a device as illustrated in  FIG. 1  or between devices as illustrated in  FIG. 2 , information relating to various components is exchanged through capability objects. For example, information relating to two memory elements on the sending device (or the device with the sending module) may be illustrated as: 
     
       
         
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 &lt;?xml version=“1.0”?&gt; 
               
               
                   
                 &lt;!DOCTYPE Capability SYSTEM “obex-capability.dtd”&gt; 
               
               
                   
                 &lt;Capability Version=“1.0”&gt; 
               
             
          
           
               
                   
                 &lt;General&gt; 
               
             
          
           
               
                   
                 &lt;Manufacturer&gt;DeviceMaker Inc.&lt;/Manufacturer&gt; 
               
               
                   
                 &lt;Model&gt;Handy100&lt;/Model&gt; 
               
               
                   
                 &lt;SN&gt;123456789&lt;/SN&gt; 
               
               
                   
                 &lt;SW Version=“2.0”/&gt; 
               
               
                   
                 &lt;HW Version=“0505”/&gt; 
               
               
                   
                 &lt;Language&gt;en&lt;/Language&gt; 
               
               
                   
                 &lt;Memory&gt; 
               
             
          
           
               
                   
                 &lt;MemType&gt;DEV&lt;/MemType&gt; 
               
               
                   
                 &lt;Free&gt;6479872&lt;/Free&gt; 
               
               
                   
                 &lt;Used&gt;978944&lt;/Used&gt; 
               
               
                   
                 &lt;CaseSenN/&gt; 
               
             
          
           
               
                   
                 &lt;/Memory&gt; 
               
               
                   
                 &lt;Memory&gt; 
               
             
          
           
               
                   
                 &lt;MemType&gt;MMC&lt;/MemType&gt; 
               
               
                   
                 &lt;Free&gt;16754688&lt;/Free&gt; 
               
               
                   
                 &lt;Used&gt;15179776&lt;/Used&gt; 
               
               
                   
                 &lt;CaseSenN/&gt; 
               
             
          
           
               
                   
                 &lt;/Memory&gt; 
               
             
          
           
               
                   
                 &lt;/General&gt; 
               
             
          
           
               
                   
                 &lt;/Capability&gt; 
               
               
                   
                   
               
             
          
         
       
     
     The capability object above is formatted using a syntax based on the XML specification and provides the capabilities of the memory elements. The capability object includes such information as the type of memory element, the amount of free space and the amount of used space. 
     Information relating to folders residing on the memory elements is exchanged through folder-listing objects transferred through the information exchange module. For example, a folder-listing object may be expressed as: 
     
       
         
               
               
             
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 &lt;?xml version=“1.0”?&gt; 
               
               
                   
                 &lt;!DOCTYPE folder-listing SYSTEM “obex-folder-listing.dtd” 
               
               
                   
                 [ &lt;!ATTLIST folder mem-type CDATA #IMPLIED&gt; ]&gt; 
               
               
                   
                 &lt;folder-listing version=“1.0”&gt; 
               
             
          
           
               
                   
                 &lt;folder name=“C:” user-perm=“R”  mem-type=“DEV”  /&gt; 
               
               
                   
                 &lt;folder name=“E:” user-perm=“R”  mem-type=“MMC”  /&gt; 
               
             
          
           
               
                   
                 &lt;/folder-listing&gt; 
               
               
                   
                   
               
             
          
         
       
     
     The folder-listing object above is also formatted according a syntax based on the XML specification and includes information relating to one or more folders residing in the memory elements of the device having the sending module. The information included in the folder-listing object includes the name of the folder and the permissions granted to the user. 
     Further, as highlighted by the underlined portions, an attribute identifying the memory device type, “mem-type,” is included in the folder-listing object. This attribute corresponds to the “MemType” attribute in the capability object. Thus, an association is formed within the information exchange between the memory elements and the folders included in the folder-listing object. 
     With this association formed in the information exchange, improved capability can be provided to, for example, third-party applications residing on a device. For example, if a PC-based application is installed on a mobile phone using the Symbian operating system, a user is able to obtain memory usage or memory availability information through the PC application. 
     In the foregoing description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It is evident, however, to one skilled in the art that the exemplary embodiments may be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to facilitate description of the exemplary embodiments. 
     While the exemplary embodiments illustrated in the Figures and described above are presently preferred, it should be understood that these embodiments are offered by way of example only. Other embodiments may include, for example, different techniques for performing the same operations. The invention is not limited to a particular embodiment, but extends to various modifications, combinations, and permutations that nevertheless fall within the scope and spirit of the appended claims.