2009年7月28日

有幸参加12月在北京举行的JavaOne|Oracle OpenWorld|Oracle Develope 会议,发些感想吧。

会场随处可见的是这样的Logo: , 看起来Oracle似乎准备要做另一个更加商业化的IBM了,从Sparc CPU到 Sun Machine, Solaris OS, ZFS, Oracle VM for Sparc/x86, Oracle Enterprise Linux, Oracle Database(Oracle 11g/Timesten/Berkeley DB/Mysql), Java, Oracle Enterprise Manager, Oracle Fussion Middleware, 一个覆盖硬件到最上层软件的完整提供者, 这其中又有许多平台化的东西:
  1. Sparc 体系,投入很大精力做出这样的机器: , 然后多个机器形成Larry一直倡导的Grid Computing,构成一个有强大计算能力的平台
  2. Oracle VM体系,原先有Oracle VM for x86, 已经在虚拟存储,虚拟机性能和监控管理做了很多工作,现在加入Oracle VM for Sparc,虚拟化(IaaS)平台就更加完整,你可以在x86上跑solaris, 也可以在Sparc机器上跑x86系的virtual machine
  3. JVM体系,会将原有的Jrockit的优点逐渐移植到Hotspot上去,抛开商业化的目的性不谈,我相信在未来比较长的时间里, JVM是有生命力和其它语言系抗衡的。
  4. Fussion Middleware体系。FM构成了现在Oracle应用软件的结构,你可以把它看作一个软件版的“从CPU到应用的全栈式解决方案”。比如说,传统意义上,你需要去关注DB, J2EE, UI, 分布式,并发性,领域化,IDE,PLM等等这些开发流程中必然碰到的问题,Oracle的目标则是提供“完整”的解决方案。基于JDeveloper 11g + Weblogic + ADF + DB,构成最基本也是“最完整”的开发工具集。所以和传统J2EE开发体验不同的是,你发现很多很多事情Oracle都帮你做了,你想过的目标也许它做到了(一个JDeveloper = 配了BPM设计器, HTML/JSP设计器, XML/XSD设计器, UML/ER设计器, SVN/CVS连接器, EJB设计器以及其它许许多多功能的Eclipse).

随笔:

 
  1. 关于Oracle Complex Event Processing(Oracle CEP). 对CEP不熟的同学可参加维基百科:What's CEP. 现场展示了一个Demo: CEP Demo. 展示了对于业务领域内复杂的事件的实时处理。感觉这个CEP产品的流程化已经做得很彻底了,从eclipse的designer, 到流程的监控响应console, 到事件服务器集群和事件缓存。我把它们的eclipse plugin( http://download.oracle.com/technology/software/cep-ide/11/)装好后,亲自实践了一下:            
     我们的项目组也有做流程引擎的,要是有这样程度的ide,相信用户会更接受一些吧.
  2. JDK7 Filesystem. 支持许多查询操作,例如: 获取父目录,获取名字,获取绝对路径,以及一些判断的API

    File OPeration(文件操作)相关的:
    1. 可以通过路径获取文件
    2. 更加容易地读写文件。
    file.newOutputStream();
    file.createFromPath();

    在创建文件时,可以定义初始的文件属性:如何设置为(
    'rw--r----)
    可以更加容易地拷贝文件:(除了内容,也支持拷贝元属性,例如源文件的读写权限)

    Channels
    SeekableByteChannel:
    维护一个文件偏移位置, 等价于一个随机文件(RandomAccessFile), 即可以随便从文件的任意偏移开始读取。

    DirectoryStream, 用来枚举目录中的文件或者目录。
    :用较少的资源
    :支持大的目录
    :对远程文件系统提供平滑访问支持
    :提供句柄来访问目录

    Filtering(过滤)
    :内建glob
    /regex 的模式匹配
    :可使用自定义的过滤器实现

    Recursive Operations(递归操作)
    Files.walkFileTree
    :深度优先访问,因为每个目录节点会被访问两次。
    :每个目录或者文件结点被访问时,都会调用FileVisitor(来获取信息?)
    :Symbol_links(链接,软链接) 在默认情况下不会使用,除非指定FOLLOW_LINKS的选项。

    File Attribute
    支持本地文件系统的各种属性
    支持NFSv4j的ACL模型
    支持Samba(DOS类型)
    使用FileStore.来查看支持的文件属性


    File Change Notification
    监视文件或者目录,当有改变(增加,删除,更新)时可以发事件来通知
    通常是通过Polling来循环查询
    提供WatchService来监控手动注册的文件对象。


    File SPI
    可以提供对某种虚拟文件系统的实现,例如一个Zip文件(也可以是光盘的各种格式:UDF, ISO, IMG, BIN, ), Mac的DMG包, Linux的TAR
    /GZIP/BZIP等. 虚拟机的磁盘格式(QCOW, VMDK)
    可以提供对某种实体文件系统的实现.
  3. Oracle ADF. 是一个基于JSF(JSF?很多人一听就准备放弃了的吧~~,其实很多架构上的思想是很值得借鉴的)的UI框架。使用JSP的Tag语法加上JDeveloper提供的Designer支持,能非常快速地搭建出一个功能非常完整的Ajax Application出来。很多思想的光芒可供参考:
    1. JavaScript的封装性,很多功能,特别是Ajax的功能,都不需要去写js了
    2. UI组件的多样化, 从菜单,表单,表格,到树,日历,日期,滚动条,调节尺,尽可能多样的控件。但是我感觉这些还是不太够的,这些组件或者能帮助你,但是实际中还是需要自己去写JS。
    3. Data Binding的支持,看图说话:
                  
简要地说,通过JSF的Managed Bean支持session/request/application scope的变量,再加上它自有的Page Definition实现Page scope的变量,就做到了页面到页面的传递数据。仍然是通过Page Definition, 将从DAO或者EJB那边来的数据传递到页面上。

posted @ 2011-01-05 10:08 Li0N 阅读(2085) | 评论 (1)编辑 收藏

     摘要: Windows的命令行很弱,没有linux下面许多强大工具的支持,作为一个替换解决方案,首先需要去 http://www.cygwin.com/ 下载cygwin的安装程序: 然后安装,可以选中你所需要的包, 比如grep, tar, zip, vim, emacs, ssh, awk, python, perl, svn, cvs, git, hg,... 对于经常使用的emacs, ...  阅读全文

posted @ 2009-07-28 22:54 Li0N 阅读(2238) | 评论 (1)编辑 收藏


posts - 2, comments - 2, trackbacks - 0, articles - 0

Copyright © Li0N