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

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

【中心议题】

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

相关资讯
CIS芯片龙头年报解读:格科微高像素战略如何实现287%净利增长

格科微电子(688728.SH)2024年度财务报告显示,公司年度营收突破63.83亿元人民币,实现35.9%的同比增幅,归母净利润呈几何级增长达1.87亿元,EBITDA指标跃升107.13%至14.15亿元。这种爆发式增长源自其在CMOS图像传感器(CIS)领域实施的"技术锚定+场景穿透"双轮驱动战略,特别是在高像素产品矩阵构建和新兴应用市场开拓方面取得突破性进展。

RS2604 vs 传统保险丝:技术迭代下的安全与效率革命

RS2604作为一款高集成度、可配置OVP(过压保护)和OCP(过流保护)的eFuse开关,专为12V24V母线电压接口设计,兼顾热插拔保护与动态负载管理。其输入电压覆盖4.5V40V,极限耐压高达45V,适用于工业设备、汽车电子及消费电子领域。通过外部电阻灵活设置350mA至2.5A的限流值,结合±7%高精度电流检测,RS2604在安全性与能效间实现平衡,成为复杂电源系统的核心保护方案。

全球汽车芯片市场遇冷,恩智浦如何守住56%毛利率防线?

荷兰半导体巨头恩智浦于2025年4月28日披露的财报显示,公司第一季度营收28.35亿美元,同比、环比均下滑9%,但略超市场预期。在汽车、工业与物联网等核心业务需求疲软的背景下,Non-GAAP毛利率同比下降2.1个百分点至56.1%,自由现金流则维持在4.27亿美元,突显其成本控制能力。值得关注的是,管理层对第二季度营收指引中值(29亿美元)释放出环比复苏信号,但关税政策的不确定性仍为业绩蒙上阴影。

全闪存与软件定义双轮驱动——中国存储产业年度趋势报告

根据IDC最新发布的企业级存储市场追踪数据,2024年中国存储产业迎来结构性增长拐点。全年市场规模达69.2亿美元,在全球市场占比提升至22%,展现出强劲复苏态势。以浪潮信息为代表的国内厂商持续突破,在销售额(10.9%)和出货量(11.2%)两大核心指标上均跻身市场前两强,标志着本土存储生态的成熟度显著提升。

索尼启动半导体业务战略重组 图像传感器龙头或迎资本化新篇章

全球消费电子巨头索尼集团近期被曝正酝酿重大战略调整。据彭博社援引多位知情人士透露,该集团拟对旗下核心半导体资产——索尼半导体解决方案公司(SSS)实施部分分拆,计划于2023年内推动该子公司在东京证券交易所独立IPO。该决策标志着索尼在半导体产业布局进入新阶段,同时也预示着全球图像传感器市场格局或将发生重要变化。