Proxy ProtocolsSOCKS 4, 4a, and 5Advanced Software Engineering (CSE870)Instructor: Dr. B. ChengContact info: chengb at cse dot msu dot eduKayra HopkinsLoretta MacklemOutline? Introduction? Frameworks? Demo? Extra Credit Implementation? DemoIntroduction? SOCKS - an Internet protocol that allows client-server applications to transparently use the services of a network.SOCKS Protocols? SOCKS 4– No authentication– Simple connect and bind connections supported? SOCKS 4a– Domain resolution? SOCKS 5– Authentication plus UDP connection supportedFrameworks? Framework - a reusable design for a software system expressed as– Set of abstract classes– The way their instances collaborate for a specific type of softwareUse of Frameworks for SOCKS? SOCKS versions have a large amount of common functionality? First step was to identify all major common functionality.Whitebox? Commonalities– Identify if client or server can access IP requested– Creating a connection to a server – Receiving messages– Forwarding messages – Sending reply messages– Authentication? Differences (points of extension)– Parsing the request message – Forming the reply message – Creating new types of authenticationWhitebox, cont.? Design Pattern– Iterator Pattern• Username/Password Login• Domain Resolution• AuthenticationWhitebox Class DiagramMagenta is Design Pattern, Green is where user implements functionality, Blue is abstract classGreybox? Changes– Authentication is now an interface– At the time only one protocol used authentication so we thought it would be the easiest to change for greyboxRed is interfaces, Magenta is Design Pattern, Green is where user implements functionality, Blue is abstract classBlackbox? All extension are done through interfacesRed is interfaces, Magenta is Design Pattern, Green is where user implements functionalityState DiagramConnected Connection DeniedDemoProblems We Encountered? Figuring out how to get the information from the request messages without having the control loop be changed much? Solution - have implementation of parsing the request message have a function which returns an array with all of the needed values to be passed to reply message implementationWhat We Learned? No comment on whether making a whitebox is easier than making a blackbox? Able to identify where we have used frameworks previously without knowing itApplying Our Framework to MISys? Decided to place all patient records on a separate server, apart from the application? MISys uses proxy to connect to other server and obtain patient informationClass Diagram MISysSOCKS FrameworkFramework accesses Patient or Appointment RecordsMakes call to obtain Patient or Appt RecordsConnects to Iterator ClassConnects to MISysMainUI classMISys
View Full Document