2013年3月31日星期日

ADF_206:组件自动绑定到Managed Bean功能

开发运行环境:JDeveloper 11.1.2.3

创建页面时,有一个选项:Automatically Expose UI Components in a New Managed Bean。
勾上这个选项后,往页面中每增加一个组件都会自动Binding到一个Managed Bean的某个属性上。
我个人不太喜欢这个属性,因为不是所有的组件都需要设置binding属性。
但是如果万一你设置了该属性,那么该如何去掉呢?
点击页面,在Design模式下,选择菜单Design->Page Properties...

在弹出的界面中,勾掉Auto Bind,这样以后往页面增加的组件就不会自动Binding到Managed Bean了。

那么,如何去掉之前已经Binding的组件上的binding属性呢?
只能手工去除,好在JDeveloper支持正则表达式,以型如 binding="#{backingBeanScope.backing_untitled1.cb1}"为例,其正则表达式为binding="#\{backingBeanScope\.backing_untitled1.*\}"

按下Ctrl+R,弹出替换对话框,勾上Regular Expressions。
如果怕替换错误,可以勾上Prompted,每次提示替换。

然后,还需要手工删除Managed Bean的Java文件,以及删除掉adfc-config.xml中的Managed Bean的注册信息。

最后要提醒的是,Automatically Expose UI Components in a New Managed 这个选项一旦选中,后面创建的页面也会自动选中该选项。
这一点比较讨厌,所以必须手工重新勾掉该选项,这样以后的页面创建时,默认就不会选中该选项。
个人建议不要勾上此选项,减少不必要的麻烦,只在需要的时候为组件创建Binding。

参考文献:
1. http://tompeez.wordpress.com/tag/automatic-component-bindings/
2. http://hasamali.blogspot.com/2011/09/adf-jsf-stopping-auto-binding-in.html

Cloud_005:微软的云计算解决方案

微软的云计算解决方案可以说是最全面的:既涵盖IaaS、PaaS、SaaS,也包括公有云和私有云。

1. 微软公有云解决方案:Windows Azure Platform + 云应用
(1)Windows Azure
Windows Azure是微软公有云应用平台,使用它你可以创建Virtual Machine、Web Sites、Cloud Services。
有关Windows Azure的简要中文介绍,请访问:http://technet.microsoft.com/zh-cn/cloud/Gg675025.aspx
有关Windows Azure的基本介绍,请访问:http://www.windowsazure.com/en-us/develop/net/fundamentals/intro-to-windows-azure/
有关Windows Azure的PPT介绍,请访问:http://www.microsoft.com/en-us/download/details.aspx?id=8396
有关Windows Azure的具体特性介绍,请访问:http://www.windowsazure.com/en-us/home/features/overview/
想要开始试用Windows Azure?请访问:http://www.windowsazure.com/en-us/develop/overview/
Windows Azure的官方中文博客:http://blogs.msdn.com/b/azchina/
(2)Dynamics CRM Online
(3)Office 365

2. 微软私有云解决方案:Hyper-V Cloud
Hyper-V Cloud = System Center 2012 + Windows Server + Hyper-V。
(1)System Center 2012
Microsoft System Center 2012 是一套完善的管理平台,可供您更容易更高效地管理 IT环境,包括您的服务器基础架构与客户端设备。
通过 System Center 2012,您将获得一套高成本收益的灵活平台,可用于管理您的传统数据中心、私有和公共云,以及客户端计算机和设备。
相比竞争对手提供的碎片化的多点解决方案,System Center 2012 是唯一可用于在一个位置同时管理多种 Hypervisor、物理资源,以及应用程序的统一式管理平台。
有关System Center 2012的基本介绍,请访问:http://www.microsoft.com/zh-cn/server-cloud/system-center/default.aspx。
(2)Windows Server
(3)Hyper-V
Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware和Citrix开源Xen一样的基于hypervisor的技术。
虽然Hyper-V依赖于Windows Server操作系统系,但Hyper-V并不是“宿主”型架构,而是“裸机”型架构。
因为在Windows Server上安装Hyper-V角色后,重新启动计算机时会先加载hvboot.sys文件,这个文件就是Hypervisor层。
依靠hvboot.sys控制硬件,因此应该是裸金属架构。
原来的Windows Server操作系统将被Hyper-V视作计算机上的第一个虚拟机,也称为父分区。

