EJB,J2EE失乐园

轻量级j2ee开发设计开发探讨

BlogJava 首页 新随笔 联系 聚合 管理
  3 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

2005年12月27日 #

位于尤他州Midvale的Burton Group公司的高级分析师Richard Monson-Haefel认为,当提到被大肆宣传的富互联网应用(Rich Internet Application ,RIA)技术时,更少的才是更好的。这种技术能够大大促进用户的Web体验,因为不必再从服务器刷新页面,Ajax的风格是单页面接口。但他在最近关于Ajax的电视短片中说过度使用会导致导航困难。

  他说,Ajax比起其它RIA技术的主要优点是无缝与HTML集成,因此它可以大量使用而不需要改变现有Web内容。“把它想象成Web站点的调料。这样做的风险非常小。Ajax还是后台无关且不需要任何插件。与其它RIA技术,例如Macromedia的Flash等联合使用,Ajax会是一个强大的工具。”

  但是,该技术还没有成熟,而且工具和框架还没有得到支持。Monson-Haefel说:“如果你不喜欢用工具集和类库,Ajax就不适合你。”

  Burton Group定义“富”互联网应用是能够在标准HTML框架和链接之上提供功能的。Google Maps就是这样一个优秀的Ajax例子。

  与Ajax最近被才提出不同,JavaScript已经存在很久了。它基于JavaScript/ECMAScript,、级联样式表、 文档对象模型以及XML HTTP请求。最初,很难跨越不同浏览器来设计Ajax风格的应用程序。但现在,主流浏览器已经演变到支持微软技术的实现了,并成为了最普通的特征。

  今天,占主导地位的RIA技术是Macromedia的Flash/Flex。其它RIA技术包括为Microsoft Windows Presentation Foundation开发的用户接口标记语言,称为XAML(Extensible Application Markup Language,可扩展应用程序标记语言)。还有Mozilla的基于XML的用户接口语言XUL,droplets和Java applets以及微软将要推出的Windows Presentation Foundation/Everywhere (WPF/E)。

  Monson-Haefe说:“Flash是很好的技术,适合于丰富动画与图形,但Flash好象是一个小池塘中的大鱼。现实市场现在还没有那么大,因此随着市场变大它是否能占领市场还是一个疑问。而微软将推出的WPF/E会是一个有力的竞争者。”

  微软还计划推出一个Ajax框架扩展,称为Atlas。Monson-Haefel认为它非常有前途。他说,Ajax的其它集成开发环境还没成为主流。这包括Morfik Technology公司的Javascript Synthsis Technology (JST)、JetBrains公司的IntelliJ IDEA 5.0、Tibco Software公司的Tibco General Interface (GI)、JackBe公司的Visual GUI Builder、Backbase B.V.公司的Backbase以及开源的Ruby on Rails框架。

  他说:“它已经内建了Ajax功能,使你能够用Ruby编程语言编写Ajax应用程序。”

  Monson-Haefel说:“用于编写Ajax应用的Tibco工具非常好。JackBe也是相当好的RIA技术而Backbase或许是现在更好的一个。IDE的优点就是所见即所得的开发方式,但你购买了他们的GUI,这样你也受到观感上的束缚。”

  除了IDE和框架扩展,Monson-Haefel还提到可用的Ajax UI工具和远程工具还有很多,包括私有的和开源的产品。他说,只有一部分。根据Burton Group公司最近的一项调查,在488位Ajax开发人员中,最流行的工具集、类库和框架扩展是有MIT风格证书的JavaScript框架——Prototype,JavaScript 类库——Script.aclo.us,有Apache 2.0证书的Direct Web Remoting,有Academic Free License v 2.1的Dojo UI工具集以及Ruby on Rails。

  至于数据,对Ajax的关注主要集中在B2C的Web站点,但Monson-Haefel指出Ajax实际上与Web服务和SOA有紧密联系,它能影响企业门户。

  “一些人相信Ajax将成为门户解决方案的主要复苏因素。门户被宣传了很久,但实际上它并非所谓的银弹。而Ajax表示层与门户的结合将促进所有用户的体验。”

  Monson-Haefel警告说Ajax很容易被滥用。“假如开发人员不理解使用理论,他们就会胡乱应用它而且人们会刻意避开JavaScript。我的推理来自浏览器弹出窗口。这种技术源于一种可用特性,但由于被滥用它已经成为Web技术中的下等公民,人们也不再使用它了。”

  他的建议是应该谨慎的实现Ajax解决方案。

posted @ 2005-12-27 11:35 EJB,J2EE失乐园 阅读(504) | 评论 (0)编辑 收藏

2005年12月26日 #

通过两个多月紧张激烈的角逐,"原创技术高手"赛事已经告一段落,受到了来自系统集成、软件开发、产品销售、业务咨询等多个领域的朋友的热情参与。由BEA专家组成的评委会,参考网友们和斑竹的意见,结果见http://dev2dev.bea.com.cn/bbs/paihang/2004121500.jsp,我有三篇文章入围,其中《谁动了我的EJB?-J2EE 开发应用框架反思》获奖,

得奖理由:
有创意,实实在在的原创;有深度。

对我有较大触动,希望自己能更加努力!加油!

posted @ 2005-12-26 17:33 EJB,J2EE失乐园 阅读(212) | 评论 (0)编辑 收藏

在大多数项目中,在特定的时间或频率下你需要完成一些特定的任务。在本文中我们将演示如何用标准的Java Timer API来实现。

大多商业应用都会用报表和统计,很难想象没有这些帮助我们分析未来趋势的数据,我们还要这系统干什么。问题是如此多的数据我们该如何触发,如果处理对系统性能影响不大。比较好的方式是避开应用高峰,让服务器在闲暇时完成这些事。

下面是我的程序:

package net.nighttale.scheduling;
 
/**
 * @author kevin zhou
 *
 * 在Java中实现Job Scheduling
 * 创建日期 2004-7-13
 */
import java.util.TimerTask;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
 
public class ReportGenerator extends TimerTask{
 
    /* (非 Javadoc)
     * @see java.util.TimerTask#run()
     */
    public void run() {
        System.out.println("Generating report");
 
       
    }
 
}
class MainApplication {
 
  public static void main(String[] args) {
    Timer timer=new Timer();
    Calendar date = Calendar.getInstance();
    date.set(
      Calendar.DAY_OF_WEEK,
      Calendar.SUNDAY
    );
    date.set(Calendar.HOUR, 0);
    date.set(Calendar.MINUTE, 0);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);
    // Schedule to run every Sunday in midnight
    timer.schedule(
      new ReportGenerator(),
      date.getTime(),
      1000 * 60 * 60 * 24 * 7
    );
  }
}
我先简单解释一下,在我们的例子中ReportGenerator继承java.util.TimerTask,它又继承了java.lang.Runnable,我们需要覆盖run()方法。
调用时我们用schedule()方法让它每周日0点0分执行,避开服务器高峰,实现Job Scheduling的目的。
posted @ 2005-12-26 17:18 EJB,J2EE失乐园 阅读(356) | 评论 (0)编辑 收藏

仅列出标题