Funcionando comocomponenteCachingProxydoApplicationServer,o
componenteLoadBalancerdoApplicationServer permitedistribuirpedidospara váriosservidoresdebackendquehospedam conteúdodiferente.(Consulteo Capítulo1,“IntroduzindoComponentesdo WebSphereApplicationServer Edge”, na página3paraobter umaintrodução aestesEdgeComponents).
Seo componenteCBR(ContentBased Routing)doLoadBalancerforinstalado junto comoCachingProxy,ospedidosHTTPpodemserdistribuídoscombase na URLououtrascaracterísticasdeterminadaspeloadministrador,eliminandoa necessidadedearmazenarconteúdoidêntico emtodososservidoresbackend.
Nota: OcomponenteDispatcher doLoadBalancerpodeser configuradopara utilizarométododeroteamentobaseadoem conteúdoparaoferecero roteamentobaseadoem conteúdodepedidosHTTPeHTTPSsemutilizaro CachingProxy.Nestecaso,oroteamento baseadoemconteúdoéexecutado paraHTTPutilizandoa regrade tipo″content″e paraHTTPSutilizandoa autorizaçãodeIDdesessãoSSL.
OusodoCBRseráespecialmenteapropriado seosservidoresdaWebprecisarem executarváriasfunçõesdiferentesouoferecerváriostiposdeserviços.Por exemplo,ositedeumvarejista on-linenaWebdeveexibirseucatálogo,emque umagrandeparteéestática eaceitarpedidos,oquesignificaexecutarum aplicativo interativo,talcomo umscriptCGI(CommomGatewayInterface)para aceitarnúmeros deitense informaçõesdocliente.Ésempremaiseficienteterdois conjuntos diferentesdemáquinasparaexecutarasfunçõesdistintaseutilizaro CBRpararotearosdiferentestiposdetráfegoparaasdiferentesmáquinas.Da mesma forma,umaempresapode utilizaro CBRparafornecerumserviçomelhor paraclientespagantesdo queparavisitantescasuaisdeseusitenaWeb,roteando ospedidospagos paraservidoresdaWebmaispotentes.
OCBRroteiapedidoscombaseem regrasquevocêescreve. Otipo maiscomum é a regradeconteúdo,quedirecionapedidoscombasenonomedo caminhonaURL.
Por exemplo,aABCCorporation podeescreverregrasquedirecionempedidosda URLhttp://www.abc.com/catalog_index.htmlparaumclusterde servidorese http://www.abc.com/orders.htmlparaoutrocluster.Hátambémregrasque roteiampedidos combasenoendereçoIPdo clientequeosenviououemoutras características. Parasabermais,consulteoscapítulosdoWebSphereApplication Server LoadBalancerAdministrationGuidesobreconfiguraçãodo CBResobre funçõesavançadas doLoadBalanceredoCBR. Paraobterasdefiniçõesdesintaxe dasregras,consulteoapêndicedoWebSphereApplicationServerLoad Balancer AdministrationGuidesobreostiposderegrasdoCBR.
AFigura7 napágina28descreveumaconfiguraçãosimplesna qualocomponente CBRdoLoadBalancereo CachingProxysãoinstalados juntosnamáquina marcada comonúmero4eroteiapedidosparatrêshosts deconteúdo(6,7 e8) quehospedamconteúdodiferente.Quandoum usuáriofinalquetrabalhaemuma dasmáquinasmarcadas comonúmero1solicitaoarquivoX,opedidopassapela Internet (2)eentra naredeinternadaempresaatravésde seugatewaydaInternet (3).OServidorProxyinterceptaopedidoetransmite-oaocomponenteCBRna mesma máquina,queanalisaaURLnopedidoedeterminaqualhostdeconteúdo 6 hospedaoarquivoX.OServidorProxygeraumnovopedidoparaoarquivoX,
©CopyrightIBMCorp. 2004 27
e seseurecursodearmazenamentoemcacheestiverativado,determinaseo arquivoéelegívelparaarmazenamentoem cachequandoohost6 oretorna.Seo arquivopuderser armazenadoemcache, oServidorProxyarmazenaráumacópia em seucache(5)antesdetransmiti-loparaousuáriofinal.Oroteamentopara outros arquivosfuncionadamesma forma:pedidosparaoarquivoYvãoparao host deconteúdo7,epedidosparaoarquivoZvãoparaohostdeconteúdo8.
AFigura8 napágina29representa umaconfiguraçãomais complexaquetema possibilidade deseadequara umvarejistaon-line. OcomponenteCBRdoLoad Balancere oServidorProxysãoinstalados juntosna máquinamarcadacomo número4 eroteiampedidosparaduasmáquinasdoLoadBalancer.Amáquinado LoadBalancermarcadacomo número6 equilibraa cargade umclusterdehosts de conteúdo(8)quehospedaoconteúdomaisestáticodocatálogodovarejista, enquantooLoadBalancermarcadocomonúmero7equilibra acargadeum cluster deservidoresWebquetratampedidos (9).
Quando umusuáriofinalquetrabalhaem umadasmáquinasmarcadas como número1 acessaa URLdocatálogodovarejista,opedidopassapelaInternet(2)e entra naredeinternadaempresaatravésde seugatewaydaInternet(3).O ServidorProxyinterceptaopedidoo transmite-oaocomponenteCBRnamesma máquina, queanalisa aURLedeterminaseamáquinadoLoadBalancermarcada como número6trataráessaURL.OServidorProxycria umnovopedidode acesso eenvia-oaoLoadBalancer,quedeterminaqualdoshostsdeconteúdo marcadocomonúmero8 tem,nomomento,melhorcapacidadedeatender o pedido(combase noscritériosdefinidos).Essehostdeconteúdotransmiteo conteúdodo catálogodiretamenteparaoServidorProxy,ignorandooLoad Balancer.Comonoexemploanterior,oServidorProxydeterminaseoconteúdo pode serarmazenado emcacheeoarmazenaemseucache(5),seapropriado.
Ousuário finalfazum pedidoacessandooURLdo varejistaparapedidos, presumivelmentepormeiode umhyperlinknocatálogo.Opedidofazo mesmo caminho queopedidode acessodocatálogo,excetoqueocomponenteCBRna máquina4 roteia-oparaa máquinado LoadBalancermarcadacomonúmero7.O LoadBalancerencaminha-oaomaisapropriadodosservidoresWebmarcadocom o número9,queresponde diretamenteaoServidorProxy.Comoasinformaçõesdo pedidosãogeralmente geradasdeformadinâmica,oServidorProxy
provavelmentenão asarmazenaem cache.
1
Figura7.RoteandoPedidosdeHTTPcomoCBR.Legenda:
1—Cliente 2—Internet 3—Roteador/Gateway 4—CachingProxyeComponente CBRdoLoadBalancer 5—Cache 6,7,8—HostdeConteúdo
Afunçãodo CBRdo LoadBalancersuportaautorizaçãode cookie.Issosignificaque a identidadedo servidorqueatendeuoprimeiropedidode umusuáriofinalfoi registradaem umpacotededados especial(umcookie)incluídonarespostado servidor. Quandoousuáriofinalacessa amesmaURLnovamentedentrode um períodoquevocêdefine, eopedidoincluiocookie,oCBRroteiaopedidoparao servidor originalemvezdereaplicarsuas regraspadrão.Geralmente,isso
melhorará otempode respostaseoservidor tiverarmazenadoinformaçõessobreo usuário finalquenão tenhaqueobternovamente(talcomoonúmerodo cartãode crédito).
5
4 8
8 8
1 1 1
2 3
6
7 9
9
9
Figura8.EquilíbriodeCargadePedidosdeHTTPRoteadoscomoCBR.Legenda:
1—Cliente 2—Internet 3—Roteador/Gateway 4—CachingProxyecomponenteCBR doLoadBalancer 5—Cache 6,7—LoadBalancer 8—Hostde
Conteúdo 9—ServidorWeb
Capítulo7.ContentBasedRouting 29