利用GoAhead构建嵌入式web应用

1 简介

廉价的硬件,功能强大的32操作系统,以及无处不在的因特网,它们一起促成了网络应用和设备的飞速增长。大量的设备连接到网络上,于是人们希望通过一种通用、熟悉、快捷的方式来访问和控制它们。嵌入式web服务器正好迎合了这种需求,它们嵌入在网络设备之中,使用标准的浏览器就可以远程访问和控制它们。

然而,并不是所有的web服务器都可以担当如此重任,我们需要的是一个强大,安全,标准的,而且最好是久经考验的嵌入式web服务器。这里将要介绍的GoAhead嵌入式web服务器能够满足所有这些需求,包括西门子,霍尼韦尔,惠普等大型企业都在使用GoAhead。

2 嵌入式web服务器的要求

2.1 易于与设备集成

易于与设备集成包含两个方面的意思,其一是将Web应用程序集成到实时操作系统,其二是可以在Web应用中轻松访问硬件功能。由于GoAhead是开放源代码的,因此这一点不难做到。

2.2 支持将Web页面存储在ROM中

许多嵌入式系统并没有文件系统,因此有必要将web页面保存到ROM中。GoAhead支持对web页面进行编译并将它们链接到最终的可执行文件中。

2.3 加密和用户管理

GoAhead服务器支持使用SSL进行数据加密和认证。同时,它也支持摘要认证机制,一种总是加密密码的更安全的认证机制。用户管理功能允许不同的用户具有不同级别的访问权限。

除了上述要求之外,是否能够快速、方便的生成动态页面是衡量一个嵌入式web服务器的重要指标。GoAhead提供了多种方法编写动态页面,包括asp过程、GoForms过程和embedded JavaScript。GoAhead主要利用asp过程动态获取系统信息然后显示在页面上,GoForms过程则主要用来处理用户指令,例如控制设备和修改配置等。下面以一个动态显示系统当前正在运行的进程信息的小型web应用程序为例,阐述如何利用GoAhead构建嵌入式web应用程序,特别是asp和GoForms过程的使用方法。

3 动态页面支持

在嵌入式设备中,大部分web页面都是动态生成的。生成动态页面的方法主要有两种,通过C代码生成HTML标签和在HTML页面中嵌入表达式标签。直接通过C代码生成页面的优点是灵活,但是却牺牲了友好性,因为不到开始运行程序的最后一刻,你不可能知道这个页面看起来会是个什么样子。相比之下,第二种方法更加直观,你可以使用你所喜欢的工具以所见即所得的方式编辑页面,在必要的地方添加占位符,运行时它们会被动态产生的数据代替。GoAhead完全支持这两种方式。

为了方便的创建具有高度交互性的动态网页,GoAhead提供了asp过程和GoForms过程两种武器。它们实际上都与定义在服务器端的某个C函数绑定在一起,只是分工不同,asp过程用来生成显示在页面中的动态数据,而GoForms过程则用来处理用户输入和修改设置,它们一起构成了GoAhead的核心。

3.1 ASP过程

ASP最初用于IIS中,它是微软开发的生成动态Web页面的服务器端技术。现在已经被移植到包括GoAhead的各种平台中,使用ASP的网页的后缀一般为“.asp”。为了在Web页面中嵌入ASP脚本,只需使用特殊的标签“<%” 和 “%>”将脚本包裹起来。之所以使用ASP标签目的是为了向用户显示动态内容,例如系统进程信息等。因为动态内容实际上是在执行特定的C函数生成的,所以需要将web页面中的ASP标签与特定的C函数联系在一起。一般,整个过程大致可以分成以下三个步骤:

1. 设计web页面,动态内容使用特定的asp过程名替代,也称其为一个占位符。

2. 在某个.c文件中定义与asp过程对应的C函数

3. 在main.c文件中的initWebs函数中使用websAspDefine注册asp过程

以清单1中的<% UpdateProcInfor(); %>标签为例,此标签的目的是为了显示系统当前正在运行的进程的信息。获取进程信息实际上是由位于ui.c中的UpdateProcInfo函数完成的,详见清单2,它负责获取系统进程信息,并格式化为HTML输出。清单3中的websAspDefine函数将<% UpdateProcInfor(); %>标签与UpdateProcInfo函数关联起来,这样当GoAhead解析home.asp页面遇到<% UpdateProcInfor(); %>标签时,控制权就会跳转到UpdateProcInfor()函数,在输出以HTML格式表示的进程信息后,控制权转交给GoAhead继续解析home.asp页面。

时间: 2024-09-14 21:14:27

利用GoAhead构建嵌入式web应用的相关文章

利用免费JS框架构建强大web接口界面

