throbber
(12) United States Patent
`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,

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket