throbber
EMC 1019
`EMC Corp. v. Clouding Corp.
`IPR2014-01217
`
`

`
`Patent
`
`W
`
`US 7,254,621 B2
`
`
`
`
`.m...,__mEo:m>_mw:o:m_:u_cm_>_2m.Q__mE.mmmucmm=0m<wexmEmamw:o_§:a_:m2m.moE29022x5._s_x
`
`tm>cootm>._owco:m_3a_cm_>_mfin.=2Xm>>9tm>coo.._S_X
`
`
`
`NewENEN3.05
`
`E_._&.o>._omco_«m_:a_cm_>_EmoEamVMNnunNunRNcmw
`
`EE:m>.wmco_.m_:a_cms_m.moEE0Eoommoceofoo
`
`madam
`
`

`
`U.S. Patent
`
`Aug. 7, 2007
`
`Sheet 4 of 9
`
`US 7,254,621 B2
`
`
`
`Ema2.338.Emzcou
`
`QWV5330Ema
`
`
`
`93.Eotmmcoawm.mzooom
`
`Eom<53:0«.8
`
`
`
`Em?.350
`
`
`
`%m.._3cmmEma<
`
`
`
`932mmcoawo.oozuoi
`
`o_>>mczmmaum.
`
`
`
`§hVBuw>_mo9fimzcmm
`
`
`
`co:a__.a_cm_2Sun
`
`Eaww
`
`
`
`§N§.003.0%mc__.Em.mo
`
`
`
`ucmumfimzcm.m:_mn
`
`
`
`mafiacozmcces
`
`um.w_:Q_:mE
`
`
`
`cozmoo>:_mo_>_owm_>
`
`mmmfiv<
`
`
`
`
`
`3.6.bammuoocccotmm
`
`Emucom:_mm8o.a
`
`
`
` 3».mgzomBmozummn=>>¢.05
`
`
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 7, 2007
`
`Sheet 6 or 9
`
`US 7,254,621 B2
`
`mm.03
`
`con.toam_tm>._mmm_Sim.EL::&._m2mmco_«m_:a_:m_2m.mo=d:c
`
`mmAVE
`
`
`
`uoufioamto_>>>m_ommmmou<mm_E.m>..mm>>m:§n~mmv.woou.toam.EmEmwmE=umEwe.E52mwco=m__d_cm_2m.mo\>azn
`
`mm.UE
`
`mmvmmE2...8mum2oo2..
`
`
`

`
`U.S. Patent
`
`Aug. 7. 2007
`
`Sheet 8 of 9
`
`US 7,254,621 B2
`
`FIG. 6A
`
`602
`
`603
`
`Internet Explorer
`f192«1‘='*9~
`
`3:29p
`
`9
`
`The ReefEdge Solution
`Eafirv.-are fiar Iuletw-:1rl>;‘3:1nrne-:ti'.'it',' and Enterpri-
`
`
`
`610
`
`9
`
`

