110 likes | 282 Views
Third Party Gateway. TPG - What is it. TPG is a third party gateway. Bulk MT-SMS Premium MT-SMS Receive MO-SMS Location Based Services. Why did we do it?. Replace a failing IT system Slow response times Lots of unwanted features Missing wanted features Unstable Expensive
E N D
Third Party Gateway 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 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 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) Chandrashekhar Mullaparthi T-Mobile (UK)
Public node (yaws) Public node (yaws) Public node (yaws) Architecture Logs db (1 TB) Nortel iSD-SSL MO-SMS MT-SMS SMSC HTTP Transaction node Third Parties HTTPS Prepay Db HTTPS HTTP Reply node Real time cust db 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 Chandrashekhar Mullaparthi T-Mobile (UK)
ibrowsehttp://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 Chandrashekhar Mullaparthi T-Mobile (UK)
Performance Traffic Level Availability RTT: 120ms 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! 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 Chandrashekhar Mullaparthi T-Mobile (UK)
Chandrashekhar Mullaparthi T-Mobile (UK)