2010年2月6日

Oracle JDeveloper,这是 Oracle 提供的免费 Java IDE

posted @ 2010-02-06 15:59 Robert Su 阅读(22) | 评论 (0)编辑 收藏


2009年12月14日

企业信息门户Jetspeed
企业信息门户门户可以让终端用户可以很方便的访问网络 资源(应用、数据库等)。用户可以通过Web浏览器、WAP手机、寻呼机以及其它一些智能设备来访问Portal。Jetspeed就像是中心的控制器, 可以很方便地以各种形式展示那些来自不同数据源的数据。
  • 开发语言: Java
  • 授权协议: Apache License 2.0
  • 项目主页: http://portals.apache.org/
  • 文档地址: http://portals.apache.org/jetspeed-2/
  • 下载地址: http://portals.apache.org/jetspeed-2/download.html
  • Demo:

  • the standard portal demo or
  • the web 2.0 desktop demo.
  • 企业信息门户-Liferay 
        1、提供单一登陆接口,多认证模式(LDAP或SQL);
        2、管理员能通过用户界面轻松管理用户,组,角色;
        3、用户能可以根据需要定制个性化的portal layout;
        4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;
        5、支持主流的数据库,如PostgreSQL,MySQL;
        6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
        7、支持包括中文在内的多种语言;
        8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;

    http://www.liferay.com/

    posted @ 2009-12-14 21:34 Robert Su 阅读(44) | 评论 (0)编辑 收藏


    2009年12月8日

    企业信息化web2.0化,但是一直都没有系统的梳理过,今天发到这里留做今后讨论。


    图非原创
     

    SNS 的思路其实完全引入到CRM以及企业OA中,当工作流程中了有了处理的信息,应该将信息实时推送到个人client上。而这个client应该与个人blog、mail系统、视频会议系统关联起来的。至于视频会议系统将来肯定不会是必须要大家聚集到某个会议室里面,跟另外几个坐在会议室里面的人一起开会议,将来视频会议系统必然是非常灵活的,可以采取多种形式的。

     

    另外个人觉得未来企业信息化以及Enterprise Architecture的一个方向是移动化,可以保证信息随时可以传送到需要的个人那里。

    先写这么多,这篇文章等我从事企业信息化工作之后希望可以重新写的很深刻。

    ___________________________2009.12.27___________________________________
    09年10大开源软件中涉及到企业信息化的系统有

    1. 内容管理系统Drupal
            6. 开源ERP系统LedgerSMB

            8. 办公软件OpenOffice
            9. ERP系统OpenBravo ERP

    posted @ 2009-12-08 10:13 Robert Su 阅读(49) | 评论 (1)编辑 收藏


    2009年11月24日

    10.白名单(Whitelisting)

    跟上恶意软件特征已经不可能了。比如,赛门铁克在2008年一年推出的反病毒特征已经超过了该公司在过去17年所推出的总和。如今,不仅病毒、蠕 虫、木马越来越多,而且有能力变种规避特征对比侦测或使用密码对自身进行加壳的病毒数据也在增长。对于不断增长,设计复杂的恶意软件,白名单可能是唯一的 解决办法。

    白名单与一个干净无恶意软件的台式机或服务器镜像启动。白名单软件将对那些用一个或多个用密码编写的文件进行识别。然后,管理系统中的监控代理标示 任何未在哈希表(HashList)中的执行文件或阻止它们运行。大部分公司会分发跨企业的标准系统镜像,所以白名单是一个最有效的确保安全的办法。

    白名单需要进行一个文件转变。在当今许多企业中,用户仍然有许多办法控制在他们的台式机或笔记本电脑上运行的内容。但是由于更加复杂的新恶意软件急 剧增长,利用恶意软件实施攻击的有组织犯罪案件数量也在增长,在企业安全领域中,白名单可能将是我们战胜恶意软件的唯一的希望。

    9.跨平台移动应用开发

    近几年来,移动设备上的企业应用一直没有得到很好地普及,主要有两个原因,一个是因为开发者需要耗费大量的时间去学习如何为智能设备编程,另外是因 为不同设备间的应用移植性不好。这也是为什么InfoWorld认为“跨平台移动应用开发”是2009年新兴企业技术的主要原因:

    跨平台移动应用开发环境,比如Rhomobile的Rhodes框架,可以让开发者写一次应用,但能在多个不同的设备上运行,如iPhone、Windows Mobile和BlackBerry等,提供了很多很炫的功能。

    对于企业来说,跨平台应用开发可大力促进研发和部署行动应用。你不可能让每位雇员都使用相同的智能手机,即使你做到了,针对特定平台的应用也让你局 在了一个平台上。通过跨平台应用开发,你在开发应用程序时,将可以不用再针对特定平台进行研究,所开发的应用也可以在许多设备上运行。未来,广泛部署移动 企业应用将成为现实。

    8. 节能硬件

    我们都知道“两种绿色”的内容是:通过降低能源消耗保护地球和节省资金。实现这两个目标的技术已经找到了进行服务器、台式机和其它硬件的方法,但是在一些情况下,只有出现更好的软件支持才会出现效益。

    更有效的电源适配器和在不需要时能够自动降低速度或关闭的硬盘正在被广泛应用。要想让不活动的内核、主板或其它部件睡眠,多核CPU通常需要在操作系统或应用层级被告之。

    电源适配器是最简单的节能办法。它们不需要软件支持,就可以实现上述两个目标。在AC-to-DC转换过程中,它们几乎不浪费电能,几乎不产生热量 —这也降低了冷却所需的电力。80 Plus认证项目鼓励生产厂商生产转换效率至少达80%的电源适配器。此前,老的电源适配器的转换效率只有50%,也就是说只有一半的电力被传输到了主板 上,另外50%的电能变成了热能。多家存储厂商也开始生产能够在不使用时降低转速或关闭的硬盘。最新的CPU、主板和网卡等硬件也开始引入节能概念。

    7.多核芯片

    主要的处理器厂商在时钟频率上撞到了墙。处理器时钟频率的每一次增加带来的都是电能的大量消耗,任何一次性能的提升,随之而来的是大功耗和高热量。

    有鉴于此,处理器厂商从单线程转向了多线程,随后又从单一快速核设计转向了多个虽然速度较慢但是可并行执行代码的多核。时钟频率已经不再是制约计算的瓶颈,取而代之的是吞吐量。

    多核芯片耗电量低,发热量小,工作效率更高。在服务器领域,他们正是IT人员梦寐以求的芯片。

    6.固态硬盘

    虽然固态硬盘在上个世纪就已经出现,但是最近才开始推出大量新产品,并且价格也大幅下降。在过去,固态硬盘主要用于那些需要尽可能高性能的应用程 序。如今,固态硬盘已经被广泛应用,如使用固态硬盘做为外部缓存以提高应用程序的性能。与传统机械硬盘相比,固态硬盘的价格仍然偏高,但是与添加服务器内 存条相比,它们还是便宜多了。

    与传统机械硬盘相比,固态硬盘不仅读写速度更快,而且支持更高的传输速率,更为省电。不足的是,固态硬盘的寿命较短,因为固态硬盘中的每一个单元的写入次数有限。

    5. NoSQL数据库

    数据正前所未有的流向每个角落。“SQL”与“数据库”可以互换的日子正在快速消逝,部分原因是老式关系型数据库无法处理来自Web 2.0应用的大量数据。

    对于NoSQL数据库这个概念,在刚提出时就遇到了很大的挑战,因为目前几乎所有的大型应用采用的都是关系型数据库,或者说SQL数据库。 NoSQL的推出,无异于一场革命。NoSQL数据库对于那些如安全日志或者系统日志等结构化不强的数据而言,使用起来很顺手。另外,因为缺少对数据的控 制,NoSQL数据库处理数据的速度也很快。

    4. I/O 虚拟化

    I/O虚拟化解决了运行诸如Vmware、微软Hyper-V等虚拟化软件的服务器所出现的问题。当大量的虚拟机在一个单一服务器上运行时,I/O 将成为一个重要的制约VM与网络通信以及VM联接后端存储的瓶颈。I/O虚拟化不仅可以在一个单一服务器上更加容易的在跨多VM分配带宽,它还为动态管理 物理服务器池和存储池找到了一个解决方案。

    3.重复数据删除

    数据是所有公司的血液。问题是如何处理这些数据。据IDC观察,企业的数据每18个月就会翻一倍,直至存储系统崩溃。导致这一问题的原因经常是因为 要遵守公司保存信息与文件的规定。更为重要的是这些数据在商业价值方面都没有有效期。对多年前的数据进行分析可以帮助用户把握发展趋势,预见未来,预测客 户的行为等等。

    为此,我们必须要找到一种可以降低数据存储量,又无需牺牲有用数据。在这里我们要感谢重复数据删除。

    2.桌面虚拟化

    桌面虚拟化已经出现在了我们身边。你可能会说,桌面虚拟化在上世纪九十年代中期就已经出现。不过,今天的桌面虚拟化已经从我们大多数人在两年前或三前年所想象的有很大区别。另一个里程碑是:新技术以桌面管理程序形式出现。

    1. MapReduce

    MapReduce是Google在2004年提出的一个软件架构,主要用于大规模数据集的并行运算,它通过把对数据集的大规模操作,将其分发给网 路上的每个节点实现可靠性。在Google内部,MapReduce得到广泛的应用,比如分布排序、Web连接图反转和Web访问日志分析等。提到为什么 将MapReduce放在第一位,InfoWorld解释说:

    某种程度上来说,这是考虑到MapReduce的独特创新,它使得从前只能在大型商业硬件上所做的事情,在普通的PC机上即可操作——处理千兆级别 的数据。在亚马逊的Amazon Elastic MapReduce产品中,以Web服务的方式很好地应用了MapReduce的实现——Apache Hadoop。而且,MapReduce还被集成进一些来自IBM、Oracle等公司的主流解决方案,现在它们云计算所用的服务器中可能就跑着 MapReduce

    posted @ 2009-11-24 02:02 Robert Su 阅读(47) | 评论 (0)编辑 收藏


    2009年10月15日

    症状:
    IE报错。
    系统状态栏会自己变样式。
    360安全卫士的主程序、还有卡巴斯基的程序文件被删


    还在努力杀毒中

    posted @ 2009-10-15 16:04 Robert Su 阅读(78) | 评论 (0)编辑 收藏


    2009年9月30日

    所读文章
    常用Flex IOC框架比较分析  http://www.infoq.com/cn/articles/ioc-frameworks
    Flex 与 Spring 框架  http://www.riameeting.com
    Spring BlazeDS Integration简介与入门 http://www.infoq.com/cn/articles/spring-blazeds-integration

    Spring与IOC现在是开发人员的常识了,IOC(Inversion of Control)也成为软件开发中非常流行的一种设计模式。

    Spring的横空出世完全颠覆了传统Java服务端的开发方式。它鼓励通过依赖注入的方式来装配POJO,这极大地简化了应用的开发与测试。

    Spring的核心配置是通过Java bean实现的。借助于bean,任何Java类都能被公开成为服务。
    IoC是Spring的核心。IoC的作用:
    借助IOC,可用一个独立的对象为其他对象的数据成员填充正确的实现,而不是由这些对象自己负责此项工作。这样做的好处有两个。
    第一,可将对象的数据成员 声明为接口,从而将对象与其具体实现分离(即契约式设计,design by contract)。
    第二,可从对象中删除创建逻辑,可以使对象的用途更为明确。

    实现:

    一般有两种最常见的对象配置方法:

    • 对象实例化(例如:var myObject = new Object()
    • 对象查找(例如:var myObject = registry.getMyObject()

    而利用IOC,你可在一个独立层中实例化应用程序要用到的对象,并传入它们所需的依赖。具体来说,最常见的实现方法也有两种:

    • Setter注入(例如:instance.myObject = new Object()
    • Constructor注入(例如:instance = new Instance( new Object() )

    一个IOC框架,通常由如下三个部分组成:配置、工厂和注入机制。

    配置

    我们可以在配置中描述对象之间的关系。最常用的配置描述方法是在文件中声明。这样的文件有时候也被称为上下文文件(context file)。也可以用元数据/注释(metadata/annotation),甚至直接在程序中描述配置。/

    工厂

    工厂负责配置的解析和所有对象的准备工作,程序一旦运行,就可以根据需要取得这些对象。

    在经典的Spring框架(最流行的Java IOC框架)中,所有对象(我称其为客户对象)都由IOC容器负责准备,并且它们以接口形式声明自己的依赖。在配置文件中,被声明的依赖都被设置为对应的实现类。

    注入机制

    所谓注入机制,是指如何将工厂创建的对象实例注入到应用或其他对象。

    就Spring Web应用而言,注入方法是通过web.xml来实现的。Spring会监听Web应用上下文的加载事件,并利用钩子捕获类加载器的行为,从而分离出任何 需被创建的对象。此后,若有需要,工厂将实例化对象,并填充它所需的依赖。当然在向应用返回对象之前,这些依赖本身也可能需要实例化。这个过程即所谓的 “(将依赖与对象)捆绑在一起”。

    在Flex中,类的加载原理有所不同,因此捆绑方法也就不同。目前有两种方法:

    • 客户对象直接从工厂请求(已捆绑好的)对象
    • 利用内置的Flex事件机制(用于实例化视图)触发注入

    看了一些文章之后发现还是不能够很好的了解Flex IOC框架比如spring Actionscript与Spring BlazeDS Integeration 到底有何不同。
    到spring官方网站一看究竟,目前Spring官方网站上有两个项目:
    Spring BlazeDS Integration
    Spring Ationscript

    这两个项目让你在客户端的Actionscript编码中以及服务端的Java编码中,都能够使用Spring的各种优秀特性。

    两者的不容之处在于

    Spring BlazeDS Integeration 允许你在服务端使用Spring容器来组织你的代码,维护的你代码依赖。并且,把你的服务通过相应的配置暴露给客户端。

    Spring Actionscript则是一个基于Actionscript代码的Ioc容器(目前还不支持AOP).可以让你在客户端使用Ioc管理依赖注入.


    下面分别看下,首先来探讨下Spring Actionscript以及其它的IoC框架。



    Spring ActionScript

    Spring ActionScript前身为Prana,因其成熟度高,成为了一个知名框架。

    核心概念

    任何使用过Spring的Java或.NET版本的人,都会很快熟悉Spring ActionScript。你在运行时加载的配置文件,可以给工厂提供足够信息,用于实例化被应用请求的任何对象。

    基本配置

    在标准例子工程中使用Spring ActionScript,需如下三个基本步骤:

    1. 创建文件application-context.xml
    2. 初始化应用中的工厂对象
    3. 在你的视图层(或其他任何地方),根据需要从工厂获得对象以供使用

    对象工厂和对象配置

    在Spring ActionScript中,对象声明在应用可访问的XML文件(通常命名为application-context.xml)中。此配置文件由XMLApplicationContext(是ObjectFactory的子类)加载。


    Spring ActionScript是一个优秀的、成熟的、开发活动十分活跃的IOC框架,任何用过Spring框架的人都熟悉的。

    以XML形式声明对象存在一个问题,即在XML中声明一个类,并且这个类没被包含在SWF中(因为在你的应用中没有对它的直接引用)时,Flash Player会在运行时抛出异常。其解决办法是创建一个ActionScript类,声明它对上下文XML的依赖,并将此类包含在应用中。


    Parsley

    • 框架:Parsley
    • 网站:http://www.spicefactory.org/
    • 开发者:Jens Halm
    • 版本:2.0.0
    • 许可:开源
    • 配置:XML/MXML/ActionScript

    Parsley也是一个成熟的IOC框架,最初灵感来源于Spring。它近期经历过一次较大规模的重写。新版本支持一些本地Flex特性,如绑定和元数据,使你在配置你的工程时有更多更好的选择。

    核心概念

    Parsley的核心概念是源自于Spring的上下文,也即应用的依赖注入的配置。

    Parsley的配置现在支持多种形式,其中包括XML和MXML。你可以使用本地的MXML标记或Parsley库提供的自定义MXML标签。Parsley使用元数据标签实现对注入机制的支持,这和Swiz框架是类似的。

    Parsley还支持消息模式。基本不需代码干预,你就能将你的对象配置为事件源或事件处理器。在这个例子中,我会用这个特性替代Controller模式。

    基本配置

    Parsley的配置分三个基本步骤:

    1. 创建Config.mxml文件。
    2. 在应用的根部初始化一个Context对象。
    3. 在你的视图中,用Inject元数据实现依赖的注入。

    准备配置文件的方法有多种,不过在这个例子中,我使用支持本地标记和Parsley标签的MXML文件。这种方法的好处是在编译时就将类引入,当然这样一来,也就不能直接修改已被编译的应用的配置了。

    对象工厂和对象配置

    在Config.mxml中,你能看到应用中用到的从域模型到代理的所有对象。声明这些对象的方式有两种:

    1. 标准的MXML
    2. 使用Parsley的对象定义标签

    在后面的内容中,我将详细介绍这种方法。

    总结

    经过其他一些框架的不断启发,新版本的Parsley已发展成为一个完整的IOC框架。它还支持模块式开发和上下文卸载。在模块化Flex应用开发日益盛行的今天,这无疑是一个十分重要的特性


    Spring BlazeDS Integration
    其目标是:开发者可以利用Spring开发模型通过Adobe Flex、BlazeDS、Spring以及Java技术创建RIA。这样我们就可以通过BlazeDS公开Spring管理的服务而无需额外的配置文 件。其优势在于将Spring的易用性与Flex、BlazeDS以及Java整合起来以共同创建应用。
    Spring的核心配置是通过Java bean实现的。借助于bean,任何Java类都能被公开成为服务。

    为了将这些bean公开成为Flex客户端所用的远程服务,Integration项目采用了Spring Web MVC。Spring Web MVC将DispatcherServlet作为一个中央分发器,用以处理任何类型的HTTP请求或是基于HTTP的远程服务。我们可以通过相同的 JavaBean配置方式来配置该DispatcherServlet以将请求转发给相应的处理器进行后续处理。


    posted @ 2009-09-30 11:49 Robert Su 阅读(1334) | 评论 (1)编辑 收藏


    2009年9月26日

    public class B extends Object{
            
    static{System.out.println("Load B");
        }

        
    public B(){
            System.out.println(
    "Create B");
        }

    }

    public class A extends B{
        
    static {
            System.out.println(
    "Load A");
        }

        
    public A(){
            System.out.println(
    "Create A");
        }

    }

    public class testClass {
        
    public static void main(String[] args){
            
    new A();
        }


    }
    写出程序运行结果:

    Load B
    Load A
    Create B
    Create A

    欢迎大家留言发散讨论

    posted @ 2009-09-26 18:38 Robert Su 阅读(199) | 评论 (0)编辑 收藏


    2009年9月7日

    在 myeclipse 的 preferences-属性 中搜索 javascript,搜到以后把它的Editing files 下的 Encoding 改为 Chinese,National Standard 就好了 也就是 GB18030

    posted @ 2009-09-07 17:03 Robert Su 阅读(162) | 评论 (1)编辑 收藏

    an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)

    session出错下次使用的时候报错


    这个bug解决方法还没搞清楚

    posted @ 2009-09-07 11:28 Robert Su 阅读(172) | 评论 (0)编辑 收藏


    2009年9月1日

    问题描述:
    网上关于extjs的comboTree已经层出不穷了
    利用tpl显示tree不是问题
    关键是combo的显示值
    网上的例子多是

    comboxWithTree.setValue(node.id);
    但是这样的显示跟post值不一样

    tree1.on('click',function(node){
           
            var Record = Ext.data.Record.create(
                {name: 'id', mapping: 'id'},
                {name: 'text', mapping: 'text'}
           ) ;
           var t = new Record({
                id: node.id,
                text: node.text
                }
           )
         
           comboxWithTree.getStore().add(t);
           console.debug(comboxWithTree.getStore().data);
           comboxWithTree.setValue(node.id);
           comboxWithTree.collapse();
        });

    posted @ 2009-09-01 18:18 Robert Su 阅读(128) | 评论 (0)编辑 收藏


    仅列出标题  下一页

    posts - 99, comments - 72, trackbacks - 0, articles - 5

    Copyright © Robert Su