基于CORBA/WEB的家庭网关的设计

发布时间:2010-11-29 阅读量:2279 来源: 发布人:

【中心议题】

  • 提出了一种基于CORBA/WEB的家庭网关的设计结构
  • 以信息家电冰箱为例给出了具体的实现过程

【解决方案】

  • 对象接口是按OMG接口定义语言IDL来定义的
  • 采用POST方法将客户设置利用CGI程序提交给服务器

1引言

在智能家居中,计算机、音频、视频设备以及其他各种家用电器和自动子系统连接在一起,实现家居资源的共享与管理,通过Internet随时随地轻松的管理与控制家居电器。家庭网关是整个家居网络的核心所在,用以连接信息家电网络和Internet外部网络,完成内外网络间不同通信协议的转换以及家庭内各信息家电间的智能协作,实现对家电设备的智能管理和远程控制。

CORBA规范充分利用了现今软件技术发展的最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现可重用、可移植和互操作。CORBA最突出的特点是中间件的引入,CORBA系统中称为对象请求代理和采用面向对象的开发模式。本文提出了一种基于CORBA结合WEB来实现家庭网关的解决方案。

2家庭网关的功能

家庭网关是基于智能家居系统的核心,它应具有:

1)转接功能,作为所有外部接入网连接到家庭内部,同时将家庭内部网络连接到外部的一种物理接口;

2)路由功能,家庭网络的复杂性使得内部可能存在各种不同通信协议,家庭网关必须具有路由的功能,将来自Internet的宽带信息发送给相应的设备,同时也可以实现设备间的通信及分工合作;

3)管理功能,用户可以获得各种家庭服务(包括现有的服务和未来可能出现的服务)的平台,将使用不同通信协议的家用电器都接入到家庭网络中,并统一管理起来。

 

3家庭网关结构

由于CORBA所具有的跨平台和跨语言的特性,所以在异构环境下易于集成和开发分布式WEB应用。CORBA实现了服务对象的位置透明性、实现透明性、执行状态透明性和通信机制透明性,只要按照IDL接口描述语言对服务对象所提供的服务进行描述,客户应用和服务对象之间就可以透明的进行交互。我们可将WEBCORBA结合起来,建立如图1所示的家庭网关的结构。

以信息家电空调为例。假设要对空调设置温度,首先,在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 sequencearg_list;

interface ORB;

ORB ORB_init(inout arg_list argv,in ORBid orb_identifier);

//...

};

服务器端程序的实现需要执行的基本步骤如下:初始化Visibroker ORB→创建和设置POA→激活POA管理器→激活对象→等待客户请求。最后启动服务器端及客户端程序。

6结束语

家庭网关是家庭信息网络的核心部分,也是智能家居的心脏,用来连接整个家庭信息内外网络。CORBA提供了不依赖于平台的编程接口和模型,其特点完全适合于应用在信息家庭网络之上,以便通过Internet实现对信息家电设备的智能管理和远程控制。

相关资讯
无惧发动机启动电压骤降:特瑞仕XD9704/XD9705系列赋能车载高可靠电源系统

特瑞仕半导体株式会社(日本东京都中央区 董事总经理:木村 岳史,以下简称“特瑞仕”) 开发了开发了符合车载AEC-Q100 Grade 1标准的降压型DC/DC转换器新产品——XD9704/XD9705系列。

抢占下一代能源路由高地,英飞凌详解固态变压器(SST)技术路线图

2026年8月6日,英飞凌(Infineon)联合合作伙伴举办“Infineon SST技术与应用解析”线上研讨会,围绕固态变压器(SST)的设计与应用,重点解读其功率器件如何提升系统效率、简化级联设计,推动SST在数据中心、储能及电动汽车充电等场景中的落地。

IICIE 2026定档9月深圳:超5000家企业共筑特色“芯”生态

随着AI算力需求的爆发式增长与先进制程的持续演进,半导体产业正从单点技术突破迈向全链条协同发展的新阶段。2026年9月9日至11日,IICIE国际集成电路创新博览会(IC创新博览会)将在深圳国际会展中心盛大启幕。本届展会以“跨界融合、全链协同,共筑特色芯生态”为主题,深度联动CIOE中国光博会与elexcon深圳国际电子展,打造总规模达32万平方米、汇聚超5000家参展企业与24万名专业观众的国际化高端平台。通过“一证通览三展”的创新模式,IICIE将全面贯通半导体、光电与电子嵌入式三大关键领域,为产业上下游提供高效、精准的资源对接通道。

AI大模型迈入“全栈竞赛”:Anthropic官宣自研芯片,算力供应链迎重构

随着生成式AI商业化进程的加速,算力需求呈指数级增长,头部大模型厂商的竞争正从算法层全面延伸至底层硬件基础设施。今日,知名人工智能企业Anthropic首次公开确认,已正式组建内部半导体团队,为其核心产品Claude大模型开发定制化AI芯片。这一举措标志着该公司正从“纯模型研发”向“模型+芯片一体化”方向转型,旨在通过软硬件协同设计突破通用算力瓶颈,在日益激烈的AI“造芯”竞赛中掌握算力成本的主动权。

2026物理智能元年:解析人形机器人“集中决策、分布执行”的三层架构

随着人形机器人加速迈向人机共融的开放场景,如何平衡设备的稳定性、安全性与响应能力,已成为决定其能否真正落地的关键。人形机器人面临着一项极具挑战的全身控制难题:全身数十个关节、传感器与执行器必须实现毫秒级的精准协同,才能维持机体动态平衡并完成定向动作。一旦协同机制失效或控制回路出现时延,机器人便会面临失足摔倒甚至引发安全事故的风险。 针对这一行业痛点,ADI指出,2026年正成为物理智能从概念迈向现实的关键之年。当智能脱离抽象的数据领域,真正进入运动、受力与交互并存的物理场景后,其底层架构必须发生根本性变革。 本文将深度解析机器人智能的实际承载位置,梳理中央计算单元、边缘系统与本地控制模块的职能划分,并阐明此类分布式架构设计对于实现确定性物理智能的核心意义。