Third Party Gateway
-
Upload
sage-gibbs -
Category
Documents
-
view
31 -
download
0
description
Transcript of Third Party Gateway
EUC 2005 Chandrashekhar MullaparthiT-Mobile (UK)
Third Party Gateway
EUC 2005 Chandrashekhar MullaparthiT-Mobile (UK)
TPG - What is it
• Bulk MT-SMS
• Premium MT-SMS
• Receive MO-SMS
• Location Based Services
TPG is a third party gateway.
EUC 2005 Chandrashekhar MullaparthiT-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 MullaparthiT-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 MullaparthiT-Mobile (UK)
Architecture
Nortel iSD-SSL
Transaction node
Reply nodeReal time
cust db
Prepay Db
SMSCThird Parties
HTTPS
HTTP
HTTPS
MT-SMS
MO-SMS
Logs db(1 TB)
Public node(yaws)
Public node(yaws)
Public node(yaws)
HTTP
EUC 2005 Chandrashekhar MullaparthiT-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 MullaparthiT-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
EUC 2005 Chandrashekhar MullaparthiT-Mobile (UK)
Performance
RTT: 120ms
Availability
Traffic Level
EUC 2005 Chandrashekhar MullaparthiT-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 MullaparthiT-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 MullaparthiT-Mobile (UK)