基于Web_CORBA信息家电家庭网关的设计与实现

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

【中心议题】

  • 提出了“Web_CORBA家庭网关”的设计构想
  • 以信息家电冰箱为例给出了具体的设计过程

【解决方案】

  • 对象接口按OMG接口定义语言IDL来定义
  • 采用C++语言编写CORBA客户端和服务器端程序

1引言

随着Internet的普及与网络技术的发展以及各种信息家电的出现,家居生活需要一个崭新的控制与管理平台。在此平台中,计算机、音频、视频设备以及其他各种家用电器和自动子系统连接在一起,实现家居资源的共享与管理。人们可以通过Internet随时随地轻松的管理与控制家居电器(预设或完成各种操作,配置参数等)。嵌入式家庭网关是整个家居网络的核心所在,用以连接信息家电网络和Internet外部网络,完成内外网络间不同通信协议的转换以及家庭内各信息家电间的智能协作,实现对家电设备的智能管理和远程控制。CORBA是由700多家公司共同制定的分布式计算技术,具有很好的开放性和连续性,不受特定的平台和特定语言的限制,正是由于CORBA的这些特点,我们可以用其来实现不同家庭网络技术的无缝连接,实现家庭网络与外部网络的连接。本文提出了一种基于WEB-CORBA的新型信息家电家庭网关的设计方案。

2 CORBA简介

公共对象请求代理架构(common object request broker architecture,CORBA)是对象管理组织(OMG)以对象请求代理(object request broker,ORB)为核心制定的分布式计算标准。ORB负责找到可以实现请求的对象,设置参数,引用方法,并从客户端返回结果。CORBA使用接口定义语言IDL指定接口实现分布式对象之间的透明通信,允许客户端程序在分布式对象上的操作引用(IDL定义的),且具有位置无关性,远程服务的编程语言无关性,操作系统无关性以及硬件平台(32 bit or 64 bit word size)及传输协议(TCP/IP,IPX,FDDI,ATM,...)无关性。CORBA规范充分利用了现今软件技术发展最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现可重用、可移植和互操作。

 

3家庭网关的功能

家庭网关是基于网络的智能家居系统的核心,它类似于一个庞大的计算机系统,所有的家庭设备都连接在上面,受它的集中控制。实质上,它是家用调制解调器和路由器的结合,并引入了对新型服务的动态传递和系统的远距离管理与升级功能。总体而言,网关要起到三个功能:

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

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

(3)管理功能,家庭网关是运行家电管理软件,使住宅用户可以获得各种家庭服务(包括现有的服务和未来可能出现的服务)的平台。能将使用不同通信协议的家用电器都接入到家庭网络

,并统一管理。

4基于CORBAWEB服务的家庭网关体系结构

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

 

以信息家电空调为例。假设要对空调设置温度,首先,HTML页面上建立一个要执行的服务器端CGI脚本的映射。这个CGI脚本同时也是一个CORBA客户端。在此脚本中嵌入温度设置按钮。通过CGI接口确认将被调用的CORBA客户端后,CORBA客户端通过访问CORBA Server来处理请求。客户机ORB核心通过网络传送给与服务器应用程序相链接的服务器ORB核心,服务器ORB核心将这些请求分配给对象适配器(POA),由它产生目标对象。对象适配器进一步将请求分配给空调的伺服程序,由伺服程序执行温度设置的请求后,返回结果。

CORBA客户端在HTTP服务器端汇总处理结果。CGI脚本负责动态产生一个HTML页面作为发送到HTTP服务器的输出结果,告诉客户是否操作成功。

5 Web_CORBA家庭网关的具体实现

5.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总线通信。

5.2 CORBA程序的实现

本文采用C++语言编写CORBA客户端和服务器端程序。CORBA客户端也就是CGI脚本程序需在工程中加入客户端存根程序。本文采用POST方法将客户设置的温度利用CGI程序提交给服务器:

......

温度设置

提交"/>

 

......

OnAction//事件代码:

AnsiStringT=requet->ContentFields->values[AnsiString("tem-

perature")];

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管理器一>激活对象一>等待客户请求。最后启动服务器端及客户端程序, 远程Web控制界面见图3

6结束语

21世纪是信息化、网络化和知识经济的时代。随着以计算机技术为核心的信息技术,特别是数字技术、多媒体技术和网络技术的飞速发展和普及应用,网络化正在向非计算机领域扩展。通信、计算机与家用电器产业的进一步融合,使得数字化、智能化和网络化的信息家电得以快速发展,信息家电产业将成为社会一大消费热点。

相关资讯
Allegro公布2025财年首季业绩:营收增长22% 工业与电动汽车业务领跑

全球领先的传感器与功率IC解决方案供应商Allegro MicroSystems(纳斯达克:ALGM)于7月31日披露截至2025年6月27日的2025财年第一季度财务报告。数据显示,公司当季实现营业收入2.03亿美元,较去年同期大幅提升22%,创下历史同期新高。业绩增长主要源于电动汽车和工业两大核心板块的强劲需求,其中电动汽车相关产品销售额同比增长31%,工业及其他领域增速高达50%。

三星HBM份额暴跌至17%,SK海力士登顶全球存储器市场

受强劲的人工智能(AI)需求驱动,全球存储芯片市场格局在2025年第二季度迎来历史性转折。韩国SK海力士凭借在高带宽存储器(HBM)领域的领先优势,首次超越三星电子,以21.8万亿韩元的存储业务营收问鼎全球最大存储器制造商。三星同期存储业务营收为21.2万亿韩元,同比下滑3%,退居次席。

跻身英伟达核心圈:英诺赛科成800V HVDC联盟唯一中国GaN供应商

8月1日,英伟达官网更新其800V高压直流(HVDC)电源架构关键合作伙伴名录,中国氮化镓(GaN)技术领军企业英诺赛科(Innoscience)赫然在列。英诺赛科将为英伟达革命性的Kyber机架系统提供全链路氮化镓电源解决方案,成为该名单中唯一入选的中国本土供应商。此重大突破性合作直接推动英诺赛科港股股价在消息公布当日一度飙升近64%,市场反响热烈。

MPS发布强劲季报:毛利率55.1%稳居行业前列,战略转型显成效

全球领先的功率半导体解决方案供应商MPS(Monolithic Power Systems)于7月31日正式公布截至2025年6月30日的第二季度财务报告。数据显示,公司本季度业绩表现亮眼,多项核心指标实现显著增长,并释放出持续向好的发展信号。

工业5.0技术落地指南:贸泽电子发布自动化资源中心

贸泽电子(Mouser Electronics)于2025年8月正式推出工业自动化资源中心,为工程技术人员提供前沿技术洞察与解决方案库。该平台整合了控制系统、机器人技术及自动化软件的最新进展,旨在推动制造业向智能化、可持续化方向转型。