`(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