throbber
United States
`(19)
`a2) Patent Application Publication 0) Pub. No.: US 2009/0187654 Al
`Raja et al.
`(43) Pub. Date:
`Jul. 23, 2009
`
`
`US 20090187654A1
`
`Related U.S. Application Data
`
`(60) Provisional application No. 60/977,996,filed on Oct.
`5, 2007.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 15/173
`(52) US. C1. cece ese cneeneeneeneeeesessesecsseaeaecneees 709/224
`67)
`ABSTRACT
`The present application is related methods to monitora state
`of one or more components of a remote access server farm by
`an intermediary to distinguish between operating and func-
`tional components and improve farm availability for user
`application requests. The intermediary may be deployed
`between a client and the remote access server farm and for-
`wards client requests to functional components of the remote
`access server farm.
`
`
`
`(54) SYSTEMS AND METHODS FOR
`MONITORING COMPONENTSOF A
`REMOTE ACCESS SERVER FARM
`
`(75)
`
`Inventors:
`
`Murali Raja, Bangalore (IN);
`Sandeep Kamath,Bangalore (IN)
`
`Correspondence Address:
`CHOATE, HALL & STEWART/ CITRIX SYS-
`TEMS,INC.
`TWO INTERNATIONAL PLACE
`BOSTON, MA 02110 (US)
`
`(73) Assignee:
`
`Citrix Systems, Inc. Silicon Valley,
`Santa Clara, CA (US)
`
`(21) Appl. No.:
`
`12/236,016
`
`(22)
`
`Filed:
`
`Sep. 23, 2008
`
`
`
`ee
`Computing
`Environment 15
`
`Application
`
`Datafile
`!
`
`
`
`
`Client Agent 120
`
`Client
`
`102
`
`Network
`
`
`
`
`performance
`monitoring
`service 198
`
`
`
`
`
`197
`
`
` Application
`
`
`
`Data file
`
`
`
`
`
`
`
`Policy Engine
`195
`
`performance
`monitoring agent
`
`Server
`
`106
`
`Application
`Delivery
`System 190
`
`Server
`
`106A
`
`Data Co Exhibit 1034
`Data Co Exhibit 1034
`Data Co v. Bright Data
`
`Data Cov. Bright Data
`
`