`
`US 7,254,621 B2
`
`1
`'l'ECl'.lNlQUE FOR ENABLING REMOTE
`DATA ACCESS AND MAs\’IPULA'I‘ION FROM
`A PERVASIVE DEVICE
`
`CROSS-REFERENCE TO RELATED
`Al’P.ZlCATION
`
`This application is a continuation of prior application Ser.
`No. 09/848,394, filed May 3, 200], which is hereby incor-
`porated herein by reference, now US. Pat. No. 6,925,481.
`
`FIELD OF THE lN"\"El.NTlON
`
`The present invention relates to pervasive computing, and
`more partimlarly to methods, systems, and computer pro-
`g_mm instructions for enabling users of pervasive devices
`t‘ such as limited-fiinction mobile devices, smart appliances,
`etc.) to remotely access and manipulate ini'or.mation in ways
`that might otherwise be impossible or impractical because of
`inherent limitations of the device.
`
`BACKGROUND OF THE ll\’VlEN'l’lON
`
`it‘;
`
`15
`
`20
`
`30
`
`2
`all of the inlbrniat.ion that the user requires. indeed. most of
`a user’s tiles or data are normally stored on a desktop
`personal computer
`(“l’C"),
`laptop. or corporate server.
`Moreover, the dcvice’s memory liinitations ot"ten prevent the
`user from manipulating large files, such as g.rapl1ics-inten-
`sive presentations (where it might be desirable, for example,
`to rc-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 mo conimon
`software
`applications
`such as Microsoft® Word or
`Microsolt® 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 documeitts.
`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
`may (“V(lA") adapters that would enable the device to
`display content
`to at 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 drawlnaclts of limited-function devices such as poor
`ease-of-use =,’having_. for example. a small screen size).
`Exainplcs include the Compaq iPAQ l-Ionic Internet Appli-
`ance lA-1 and the Audrey“ home appliance from 3Com
`Corporation. (“Audrey” is 3 trademark’ of 3Com Corpora-
`tion} The term “Wireless lxiforiitatioii Device", or “WID”,
`will be used hereinafter to refer to this type of pervasive
`. device as well as limited—l'unction pervasive devices. ('l‘ltis
`tenn l'B{X)glllZBS the tact that both the limited-function and
`full-function pervasive computing devices typically com-
`municate using wireless communication techniques and
`protocols, such as 802.ll, l3lnetoot’l1, and so forth.)
`Various attempts have been made to address the limita-
`tions of W'll)s; however, existing approaches fail to provide
`a satisfactory SC‘.l‘tlll(Jn.
`One existing approach to addressing the limitations of
`Wll.)s involves the teclmique of “transcodiug” content into
`a form that is better suited for the WID. Products such as the
`WebSpherc® Transcoding Publisher
`from liztternational
`Business Macliines (“lBM") Corporation and Spyglass
`Prism from Open TV, lnc. represent examples of this class
`of solution. (“WebSphere” is a registered trademark of
`IBM .) Tlirouglt transcotling. the content is programniaticaliy
`
`in-rt
`tpulated for a target device. For example. the transcod—
`ing process may enable the content to be rendered effectively
`on it small-screen device (perhaps by altering 'l'ont size,
`removing image files, and so forth). Typically, a "transeod-
`ing engine" located on a server or network device receives
`the content
`in its original fonn, performs It conversion
`process, and delivers the renderable lormat
`to the client
`device. However, these rranscoding 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 WTD to e-mail, fax,
`print, or project the content.
`Another approach to addressing the limitations of WlDs
`involves supplementing the capabilities of the W ID tltrough
`the deployment of hardware adapters or software. For
`cxanlple, a special-purpose attachment (known as a "Spring-
`I 1board"M"' module) may be plugged into a Handspring Visor
`
`Pervasive devices (also referred to as “pervasive comput-
`ing devices") have become popular in recent years as people »,
`increasingly seek “anywltere, anytime" access to services
`such as voice and data communications. Matty pervasive
`devices are designed to be mobile, and may equivalently be
`referred to as “mo’nile devices” or “mobile computing
`devices". Examples of mobile pervasive devices range from
`two—way pagers to personal digital assistants, or “l-’DAs"
`(such as the Palm Pilot‘, Handspring Visor“. or Compaq
`il’.-KQ)
`to cellular phones (such as the Nokia 6110) to
`multi-function devices (such as the Nokia 9110 or Qual-
`comrn “pdQ'”“" sniartplicne). (“Visor" is a trademark of
`It-landspring, and “pdQ” is a trademark of QUALCIOMM
`‘tncorpora1cd._) All pervasive devices are not necessarily
`mobile. however. lixamples of this latter category include
`smart appliances for the home or business setting, devices
`which are permanently mounted in :tutomobi.les, and so
`it-rtli.
`Pervasive devices typically share several common char-
`acteristies:
`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:
`l) the need to mttxintize the device’s relatively short
`battery llle—~—Wl1:lClt in turn prevents additional processor
`power or memory capacity from being added to the device;
`and
`
`45
`
`50
`
`35
`
`2) the need to simplify use of the device————wl1ich in turn
`reduces the desirability oi’ supporting, an “open” software
`installation platform in which arbitrary software packages
`might be added.
`As people rely on pervasive devices tor day-to-day infor-
`mation access tasks, they find 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 suflicient memory to store
`
`6!)
`
`65
`
`

