210 likes | 229 Views
WebPad Management Protocol. D87526013 林瑞文 B87506017 黃振修. Motivation. Homework :-P Management issues for mobile or wide-spread devices. Working Environment. Server side: Central controlling Server on Win32 Monitor all the client directly Client Side:
E N D
WebPad Management Protocol D87526013 林瑞文 B87506017 黃振修
Motivation • Homework :-P • Management issues for mobile or wide-spread devices
Working Environment • Server side: • Central controlling Server on Win32 • Monitor all the client directly • Client Side: • A client app running on mobile WebPad • Browser on WebPad must co-operate with the client app • Browser ask the client app for access/deny list
Design Criteria • Feasible for mobile/low-power devices • Not depending on other mechanisms • Really help for MIS team • Easy to implement & maintain • Combining existing/popular applications helping for management
Why Not SNMP? • Not really simple • ASN.1 • Database (MIB) required • Security issues
For MIS’ Point of View • Collecting information from thin-client machines • Maintaining consistency and availability among clients • Offering online/real-time communication with users
Demands • Status report • Shell commands • Access list for Web Browser • Message alert • Online update • ICA/VNC server • Reset • Security
Protocol Design • Manager v.s. Agent • TCP/UDP: port 6147 • Current implementation based on UDP. • Session continuation • Packet formats • Readable Text/ Easy debugging
Commands & Responses • Commands format • AGENT <agentid> [command] [paramater...] • MANAGER <managerid> [command] [paramater...] • keyword FOLLOWING indicates line continuation • Responses format • <reply code> [reply string] • reply code is a 3 digit number, while reply string contains information for advanced parsing
Negotiation • Registration • User login • Communication security • Server force client to UNREG or LOGOUT • Server migration due to failure • Directly give command to client by MIS for special case ... • Timeout policy • 3 rounds of push & 1 round of polling • re-register while command failed with return code 510 • Access list
Authentication • Scheme Negotiation • Currently defined scheme • Listed clients • Password • Public Key • SSLv3
Requests 1/2 • Manager Side • ManagerMigration • RefreshAccessList • StatusReportPolling • StatusReportPush • DisplayMessageAlert • AgentReset • HardwareReset
Requests (2/2) • Manager Side • UpdateFirmware • LaunchApplication • ForceLogout • Agent Side • GetAccessList • OnlineHelp
Status Report • MIME format • Polling or Push mode • Report Items • ActivePage • StorageUtil • MemoryUtil • NetworkUtil • TotalUtil • UserStatics
Sample Conversation • A: AGENT 0 REG pc1 ntucsie • M: 200 Accepted. ManagerId=C7200AE7 AgentId=S4432768 • M: MANAGER C7200AE7 AUTH SSLv3 • A: 500 not supported currently. • M: MANAGER C7200AE7 RQST StatusReportPush 300000 • A: 200 Sending status report every 5 minutes. • M: MANAGER C7200AE7 RQST RefreshAccessList FOLLOWING • deny all • . • A: 200 Access list accepted. • .... 17 minutes later • A: AGENT S4432768 LOGIN kevin • M: 200 User kevin added to online list.
Sample Conversation • M: MANAGER C7200AE7 RQST RefreshAccessList FOLLOWING • allow all • deny www.geocities.com • . • A: 200 Access list updated. • ..... five minutes later • A: AGENT S4432768 REPO FOLLOWING • ActivePage: http://www.hinet.net/index.html • MemoryUtil: 75 • UserOnline: kevin • . • M: 200 Report received. Good boy. :) • .... 3 hours later • A: UNREG C7200AE7 • M: 200 Agent pc1/ntucsie quit.
Implementation Issues for Agents • iCava Webpads • Linux kernel & proprietary window system • Full TCP/IP implementation • Complete SDK & Windows Emulator • Threads • 2 threads for listening & sending reports • commands & responses parsing
Implementation Issues for Agents • Access List • Client side receive the access list from server • Browser on WebPad deny or allow some pages viewed by user • SSLv3
Implementation Issues for Managers (1/2) • Manager is written by BCB. • Why Java ? • Java can run on everywhere. • Java’s java.net.* package is simple and ease to use. • BUT, I’m not familiar with Java AWT. So GUI design is difficult.
Implementation Issues for Managers (2/2) • Why BCB ? • BCB’s RAD environment is convenient • BCB’s VCL component is also easy to program. • Deed not to care about the thread detail (the event driven do this for you) • Possible improvement • Port the Manager to Java, so it can run on anywhere, even server side is also a mobile device or embedded system
Conclusion & Future Works • Meets our requirement • Incomplete Implementation • Authentication • Security issue • Load balancing • Grouping • Group management policy