Network Status Support in KDE and How to Use It

Network Status Support in KDE and How to Use It

Sebastian Kügler <[email protected]>, FrOSCon 2006 Network Status Support Network Status Support in KDE and How To Use It ~ Will Stephenson ~ Akademy 2006, Trinity College Dublin Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 Overview • Motivation • KDE 3 architecture • KDE 4 architecture Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 Overview • KDE devices live in dynamic networks • We should give users and applications a smooth ride in these conditions • We have architecture to do this • Listen to find out more Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 Use cases • Network Control and Management • dialup connections • setup WiFi connections • Virtual Private Networks/RAS • Network information to the user • feedback on current conditions • Network information for applications • smoothly adapt to network topology Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • Network Control & Management, User Information • Lots of applications with their own interfaces to the hardware • using iwlib or command line tools, (iwconfig, iwlist & co), vendor specific backends • KWifiManager, KNemo, Kinternet+smpppd, KPPP, KNetworkManager Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • No consistency for KDE • High maintenance cost in a difficult area Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • Network information for applications • kded_networkstatus daemon module • 2 DCOP interfaces • Networking Service interface • Client interface Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • KDE 3 architecture diagram client applications client DCOP interface kded_networkstatus service DCOP interface backends (eg smpppd) Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • Typical usage • Application checks networkstatus • Warn user if in offline mode • Request online mode (asynchronously) • (Daemon requests connection) • Queue action • On receiving statusChanged signal, proceed Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • kio_http • kopete • kmail • GroupWise kdepim KResource • knetworkmanager Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • kded_networkstatus Service Interface • registerNetwork( networkName ) • setNetworkStatus( networkName, status ) • unregisterNetwork( networkName ) • requestShutdown( networkName ) Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • kded_networkstatus Client Interface • networks() - all the registered backends • request( hostname ) a network connection • relinquish() a network connection • statusChange() signal • shutdownRequested() signal Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 3 Architecture • Problems • Mixed connection modes, eg to localhost • Initiating connections for specific routes (VPN) • No scope for different connection types (WiFi vs GSM modem, call by call) • Application uptake could be broader • Implementation problems (DCOP per http get) Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 4 Architecture • Changes • Use Solid as common layer for talking to network layers, well structured framework • High level backends (NetworkManager) were developed in KDE 3 lifecycle, use them where available • platform specific backends (Win/Mac/*nix) • More extensible, by using plugins instead of hacking kded_networkstatus Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 4 Architecture client applications DBUS kded_networkstatus Solid frontend classes Solid backend classes DBUS Backend (eg NetworkManager) Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 4 Architecture • Solid Frontend API • class NetworkDevice •networks() •wireless network appeared signals • class Network •IP details •setActivated( bool ) •class WirelessNetwork • WiFi specifics • authentication Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 KDE 4 Architecture • Solid Frontend API • class Authentication •data for authentication/crypto schemes • class NetworkManager •main control object •access NetworkDevices •flight mode •disable networking • VPN, Dialup (in preparation) Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 Next Directions • NetworkManager+dbus backend • Outreach for other platforms • Application support library for kded_networkstatus • Add to KIO::Job? Will Stephenson <[email protected]>, aKademy 2006 Sebastian Kügler <[email protected]>, FrOSCon 2006 Conclusion Thank you! Questions? [email protected] [email protected] (NM, KDE3 specific) Will Stephenson <[email protected]>, aKademy 2006.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    19 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us