Third Party Gateway (TPG)

Download Report

Transcript Third Party Gateway (TPG)

Third Party Gateway
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
TPG - What is it
TPG is a third party gateway.
•
•
•
•
Bulk MT-SMS
Premium MT-SMS
Receive MO-SMS
Location Based Services
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
Why did we do it?
• Replace a failing IT system
– Slow response times
– Lots of unwanted features
– Missing wanted features
– Unstable
– Expensive
– Built using Weblogic, Java, DB2
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
How did we do it?
• 1st version in 2002
– Written in 3 weeks ( warts and all )
• 2nd version in 2003
– Half hearted attempt to win the political battle
• 3rd version in 2004
– Political battle won!
– Got rid of most of the warts (except XML)
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
Architecture
Logs db
(1 TB)
Nortel
iSD-SSL
Public node
(yaws)
HTTP
Third Parties
HTTPS
HTTPS
Public node
(yaws)
MT-SMS
Transaction node
Public node
(yaws)
HTTP
MO-SMS
SMSC
Prepay Db
Reply node
Real time
cust db
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
Some Details
•
•
•
•
•
•
•
•
•
•
yaws as the front end webserver
XML parsing using eXpat (http://www.libexpat.org/)
ibrowse as the HTTP client
mnesia based message queues
Configurable throughput for each 3rd party
All events logged in an external 1TB Oracle DB
Public node uses Sun Fire V120
Trx node uses Sun Netra T4 (dual processor)
Business Logic: nearly 11000 lines of code
Libraries: nearly 19000 lines of code
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
ibrowse
http://jungerl.sourceforge.net
•
•
•
•
•
•
•
•
•
•
•
•
•
My first contribution to the erlang community!
RFC2616 compliant (AFAIK)
HTTP/0.9, HTTP/1.0, HTTP/1.1
Understands chunked encoding
Named pools of connections to each webserver
Pipelining support
Download to file
Asynchronous requests. Responses are streamed to a process
Basic authentication
Proxy authentication
Can talk to Secure webservers using SSL
ToDo - Use inets driver HTTP parsing
ToDo - Support the CONNECT method
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
Performance
Traffic Level
Availability
RTT: 120ms
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
Effort
• 1st version developed by me in 3 weeks
• I’ve forgotten what I did in the 2nd version
• 3rd version
–
–
–
–
–
–
–
–
–
Updated to meet all “known” requirements
Kept updating as new requirements were “discovered”
Performance tuned with Sean’s help
Peter Lund developed a load tool
Francesco Cesarini took over from me and did load testing, bug fixing and
training of support staff. Lots of everything!
Chris Newman helped with end to end testing and SSL troubleshooting
Peter Whitaker held endless meetings with support to get TPG accepted
Tammy Saunders helped setup a database for logs produced by TPG and
made a poster to inspire everyone!
Haider Mohammed was brave enough to take ownership of TPG!
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
Customer comments
• “You have gone from the worst performing network [out of
40 networks] to the best” - WIN (verbal quote)
• “We have achieved a 100% improvement in performance
and we have not runup as any connections as we had
before” - WIN CTO John Rands
• “Requests now take between 60 and 100ms. This compares
well against ATK (very rarely see a transaction < 500ms)
and is approaching Grouse (where most transactions tend
to take 20-50ms)” - MX CTO Chris Wilson
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)
EUC 2005
Chandrashekhar Mullaparthi
T-Mobile (UK)