`

`Patent Application Publication
`
`Jul. 23,2009 Sheet 1 of 26
`
`US 2009/0187654 Al
`
`tae]
`
`e90L
`
`se8AlEg=——|||——*
`
`U9OLsaAlagVib“E)|4
`SHOMIEN—
`
`YIOMIJON
`
`
`
`eZObjuald
`
`qzobwad
`
`
`
`UZOLjuald
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23,2009 Sheet 2 of 26
`
`US 2009/0187654 Al
`
`oooao
`
`oDooo
`
`
`
`e90LJaAles
`
`a901
`JBAIBS
`
`
`
`U9O|JeAIaS
`
`.002
`
`a:
`
`souelddy
`
`souel|ddy
`
`
`
`Gt‘OldUZOLqUeIID
`
`———4
`
`BZOLjusllD
`qz0lb=4ualid
` |
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 3 of 26
`
`US 2009/0187654 Al
`
`
`
`e90}J1aAles
`
`q90L4aA19g
`
`aouel|ddy
`
`NVM
`
`
`
`uolyeziWndguonezIUndg
`
`(so1lAep
`
`judi (so1lAep
`U90L=saasag9b“E)|S4UZOb
`
`aoueljddy
`Foft
`MHIOMION
`
`NVM
`
`
`
`q20b4wualld
`
`
`
`e2Objuald
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23
`
`’
`
`2009 Sheet 4 of 26
`
`US 2009/0187654 Al
`
`o
`
`OlJaasagSOUBUOJJad
`
`
`
`
`
`uoneolddy
`
`uoeaddy
`
`KJaaeq
`
`
`
`juabeBuvowuow
`
`SOUBLOLIad
`
`Z6L
`
`eaulbugAaloddPOL
`
`S6Lj
`
`06}Wajsks
`
`
`
`_IOMIONyIomaN
`
`
`
`V9OLJ9A19$
`
`S6LS0IAIaS
`
`Buuoyuow
`
`Gb‘SIs
`
`
`OZLjuabyjUaI|D
`cOL=Jual|D
`Bunndwoy
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 5 of 26
`
`US 2009/0187654 Al
`
`100\
`
`128
`
`
`
`
`
`|
`OS
`Software |
`software
`for appliance
`Storage
`
`101
`
`122
`
`Main
`
`
`
`120
`
`150
`
`CPU
`
`123
`
`Network
`Interface
`118
`
`
`
`
`
`Display
`device(s)
`
`/0
`CTRL
`
`Installation
`Device
`
`126
`
`127
`
`~124a-n
`
`116
`
`Keyboard
`
`Pointing
`
`Fig. LE
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 6 of 26
`
`US 2009/0187654 Al
`
`101
`
`Main
`
`Processor
`
`140
`
`122
`
`
`
`I/O|1/0|Memory Main
`
`Port|Port}
`Port
`Memory
`130b
`
`103
`
`—
`
`I/O
`Device
`
`150
`
`130a
`
`VO
`Device
`
`Fig. 1F
`
`

`

`Patent Application Publication
`
`Jul. 23,2009 Sheet 7 of 26
`
`US 2009/0187654 Al
`
`
`
`Ordsuibugjyeyoegps}esba}U|
`
`1090}0./d-njnN
`
`
`
`SADIAI9§UOWARGWa}sSAS
`
`
`
`VeSlsane 992SHOd
`912sweibolgvie
`
`
`YIOMIONJOSS99O/1g||JOSS9D01duondAiouz902
`
`uoIssaldwioyayoe9
`
`
`
`Buoy;yyeoHS9TIMSE[1934S
`RASTA792JOSSO9D01d
`
`
`
`2-21ahe7|paads-ybiHy0z
`sezJabeuey;
`
`Zeejauloy
`
`yYIOMJON
`
`29%498}
`
`uondAisug
`
`peeoulbuy
`
`aremMpseH
`
`:
`
`eoeds
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 8 of 26
`
`US 2009/0187654 Al
`
`
`
`90)JaAlag
`
`
`
`UQ/ZBdIAJES
`
`20/ZSdlAlaS
`
`e901
`JOAIBS
`
`
`
`JOLSSIIAJSS
`
`YOMJON
`
`BG/ZVWJOAIOSA
`
`UG/ZYWJOAJOSA
`
`O8¢NdA1S$S
`
`
`
`C8Cd|JOUE}U|
`
`78zBulyoyms
`
`98SNA
`
`88cUdela|S00V7
`
`
`
`juaBeBuioyuow
`
`Z6L
`
`062M4ddy
`
`74
`
`OMpON
`
`vol
`
`
`
`002soueljddy
`
`deSls
`
`
`quabyUal|O
`yuabyjuallD
`
`yuabyjuallD
`
`qzoLjualld
` UZOLjwUAl|DeeoL=jwualld
`
`BOL
`
`q0c1
`
`
`
`
`
`UOZL
`
`
`
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 9 of 26
`
`US 2009/0187654 Al
`
`Client 102
`
`user mode 303
`
`1s Program
`322
`
`App N
`
`
`
`
`
`
`
`
`monitoring
`agent/script 197
`
`Streaming Client
`306
`
`Network
`Stack
`310
`
`
`
`Collection Agent
`304
`
`API/ data
`structure 325
`Acceleration
`Program 302
`
`interceptor
`350
`
`Client Agent 120
`
`Kernel mode 302
`Kee ee ee ee ee ee ee ee ee ee ee ee eeee
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 10 of 26
`
`US 2009/0187654 Al
`
`
`
`
`
`
`
`
`
`
`
`
`Network104
`
`
`
`
` FIG.4A
`
`
`
`Client102N
`
`Client102A
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 11 of 26
`
`US 2009/0187654 Al
`
`1
`
`106A
`
`
`
`
`
`
`
`0
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`106A
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ait|
`SERVER
`MASTER
`
`FIG.4B
`
`
`
`FIG.4C
`
`
`
`
`CLIENT102A|
`
`
`
`
`CLIENT102N
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 12 of 26
`
`US 2009/0187654 Al
`
`
`
`
`
`<

`S
`
`we
`
`
`
`||=
`
`
`
`
`
`
`
`a)
`
`.© L
`
`L.
`
`
`
`ao
`
`ar
`WW
`0
`
`.
`
`
`
`
`
`
`
`t+
`
`
`
`
`
`
`
`=S |
`
`
`
`
`
`|
`iW
`
`aO
`
`o
`
`
`
`480
`
`458
`
`S
`o
`=
`
`.
`
`——-
`
`t
`
`
`
`
`
`N
`io
`st
`
`or
`
`fr
`uw
`ow
`
`
`
`
`
`
`
`
`480
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 13 of 26
`
`US 2009/0187654 Al
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`v9ol
`
`jaaddv|
`
`
`
`
`
`
`UELSVA
`
`
`
`
`
`
`
`
`
`
`
`
`N9O1
`
`ddv
`
`
`
`
`
`MBAHaSNzo-LNAIND
`
`cH
`
`
`
`NIHL
`
`
`
`
`
`BSP
`
`
`
`N90ely
`YaAMaS.=ar‘OldaOL
`uaANaS
`ddely
`——“sor
`c#.
`|v2901
`
`99r||
`
`
`tv“Old
`NSAMAS|
`
`
`esr||
`
`
`
`
`
`WZ0LLN3I19
`
`
`
`
`
`
`
`
`
`
`
`
`
`v90l
`
`
`
`
`
`
`
`YaLSVAN8s?
`
`
`
`
`
`
`
`
`sp
`
`ago|25%,usp
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 14 of 26
`
`US 2009/0187654 Al
`
`
`
`2
`S
`
`i
`>
`oe