3.微软云计算解决方案的不同点:
(1)现实世界中的IT是复杂的、多元的,可能会跨私有云、公有云以及传统IT。
(2)而微软的解决方案就是可以跨私有云、公有云以及传统IT,在它们之间架起一座桥梁。
(3)在私有云领域,微软提供了一个云优化的操作系统Windows Server和管理解决方案:System Center,它可以管理云中的一切:从基础架构到应用到云。
(4)在公有云领域,微软提供了一个综合的IT平台:Windows Azure。它可以计算、存储、网络能力,以及高级服务,比如关系数据库。

Cloud_004:Google的云计算解决方案



Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。即使是分布式开发的新手也可以迅速使用Google的基础设施。核心组件是三个:

1. GFS (Google File System)
一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。
Google根据自己的需求对它进行了特别优化,包括:超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。
GFS把文件分成64MB的块,分布在集群的机器上,使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。
中心是一个Master节点,根据文件索引,找寻文件块。详见Google的工程师发布的GFS论文。

2. MapReduce
Google发现大多数分布式运算可以抽象为MapReduce操作。
Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。
这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。

3. BigTable
一个大型的分布式数据库,这个数据库不是关系型数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。

以上三个核心组件Google均有论文发表。
大家所熟知的Hadoop与这个三个核心组件的渊源如下:
Hadoop是项目的总称,起源于作者儿子的一只玩具大象的名字。主要是由HDFS、MapReduce和Hbase组成。
HDFS是Google File System(GFS)的开源实现。
MapReduce是Google MapReduce的开源实现。
HBase是Google BigTable的开源实现。

Cloud_003:云计算基本概念

云计算是一种新的资源(服务)交付和使用模式,通过网络获得应用所需的资源(硬件、平台、软件)。提供资源(服务)的网络被称为“云”。云计算的主要目标就是希望IT资源能够像自来水和电力一样,做到随用随取、按量计费。

云计算本质上是一种特殊的分布式计算,除了具有分布式计算的特点之外,云计算的最重要的两个特点是:服务的规模性(Scalability)和动态性(弹性 Elasticity)。正是由于这两个特点,“云”赋予了用户前所未有的计算能力。

按照服务的公开与私密性,云计算分为两种:公共云和私有云。

公有云是指通过因特网动态的、灵活的、自助方式地获取资源。

私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。
该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。
私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所。
私有云可由公司自己的 IT 机构,也可由云提供商进行构建。
在此“托管式专用”模式中,像 Oracle、IBM这样的云计算提供商可以安装、配置和运营基础设施,以支持一个公司企业数据中心内的专用云。此模式赋予公司对于云资源使用情况的极高水平的控制能力,同时带来建立并运作该环境所需的专门知识。

就规模性来讲,Google的“公有云”已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo的“公有云”也拥有几十万台服务器。企业的“私有云”一般拥有数百至上千台服务器。
按照服务的类型,云计算分为三种: IaaS、PaaS、SaaS。
(1)IaaS:基础架构即服务 Infrastructure as a Service
代表厂商及产品:Amazon Web Service
AWS提供了EC2(Elastic Compute Cloud)的云计算环境,对外提供计算能力的出租,也提供了S3(Simple Storage Service),提供简单存储服务。
(2)PaaS:平台即服务 Platform as a Service
代表厂商及产品:Oracle 共有云、Cloud Bees、Google 应用引擎。
(3)SaaS:软件即服务 Software as a Service
代表厂商及产品:SalesForce.com、Google Mail、Microsoft CRM Online、Microsoft Office 365。

这三种服务类型的云计算恰好可以用电力系统来参照说明。
成为云计算基础设施提供商的,毫无疑问应该是发电厂。正是因为它们的存在和它们的设备,使得IT资源被发掘出来。
无论是构建私有云、公共云还是混合云,首先需要的就是有资源可供分配。作为云计算解决方案软件提供商,微软和VMware、红帽公司应该说扮演了类似电网系统的角色,将资源进行分配、灵活调度,其中的计费系统还能够进行云计算使用量的测度和结算。
作为Google和Amazon等这样的云计算服务提供商,或者企业私有云的拥有者,能够为最终用户提供相关的云计算服务,这有点类似于电器设备对电力资源的使用。

Cloud_002:虚拟化产品对比

1. VMWare
VMWare是VMM的一大供应商,美国上市公司。它的VMM产品目前有两大系列:免费的ESXi,收费的vSphere。
ESXi支持服务器整合等基本的VMM功能;而vSphere则支持了更多的更高级的特性,比如动态迁移、负载均衡...... 这些高级功能可以让基于VMM之上的应用有更高的可用性、可靠性、容灾度等。

2. Citrix
Citrix的产品也是分成了两大类:免费的XenServer,收费的Essentials。
XenServer虽说是免费的,但也是声称支持企业级应用,所以有动态迁移等功能。

