发布时间:2010-11-29 阅读量:2264 来源: 发布人:
【中心议题】
【解决方案】
1引言
在智能家居中,计算机、音频、视频设备以及其他各种家用电器和自动子系统连接在一起,实现家居资源的共享与管理,通过Internet随时随地轻松的管理与控制家居电器。家庭网关是整个家居网络的核心所在,用以连接信息家电网络和Internet外部网络,完成内外网络间不同通信协议的转换以及家庭内各信息家电间的智能协作,实现对家电设备的智能管理和远程控制。
CORBA规范充分利用了现今软件技术发展的最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现可重用、可移植和互操作。CORBA最突出的特点是中间件的引入,在CORBA系统中称为对象请求代理和采用面向对象的开发模式。本文提出了一种基于CORBA结合WEB来实现家庭网关的解决方案。
2家庭网关的功能
家庭网关是基于智能家居系统的核心,它应具有:
1)转接功能,作为所有外部接入网连接到家庭内部,同时将家庭内部网络连接到外部的一种物理接口;
2)路由功能,家庭网络的复杂性使得内部可能存在各种不同通信协议,家庭网关必须具有路由的功能,将来自Internet的宽带信息发送给相应的设备,同时也可以实现设备间的通信及分工合作;
3)管理功能,用户可以获得各种家庭服务(包括现有的服务和未来可能出现的服务)的平台,将使用不同通信协议的家用电器都接入到家庭网络中,并统一管理起来。
3家庭网关结构
由于CORBA所具有的跨平台和跨语言的特性,所以在异构环境下易于集成和开发分布式WEB应用。CORBA实现了服务对象的位置透明性、实现透明性、执行状态透明性和通信机制透明性,只要按照IDL接口描述语言对服务对象所提供的服务进行描述,客户应用和服务对象之间就可以透明的进行交互。我们可将WEB和CORBA结合起来,建立如图1所示的家庭网关的结构。
.png)
以信息家电空调为例。假设要对空调设置温度,首先,在HTML页面上建立一个要执行的服务器端CGI脚本的映射。这个CGI脚本同时也是一个CORBA客户端。在此脚本中嵌入温度设置按钮。通过CGI接口确认将被调用的CORBA客户端后,CORBA客户端通过访问CORBA Server来处理请求。客户机ORB核心通过网络传送给与服务器应用程序相链接的服务器ORB核心,服务器ORB核心将这些请求分配给对象适配器(POA),由它产生目标对象。对象适配器进一步将请求分配给空调的伺服程序,由伺服程序执行温度设置的请求后,返回结果。CORBA客户端在HTTP服务器端汇总处理结果。CGI脚本负责动态产生一个HTML页面作为发送到HTTP服务器的输出结果,告诉客户是否操作成功。
4具体实现
4.1信息家电设备的IDL接口定义
在CORBA中,对象接口是按OMG接口定义语言IDL来定义的。与C++或JAVA不同,IDL不是编程语言,所以对象和应用程序不能用IDL来实现。IDL唯一的目的是允许对象接口以与任何具体的编程语言无关的形式来定义这些接口。这种考虑允许应用程序以不同的编程语言来实现以便于互操作。IDL与编程语言无关,这一点是CORBA支持异构系统和独立开发的应用程序集成的关键,也是进行CORBA程序开发的首要工作。
以下是作者以信息家电空调为例给出的IDL定义:
module InformationAppliance{
...
interface Airconditioner{
struct AirconStatus{
readonly attribute string factory;
readonly attribute long power;
short temperature;
enum mode{auto,cool,heat,dry};
enum fanweep{Vsweep,Hsweep};
enum windspeed{low,normal,high};
……}
any getinformation(in string factory,in long power);
void SetTemp(in AirconStatus temperature)
raises(Badtemp);
void SetWindspeed(in AirconStatus
windspeed);
void SetFanweep(in AirconStatus fanweep);
void SetMode(in AirconStatus mode);
……
void openAircon();
void closeAircon();
……}
IDL将被映射为某种程序设计语言如C++或Java,并且分成两分,在客户方叫IDL Stub,在服务器方叫IDL Skeleton。两者可以采用不同的语言。服务器方在Skeleton的基础上编写对象实现(Object Implementation),而客户方要访问服务器对象上的方法,则要通过客户桩。而双方又要通过而ORB总线通信。
4.2 CGI程序实现
本文采用POST方法将客户设置的温度利用CGI程序提交给服务器:
......
温度设置
提交"/>
......
OnAction事件代码:
AnsiStringT=requet->ContentFields->values[AnsiString("temperature")];
Response->content=s;
Response->SendResponse;
……
另一方面CORBA客户端还要对ORB初始化,绑定到CORBA服务器对象。然后等待对对象引用方法的调用。将获取的从网页传来的数据,作为参数传递给CORBA对象的方法。
module CORBA{//PIDL
typedef string ORBid;
tpedef sequence
interface ORB;
ORB ORB_init(inout arg_list argv,in ORBid orb_identifier);
//...
};
服务器端程序的实现需要执行的基本步骤如下:初始化Visibroker ORB→创建和设置POA→激活POA管理器→激活对象→等待客户请求。最后启动服务器端及客户端程序。
6结束语
家庭网关是家庭信息网络的核心部分,也是智能家居的心脏,用来连接整个家庭信息内外网络。CORBA提供了不依赖于平台的编程接口和模型,其特点完全适合于应用在信息家庭网络之上,以便通过Internet实现对信息家电设备的智能管理和远程控制。
在英伟达GPU与CUDA生态长期主导AI训练与科学仿真的背景下,国产LineShine(灵晟)纯CPU超算以2.198 EFlops持续双精度性能登顶TOP500,印证了“矩阵增强型CPU”正在重构HPC底层硬件标准。 近日,Jack Dongarra、Satoshi Matsuoka、Torsten Hoefler三位HPC权威联合发表《Do We Still Need GPUs? Rethinking AI and Scientific Computing on Matrix-Enhanced CPUs》,系统拆解了无GPU同构超算的四层技术体系:处理器指令集硬件加速、统一HBM高带宽内存架构、全精度混合运算单元、原生高速互联网络。
回顾AI今年的发展轨迹,我们能察觉到一种质的变化:AI不再只是被展示、被调用的“展品”,而是拥有了更明确的“行动感”。从代码编写到机器人奔跑,从算力基建到未来接口,行业正集体从“回答问题”走向“完成任务”。 我们试图透过五个数字,捕捉这一轮产业变革中的关键切片。
展会大数据公布!2027.7.7-9,上海见。
全球知名半导体制造商ROHM近日宣布,面向车载安全功能和保护电路开发出100V耐压MOSFET新品“RS4P063BPHZG”
2026 WAIC落下帷幕,国内AI算力产业的共识正发生清晰转向:单点参数竞赛逐渐退潮,超节点集群、全产业链自主可控与底层架构原始创新成为核心主线。在此背景下,首次参展的东方算芯凭借“高能效软件定义近存计算芯片DF1000”斩获大会最高荣誉SAIL奖。这座奖杯背后,指向了一条不依赖先进制程与既有生态的突围之路。