现今,随着web应用方面提供了日益丰富的免费工具.代码等,构建web应用已经变得越来越流行.一些资源已经被开发出来,并经过测试,所以你可以用来快速地增加应用特性.一个典型的例子是script.aculo.us(或者scriptaculous)网站,该网站提供了用于构建强大web应用的javascript库,重要的是这些资源都是免费的.本周,我们将带你对该网站和它提供的资源进行亲密接触. 它是什么? Scriptaculous是一种用于构建动态web 2.0接口的框架.它使用了另外一个称为prot

嵌入式Web视频点播系统实现方法

web 关键字 RealPlayer,嵌入式.流媒体,网络传输,PHP,DHTML,ActiveX 近年来,视频点播VOD(Video on Demand)的名字在媒体上出现得越来越多.VOD技术使人们可以根据自己的兴趣,不用借助录像机.影碟机.有线电视而在电脑或电视上自由地点播节目库中的视频节目和信息,是可以对视频节目内容进行自由选择的交互式系统. VOD的本质是信息的使用者根据自己的需求主动获得多媒体信息,它区别于信息发布的最大不同:一是主动性.二是选择性.从某种意义上说这是信息的接受者根据

利用Geronimo深入EJB Web应用程序

深入了解功能强大的 Geronimo 应用服务器的内部工作,学习如何使用它来开 发数据库应用程序.Java 开发人员 Neal Sanche 用文章"将数据库连接到 Geronimo 应用服务器的三种方法"(developerWorks,2005 年 6 月)开始了这 趟旅行,这篇文章指导您创建简单的电话簿数据库应用程序.在本文中,您将学 习如何扩展初始数据库应用程序,并为之提供一个使用 Apache Struts 和 Enterprise JavaBeans (EJB) 后端构建的功

用 Jersey 2 和 Spring 4 构建 RESTful web service

本文介绍了如何通过 Jersey 框架优美的在 Java 实现了 REST 的 API.CRUD 的 操作存储在 MySQL 中 1. 示例 1.1 为什么 Spring 可以对于 REST 有自己的实现(见 https://spring.io/guides/tutorials/rest/). 但本文展示的是用 "官方" 的 方法来实现 REST ,即使用 Jersey. 1.2 它是做什么的? 管理 资源. REST API 将允许创建.检索.更新和删除这样的资源. 1.3 架构及技

使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务

原文地址:http://www.ibm.com/developerworks/cn/web/wa-restful/ 简介: Spring,构建 Java 平台和 Enterprise Edition (Java EE) 应用程序的著名框架,现在在其模型-视图-控制器(Model-View-Controller ,MVC)层支持具象状态传输 (REST).RESTful web 服务根据客户端请求生成多个具象(representations)很重要.在本篇文章中,学习使用 HttpMessageC

构建成功web应用的十项黄金法则

构建成功web应用的十项黄金法则 此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲 谢谢青云推荐了这篇这么好的演说 谢谢卓和百忙中抽空帮我review,修改,提出很好的建议 谢谢Lily,在我初稿完成后大半夜还帮我校对,修正,提出非常宝贵的意见 说明: 原文中的英文内容有些错误,和视频有出入,所以按照视频为准.()中的内容均是我为了方便理解所加,每个标题后的图片均来自原PPT 原文以及视频地址:10 Golden Principles of Success

在Eclipse下利用gradle构建系统

简介:构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还 是需要时间的.本文将向读者介绍一种全新的构建项目的方式 gradle,它简单.上手快,能大大节省项 目的时间和成本. 在 eclipse 下利用 gradle 构建系统 基本开发环境 操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是 Linux 的,请选择下载对 应版本的其他工具,包括开发工具.Java EE 服务器.Apache Ant.SoapUI

使用Jersey和Apache Tomcat构建RESTful Web服务

RESTful Web 服务简介 REST 在 2000 年由 Roy Fielding 在博士论 文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一. REST 中最 重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识.客户端 应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集. RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务.通常,RESTful Web 服务应该定义

利用JQuery制作符合Web标准的QQ弹出消息

 本篇文章主要介绍了利用JQuery制作符合Web标准的QQ弹出消息.这里所说的弹出消息指的是在网页右下角升起又下去的那种框框,在这里用到了jQuery的自定义动画 这里所说的弹出消息指的是在网页右下角升起又下去的那种框框,在这里用到了jQuery的自定义动画,感觉这个自定义动画就是像flash里的形状和渐变动画一样,只要定义了开头和结尾的两个关键帧,中间的动画过程会自动完成,不用会jQuery的可去查下jQuery的帮助文档.    基本思路是这样子滴:首先弹出消息框其实就是一个div层,页面