MeeGo 中间件(middleware) 通信服务 之(一) 连接管理

            MeeGo 中间件(middleware) 通信服务 之(一)连接管理

 


        MeeGo 中间件(middleware)  通信服务 之(一) 连接管理

 

MeeGo通信服务子系统主要向平台提供声音和数据通信,提供了用于管理无线服务、网络语音服务、数据通信的API,面向的技术包括3G、wifi、WiMax以及蓝牙。

 

连接管理(Connman)

ConnMan给运行linux操作系统的设备提供一个守护进程,该进程用于管理网络连接。ConnMan使系统模块化,使得系统网络模块易于扩展,3G,wifi,WiMax以及蓝牙连接等很容易被添加到系统中去。网络可以通过DHCP进行配置,同时,应用程序也支持域名解析功能,而且还提供了航班模式。

ConnMan比较小巧,占用资源少,可以很方便的被集成。对于一个模块化系统来说,有线和无线服务可以以插件的形式添加到系统。

 

MeeGo 中间件(middleware)  通信服务 之(一) 连接管理

 

上图中,main Loop相当于一个消息循环,相关用法请参考glib的main loop资料.

 

下面贴出来的是connman的部分源代码

__connman_dbus_init(conn); __connman_storage_init(); __connman_element_init(option_device, option_nodevice); __connman_agent_init(); __connman_tethering_init(); __connman_counter_init(); __connman_ondemand_init(); __connman_manager_init(option_compat); __connman_profile_init(); __connman_config_init(); __connman_resolver_init(); __connman_ipconfig_init(); __connman_rtnl_init(); __connman_udev_init(); __connman_task_init(); __connman_session_init(); __connman_timeserver_init(); __connman_plugin_init(option_plugin, option_noplugin); __connman_element_start(); g_free(option_device); g_free(option_plugin); g_free(option_nodevice); g_free(option_noplugin); memset(&sa, 0, sizeof(sa)); sa.sa_handler = sig_term; sigaction(SIGINT, &sa, NULL); sigaction(SIGTERM, &sa, NULL); g_main_loop_run(main_loop);

 

 

ConnMan是基于DBus和Glib库来实现的.

这些__connman_xxx_init函数是ConnMan的核心,它们创建了一系列的哈希表和链表,例如服务server_list, driver_list.

这也就是为什么ConnMan可以使MeeGo系统模块化的原因.通过plugin的形式,将模块加入到系统中,就是通过这些链表和哈希表对设备包括设备信息设备驱动进行管理,这也是ConnMan连接管理的作用.

 

 


版权申明:
转载文章请注明原文出处http://blog.csdn.net/feiyinzilgd/archive/2010/09/06/5866436.aspx

并请联系谭海燕本人或者前往谭海燕个人主页留言

上一篇:飞天加速计划


下一篇:上海市企业信息化促进中心常务副主任罗钢:大数据分析的风险与安全