`Singhal et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,925,481 B2
`Aug. 2, 2005
`
`US006925481B2
`
`(54) TECHNIQUE FOR ENABLING REMOTE
`DATA ACCESS AND MANIPULATION FROM
`A PERVASIVE DEVICE
`
`(75) Inventors: Sandeep Kishan Singhal, EngleWood
`Cliffs, NJ (US); Barry Eliot Levinson,
`New York, NY (Us); Darren Michael
`Sanders, Nanuet, NY (Us)
`
`:S tC .C t' CAUS
`73 As'
`(
`)
`slgnee
`yman ec Orp ’
`uper m0’
`(
`)
`( * ) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 827 days.
`
`(21) Ap p1~ N 0': 09 /8 48,39 4
`
`(22) Filed:
`
`(56)
`
`(58) Field of Search ............................... .. 709/200, 201,
`709/203, 217, 218—220, 227
`_
`References Cited
`U_S_ PATENT DOCUMENTS
`_
`6,765,596 B2 * 7/2004 Lection et a1. ............ .. 715/835
`6,816,719 B1 * 11/2004 Heinonen et al. ......... .. 455/403
`* cited by examiner
`Primary Examiner—Moustafa M. Meky
`(74) Attorney) Agent) Or F ir m—MarC1a L' Doubet
`(57)
`ABSTRACT
`
`Methods, systems, and computer program instructions for
`enabling users of pervasive devices to remotely access and
`manipulate information in Ways that might otherwise be
`impossible or impractical because of inherent limitations of
`the device. The disclosed techniques enable a Wide variety
`of data manipulation operations to be performed on behalf of
`the pervasive device, for a Wide variety of content types. In
`preferred embodiments, no modi?cations or add-ons are
`required to the pervasive device'
`
`57 Claims, 9 Drawing Sheets
`
`May 3, 2001
`_
`_
`_
`Pnor Pubhcatlon Data
`Us 2002/0178211 A1 Nov_ 28, 2002
`7
`
`.........................
`. ..................... .. 7
`
`.
`
`.
`
`........ .. G06F 13/00
`; 709/203; 709/217;
`709/219
`
`(65)
`
`(21;
`2
`
`1 10
`
`150
`
`170
`
`World-Wide Web
`
`l\‘
`
`140
`
`File
`Access
`Proxy
`
`ll
`Protocol
`Proxy
`
`Q)
`
`Q)
`
`WlD
`
`13”
`
`........... ..,,
`
`160
`
`Data
`Manipulation
`Server
`
`SAP Exhibit 1001, Page 1 of 21
`
`
`
`U.S. Patent
`
`Aug. 2,2005
`
`Sheet 1 0f 9
`
`US 6,925,481 B2
`
`Qkv
`
`
`Emm< mwmoo<
`59:0 2E
`
`$8 a:
`
`56E
`
`52mm
`
`an“ E3
`
`
`
`5.53252 4 ................................. .. ®
`
`@vv
`
`@
`
`6022a
`
`36E
`
`SAP Exhibit 1001, Page 2 of 21
`
`
`
`U.S. Patent
`
`2m
`
`2B184,
`
`cm‘
`
`
`
`9mm%.03
`
`
`
`VMN.nmw«mu
`
`
`
`m%.mun2,__mEm>_m>.mm.co_«m_:a_cm<,_Smo__m.E.ommucom=0m<
`
`._2xm>>9tm>coo.=2xno2..$5.099xm».__2xENmoxmsozmmcosm_.a_:m_22mo....NAtm>:oo:oZowcoum_:q_:m_>_flm0
`
`
`
`
`
`
`<N.05.
`
`NON
`
`EN,OGN
`
`
`
`..9,.E552om,_o_§_a_8_2%oEta0Eoom8:28O%E__a.tmZom:ouw_:a_:n2BmDEta.....mhNU.
`
`
`E...:oawn.
`
`
`
`
`
`SAP Exhibit 1001, Page 3 of 21
`
`SAP Exhibit 1001, Page 3 of 21
`
`
`
`
`U.S. Patent
`
`Aug. 2,2005
`
`Sheet 3 0f 9
`
`US 6,925,481 B2
`
`FIG. 3
`
`300
`
`310
`
`WlD Requests
`Data
`
`Request Routed to
`Corresponding
`Protocol Proxy
`
`Forward
`request to
`information source
`
`' 320
`
`330
`
`340
`
`350
`
`Receive
`response from
`information source
`l
`Obtain
`available service
`information
`l
`Format
`information to include
`access to services
`
`Forward
`information to
`requesting WlD
`
`WlD receives
`data and
`service information
`
`350
`
`370
`
`SAP Exhibit 1001, Page 4 of 21
`
`
`
`U.S. Patent
`
`Aug. 2, 2005
`
`Sheet 4 of 9
`
`US 6,925,481 B2
`
`
`
`
`
` Evmo_Zmwflmmscmmn:>>VJOE
`
`
`
`uhvEmaBammzcm.Emzcom
`
`Em?59:0
`
`
`
`abs»E0:omcoamm_m>_moo~.._
`
`
`
`Emma.5330Sun
`
`
`
`fihv3um>_mom._gmmsaom
`
`co:m_:o__cm_>_98
`
`Ezmw
`
`QNV
`
`
`
`wO_>._mw0C_.E._QmD
`
`Ucmvmfimzuw.mafia
`
`
`
`@503:o__.m_.Eo.E_
`
`nEm_:a_cmE
`
`
`
`send»bmmmmom:Eotmm
`
`Emucomcfimmooi
`
`
`
`:o_..moo>:_mo_.>.mwm_>
`
`mmm_uv<
`
`
`
`bkfi9omcoamw._mozvoi
`
`SAP Exhibit 1001, Page 5 of 21
`
`SAP Exhibit 1001, Page 5 of 21
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 2,2005
`
`Sheet 5 0f 9
`
`US 6,925,481 B2
`
`<m .UE
`
`EcatmzmwcosmiaEmEEmQREE
`
`mm .UE
`
`EoodmuQmQ.EERQELSw
`
`Om .GE
`
`8006266
`
`Q52523:;nzzwuccatmzmwcowmiaEmEBmQFBE
`
`SAP Exhibit 1001, Page 6 of 21
`
`
`
`U.S. Patent
`
`Aug. 2,2005
`
`Sheet 6 0f 9
`
`US 6,925,481 B2
`
`wmgwracl?omumzoog
`
`mm .05
`
`Gm .UE
`
`Hm .UE
`
`SAP Exhibit 1001, Page 7 of 21
`
`
`
`U.S. Patent
`
`Aug. 2, 2005
`
`Sheet 7 of 9
`
`US 6,925,481 B2
`
`cm.05
`
`__mEmtm>._omco=m_:a_cm_>_m_.mnSHE:
`
`mm.05
`
`E8.oE8_.©>o:_umm_£E.mEw
`
`@mmF_\._m>._mw__mE:ummEw__mEw\._mZmmco_..m_:a_cm_>_m..mo\\a€.:
`
`Hm.05
`
`99¢Em..moou.ton_2:mammm__.sum__.Esm_2.mamm:o_§.a_:m.s_9mo§_E
`
`SAP Exhibit 1001, Page 8 of 21
`
`SAP Exhibit 1001, Page 8 of 21
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 2,2005
`
`Sheet 8 0f 9
`
`US 6,925,481 B2
`
`FIG. 6A
`
`602
`
`5;] Internet Explorer
`
`600
`
`I
`E!
`
`@ED
`
`The ReefEdge Solution
`
`Ecl?twa re hr Meta-ark Gan necti‘rit'r' a nd Enterprise
`
`610
`
`4.‘
`WE
`
`SAP Exhibit 1001, Page 9 of 21
`
`
`
`U.S. Patent
`
`Aug. 2,2005
`
`Sheet 9 0f 9
`
`US 6,925,481 B2
`
`FIG. 6B
`
`600
`
`" "
`
`'P ‘@222. K; .E? .T
`
`{2:21
`
`at?
`
`620
`
`D
`n
`
`SAP Exhibit 1001, Page 10 of 21
`
`
`
`US 6,925,481 B2
`
`1
`TECHNIQUE FOR ENABLING REMOTE
`DATA ACCESS AND MANIPULATION FROM
`A PERVASIVE DEVICE
`
`FIELD OF THE INVENTION
`
`The present invention relates to pervasive computing, and
`more particularly to methods, systems, and computer pro
`gram instructions for enabling users of pervasive devices
`(such as limited-function mobile devices, smart appliances,
`etc.) to remotely access and manipulate information in Ways
`that might otherWise be impossible or impractical because of
`inherent limitations of the device.
`
`BACKGROUND OF THE INVENTION
`
`15
`
`Pervasive devices (also referred to as “pervasive comput
`ing devices”) have become popular in recent years as people
`increasingly seek “anyWhere, anytime” access to services
`such as voice and data communications. Many pervasive
`devices are designed to be mobile, and may equivalently be
`referred to as “mobile devices” or “mobile computing
`devices”. Examples of mobile pervasive devices range from
`tWo-Way pagers to personal digital assistants, or “PDAs”
`(such as the Palm Pilot, Handspring VisorTM, or Compaq
`iPAQ) to cellular phones (such as the Nokia 6110) to
`multi-function devices (such as the Nokia 9110 or Qual
`comm “pdQTM” smartphone). (“Visor” is a trademark of
`Handspring, and “pdQ” is a trademark of QUALCOMM
`Incorporated.) All pervasive devices are not necessarily
`mobile, hoWever. Examples of this latter category include
`smart appliances for the home or business setting, devices
`Which are permanently mounted in automobiles, and so
`forth.
`Pervasive devices typically share several common char
`acteristics:
`1) limited processor speed;
`2) limited memory capacity;
`3) small siZe, Which limits the richness of the data input
`and output interfaces (for example, small screen, limited
`keypad, and so forth);
`4) a limited amount of softWare pre-installed on the
`device; and
`5) access to limited-bandWidth netWorks.
`The inherent draWbacks of these characteristics are fur
`ther exacerbated by:
`1) the need to maximiZe the device’s relatively short
`battery life—Which in turn prevents additional processor
`poWer or memory capacity from being added to the device;
`and
`2) the need to simplify use of the device—Which in turn
`reduces the desirability of supporting an “open” softWare
`installation platform in Which arbitrary softWare packages
`might be added.
`As people rely on pervasive devices for day-to-day infor
`mation access tasks, they ?nd that the experience can be
`extremely limiting. While pervasive devices vary Widely in
`functionality and in their capabilities, some general obser
`vations for an average pervasive device can be made. First,
`the device typically does not have suf?cient memory to store
`all of the information that the user requires. Indeed, most of
`a user’s ?les or data are normally stored on a desktop
`personal computer (“PC”), laptop, or corporate server.
`Moreover, the device’s memory limitations often prevent the
`user from manipulating large ?les, such as graphics
`
`2
`intensive presentations (Where it might be desirable, for
`example, to re-order the slides Within a presentation).
`Second, the device typically does not have the softWare
`required to access all of the data that the user might Wish to
`use. For example, most pervasive devices are unable to run
`common softWare applications such as Microsoft® Word or
`Microsoft® PoWerpoint. (“Microsoft” is a registered trade
`mark of Microsoft Corporation.) Some pervasive devices,
`such as tWo-Way pagers from Research In Motion (“RIM”),
`do not usually have a Web broWser installed, and therefore
`the user cannot render data formatted as Web documents.
`Third, the device often does not have the necessary drivers
`installed With Which to support all the data manipulation
`operations the user might Wish to perform. For example,
`pervasive devices typically do not have drivers to support
`operations such as printing and faxing. Similarly, pervasive
`devices typically do not have drivers for video graphics
`array (“VGA”) adapters that Would enable the device to
`display content to a projector (such as a liquid crystal
`display, or “LCD,” projector).
`Some pervasive devices Would not be considered as
`limited in function, although they may suffer from some of
`the draWbacks of limited-function devices such as poor
`ease-of-use (having, for example, a small screen siZe).
`Examples include the Compaq iPAQ Home Internet Appli
`ance IA-1 and the AudreyTM home appliance from 3Com
`Corporation. (“Audrey” is a trademark of 3Com
`Corporation.) The term “Wireless Information Device”, or
`“WID”, Will be used hereinafter to refer to this type of
`pervasive device as Well as limited-function pervasive
`devices. (This term recogniZes the fact that both the limited
`function and full-function pervasive computing devices
`typically communicate using Wireless communication tech
`niques and protocols, such as 802.11, Bluetooth, and so
`forth.)
`Various attempts have been made to address the limita
`tions of WIDs; hoWever, existing approaches fail to provide
`a satisfactory solution.
`One existing approach to addressing the limitations of
`WIDs involves the technique of “transcoding” content into
`a form that is better suited for the WID. Products such as the
`WebSphere® Transcoding Publisher from International
`Business Machines (“IBM”) Corporation and Spyglass
`Prism from Open TV, Inc. represent examples of this class
`of solution. (“WebSphere” is a registered trademark of
`IBM.) Through transcoding, the content is programmatically
`manipulated for a target device. For example, the transcod
`ing process may enable the content to be rendered effectively
`on a small-screen device (perhaps by altering font siZe,
`removing image ?les, and so forth). Typically, a “transcod
`ing engine” located on a server or netWork device receives
`the content in its original form, performs a conversion
`process, and delivers the renderable format to the client
`device. HoWever, these transcoding solutions only address
`the need to vieW content: they do not provide a capability to
`manipulate the content from the WID. For example, the
`transcoding process does not enable the WID to e-mail, fax,
`print, or project the content.
`Another approach to addressing the limitations of WIDs
`involves supplementing the capabilities of the WID through
`the deployment of hardWare adapters or softWare. For
`example, a special-purpose attachment (knoWn as a “Spring
`boardsTM” module) may be plugged into a Handspring Visor
`device to enable the device to perform additional functions
`such as vieWing and projecting Microsoft PoWerPoint ?les.
`(“Springboard” is a trademark of Handspring.) The
`Presenter-to-GoTM module from Margi Systems, Inc. is one
`
`25
`
`35
`
`40
`
`45
`
`55
`
`65
`
`SAP Exhibit 1001, Page 11 of 21
`
`
`
`US 6,925,481 B2
`
`3
`instance of such an attachment. (“Presenter-to-Go” is a
`trademark of Margi Systems, Inc.) As another example,
`software may be installed on a Microsoft Pocket PC device
`to enable the device to print Microsoft Word ?les to a limited
`set of printers. The PrintPocketCE softWare from FieldSoft
`Ware Products is one instance of such a softWare product.
`HoWever, these client-centric add-on approaches increase
`the cost of the WID solution signi?cantly and sometimes far
`exceed the cost of the WID itself. They also require addi
`tional poWer, effectively reducing the WID’s available bat
`tery life. Each add-on solution typically supports only a
`single data manipulation option (or a very limited set of
`options), for only a limited set of ?le formats (or in some
`cases, for a single ?le format). Several different add-ons may
`therefore be needed to enable a WID to meet a particular
`user’s requirements. An additional disadvantage of this
`approach is that the extra hardWare is often bulky and
`inconvenient to carry, Whereas additional softWare often
`requires a complex installation process by end-users, con
`sumes valuable memory on the WID, and may not interop
`erate effectively With existing softWare loaded on the WID.
`Therefore, What is needed is a technique for enabling
`WIDs to access and manipulate data that avoids the limita
`tions of the prior art.
`
`SUMMARY OF THE INVENTION
`
`The present invention is directed to methods, systems, and
`computer program instructions for enabling Wireless infor
`mation devices to access and manipulate data. The data
`being accessed may reside on a Web server, a ?le server, a
`personal desktop PC, or elseWhere. The data may represent
`virtually any type of information, including Web content,
`e-mail messages, or ?les in various formats. The data
`manipulation operations that are provided through use of the
`present invention may include vieWing, faxing, printing, and
`projecting the data, as Well as delivering the data to a voice
`messaging system.
`Note that the discussion herein is primarily in terms of a
`limited set of data manipulation tasks or operations. These
`operations are discussed for purposes of illustration, and not
`of limitation. Many other manipulation operations might be
`provided in an implementation of the present invention,
`including modifying or changing data in some Way; con
`verting data from one format to another; transferring data
`from one device to another (eg to a remote ?le server for
`storage); publishing the data to a Web site; importing data
`(including a ?le or document) into a repository; disseminat
`ing data to one or more recipients (such as by sending e-mail
`messages); attaching data to a Work?oW message; control
`ling a remote application (such as launching and paging
`through a remotely hosted PoWerPoint presentation); and so
`forth.
`Enabling WIDs to easily access a Wide variety of types of
`data and to initiate a Wide variety of manipulations on that
`data in an efficient, cost-effective manner—in spite of the
`device’s inherent limitations (such as limited processor
`capacity, limited embedded softWare, and/or limited band
`Width capability)—is a primary objective of the present
`invention.
`In preferred embodiments, the techniques of the present
`invention provide these advantages Without requiring the
`installation of neW softWare or hardWare on the WID, in a
`manner that is easily extensible to support neW manipulation
`operations and neW data types.
`Objectives of the present invention are realiZed by a
`solution that comprises one or more proxies, Zero or more
`
`10
`
`15
`
`25
`
`35
`
`40
`
`45
`
`55
`
`65
`
`4
`agents, and a data manipulation server (hereinafter, “DMS”).
`The DMS provides information about What services may be
`performed, and hoW to invoke those services. The DMS also
`performs operations on behalf of the WID, in cooperation
`With the proxies and the agents. In preferred embodiments,
`the proxies, agents, and DMS are not located Within the
`WID, but instead are accessed by sending one or more
`request messages from the WID. This solution enables the
`WID’s capabilities to be augmented in a very ?exible yet
`poWerful and cost-effective manner, Without requiring any
`modi?cations to be made to the WID itself.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 provides a block diagram Which depicts an archi
`tecture and components of a preferred embodiment of the
`present invention;
`FIGS. 2A and 2B illustrate examples of a table in Which
`information about available data access and/or manipulation
`services is stored, according to a preferred embodiment of
`the present invention;
`FIG. 3 provides a ?oWchart that depicts logic With Which
`a WID accesses data and receives information about What
`manipulation operations are available on that data, accord
`ing to a preferred embodiment of the present invention;
`FIG. 4 provides a ?oWchart that depicts logic With Which
`a WID requests a manipulation service upon data it has
`accessed, and With Which that service is performed, accord
`ing to a preferred embodiment of the present invention;
`FIGS. 5A—5I provide syntax examples that are used in
`describing operation of a preferred embodiment of the
`present invention; and
`FIGS. 6A and 6B illustrate samples of graphical user
`interface (“GUI”) displays that may be used to display
`available service information, according to the present
`invention.
`
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENT
`
`The present invention Will noW be described more fully
`hereinafter With reference to the accompanying draWings, in
`Which a preferred embodiment of the invention is shoWn.
`Like numbers refer to like elements throughout.
`FloWchart illustrations of aspects of the present invention
`are described beloW. The logic of these ?oWcharts may be
`provided as methods, systems, and/or computer program
`instructions embodied on one or more computer readable
`media, according to an embodiment of the invention. As Will
`be obvious to one of ordinary skill in the art, these ?oWcharts
`are merely illustrative of the manner in Which the associated
`aspects of the present invention may be implemented, and
`changes may be made to the logic that is illustrated therein
`(for example, by altering the order of operations shoWn in
`some cases, by combining operations, etc.) Without deviat
`ing from the inventive concepts disclosed herein.
`The present invention provides an ef?cient, cost-effective
`technique for enabling a Wireless interface device to easily
`access a Wide variety of types of data and to initiate a Wide
`variety of manipulations on that data, Without requiring the
`installation of neW softWare or hardWare on the WID, and in
`a manner that is easily extensible to support neW manipu
`lation operations and neW data types.
`FIG. 1 illustrates a preferred architecture and components
`of a system in Which the present invention operates. The
`system may provide support for multiple WIDs, although
`only one WID 130 is illustrated in FIG. 1. The WID, Which
`
`SAP Exhibit 1001, Page 12 of 21
`
`
`
`US 6,925,481 B2
`
`5
`in preferred embodiments is a commercially-available WID
`Which may be provided by any one of a number of vendors,
`includes at least one software application With Which a user
`interacts to access and/or manipulate data. In preferred
`embodiments, this user-interaction softWare application is
`the only softWare required on the WID to enable use of the
`present invention. This user-interaction softWare preferably
`comprises a broWser implementation (such as a Web
`broWser); in alternative embodiments, other types of user
`interaction softWare applications (including, but not limited
`to, e-mail client softWare) may be used. The user-interaction
`softWare application may be installed on the WID When it is
`marketed, and may be a commercially-available softWare
`implementation. When broWser softWare is present, it pref
`erably supports at least one markup language. Examples of
`markup languages that may be supported include the Hyper
`text Markup Language (“HTML”); Wireless Markup Lan
`guage (“WML”); and Voice Extensible Markup Language
`(“VoiceXML”).
`Note that While preferred embodiments of the present
`invention operate With commercially-available WIDs and
`Without requiring hardWare or softWare modi?cations or
`add-ons, in alternative embodiments the WID may be spe
`ci?cally adapted for use With the present invention, Without
`deviating from the inventive concepts disclosed herein. For
`example, a WID might include modi?cations to provide a
`user interface tailored for use With the present invention, or
`perhaps code for optimiZing data access and/or manipulation
`processing. Moreover, auxiliary softWare may be provided
`to provide enhanced authentication, encryption,
`compression, or similar functions that augment the trans
`mission of data described herein. Furthermore, While the
`preferred embodiment anticipates invocation by user inter
`action (and user-interaction softWare), there may be imple
`mentations in Which automated or programmatic invocation
`is appropriate. In these cases, softWare Which embodies the
`automated or programmatic invocation may replace the
`previously-described user-interaction softWare as the only
`softWare required on the WID to enable use of the present
`invention. Or, the tWo forms of invocation softWare may
`co-exist on a WID.
`At least one protocol proxy 120 is provided, according to
`the teachings of the present invention. A protocol proxy
`provides a bridge betWeen the client (i.e. an application
`executing on WID 130) and the information that it seeks to
`access and manipulate. A protocol proxy is responsible for
`accessing information on behalf of the client and (in pre
`ferred embodiments) annotating this accessed information
`With information about the manipulation services available
`for that accessed information. (The annotation process is
`described in more detail beloW, With reference to Block 350
`of FIG. 3.) The information may be accessed, for example,
`from its location on one or more Web content servers in the
`World Wide Web (hereinafter, “Web”) 110, in a distributed
`?le system 150 of the prior art, or from an application of the
`prior art. This content server may deliver content that
`includes services Which have been “pre-added” to the con
`tent (eg by querying the DMS directly), so that the protocol
`proxy is not required to provide additional annotations. This
`latter situation may be particularly bene?cial, for example,
`if the content server happens to be co-located With the DMS.
`Preferred embodiments of the present invention include at
`least one of the folloWing types of protocol proxy: (1) a
`Hypertext Transfer Protocol (“HTTP”) proxy, (2) a Wireless
`Session Protocol (“WSP”) proxy, and (3) a Simple Mail
`Transfer Protocol (“SMTP”), Post Office Protocol (“POP” or
`“POP3”), or Internal Message Access Protocol (“IMAP”)
`
`15
`
`25
`
`35
`
`40
`
`45
`
`55
`
`65
`
`6
`proxy. An HTTP proxy handles requests for and reception of
`information using HTTP request and response messages. A
`WSP proxy handles requests for and reception of informa
`tion using WSP request and response messages. SMTP, POP,
`and IMAP proxies handle requests for and reception of
`electronic mail respectively using SMTP, POP, and IMAP
`request and response messages.
`Alternative embodiments may include different and/or
`additional protocol proxy types. For example, a synchroni
`Zation protocol proxy may be included, Which may be used
`to synchroniZe data stored locally on a user’s WID With data
`stored elseWhere (such as on the user’s desktop PC). An
`example synchroniZation protocol is “SyncML” Which is
`being developed by The SyncML Initiative to seamlessly
`synchroniZe Wireless and Wireline data and devices. (See
`http://WWW.syncml.org for more information on SyncML.)
`The protocol proxies in a particular implementation of the
`present invention may each run on different hosts if desired,
`and individual protocol proxies may be co-located With
`other components of the system. The protocol proxy func
`tion described herein may be replicated, if desired (for
`example, to administratively separate different types of
`proxy function, for purposes of fault tolerance or fault
`isolation, for scalability and load balancing, etc.) Moreover,
`a single proxy may itself be divided into separate compo
`nents. For example, an HTTP proxy may include a ?rst
`component that determines Whether the request is for con
`tent on the Web or perhaps on a ?le server; a second
`component that handles those requests Which are for Web
`content; and a third component that handles those requests
`Which are for content from a ?le server. The multiple
`components may, in turn, be distributed across multiple
`machines.
`In one embodiment, prior art con?guration mechanisms
`are used to adapt the WID for communicating With a
`protocol proxy. For example, the client Web broWser may be
`instructed to communicate With an HTTP proxy, or synchro
`niZation softWare on the WID may be con?gured to send
`synchroniZation protocol messages to the synchroniZation
`protocol proxy. In this embodiment, the protocol proxy then
`intercepts outbound messages from the client on the WID
`and processes those messages as disclosed herein. In another
`embodiment, a WID communicates With a protocol proxy
`through a Wireless access point (not shoWn in FIG. 1), such
`as an 802.11 access point or a Bluetooth access point (the
`functioning of Which is knoWn in the art). In this latter
`embodiment, the access point or an adapter device commu
`nicating With the access point receives outbound messages
`from the WID and evaluates those messages to determine
`Which protocol is in use. The access point or adapter device
`then routes the outbound message to the appropriate proto
`col proxy. (This latter embodiment is preferred in the present
`invention because it avoids the need to con?gure the WID.)
`Zero or more ?le access proxies 140 are also provided,
`according to the present invention. File access proxies may
`be located on various ?le servers, desktop computers, data
`base systems, or other storage devices, and provide access to
`data stored in one or more repositories 150 Which are located
`on (or otherWise accessible to) those machines. Aparticular
`?le access proxy may access data from a local repository,
`Within remote data stores (such as information that is
`accessible from a remote ?le server or Web server), infor
`mation stored Within local applications (such as stored
`e-mail messages), and/or information stored Within remote
`applications (such as information that is accessible through
`a database or directory application). Accessible information
`may be dynamically generated by the local or remote
`application, such as a live sensor reading.
`
`SAP Exhibit 1001, Page 13 of 21
`
`
`
`US 6,925,481 B2
`
`7
`A data manipulation server 160 is provided, according to
`the present invention. In preferred embodiments, the DMS
`has tWo roles. One role is to provide data manipulation
`services. Another role is to maintain a repository of the
`available services for various types of data and to make this
`information available.
`While not shoWn in FIG. 1, it may be desirable in some
`situations to have multiple data manipulation servers 160,
`for example for purposes of availability or load balancing or
`administrative control. Furthermore, the DMS may be
`located Within a cluster. The function of the DMS may
`optionally be partitioned, With different services hosted on
`different DMS’s.
`In its role of providing data manipulation services, those
`services may be provided by the DMS either directly, or
`indirectly by invoking one or more data output agents 170
`(Which are described beloW). For example, the DMS may
`directly manipulate content by performing a conversion of
`the content into HTML upon receiving a conversion request
`from the WID. As another example, the DMS may indirectly
`manipulate content by forWarding the content to a ?le
`manipulation agent, Where that ?le manipulation agent is
`responsible for storing the content in a repository. In simple
`cases, the DMS may operate in a “pass-through” mode
`Wherein it merely forWards content to a data output agent
`(such as a ?le manipulation agent). In most cases, hoWever,
`the DMS performs operation-speci?c processing of the data
`received from the client before determining Whether and
`Where to forWard data that may need further processing by
`an agent. In general, the data manipulation operations pro
`vided by the DMS may be arbitrarily complex, and operate
`in a content-dependent manner. In some cases, manipulation
`requests received from the WID may imply other manipu
`lations that need to be performed. As one example, if a
`request is received from the WID to fax content to a
`recipient, the DMS preferably invokes a conversion process
`(Which may be provided by the DMS, by a data output agent,
`or perhaps by another component of the system) to trans
`form the content into Tag Image File Format (“TIFF”),
`Where the resulting TIFF document is then sent to a data
`output agent responsible for performing facsimile transmis
`sion. As another example, if a request for printing a Web
`page is received from the WID, the DMS ?rst accesses the
`content of the Web page by retrieving it from the Web (or
`perhaps from cache storage) and then forWards that content
`to a selected data output agent Which is responsible for print
`services. More information on the data manipulation pro
`cessing provided by the DMS is provided beloW, With
`reference to FIG. 4.
`In its role as a repository of available services, the DMS
`preferably maintains a table (or a list or other analogous
`structure, referred to hereinafter as a “table” for ease of
`reference) to identify those services. At run-time, this table
`is used to provide the WID With a list of the available data
`manipulation services for particular data content. The table
`is preferably organiZed according to ?le content type. An
`example is shoWn in FIG. 2A, Which indicates that ?les of
`type “XML” may be converted to WBXML (“Wireless
`Application Protocol Binary XML”) decks (see 205) or
`faxed to recipients (see 210), Whereas ?les of type “ASCII”
`may be sent as e-mail (see 215). In this example, the ?le
`content type appears ?rst, in column 200; an identi?cation of
`the service appears next, in column 201; and an address of
`the service (ie a service invocation address, described
`beloW) appears in column 202. The service identi?cation
`from column 201 may, for example, be presented to a user
`on a user interface to enable user selection of the corre
`sponding service.
`
`10
`
`15
`
`25
`
`35
`
`40
`
`45
`
`55
`
`65
`
`8
`Alternatively, the table may be organiZed in a different
`manner. Furthermore, the entries in the table may optionally
`provide for further qualifying the services, such that the
`availability of a particular service depends on additional
`factors beyond the ?le content type. Examples of such
`factors include: (1) identi?cation of individual users or user
`groups; (2) user privileges or access rights; (3) particular
`locations from Which a service Will be available; (4) the
`target WID type; and (5) combinations of such factors. FIG.
`2B provides an example of this optional further
`quali?cation, Wherein the example table is organiZed
`according to ?le content type (in column 250), user identi
`?cation (in column 251), and location (in column 252). The
`service is identi?ed in column 253, and the service invoca
`tion address appears in column 254. As illustrated therein,
`the print service is available With all ?les and all locations
`(indicated by presence of a Wildcard symbol “*”) for user A
`(see 255), Whereas printing is only available to user B for
`?les of type “.doc” and only While he is located in Confer
`ence Room C (see 260).
`When user identifying information is stored in the DMS’
`table for use as a factor in service availability, it may be
`represented in several alternative formats, such as: the user’s
`name; a department number to Which an authoriZed user
`must belong; an Internet Protocol (“IP”) address (Which may
`optionally identify a user group, eg through a subnet mask)
`of the user’s WID; and so forth. Similarly, location infor
`mation used as a factor in service availability may be
`represented in several alternative manners. Location infor
`mation is further described beloW, With reference to Block
`340 of FIG. 3. Some factors used in determining service
`availability, such as user access rights or privileges, may
`require dynamically querying a directory or similar reposi
`tory at run-time to determine availability. Information used
`in the retrieval may in some cases be obtained from the
`request message issued by the client (eg from header values
`in HTTP requests). Techniques for performing this type of
`dynamic look-up processing are Well knoWn in the art, and
`Will not be described in detail herein.
`The examples in FIGS. 2A and 2B use a simpli?ed format
`for purposes of illustration. In an actual implementation,