3. Xen
提到VMM,必须要讲Xen。Xen本身是开源的,很多商业的发行Linux中也集成了Xen的rpm包,一些企业也在使用这些不同版本的Xen搭建虚拟化环境。

4. Hyper-V
Hyper-V是集成在Windows Server 2008里的,可以实现服务器整合、快速迁移等功能。
因为Windows Server是收费的,这个也应该算收费的。微软的号召力也很强大,有很多的第三方软件公司基于Hyper-V进行二次开发,进一步提升Hyper-V的功能。



Cloud_001:与云计算有关的基本概念


1. 分布式计算
透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。这种技术,即称之为分布式计算。
通过这项技术,网络服务提供者可以在数秒之内处理海量的信息,其性能可与“超级计算机”相匹敌。

2. 网格计算
网格计算是分布式计算和并行计算的“合体”。
它由多个组织提供的共享的计算资源或计算环境,将一个松耦合的网络上的计算机集群组成一个超级的虚拟计算机,来完成大型的工作任务。但其网络服务的可靠性和安全性没有保障,服务质量也得不到保证。

3. 虚拟化
虚拟化是一种隔离与共享物理资源的技术,是云计算的重要技术支撑。
比如,CPU的虚拟化技术可以允许单CPU模拟多CPU并行;操作系统的虚拟化技术可以允许单个硬件平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
Hypervisor是运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也叫做VMM( Virtual Machine Monitor ),即虚拟机监视器。
图1. Hypervisor

Hypervisor是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。
目前市场上各种x86 管理程序(hypervisor)的架构存在差异,三个最主要的架构类别包括:
(1)“裸机”型
虚拟机直接运行在系统硬件上,创建硬件全仿真实例,操作系统安装并且运行在Hypervisor之上。裸机型的Hypervisor最为常见的一种类型。
(2)“宿主”型
虚拟机运行在操作系统上,同样创建的是硬件全仿真实例。
(3)“操作系统虚拟化”型
虚拟机运行在操作系统上,并创建一个独立的虚拟化实例容器,指向底层操作系统。



 图2. Hypervisor三种架构图

3.1 存储虚拟化
将存储作为池子一样,存储空间如同一个流动的池子的水一样,可以任意地根据需要进行分配。通过将一个或多个目标服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。典型的虚拟化包括如下一些情况:屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。

3.2 应用虚拟化
应用虚拟化将应用程序与操作系统解耦合,为应用程序提供了一个虚拟的运行环境。在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。从本质上说,应用虚拟化是把应用对低层的系统和硬件的依赖抽象出来,可以解决版本不兼容的问题。

3.3 桌面虚拟化
桌面虚拟化是指将计算机的桌面进行虚拟化,以达到桌面使用的安全性和灵活性。可以通过任何设备,在任何地点,任何时间访问在网络上的属于我们个人的桌面系统。
目前市场主要厂商及产品:VMware Workstation、VMware Server、VMware Player、微软的Virtual PC Server等。

3.4 服务器虚拟化
将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,或者让几台服务器变成一台服务器来用,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力。
目前市场主要厂商及产品:VMware vSphere、微软Hyper-V、Citrix XenServer 、IBM PowerVM、Red Hat Enterprise Virtulization、开源的KVM、Xen、VirtualBSD等。

4. OSGi (Open Service Gateway Initiative)
OSGi是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。
OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。
如果说目前云计算技术的弹性做到的是CPU、内存、存储和网络的话,那么OSGi做到的是应用模块的弹性,借助于OSGi,各终端客户或租户管理人员可以非常容易的启停自己的应用模块。

2013年3月12日星期二

Tools_019:使用DownloadHelper下载网站视频

如果你需要下载网站中的视频,那么DownloadHelper是个不错的选择。
DownloadHelper是Firefox的一个插件,下载地址:https://addons.mozilla.org/en-US/firefox/addon/video-downloadhelper/

安装后,在Firefox的工具栏上会有这样一个图标:
同时,在你的Tools菜单中,也会有DownloadHelper子菜单。

DownloadHelper使用方法非常简单,比如我们访问一个有视频的页面:http://www.oracle.com/technetwork/developer-tools/adf-mobile/overview/index.html。
如果你查看页面源码,将会发现很难找到其中视频的真实URL。

而DownloadHelper会帮助你找到视频的真实URL,当DownloadHelper转动时,说明有视频可以下载,点击图标可以直接下载,或者查询视频的真实URL。

怎么样,简单吧,以后如果下载视频,包括优酷和Youtube上的视频,DownloadHelper帮你轻松搞定。