11/17/2005 1
when web services go bad
steve loughran hp laboratories
slo@hpl.hp.com
March 2002
when web services go bad steve loughran hp laboratories notes - - PDF document
11/17/2005 when web services go bad steve loughran hp laboratories notes from the field slo@hpl.hp.com March 2002 This is meant to conjure up the vision of some late night cable TV show we take you behind the scenes of colocation sites,
slo@hpl.hp.com
March 2002
xmlrpc Front End doPost(request:HttpRequest, response:HttpResponse) servlet doGet(request:HttpRequest, response:HttpResponse) renderer xmlrpcsaxhandler image() Message9() render() Message11() Message10() Message7() createReference(user:int) Message5() parse(xml:String) execute(xml:String) svgstore page() post() User Agent doGet(request:HttpRequest, response:HttpResponse) doGet(request:HttpRequest, response:HttpResponse)
!"#$%&'()#*+,"%-./01201#)3,4#'-/"*%56! &17 !"#$%&'()#*+,"%-./01201#)3,4#'-/"*%56! &17 !"#$%&'()#*+,"%-./01201#)3,4#'-/"*%56! &175,./(81& 5,./(81& 5,./(81& 5,./(81& 96 --:'!;++:585.9&<(+*=%+ 6+ -:&>-?-4@5%>ABB 96 --:'!;++:585.9&<(+*=%+ 6+ -:&>-?-4@5%>ABB 96 --:'!;++:585.9&<(+*=%+ 6+ -:&>-?-4@5%>ABB 96 --:'!;++:585.9&<(+*=%+ 6+ -:&>-?-4@5%>ABB:(/:!'2'!8 :(/:!'2'!8 :(/:!'2'!8 :(/:!'2'!8 8A'+ =%:,:&$5''+ =%+96%+!6&67(B2:9-%+ =+9=':52-C 7A 8A'+ =%:,:&$5''+ =%+96%+!6&67(B2:9-%+ =+9=':52-C 7A 8A'+ =%:,:&$5''+ =%+96%+!6&67(B2:9-%+ =+9=':52-C 7A 8A'+ =%:,:&$5''+ =%+96%+!6&67(B2:9-%+ =+9=':52-C 7A(B2-@2@5 (B2-@2@5 (B2-@2@5 (B2-@2@5 ,-+ -(@7-0$ +9='@.-*"=A2'.2 (0*@&'2,-* ,-+ -(@7-0$ +9='@.-*"=A2'.2 (0*@&'2,-* ,-+ -(@7-0$ +9='@.-*"=A2'.2 (0*@&'2,-* ,-+ -(@7-0$ +9='@.-*"=A2'.2 (0*@&'2,-*#$12,.B$5 #$12,.B$5 #$12,.B$5 #$12,.B$5 +9='@.-.2$@7!-*()>@.-?-=0#D@42*@5( +9='@.-.2$@7!-*()>@.-?-=0#D@42*@5( +9='@.-.2$@7!-*()>@.-?-=0#D@42*@5( +9='@.-.2$@7!-*()>@.-?-=0#D@42*@5( :B2$)$AD :B2$)$AD :B2$)$AD :B2$)$AD > ="+!/$3/2;7.-AC!?@5@7 +*%-9> &%- > ="+!/$3/2;7.-AC!?@5@7 +*%-9> &%- > ="+!/$3/2;7.-AC!?@5@7 +*%-9> &%- > ="+!/$3/2;7.-AC!?@5@7 +*%-9> &%-./@29 ./@29 ./@29 ./@29 2!E$#@<D,0&&$>)2#7()D29/.>)2#0%D-)7%2 .< 2!E$#@<D,0&&$>)2#7()D29/.>)2#0%D-)7%2 .< 2!E$#@<D,0&&$>)2#7()D29/.>)2#0%D-)7%2 .< 2!E$#@<D,0&&$>)2#7()D29/.>)2#0%D-)7%2 .<+ 7C)& + 7C)& + 7C)& + 7C)& 0;+?0$4?,./2;3!2;?!/(C 7? 0;+?0$4?,./2;3!2;?!/(C 7? 0;+?0$4?,./2;3!2;?!/(C 7? 0;+?0$4?,./2;3!2;?!/(C 7?
F) F) F)
I%%%%B95)5H,&0H)) 9 H)) %)"FDA (%J)"JFDA <IK <IK <IK <IKIIAA* IIAA* IIAA* IIAA* )!'A3 'KHK'I@(LKH/IBDLKIMLJ ?N'#O' ?N'#O' ?N'#O' ?N'#O'
IIAAK(K)(3B)FD3#"33B* IIAAK(K)(3B)FD3#"33B* IIAAK(K)(3B)FD3#"33B*
H H H
ArrowPoint Apache Apache Bluestone x4 Bluestone x4 IIS/ASP IIS/ASP IIS/ASP PDC + DNS file store SQL server SQL server remote renderer store
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000 1 2 3 4 5 6 7 8 9 10
availability A(X)≝ P(X)is working 0≤ A(X)≤ 1 service S depends on services s1..n A(S)=A(node)*A(s1)*A(s2)…A(sn) redundancy: A(n1+n2)=A(n1)+A(n2)A(n1)A(n2) cost of redundancy depends on scalability of service: O(1), O(n), O(n2), O(2n) …
(,(+ (,(+ (,(+ ,(++. ,(++. ,(++. ,(++. P (,(%L ((9(L ((8L (#9 L #('(/#<,N(Q #<,N(Q #<,N(Q #<,N(Q #O #O #O #O P 9 CL (8C(L (9(CCL R #( # ,9 NO ,9 NO ,9 NO ,9 NO P % #N9 OL R
SmartFrog Node SmartFrog Components Description / Code Repositories RMI RMI Deploy Descriptions SmartFrog Daemon SmartFrog Node SmartFrog Components SmartFrog Daemon SmartFrog Node SmartFrog Components SmartFrog Daemon RMI / (SOAP)
apps