`
`US 7,254,62l B2
`
`5
`MG. 1 illustrates a preferred architecture and components
`of a system in which the present invention operates. The
`system may provide support for multiple WlDs, although
`only one WlD 130 is illustrated in FIG-. 1. The WID, which
`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 21 user
`interacts to access and/or mzuripulatc 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 uscr—interaetinn sofiwarc pr'eferably
`comprises a browser
`implementation (such as a Web
`browser); in alternative embodiments, other types of user-
`iutcraction sofiware applications (including, but not lintitccl
`to, e-mail client software) may be used. The riser‘-interaction
`software application may be installed on the Wll) when it is
`marketed, and may be a cornmercially-available so1'"twarc
`irnplementation. When browser software is present, it pref-
`erably supports at least one markup laiigttage. Examples tit’
`markup languages that may be supported include the Hyper-
`text Markup l'..anguag_e (“l'ITMI."): Wireless Markup .lI..an-
`guage (“WM.I.J‘); and Voice Extensible Markup Language
`(“Voicex ML”).
`Note that while preferred ernbodituetrts of the present
`
`invention operate with coninterci
`-available WlDs and
`without requiring lrardware or software rrtodificatirx-trs or
`zidd—ons, in alternative embodiments the WID may be spe-
`cifically adapted for use with the present ll1VcI1ll()ll, without
`deviating, frotn the inventive concepts disclosed herein. Ftjll’
`example, 21 W11) ntight include tnodificatioirs to provide a
`user interface tailored for use with the present invezttion. or
`perhaps code for optimizing data access and/or manipulation
`processing. Moreover", auxiliary software may be provided
`to provide enhanced atrtlietttication, encryption, compres-
`sion, or similar l'unctiot'rs that augntcut the transmission of
`data described hereirr. Furthermore, while the preferred
`crnbodimertt anticipates invocation by user interzrction (and
`user-interaction software), there may be implemezitations in
`which automated or progratnniatic invocation is appropriate.
`in these cases, sottx are which embodies the automated o.r
`prograiniuzttic irtvocatiott may replace the previously-cltr
`scribed user-interaction software as
`the only so llware
`required on the W.lD 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 teaclrings of the present invention. A protocol proxy
`provides a bridge between the client (i.e. an applic*;rtion
`executing on Will) .130) and the itiforiuatiori that it seeks to
`access and manipulate. A protocol proxy is responsible for
`accessing inlTormation on behalf of the client and (in pre-
`ferred ernbodiments) annotating this accessed inforrnation
`with information about the rnanipttlatiori services available
`for that accessed information. (The annotation process is
`rlescribed in more detail below, with reference to Block 350
`of N6. 3.) The itrfonnatiori may be accessed, for example,
`
`from its location on one or more Web content servers ..
`the
`World Wide Web (liereinullcr. “Web”) 110, in a distributed
`file 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 {e.g. by querying the DMS directly), so that the protocol
`proxy is not required to provide additional annotations. 'll1is
`latter situation may be particularly bcnelicial, 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
`
`5
`
`15
`
`2t)
`
`25
`
`30
`
`.35
`
`40
`
`45
`
`Sf‘:
`
`6
`Hypertext Transfer Protocol (“ll’l'TP“) proxy, (2) a Wireless
`Session Protocol (“WSP") proxy, and (3) a Simple Mail
`Trattsfer Protocol (“SMTP”), l’ost Ofice Protocol (“l’()P" or
`“l‘~OP3”), or Internal Message Access i’rotc-col (“IM;-KP”)
`proxy. Au HTTP proxy handles requests for and reception of
`inllinnatiorr using H"l"l‘P request and response messages. A
`WSP proxy liandles requests for and l‘CC8pl.iO=.'l of inil'orma-
`tion using WSP request and response messages. SMTP, P09,
`and lMAl’ proxies handle requests for and reception of
`electronic mail respectively using SMTP, POP, and IMAP
`request and response rriessrrges.
`Alternative ernhodiments may include diil'cr'ent and/or
`additional protocol proxy types. For example, it synchroni-
`zation protocol proxy may be included, which may be used
`to sytichr1')rii2e data stored locally on a user’s WID with data
`stored elsewhere (such as on the user’s desktop
`An
`example synchronization protocol
`is “SyncMl.." which is
`being developed by The SyncMl’,. Initiative to seamlessly
`synchronize wireless and wireline data and devices. (See
`httpzi/www.syncml.0rg for more information on Syricl\'ll}.)
`'llie protocol proxies in a particular implementation of the
`present invention may each run on dillcrent 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 diilereitl
`types of
`proxy lirtictiori, for purposes of fault
`tolerance or fault
`isolation, for scalability and load balancing, etc.) Moreover,
`a single proxy may itself be diVidL\’i into separate compo-
`nents. For example, an HTTP proxy may include a first
`comporient that determines whether the request is for con-
`tent on the Web or perhaps mi 3 file server; a second
`component that handles those requests which are for Web
`content; and it third component that liandles those requests
`whicli are ‘for cotrtcrtt from a file server. The multiple
`criinpoireiits mrty,
`in turn, be distributed across multiple
`m;tcltines_
`In one embodiment, prior art configuration mechanisms
`are used to adapt
`the Wll) for comrniuiicating with a
`protocol proxy. For example, the client Web browser may be
`instmcterl to communicate with an l-ll"l“? proxy, or synchro-
`nization software on the Wll) rnuy be configured to send
`synchrorrizatitrn protocol messages to the synchr'oni2'ation
`protocol proxy. In this etnborlirner=.t_. the protocol proxy then
`intercepts outbound messages from the client on the WH)
`and processes those niessages as disclosed herein. In another
`et‘t‘th0ditrtent_. a WID comnztturicates with a protocol proxy
`through a wireless access point (not shown in FIG. 1), such
`as an 802.1 "l access point or Bluetnoth access point ifthe
`lirnctioning of which is known in the art). In this latter
`embodiment, the access point or an adapter device cornnm-
`nicr.-titig with the access point receives outbound rnessziges
`from the WID and evaluates those messages to determine
`whicli 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
`ir.tventio.n because it avoids the need to configure the WID.)
`Zero or more file access proxies 140 are also provided,
`according to the present invention. File access proxies may
`be located on various file sewers. 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 otlrerwise accessible to) those machines. A particular
`file access proxy may access data from a local repository,
`within remote data stores (such as iitfontizrtioit
`that
`is
`accessible iron) a remote file server or Web server), infor-
`1»;I.1'.ldll0ll stored within local applications (such as stored
`
`65.1
`
`65
`
`
`
`

`
`US 7,254,62l B2
`
`9
`(“URLs’ ). Preferably, the addresses are specified within the
`entries stored in the DMS‘s table, as shown in the example
`tables of HG. 2A and FlG. 2B. although alternatively the
`addresses may be separately stored (perhaps as a storage
`0pll.§‘{i.l’l£ill0l‘L). As an example of using the latter approach. a
`print service might appear many times in the DMS’ table. To
`climinate redundant storage of this seivice“s URL, the U RL
`mi ght be correlated to the print service but separately stored,
`enabling individual table entries such as 255 and 260 in FIG,
`2B (wltich specify qualifiers on when printing is available)
`to be associated with the proper URL at run-time even
`though column 254 is omitted. Sin1ilarly, separate storage
`may be desirable in cases where the appropriate URL to use
`for creating the available services list is determined dynami-
`cally at run-time.
`Note that while the service invocation addresses used
`herein as examples specily locations on a DMS, this is for
`purposes of illustration and not of limitation. One or more of
`the URLs may alternatively identify services pl'()\—"l(lCf.l at
`locations other than the DMS.
`in alternative embodiments, service invocation address s
`
`may employ adtlrcss lbnnats other than URLs. such
`5
`e-mail addresses, or perhaps a combination of an c-mail
`address and subject
`line,
`to designate a service to be
`invoked.
`
`‘Nhcn requested information is delivered to a client nppli~
`eatioii on the WID, a list ofscrvice invocation addresses for
`the available sen-‘ices is provided along with that informa-
`tion {as will be discussed in more detail with reference to
`Block 350 of FIG. 3). Each service iiivocatimt address is
`"preferably augnieuted with an identity of the information
`that is to be operated upon. in some cases. it may be possible
`to infer the infnrrualion identity from the service invocation
`address. in which case this augmentation is not required. For
`example, a service invocation address might
`identify 21
`Structured Query Language (“SQL”) query whose result is
`implicitly the data being manipulated.
`Returning now to Fifi. 3, one or more data output agents
`170, which implement specific output manipulation opera-
`tions (such as printing, faxing, projecting, or delivering to a
`voice mail system, the details of which do not form part oi‘
`the present invention), are provided. (Note that a data output
`agent, as the term is used herein. refers to a component that
`delivers tile content
`to an output device, whereas a file
`access proxy as defined licrcin retrieves tile content
`in
`read-only mode. In some instances, 5 data output agent and
`a file access proxy maybe co-located, and fuithennore these
`functions may be implemented within a single sofiware
`component.) The DMS passes data to selected ones of these
`agents to perform the manipulation services which are ”
`managed by the DMS. in preferred embodinients of the
`present invention, one or more of the following, data output
`agents are supported:
`a print server agent, which is responsible for scndingjobs
`to one or more printers;
`a projection server agent, which is responsible for driving
`the display of content to an LCD projector, video display, or
`other graphical terminal;
`a file manipulation server agent, which is capable of
`performing file operations such as copying. deleting, and
`renaming files (and which is typically co-located with a tile
`access proxy};
`an e-tnail manipulation server agent, which is capable of
`performing e-mail operations such as sending, receiving,
`and deleting e-mail messages (and which is typically co-
`located with a file access proxy that accesses e-mail tiles);
`
`55
`
`60
`
`(:5
`
`5
`
`in
`
`i5
`
`-'3
`
`30
`
`3'5
`
`45
`
`l 0
`a fax server agent, which is responsible for sending
`information for facsimile transmission; and
`a voice mail server agent, which is responsible for sending
`in.l"ormation for delivery through 8 voice messaging system.
`The agents may send data to queues or other similar
`slrlictures or processors, which may in turn be implemented
`as agents. For example, the output of a print server agent
`may he sent
`to 9 selected print queue for printing {using
`queuing techniques which are well known in the art). An
`agent such as a print server may manage local resources,
`such as a locally-stored print queue for a particular printer,
`or remote resources. such as access to multiple printers (each
`of which typically has its own print queue processing).
`In
`degenerate cases, a print server agent may be manifested
`simply as a print queue. Similarly, other agents such as the
`fax server agent and projection server agent may be mani-
`fested as queues for their respective devices.
`Referring now to Flt}. 3, logic is illustrated that may be
`used to provide data access support for a WID, including
`delivery of a Elsi’ of the manipulation operations that are
`available on that data. At Block 300, the client soilware on
`the W ll") issues a request for information. (This corresponds
`to request message tlmv l in Filti. I. The encircled numbers
`in FIG. I all refer to message flows.) Typically. this request
`is initiated by action of the Wll) user. Block 3.10 indicates
`that a protocol proxy receives this request. As described
`eai'licr, the outbound request either may be received by the
`protocol proxy to which the client software has been con-
`figured to communicate, or may be received by a wireless
`access point or adapter device (which then inspects the
`content to determine which protocol proxy is required, and
`lorwartls the request to that proxy").
`At Block 320, the protocol proxy forwards the request to
`the appropriate iiilorriiatioii source. For example,
`if the
`request is an H'.l"l"l" request For V‘v'ch content issued by a Web
`browser. then an l~l'l"l‘P proxy forwards that I-ITTP request to
`the Wt;-lzi. Or. if the request
`is for file content,
`it will be
`tb.i‘w:u'ded lo a file access proxy.
`(This corresponds to
`niessagc flow 2 or 3 in FIG, 1.) At Block 330, the protocol
`- proxy receives the response fmrn the information source.
`(This corresponds to message llow 4 or 5 in Fl(i. l.)
`The protocol proxy then determines, in Block 340, which
`services are available to the Wll) for manipulating the
`re-iuriictl content. This determination may be made in several
`ways. in a prefenred eniliodinient, the protocol proxy issues
`a query to the DMS For a list of available services. {This
`corresponds to message flow 6 in FIG. 1.) Upon receiving
`the list from the DMS, the protocol proxy may optionally
`cache the list for use with subsequeiit requests (in order to
`avoid the message exchange and processing overhead of
`repeatedly requesting such infonnation from the DMS). in
`an alternative embodiment,
`the protocol proxy may he
`statically pre-configured with a list of available services that
`are appropriate for particular types of content, users, loca-
`tions, or other criteria as described previously with respect
`to FIGS. 2A and 2B; in this case, message flow 6 of FIG. 1
`is not required.
`When queried by the protocol proxy at Block 340, the
`DMS consults its stored table entries (see PlGS. 2A and 28
`for examples), using logic that is adapted to the particular
`storage format in use by that DMS, and dctcnnincs which
`services are available for the data being returned to the WlD.
`As stated earlier, the available services are preferably fil-
`tered according to the type of content being returned, and
`may also (or alternatively) account for one or more other
`factors.
`(_'l'his
`filtering process has been discussed with
`1 Sreferencc to FlGS. 2A and 28. above.)
`
`

`
`US 7,254,621 B2
`
`.13
`
`original request tnesi-sag,e, thereby ensuring that the mar.-iptt-
`lated content corresponds to the content delivered to the
`WID user. FIG. 5l<' provides an example of syntax that may
`he used to annotate a link with it cookie whose name is
`"acct_nbr" and whose value.
`is “l23456”. (Note that
`the
`DMS prepares the user’s bank account
`information for
`priming in response to a data manipulation request indicated
`as message flow 8 in FIG. 1, and invokes the print process
`at a data output agent by issuing message flow 10 in FIG-. 1.
`The processing performed by the DMS may further com-
`prise obtaining bank account information by issuing mes-
`sage llow 9 in FIG. 1.)
`This same approach may be used for fonn parameters that
`are submitted to a Web server (e.g. using an HTTP POST
`inessagc). To encode the form parameter information in the
`URL. a parameter name such as “postParams" may be
`substituted for the “cookie” parameter name shown in MG.
`SF. A parameter iiatneivaltte pair may then be listed, in an
`analogous manner to listing, a cookie naine/value pair.
`A service invocation address may be coupled with any
`combination of cookies, form parameters, or other infonria-
`Zion.
`
`form parameters, and other
`Wlien encoding cookies,
`iiiforirtation in this manner. three issues should be consid-
`ered. First, URL length is currently limited to 255 characters,
`according to the ’rl'l‘TP specificaatioii. Second, it is diflicult to
`encode all character sets in URLs. Third, a DMS may in
`some cases be intplentented within Et Web client which is not
`able to progratttmatically control the sending of request data.
`For example,
`the DMS might use Microsoft
`Internet
`Explorer, which provides no programmatic way to force. a
`cookie to be sent. To address these problems, the cookies,
`fortn parameters, and so forth may be cached by the protocol
`proxy (i.c. when the original content is beitig, processed).
`This cached information may then be used in three ways to
`construct a valid request for use with the present invention.
`In a first approach, in the sewice invocation address URL,
`a parameter can be given by which the cached parameters
`can be obtained by the DMS from the protocol proxy. For
`example,
`“?params=ht'lp2!/protocolproxy/parmns.’
`l39x3e2‘45" gives the DMS a URL from which the cached
`parameters, cookies, etc. can be obtained.
`'lhe value
`“‘i39x3e245" in this example is meant as a temporary code
`which represents the parameters associated with the part ictt—
`lar requwt.
`in a variation of this first approach, the parameter on the
`service invocation address URL may identify how to obtain
`the cached parameters from the cache, rather than from the
`protocol proxy.
`in a second approach, the data URL may actually point to
`the protocol proxy itself. The protocol proxy, upon receiving
`the data request from the DMS, dctennines the real request
`and obtains the requested data on the DMS’ behalf. For
`example, “http2//protocolproxy/reqncsL’139x3e245” n‘-.ig,l‘it
`cause a request (along with the appropriate cookies. form
`parameters, and other information) to be issued from the
`protocol proxy to the true source of the data.
`ln at third approach. the DMS may request the content by
`itself using the protocol proxy, in much the shine way tlt-at
`all requests from the Will were directed through the proto-
`col proxy. However, the protocol proxy may annotate the
`data source with a tag that the protocol proxy can later use
`to reconstruct the original query. For example, the protocol
`proxy might rewrite the content request URL. to be “http:.-"/
`wwwyahoo.oorn./?prot;ocolproxy*l39x3e245",
`so,
`upon
`
`.
`ing the request from the DMS, the protocol proxy may
`
`10
`
`25
`
`30
`
`I4
`look up session l39.x3e245 in its cache, obtain the necessary
`parameters, and forward the properly-formatted request to
`location “www.ytthoo.cotn".
`lt is also possible that the protocol proxy might cache the
`data content (ra‘-ahcr than the parameters). In this case, the
`content location provided by the protocol proxy might then
`point to that cache. There is then no need to provide cookies
`or parameters in the URL, because the DMS can obtain the
`full content from the cache. To achieve maxintal perfor-
`mance and capacity in this situation, the cache is preferably
`capable of storing multiple versions of content associated
`with the same URL, with each version associated with a
`‘ different combination ofcookics, form parameters, and other
`request iitfommtion.
`Optionally, additional formatting information may be
`supplied as parameters on selected wrvice invocation
`addresses during the annotation process of Block 350. These
`additional patnmeters may he provided for implementation-
`specific usage,
`inciuding for customization of the data
`tnattipttlatiott service. One example, described above, is to
`specify a destittation address for a tile that is being stored in
`a repository. As another example, suppose the data manipu-
`lation service is to send an c-maii message to a particular
`recipient’. An example of invoking the “email” service,
`which is managed through the DM S at the location shown in
`FIG. 56, to send a message identified as “msg98765.txt” to
`the recipient “lttcy@:ricardo.cotn” is shown in FIG. 5}-l.
`As yet‘ another example of adding patairtcters to service
`invocation addresses, it may be desirable in a tile conversion
`service to supply parameter values to be used in guiding the
`conversion process. Suppose, for exampic, that the previ-
`ously—discussed “report.doc” Microsoft Word document is
`being converted to HTML, and that the conversion software
`allows seveml diflerent types of tzatisforttiatiotis, based upon
`identification of a particular template. The template may
`specify how to fonnat the title, for example, and how to
`“clu.inlr" the source docunicnt
`into different pieces, how
`links to those pieces ate embedded, and so forth. if the
`template parameter value
`"‘pl2tin", for exarnple, the con-
`version is adapted to returning plain text, whereas if the
`template parameter value is "scgmented”, then the conver-
`sion may generate a “chunl<ed” document where each logi-
`cal input. segment appears on a dillfereitt page, and perhaps
`failing to specify 2:
`template parameter value causes the
`entire document to be generated as a single HTML page. A
`sample service invocation address for viewing the converted
`file in segmented form is shown in l"'lG. S].
`Preferably, the annotation process of Block 350 generates
`separate annotated links for each valid option. such that
`when the user selects one of the links, all the necessary
`infortttatiott
`is present
`for properly invoking the data
`man.‘-pulatioii service. (Note that the DMS prepares this file
`for viewing in response to a data manipulation request
`indicated as message flow 8 in FIG. 1, and returns the result
`for rendering on the WID at message flow 12 in FIG. 1. The
`processing performed by the DMS may further comprise
`obtaining the tile content by issuing message flow 11 in FlG.
`1-)
`The parameter types supplied during the annotation pro-
`cess may be stored in, and obtained front. the DMS table
`along with the applicable service invocation address. Or, the
`protocol proxy may provide service-specific code for deter-
`mining which parameter types are applicable for a particular
`service.
`While the preferred einbodiment has been described in
`terms of embedding the service description directly into the
`lifontent
`(eg.
`as
`links
`in HTML), other alternative
`
`40
`
`St‘)
`
`60
`
`65
`
`

`
`7,254,62l B2
`
`17
`as has been shown in the examples herein. Alternatively, it
`may happen that
`the DMS needs to evaluate additional
`infomtaticn in order to locate the data. For example, if a file
`name is received that does not specify 22 complete file path
`from a root directory, then the DMS preferably uses imple-
`nierttation-dcpendent techniques for resolving the location
`and directory path irifortnatiort. (Or, an error message may
`be returned in such cases, if desired.)
`At decision Block 440,
`the DMS determines whether
`processing lay it data output agent is required to complete the
`requested service. Each service irnplemented on the DMS is
`adapted to knowing what
`type of ftmhcr processing,
`is
`required and when zigentts) need to be invoked.
`if the answer to the decision block is Yes, then controi
`passes to Béoclc 450 where a request to the appropriate data
`output agent is generated. The data output agent
`that is
`invoked is preferably dcterrnined according to the type of
`service to be performed, and optionally by evaluating other
`factors (such as the user"s identity} the processing load on
`particular printers. current network conditions such as avail-
`able bandwidth mttl,-‘or outages. wlticlt data output agent
`supports the user’s e-mail service or file system, and so
`fortlt). The data output agent performs any necessary opera-
`tions, using processing which is known in the prior art, to
`perform the requested data riitrtripttlzttion. For example, iftlie
`data output agent controls on LCD projector, then the data
`output agent retrieves the information to be projected, ren-
`ders it, and makes the rendered in'l‘orm:':tion available to the
`associated projector (eg. through a VGA output connector).
`Or, if the data output agent hztudles sending of c-mail
`message-s_. then the

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