`
`m
`wi
`>
`a
`i
`=
`
`
`
`:
`
`~
`
`
`
`
`
`
`
`
`
`<
`2
`
`
`
`qa
`@
`=
`
`fe
`i
`FE
`D
`3
`
`
`K
`
`<
`
`
`
`
`
`
`2
`
`*
`
`
`
`
`
`
`
`
`102CLIENT
`
`
`
`
`
`
`
`
`457
`458
`
`
`
`
`
`9
`;
`Oo
`LL
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 15 of 26
`
`US 2009/0187654 Al
`
`
`
`
`
`
`
` 492
`
`490
`
`
`
`
`
`MOGA
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG.4H
`
`
`
`
`
` A457
`
`CLIENT102
`
`|457’
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 16 of 26
`
`US 2009/0187654 Al
`
`
`
`
`
`901
`
`YAaAXAS
`
`
`
`
`
`
`
`
`
`
`
`4asny)[nouvonddy
`
`
`
`LNAI
`
`(id¥Nd)
`
`
`
`
`
`SOVASaLLNIWeOOUd
`
`BOWAYNaLNI
`
`
`
`
`
`
`
`
`
` a)
`
`
`

`

`Patent Application Publication
`
`Jul. 23,2009 Sheet 17 of 26
`
`US 2009/0187654 Al
`
`NOLLWOMNdd¥
`
`JOVAYSLNIYaSN:NOLLWOtlIdd¥|
`
`
`(iNNd)WwyHoOoud
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`asvaviva
`
`
`
`
`Wool|
`SHOVD
`
`SOWIMSLNE
`
`Ud¥Ned)
`
`
`
`
`
`
`
`LN3I19ZOL
`
`
`
`
`
`
`
`
`
`rySis
`
`
`
`NOLVONMdd¥
`
`daOVNVAl
`
`ALOWSAY
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 18 of 26
`
`US 2009/0187654 Al
`
`FNPEVNNENWNCINNNPHOSTERPTANYWINTERSNAANRS
`
`
`
`
`oyuyyioddnsuonensibeyBurjiodaysaBeueyyyas
`jes1uyoaLJIWIOJSNDjeionueulsuonesiddy.
`
`
`
`§::%ae‘7AEEet2Lnneengtnnete
`
` werceeeetsyeeeers5t;t5"&tL&.gy:agepreerceecece,
`retti5i
`yson-iFee6te
`
`4aui0}sn9
`
`aseqeyeq
`
`=eeeeeeeOOLIIOGUIBIONLUIPIBOLYWA)what
`
`_PooUodUDIaNWweJOOldvol
`
`
`
`
`
`diey;s|00|MIAUpsall
`
`erartigttets
`|ze
`
`poe
`
`“|
`
`
`
`SmallA‘Tsanedoid|“Useyay
`
`4serannentsd
`
`OGIEEEE,
`
`
`
`!
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 19 of 26
`
`US 2009/0187654 Al
`
`gg-
`
`g:yes:Poy
`
`AEahhhBEAESASSELELLELISEDALPELEBERERDOPPELEELLELELPPPODEVILLELEPPPPEELELELLLDPYDEENIESSASIROPEDs
`
`
`
`
`
`uonensibay~Buodeysobeueyy39S
`
`ndiaHsloolMelAUPAAlls
`POOLWOUBIONwelBoldvole|PANE
`
`
`jeloueul4uonesjddy
`
`
`OPPPELEEDELLLEVPRLLLELELETTLUPELELLLLSSOELELDISEDIPTLILLLELELSADDS
`
`SRNRRICEEEEEREIEW
`NOREENSYRENAISHEETRISSCCENIORHC
`EOI
`Ser
`
`$
`
`ceageccerd
`
`J9WO}SND
`
`feencengeresas
`
`‘ry
`-
`end
`Ra
`
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 20 of 26
`
`US 2009/0187654 Al
`
`
`
`LIAISNVAL
`
`
`
`dslvisa
`
`
`
`
`
`Isanozy
`
`
`
`
`
`
`
`
`
`
`
`069
`
`aalv1ay
`
`
`
`WaloSAd5s300N
`
`
`
`NiSHSAMaSMBAS.FGONaaAdss
`9OldAVTdSIC
`
`
`
`
`YaHLoNOLLYOMIdd¥LNAITSYaALSVA
`NOLLYAHOSNIdOasvavivd
`NOLLYOMdd¥
`
`aaiv1aydOTaA3Rqd
`
`£69"GOOHYOSHOIAN}._.}.------.-OfWIANaS:WWeOOddNAY}“ANIAL3GLeceeneeeeacersreenee
`
`
`a#3sn3snHsSIdgvissaa4OLSTVILNAG2YDNOILDANNOD[009
`989-|NOUvonddv
`ae4NAINDiNOWWVOMddy}AOIAMAaS
`GOOHYOSHOISN
`ALYDILNSHLNY
`ANZITSOLWWHS0Ou"ud
`STVILNaday9
`NOLLWAMOSNI
`NOLLWIARHOSNI
`ANIWHALSaGHLA
`
`aheooa.SWILNSGSsYS
`NOLVOMdd¥
`
`WYHOONd.
`
`S.LNSITO“aAUaS
`yasndolas3aa
`zeoryNOWLVONddv¥
`QOGHHOSHSIAN
`ONVNO-901
`NVHONNY1
`isanoay(089|
`
`
`
`
`p89
`
`
`
`
`
`AW1dsld
`
`SOW0dd
`
`wasn
`
`
`
`asfIOOHHOSHOISN
`
`
`
`WoUooUd
`
`saeeererncanese!
`
`
`
`
`
`r69|
`
`
`
`
`
`
`
`
`
`
`
`TNOLLVOrday
`
`|
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 21 of 26
`
`US 2009/0187654 Al
`
`AEATRLRAISEEHSANYARNSTENTAAPAVAANRELAAAA
`
`paysijqnd)
`
`(suoneojddy
`
`SIBAIDGsleAeo cob
`
`
`
`
`
`
`
`
`
`VLOIA
`
`(40}99|]05e}egeUuO7Z)(suayoigWy)
`
`JIAIISSWI{BLASIDAIOSOWPIILLOIA
`
`
`
`
`poouysoqubianwesbold
`
`
`
`BuiuunsUal|D
`
`

`

`Jul. 23, 2009 Sheet 22 of 26
`
`US 2009/0187654 Al
`
`RCL
`
`
`
`noLNTIANONARETE
`
`ENE
`
`q:344Z444z4a
`
`d/Sls
`
`Patent Application Publication
`
`
`
`FeeneeeneeeeELILL!DDEEADIE!DELLPDIPLALA
`Janlagowerselonsues4eroWJOAIagawes{eyaI\]y«JanseaDepa}U]Ge\AaRBBjuaig
`
`
`
`
`
`
`
`
`
`peysiqng)Jaaiag(saa40Jgpeysiqng)WheZarTW»)BGC(suoneajddy
`
`
`
`
`
`(suoneaijddy=(40}98|}0De}yeqBUuoZ)serecrsrcemegs
`fee{FLRCRAIITILLILLLIILEEADLLELE
`
`
`
`
`
`
`
`
`
`
`
`
`
`PELEELLELEESLSISELESIELLTSLIDEAISLESENEDOPSSERLELEETEEDELLCEEECEDELEEEETEECEELEELEGECPLLLELERELILEDELIARELLSAISSSSLITUSIDLAESIOEENSALSELAEECLEELULEDEGADLLESSEALEECAEEELSELDLEEDLLIESOCELESEAEDSSSELLEDEILELUSEVILESINLELEDET
`
`
`
`ore,sailsthee=Reneeoweoralcall
`
`
`
`
`
`soRa}uygev,UBnouu}uoNeo|ddyueBunsenbeyusyMMo|je}eqg|eo1bo7 er
`
`
`
`rat,3my
`
`FracaRNASENEARONAAINAOTKANOMARA
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 23 of 26
`
`US 2009/0187654 Al
`
`
`
`
`
`
`
`
`Presentation
`
`Server
`
`Farms
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`XMLBrokers:106A’-106N’:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A WA ERA
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG.7C
`
`106A-106N
`
`
`WebInterface
`Servers
`
`
`
`
`Workstation“~~-
`
`XMLLayer
`
`
`
`WebInterface
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 24 of 26
`
`US 2009/0187654 Al
`
`
`
`ysonbeyOSes
`
`asuodsey759
`ZOOASbi
`
`
`
`asuodsay793
`
`
`
`
`
`
`
`N0zc89028
`
`
`jsonbey0938
`JoytomyJ2z7)1toyJ2zy)
`
`
`
` aolzZ@OBLJ8]U]GaA/,
`
`
`ZOO4ASTAHLOoASTA
`
`WOLz|SOBLSIU]Gey
`
`
`
`7SAASTAPNoZz9022|.BalesTAL
`
`V8‘Sls
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 25 of 26
`
`US 2009/0187654 Al
`
`840
`
`establishing monitor(s) for one or more interface services
`
`Step 850
`
`transmitting by one or more monitors a request
`for a predetermined published application from the one
`or more interface services;indicating no load bias
`
`Step 852
`
`receiving responsesby the monitors from the one or more
`interface services
`
`Step 854
`
`
`
`
`
`
`If do not receive response
`interface service not operational
`Step 855
`
`
`
`Step 856
`Does response
`identify hostid
`from remote access
`server farm?
`
`No
`
`
`
`determine interface serviceis
`operational and functional
`
`determine interface service is
`operational but not functional
`
`Step 858
`
`Step 860
`
`include in load balancing rotation
`for interface services; forward requests
`to functional interface services
`Step 862
`
`exclude in load balancing rotation for
`interface services: do not forward
`requests to non-functional interface
`services
`
`Step 864
`
`Fig. SB
`
`

