The Choice of the Web Framework

The Choice of the Web Framework
Aaron Yuan/2005.12.26


0. Preface
Now, the web frameworks bloom in every aspects[1]. This is can be a good thing, but on the other hand, this also make people confused on choosing the correct one to be based on for their application. So how to do the choice? This article tries to give some useful hints.

1. Category
We can classify all the the framework as the browser-centric and java-centric. Of course, we will build the business layer and database layer using java, such as spring and hibernate or EJB3. The key point lay on the presentation layer. Now we have many choice, the most common is :Struts(Action), JSP(JSF), Tapestry, Applet, WingS(webonswing,etc.), webstart. We can draw a line from java-centric to browser-centric,
and every framework should be one position.

JWS(Xito,JDNC,JDIC) Applet WingS(webonswing) wicket JSF(spring MVC,Struts), Tapestry
java----------------------------->----------------------->---------------------->------------Broswer

Note: Broswer-centric mean the most presentation job is fulfilled by XML/HTML. And this is the mainstream of the world now.

2. Compare
Here is a compare matrix which I come across on the net. Sorry I just can not figure out the specific location.

Factors Applet XML/HTML based JWS

User Interface moderate-sophicated simple-moderate moderate-sophicated
Offline Support No No Yes
UI Response Network Independent Network dependent Network Independent
Interactivity Broswer Limited Broswer/Make-up limited Open
First Use Response Minutes Seconds Minutes
Subsequent use response Minutes Seconds Seconds
Bandwidth Usage Variable Fixed Flexible
Lightweight client support Limited Open Limited

From the matrix above, we can see many advantes the JWS plan over the others. So why people sitll insist on developing the web service based on the XML/HTML? We can see that that's only one reason: make the user the most convenient. For they do not need to install the java SDK or waiting for a while before they start an application caused by the limit of bandwidth. And from these analysis, we also can understand why AJAX(Asynchronous JavaScript And XML) will populate today. Javascirpt is ugly from my
view although some guys will laught at me for that. I love the pure java system. It can be rapidly development and if the architecture is elegant enough, the maintance can be a kind of joy. We can imagine we can develop the same system like what we have, just get rid of so much jsp, xml, html ,css....

3. Thinking
Html and Browser is made to present the static the text and the Http protocol is also sessionless. So we will make overhead use of it if we just wanna build the application based on it. Why not shift to java platform? I just can not fiugred out. Ruby on Rails? Asp.Net? LAMP? maybe... I just think if the java community is more unify...maybe the world will be better.....

In my opition, with the bandwidth growing, the downloading will not a burden, so my choice will be: RIA. On how to do with it, there are
FLEX
XUL(Lazlo)
Swing
AJAX
I need write the action script for FlEX or javascipt for AJAX, I do not like that style. As for Lazlo, I still need do that job. I choose Swing. But there are sitll two methods,to use swing: on the server or on the cilent. The reprents of the former is:
Echo(Echo2)
WingS
SwingWeb
WebOnSwing
This type solution is cool, but not so applicable. Basicly, They all wrap the servelet using all kinds of method. So when the http requests arrive, the response will generate the html to form the swing-like web. this will comsume a lot of time and brandwidth.
The reprents of the latter is so many, so only superstar will be choosed here:
SwiXML(SwiNG,SwiAT)
CookSwing(CookXML)
JDNC(JDIC SwingX)

I still choose JWS, but with a little XUL to do the form designer like cookSwing or Thinlet project.

another concern: If we give up the based j2ee server or even webserver(at now, we still use it). Where is the socket? Because the client side have been located in the romote client machine, not like jsp like file (which located in the server), so how to fulfil the basci communication? HTTP? socket? RPC? RPC in fact in based on the socket. While HTTP will still be used. According to the spring spec, it can support the following
4 choice:

Remote Method Invocation (RMI). Through the use of the RmiProxyFactoryBean and the RmiServiceExporter Spring supports both traditional RMI (with java.rmi.Remote interfaces and java.rmi.RemoteException) and transparent remoting via RMI invokers (with any java interface).

Spring's HTTP invoker. Spring provides a special remoting strategy which allows for java serialization via HTTP, supporting any java interface (just like the RMI invoker). The corresponding support classes are HttpInvokerProxyFactoryBean and HttpInvokerServiceExporter.

Hessian. By using the HessianProxyFactoryBean and the HessianServiceExporter you can transparently expose your services using the lightweight binary HTTP-based protocol provided by Caucho.

Burlap. Burlap is Caucho's XML-based alternative for Hessian. Spring provides support classes such as BurlapProxyFactoryBean and BurlapServiceExporter.

JAX RPC. Spring provides remoting support for Web Services via JAX-RPC.

JMS (TODO).


if they have not so.. i will try one: cookSwing+JWS+spring+hibernate.
______________
[1]: Echo Cocoon Millstone OXF
Struts SOFIA Tapestry WebWork
RIFE Spring MVC Canyamo Maverick
JPublish JATO Folium Jucas
Verge Niggle Bishop Barracuda
Action Framework Shocks TeaServlet wingS
Expresso Bento jStatemachine jZonic
OpenEmcee Turbine Scope Warfare
JWAA Jaffa Jacquard Macaw
Smile MyFaces Chiba JBanana
Jeenius JWarp Genie Melati
Dovetail Cameleon JFormular Xoplon
Japple Helma Dinamica WebOnSwing
Nacho Cassandra Baritus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的有限差分法实验报告用MATLAB中的有限差分法计算槽内电位;对比解析法和数值法的异同点;选取一点,绘制收敛曲线;总的三维电位图+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值