用Flash远程调用增强J2EE表示层

对Macromedia公司的Flash的远程调用使得Java开发者除了JSP(JavaServer Pages)和Swing之外又有了一种全新的方式来构建J2EE(Java 2 Platform, Enterprise Edition)应用. 本文调查了Flash远程调用,解释了为何它有如此作用,并且提供了一个如何实现的例子

在任何多层体系中选择表示层技术时,Java开发者通常有两种选择: JSP或者Swing/AWT(Abstract Windowing Tookit)。借助JSP,开发者可以创建非常容易发布的动态内容。但同时也使得当应用程序在不同的浏览器中发布时开发者不易控制他们的运行情况。使用Swing,开发者可以轻易控制应用程序的行为,但要求用户安装Java运行时环境。当开发者需要既以比较小,基于浏览器的方式发布同时又对用户的交互有较高的可控性时也存在这种情况。对于这些情况,Macromedia Flash提供了一种可供选择的解决方法。

一般来说,Macromedia Flash比发布界面丰富,带有脚本程序的应用程序要优越。不幸的是,直到最近都没有出现标准的方法可以将Flash应用整合进J2EE体系。这种状况随着Flash Remoting MX的引入才得以改变。Flash Remoting MX提供了标准的通信层使Flash应用程序与Java, .NET和ColdFusion之间进行通信。利用Flash Remoting,开发者得以在J2EE体系中发布小的,基于浏览器的表示层,同时可以对应用的行为进行足够的控制。

本文将解释为何Macro Flash适合于作为n层体系中应用层的解决方法。我将首先调查应用层如何得以改变,然后比较Flash和现有标准,最后解释Flash如何应用于J2EE体系。

应用层的演化:

从Berners-Lee创建第一个基于Web的系统至今,n层体系的表示层经历了一次变化。在那之前,开发者不得不开发与服务器紧密结合的客户端系统。所能利用的只有基本的HTTP协议,Web服务器和HTML,开发者可以为用户发布基于文档的应用系统,不管他们使用的是何种硬件或软件平台。这种方法对于应用层开发者有一些基本问题: 虽然HTML可以成功地被传送基于文档的数据,但它不适合有多种表现的应用—可与用户进行实时的交互。

为了解决这些不足,开发者开始在现代的浏览器(Netscape Navigator 2.0以后)中开发一些新的特性,即Java和javascript。开发者第一次能够利用Web浏览器平台发布丰富的,与平台无关的应用。实际上Java小程序的使用从没有达到它的期望值。Java小程序要求用户已经安装Java运行时环境(Java Runtime Environment, JRE),并且Web浏览器安装了Java插件。除了需要安装客户端系统来运行Java小程序外,客户端还需下载Java小程序。这些是很耗费时间的,特别是会使Internet的连接变得非常慢。

除了这种解决方法外开发者有三种选择来在客户端/服务器应用中使用丰富的前端: 动态HTML(DHTML), applet/Swing, 或者第三方解决方法。每种解决方法都各有利弊。

DHTML:

使用DHTML创建丰富的前端提供了如下优点:

1. DHTML是开放的并且免费

2. 使用DHTML所写的应用可以在支持DHTML的任何Web浏览器中配置

3. 基于Web的应用其客户端通常都由文字和图片构成,这允许小的应用脚本的存在。

时间: 2016-12-10

用Flash远程调用增强J2EE表示层的相关文章

基于Dubbo的Hessian协议实现远程调用

Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://hessian.caucho.com/#Java Flash/Flex:http:/

WEB(Javascript)远程调用方案清单

javascript|web Web远程过程调用(以下简称WebRPC)是在不刷新页面的前提下,对远程方法进行调用,是最近的一个热点:在一些场合下,他甚至成为不可替代的实现方式.WebRPC的实现方式经历了从普通URL读取,隐藏帧,IFrame, XMLHTTP乃至 Flash等.本文将对目前存在的WebRpc方案(产品)进行列表,并作简单评价. 评价将在以下几个方面进行:客户端实现方式,服务器端实现方式,是否自行封装协议,是否支持序列化/反序列化,序列化支持是否完备(原子类型,对象类型),是否

flex 和java 一起开发.实验远程调用.

    首先下载最新的 BlazeDS   http://opensource.adobe.com/blazeds/   最新BlazeDS下载地址.   http://opensource.adobe.com/wiki/display/blazeds/Release+Builds   下面就开始使用flex 创建一个 带java 的web 工程了.   创建工程   下载的是一个 war 文件..不用解压缩. 这个在创建工程的时候用到.   创建一个 flex的工程.    选择 J2EE.

Android工作实践总结:Aidl 远程调用(aidl实例总结)

在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦. AIDL(AndRoid接口描述语言)是一种借口描述语言;

架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)

在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务.通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解. 远程调用是系统与系统之间的通信机制,它的另一种理解就是进程间的通信.做分布式系统的开发,远程调用技术是其核心技术.远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型,性能更高的计算机系统. 我在前面的博客里介绍了一种分布式网站的架构设计,其中就有一

【spring源码学习】spring的远程调用实现源码分析

[一]spring的远程调用提供的基础类 (1)org.springframework.remoting.support.RemotingSupport ===>spring提供实现的远程调用客户端实现的基础类 ===>例子:org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean org.springframework.remoting.caucho.HessianProxyFactoryBean (2)org.

从远程调用框架认识Zookeeper

远程调用是系统或进程间的通信机制,是分布式系统开发的核心技术.远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型.性能更高的计算机系统. 远程调用服务的架构设计总述 首先我们要深入理解以下几个问题:为什么应用软件服务里需要一个远程调用服务?远程调用服务解决了软件设计中的什么问题? 笔者曾写过一篇关于分布式网站架构设计的文章, 在文章开头就把这个新的网站架构方案和传统的企业软件的B/S架构作了对比,笔者将一个网站里提供业务服务的组件抽象为独

jax_ws 客户端远程调用方法时必须使用wsimport命令生成接口代码

问题描述 jax_ws 客户端远程调用方法时必须使用wsimport命令生成接口代码 jax_ws 客户端远程调用方法时,不生成服务端的代码如何实现?

在Flash中调用Html的层

本教程需要大家有一些关于HTML, CSS, Flash, JavaScript 和ASP的基础知识     用Html文本与Flash一起来制作动画是一个很好的方式. 它非常的简单, 而且容易上手,只需要使用ActionScript中的getURL()脚本就可以了,比你能想象到的任何其他编成语言(例如JavaScript)都更方便,功能也更强大.     请看下面这个情节: 在一个特殊工程中,设计师需要Flash 动画运行于页面的顶端,然后在Flash播放后,再显示文本.你可以在Flash中做