`

`Patent Application Publication
`
`Jul. 23, 2009 Sheet 26 of 26
`
`US 2009/0187654 Al
`
`875
`2 —>
`
`establishing monitor(s) for one or more webinterfaces
`
`transmitting by one or more monitors a request
`for a default wage page from the one
`or more web interfaces; indicating no load bias
`
`
`
`Step 880
`
`Step 882
`
`Step 864
`
`receiving responses by the monitors from the one or more
`webinterfaces
`
`
`
`If do not receive response
`webinterface not operational
`Step 885
`
`No
`
`
`Step 886
`Hoes response
`
`
`have predetermined
`
`
`
`responsestring or
`
`
`code (e.g. set
`
`cookie header
`
`
`
`Yes
`
`determine webinterface is
`operational and functional
`
`determine web interfaceis
`operational but not functional
`
`Step 888
`
`Step 890
`
`
`
`
`
`
`Fig. &C
`
`include in load balancing rotation
`for webinterfaces; forward requests
`to functional web interfaces
`
`Step 892
`
`Step 894
`
`exclude in load balancing rotation for
`web interfaces; do not forward
`requests to non-functional web
`
`
`

`

`US 2009/0187654 Al
`
`Jul. 23, 2009
`
`functioning. The appliance may determinea componentis not
`functional based on the monitored response and remove the
`non-functional componentfrom consideration in traffic man-
`agement decisions. In this manner, the appliance avoidsfor-
`warding requests to non-functional components ofthe remote
`access server farm.
`
`SYSTEMS AND METHODS FOR
`MONITORING COMPONENTSOF A
`REMOTE ACCESS SERVER FARM
`
`RELATED APPLICATIONS
`
`[0001] This application is related and claimspriority to the
`following provisional US Application: “Systems and Meth-
`ods for Distributing Remote Technical Support via a Central-
`ized Service,” U.S. Application No. 60/977,996, filed Oct. 5,
`2007, which is incorporated by reference in its entirety.
`
`FIELD OF THE INVENTION
`
`[0002] The present application generally relates to data
`communication networks. In particular, the present applica-
`tion relates to systems and methods for monitoring the opera-
`tional and functional state of components of a remote access
`server farm.
`
`BACKGROUNDOF THE INVENTION
`
`In one aspect, the present invention is related to a
`[0006]
`method to monitor a state of one or more components of a
`remote access server farm by an intermediary to distinguish
`between operating and functional components and improve
`farm availability for user application requests. The interme-
`diary may be deployed between a client and the remote access
`server farm and forwards client requests to functional com-
`ponents of the remote access server farm. The method
`includes transmitting, by one or more monitoring agents of
`the intermediary, a request for availability of a predetermined
`application to each ofa plurality of interface services provid-
`ing an enumeratedlist of published applications available via
`a server in the remote access server farm. A monitoring agent
`ofthe one or more monitoring agents receivesa first response
`to the request fromafirst interface service. The first response
`[0003] Users may access one or more applications via a
`includes a host identifier of a server of the remote access
`remote access server farm. For example, a corporate network
`server farm available for providing the predetermined appli-
`may include one or more data centers each with a remote
`cation. From thefirst response, the intermediary identifies the
`access server farm. The remote access server farm may
`first interface service as operational and functional. A moni-
`include multiple access or infrastructure components for
`toring agent ofthe intermediary receives a second response to
`managing access to the server farm. The corporate entity may
`the request from a second interface service. The second
`deploy these components via one or more servers. As such,
`response doesnotidentify a host of the remote access server
`the user mayaccessthese applications via one or more servers
`farm for providing the predeterminedapplication. In response
`deploying multiple components to gain access to the server
`to the second response, the intermediary determines, the sec-
`farm ofthe data center. To complicate matters, these compo-
`ond interface service is operational and not functional. The
`nents, servers and server farms may belocated in different
`interface service may include an XMLservice providing the
`locations and managedbydifferent internal and external per-
`sonnel.
`enumerated list of published applications available from a
`presentation server farm.
`the method includes not
`[0007]
`In some embodiments,
`receiving by the intermediary the second response from the
`second interface service and determining the secondinterface
`service is not operational. In another embodiment, the inter-
`mediary excluded operations and not functional interface
`servers in a load balancing rotation of interface services. In
`other embodiments, the intermediary includes operational
`and functional interface services in a load balancing rotation
`of interface services. In one embodiment, the monitoring
`agent receivesthe first response providing the hostidentifier
`of the least loaded server in the remote access server farm.
`
`[0004] Any oneof these multiple components may have an
`error. In some cases, these errors may not be trapped or
`otherwise readily apparent to any of the administration per-
`sonnel. For example, a component may be running or execut-
`ing or a server but providing invalid responses. These types of
`untrapped errors may be challenging for the administration
`personnel to find. Furthermore, to resolve these errors the
`administration personnel may need to coordinate multiple
`other personnel to diagnose and repair the condition. With
`any of these components having anerror, the user’s access to
`the remote access server farm may be hindered or perfor-
`mance degraded.
`
`BRIEF SUMMARY OF THE INVENTION
`
`[0005] The presentsolution is directed towards monitoring
`and determining a state of one or more components of a
`remote access server farm by an intermediary to distinguish
`between operating and functional components and improve
`farm availability for user application requests. The interme-
`diary may be deployed between a client and the remote access
`server farm and forwards client requests to functional com-
`ponents ofthe remote access server farm. For example, one or
`more appliances may be deployed between a client and a Web
`Interface broker to a Citrix Presentation Server farm, and
`between the Web Interface Broker and XMLinterface service
`
`to the Citrix Presentation Server Farm. The appliances may
`monitor these components of the server farm to determine
`whether or not the Web Interface and XMLInterfaces ser-
`
`vices are operation and functional. These services may be
`considered functional based on responses from the services
`having certain expected content that indicate the service is
`
`In another embodiment, the intermediary receives a
`[0008]
`request from a client for an enumerated list of published
`applications available from the remote access server farm,
`and determinesto distribute the client request to a functional
`and operational interface service of the plurality of interface
`services. In some embodiments, the intermediary receives a
`third response from the second interface service. The third
`response includes the host identifier of the server from the
`remote host server farm for providing the predetermined
`application. The intermediary determines from the third
`response that the second interface service is operational and
`functional. In some embodiments, the monitoring agents fur-
`ther transmit the request to include an indication to not adjust
`a load of a serverin the remote access server farmer based on
`the request.
`[0009]
`In one embodiment, the intermediary determines
`from thefirst response a host cache on the serverproviding the
`first interface service is valid. The intermediary may also
`determine from the first response one of a service or a
`
`

`

`US 2009/0187654 Al
`
`Jul. 23, 2009
`
`dynamic store of a zone data collector of the remote access
`server farm is one of functional or valid. In another embodi-
`
`and better understood by referring to the following descrip-
`tion taken in conjunction with the accompanying drawings, in
`which:
`
`ment, the intermediary determines from the first response a
`presentation server of the remote access server farm is avail-
`able with the requested application.
`[0010]
`In another aspect, the present inventionis related to
`a method to monitora state of one or more components of a
`remote access server farm by an intermediary to distinguish
`between operating and functional components and improve
`farm availability for user application requests. The interme-
`diary may be deployed between a client and the remote access
`server farm and forwarding client requests to functional com-
`ponents of the remote access server farm. The method
`includes transmitting by one or more monitoring agentsofthe
`intermediary a predetermined default web interface page to
`each of a plurality of web interfaces providing a browser
`based depiction of the remote access server farm. A monitor-
`FIGS. 1E and 1F are block diagrams of embodi-
`[0019]
`ing agent ofthe one or more monitoring agentsreceivesa first
`ments of a computing device;
`response to the request from a first web interface. Thefirst
`[0020]
`FIG. 2A isa block diagram of an embodimentof an
`response includesa header identifying a setting of a cookie.
`appliance for processing communications between a client
`The intermediary identifies from the first response thefirst
`and a server;
`webinterface as operational and functional. The intermediary
`[0021]
`FIG. 2B is a block diagram of another embodiment
`via received a second responseto the request from a second
`of an appliance for optimizing, accelerating, load-balancing
`web interface. The second response does not include the
`and routing communications between a client and a server;
`headeridentifying the setting of the cookie. The intermediary
`[0022]
`FIG. 3 is a block diagram of an embodimentof a
`determines from the second response the second web inter-
`client for communicating with a server via the appliance;
`face is operational and not functional. The intermediary trans-
`[0023]
`FIG. 4A is a block diagram of an embodiment of
`mits a request from the clientto an operational and functional
`client nodes in communication with a group of server nodes
`webinterface ofthe plurality of web interfaces.
`via a network;
`[0011]
`In some embodiments, the intermediary does not
`[0024]
`FIG.4Bis a block diagram illustrating an embodi-
`receive the second response from the second webservice, and
`ment of a process by which one of the server nodes may
`determining the second webserviceis not operational. In one
`initiate execution of an application program for determining
`embodiment, the intermediary excludes operational but not
`the program neighborhoodofa client node;
`functional web interfaces in a load balancingrotation of web
`[0025]
`FIG. 4C is a block diagram illustrating an embodi-
`interface services. In another embodiment, the intermediary
`mentof a process by which a client node mayinitiate execu-
`includes operational and functional web interfaces in a load
`tion of an application program for determining the program
`balancing rotation.
`neighborhoodofthat client node;
`[0012]
`In other embodiments, the intermediary receives a
`[0026]
`FIG. 4D is a block diagram illustrating an embodi-
`third response from the second web interface. The third
`ment of a process by which a client node uses a web browser
`response includes the header identifying the setting of the
`application to determineits program neighborhood;
`cookie. The intermediary determines from the third response
`[0027]
`FIGS. 4E, 4F and 4G are block diagramsillustrating
`the second web interface is operational and functional. In
`an embodiment of a process by which a client node may
`various embodiments, the first web interface or the second
`launch an application program from a Program Neighbor-
`webinterface transmits a requestto an interfaceservice for an
`hood window displayedat that client node;
`enumeratedlist of published applications available from the
`[0028]
`FIG. 4H is a block diagram illustrating an embodi-
`remote access server farm. In one embodiment, a second
`ment of a process by which a client node may launch an
`intermediary receives the request for the interface service,
`application program from a Program Neighborhood web
`and distributes the request to one ofa plurality of interface
`page displayedat that client node;
`services identified by the second intermediary as functional
`[0029]
`FIG. 4J is a block diagram ofa client-based com-
`and operational. The intermediary via one or more monitor-
`puting embodimentin which a client node havinganinstalled
`ing agents may monitor responses to the request from the
`program neighborhoodapplication is in communication with
`plurality of web services to determine the responses com-
`one of the server nodes;
`prises a predetermined response codeindicating the web ser-
`vice is functional. In some embodiments, the intermediary
`[0030]
`FIG. 5A is a block diagram ofa server-based com-
`determines the responses include a predetermined response
`puting embodimentin whichaclient node is in communica-
`string indicating the web service is functional.
`tion with a server node having an installed program neigh-
`[0013] The details ofvarious embodimentsof the invention
`borhoodapplication program;
`are set forth in the accompanying drawings and the descrip-
`[0031]
`FIG. 5B is a screen shot of an embodimentof a
`tion below.
`display on the screen of a client node after the program
`neighborhood application program is executed;
`[0032]
`FIG. 6 is a flow chart depicting an embodimentof
`steps ofa process by which a client nodeis informedas to the
`availability for use ofapplication programson the application
`servers;
`
`FIG. 1A is a block diagram of an embodimentof a
`[0015]
`network environment for a client to access a server via an
`
`appliance;
`[0016]
`FIG. 1B isa block diagram of an embodimentof an
`environmentfor delivering a computing environmentfrom a
`server to a client via an appliance;
`[0017]
`FIG. 1C isa block diagram of an embodimentof an
`environmentfor delivering a computing environmentfrom a
`server to a client via a plurality of appliances;
`[0018]
`FIG. 1D isa block diagram of an embodimentof an
`environment for delivering a computing environment froma
`server to a client and having a performance monitoring ser-
`vice;
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`[0014] The foregoing and other objects, aspects, features,
`and advantages of the invention will become more apparent
`
`

`

`US 2009/0187654 Al
`
`Jul. 23, 2009
`
`FIG. 7A is a diagram depicting an embodiment of a
`[0033]
`data flow traversing an appliance and components ofa remote
`access server farm;
`[0034]
`FIG. 7Bisadiagram depicting another embodiment
`of a data flow traversing one or more appliance sand compo-
`nents of a remote access server farm;
`[0035]
`FIG. 7C is a block diagram depicting an embodi-
`ment of appliances load balancing components providing
`access to a remote access server farm;
`[0036]
`FIG. 8A is a block diagram depicting an embodi-
`ment of an appliance monitoring functional and operational
`state of one or more components of a remote access server
`farm;
`FIG. 8B isa flow diagram depicting an embodiment
`[0037]
`of steps of a method for determining the functional state of
`interface service components of a remote access server farm;
`and
`
`via one or more networks 104, 104' (generally referred to as
`network 104). In some embodiments, a client 102 communi-
`cates with a server 106 via an appliance 200.
`[0048] Although FIG. 1A shows a network 104 anda net-
`work 104' between the clients 102 and the servers 106, the
`clients 102 and the servers 106 may be on the same network
`104. The networks 104 and 104' can be the sametype of
`network or different types of networks. The network 104
`and/or the network 104' can be a local-area network (LAN),
`such as a company Intranet, a metropolitan area network
`(MAN), or a wide area network (WAN), such as the Internet
`or the World Wide Web. In one embodiment, network 104'
`may bea private network and network 104 may be a public
`network. In some embodiments, network 104 may bea pri-
`vate network and network 104' a public network. In another
`embodiment, networks 104 and 104' may both beprivate
`networks. In some embodiments, clients 102 may be located
`at a branchoffice ofa corporate enterprise communicating via
`a WANconnection over the network 104 to the servers 106
`
`FIG. 8Cis a flow diagram depicting an embodiment
`[0038]
`of steps of a method for determining the functional state of
`webinterface components of a remote access server farm.
`located at a corporate data center.
`[0039] The features and advantagesofthe present invention
`[0049] The network 104 and/or 104' be any type and/or
`will become more apparent from the detailed description set
`form ofnetwork and mayincludeanyofthe following: a point
`forth below whentaken in conjunction with the drawings, in
`to point network, a broadcast network, a wide area network, a
`which like reference characters identify corresponding ele-
`local area network, a telecommunications network, a data
`ments throughout. In the drawings, like reference numbers
`communication network, a computer network, an ATM
`generally indicate identical,
`functionally similar, and/or
`(Asynchronous Transfer Mode) network, a SONET (Syn-
`structurally similar elements.
`chronous Optical Network) network, a SDH (Synchronous
`Digital Hierarchy) network, a wireless network andawireline
`DETAILED DESCRIPTION OF THE INVENTION
`network. In some embodiments, the network 104 may com-
`prise a wireless link, such as an infrared channelorsatellite
`band. The topology of the network 104 and/or 104' may be a
`bus, star, or ring network topology. The network 104 and/or
`104' and network topology may be of any such network or
`network topology as knownto those ordinarily skilled in the
`art capable of supporting the operations described herein.
`[0050] As shown in FIG. 1A,the appliance 200, which also
`maybereferred to as an interface unit 200 or gateway 200, is
`shown between the networks 104 and 104". In some embodi-
`
`For purposes of reading the description ofthe vari-
`[0040]
`ous embodimentsof the present invention below,the follow-
`ing descriptions of the sections of the specification and their
`respective contents may be helpful:
`[0041]
`Section A describes a network environment and
`computing environment useful
`for practicing an
`embodimentof the present invention;
`[0042]
`Section B describes embodiments ofa system and
`appliance architecture for acceleraling delivery of a
`computing environmentto a remote user;
`[0043]
`Section C describes embodiments of a client
`agent for accelerating communications between a client
`anda server;
`[0044]
`Section D describes embodiments of systems and
`methods for providing a Program Neighborhood and
`Access to Remote Access Server Farm;
`[0045]
`Section E describes embodiments of systems and
`methods for load balancing components of a remote
`Access Server farm; and
`[0046]
`Section F describes embodiments of systems and
`methods for monitoring operational and functionalstate
`of components of the remote access server farm.
`
`A. Network and Computing Environment
`
`Prior to discussing the specifics of embodiments of
`[0047]
`the systems and methodsof an appliance and/orclient, it may
`be helpful to discuss the network and computing environ-
`ments in which such embodiments may be deployed. Refer-
`ring now to FIG. 1A, an embodimentof a network environ-
`mentis depicted. In brief overview, the network environment
`comprises one or more clients 102a-102n (also generally
`referred to as local machine(s) 102, or client(s) 102) in com-
`munication with one or more servers 106a-1067 (also gener-
`ally referred to as server(s) 106, or remote machine(s) 106)
`
`ments, the appliance 200 maybe located on network 104. For
`example, a branchoffice of a corporate enterprise may deploy
`an appliance 200 at the branch office. In other embodiments,
`the appliance 200 may be located on network 104’. For
`example, an appliance 200 may be located at a corporate data
`center. In yet another embodiment, a plurality of appliances
`200 may be deployed on network 104. In some embodiments,
`a plurality of appliances 200 may be deployed on network
`104’. In one embodiment,a first appliance 200 communicates
`with a second appliance 200'. In other embodiments, the
`appliance 200 could be a part of any client 102 or server 106
`on the sameordifferent network 104, 104' as the client 102.
`One or more appliances 200 maybe located at any point in the
`network or network communications path between a client
`102 and a server 106.
`
`Insome embodiments, the appliance 200 comprises
`[0051]
`any of the network devices manufactured by Citrix Systems,
`Inc. of Ft. Lauderdale Fla., referred to as Citrix NetScaler
`devices. In other embodiments, the appliance 200 includes
`any of the product embodimentsreferred to as WebAccelera-
`tor and BigIP manufactured by F5 Networks, Inc. of Seattle,
`Wash. In another embodiment, the appliance 205 includes
`any of the DX acceleration device platforms and/or the SSL
`VPNseries of devices, such as SA 700, SA 2000, SA 4000,
`and SA 6000 devices manufactured by Juniper Networks, Inc.
`of Sunnyvale, Calif. In yet another embodiment, the appli-
`
`

`

`US 2009/0187654 Al
`
`Jul. 23, 20

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