存档

2009年10月 的存档

Struts 2 Architecture

2009年10月26日 没有评论
Struts2是 Apache Struts的下一代产品, 它WebWork项目进行合并, 并以XWorkWebWork代码作为Struts2的基础.


Struts2 包含以下核心内容: Actions, Interceptors, Results, Validation, OGNL, Tags, View Template, JSP, FreeMarker, Velocity, Plugin.

可以说 Struts2 Java Web 开发的事实标准, 它具备以下能力:
  • 基于 Action的框架, 基于成熟的 XWork框架;
  • 拥有由积极活跃的开发人员与用户组成的成熟社区;
  • AnnotationXML配置选项;
  • 基于 POJO并易于测试的 Action;
  • Spring, SiteMesh Tiles的集成;
  • OGNL表达式语言的集成;
  • 基于主题的标签库与 Ajax标签;
  • 多种视图选项 (JSP , Velocity, Freemarker XSLT);
  • 使用插件来扩展或修改框架特性.

Struts2 用户请求的处理流程:

  1. User Sends request;
  2. FilterDispatcher determines the appropriate action;
  3. Interceptors are applied, 完成 validation, file upload等功能;
  4. Execution of Action;
  5. Output rendering;
  6. Return of Request;
  7. Display the result to user.

Struts 2 整体架构图:

更多Struts 2 的信息请访问: http://docs.huihoo.com/apache/struts/


一些可用的 RTMP Servers

2009年10月24日 1 条评论

Adobe:
– Flash Media Server http://www.adobe.com/products/flashmediaserver/
– LiveCycle DS http://www.adobe.com/products/livecycle/dataservices/

Non-Adobe:
– Red5 http://osflash.org/red5 (Java)
– Wowza http://www.wowzamedia.com/ (Java)
– WebOrb http://www.themidnightcoders.com/products.html (.NET, Java)
– ErlyVideo http://code.google.com/p/erlyvideo/ (Erlang)
– RubyIzumi http://code.google.com/p/rubyizumi/ (Ruby)
– RTMPD http://www.rtmpd.com/ (C++)
– Cygnal http://wiki.gnashdev.org/Cygnal (C++)
– RTMPy http://rtmpy.org/wiki/RTMP (Python)
– RTMPlite http://code.google.com/p/rtmplite/ (Python)
– MammothServer (OpenFMS) http://mammothserver.org/ (C++)

来源: http://www.flashrealtime.com


分类: Ajax,RIA 标签: , ,

Sun 10大技术创新

2009年10月13日 没有评论

Sun CEO Scott McNealy 在 Oracle OpenWorld 2009 大会上发表演讲时总结出来自Sun公司的10大技术创新. 它们是:

  1. NFS/PC-NFS Technology
  2. SPARC (first 7-10 MIPS workstation under $10K)
  3. Open Source Software
  4. BSD + UNIX System 5 = Solaris
  5. Java (Java card, Java SE/ME/EE and Java FX)
  6. E10K (64-way Solaris)
  7. ZFS/Open Storage/Flash (Exadata)
  8. Project Blackbox, world’s first modular datacenter
  9. SunRay
  10. Chip Multi-threading “CoolThreads”

全文


分类: Oracle & SUN & BEA 标签:

OpenSplice DDS: The Open Source Messaging

2009年10月12日 没有评论

OMG Data Distribution Service 可能会在类似Twitter和新浪微博等实时Web应用中得到广泛应用.

OpenSplice DDS 以其独特的设计和超高的性能而备受关注.


OSGi 4.2 发布

2009年10月7日 没有评论

OSGi 4.2 规范最终版已经发布.

OSGi 4.2 新版的一些内容:

  • 框架加载(Framework Launching)。虽然我们可以从Java应用中运行嵌入式OSGi引擎(比如Equinox的Servlet桥),但这种方式却将应用与具体的引擎绑定在了一起。借助于包装器(比如Pax Runner)可以通过相对简单的方式将特定于引擎的内容编码到引擎中来启动。现在可以通过一种透明的机制进行加载了,这意味着可以加载一个OSGi运行时而无需担心是哪个运行时。这样我们就可以通过替换启动类路径上的JAR文件在Equinox及Felix下测试应用了。
  • 远程服务(Remote Service。过去叫做分布式OSGi及RFC 119,现在称作远程服务的技术是用于连接多个OSGi VM的。远程服务采用了服务的概念(这对于动态OSGi应用来说非常关键)并提供了一种机制以将服务公开给远程使用者(使其可以在本地使用远程服务)。并不像其他方式(比如RMI)那样,远程服务无需实现不同的接口或是抛出受检查的异常。同时它也不会假设万物都会正常工作,而是认为OSGi服务是动态的,无论如何服务都能够在OSGi环境下抛出并处理异常。
  • Blueprint服务(Blueprint Service)。对于熟悉Spring IoC与DI的开发者来说会发现Blueprint服务与其有异曲同工之妙。客户端可以根据外部的配置文件来决定连接到哪些服务上,同时还会动态连接这些服务。就像声明式服务那样,你可以约束所用的服务类型(比如强制与否等),但与声明式服务不同的是,在缺少服务的情况下Blueprint服务会提供一个相应的代理。在客户端代码与服务进行交互时,客户端会被阻塞住直到定位到服务之后。最后,凭借Blueprint服务之类的特性,我们可以避免应用中出现特定于容器的代码,这样无论系统运行在OSGi运行时内部还是外部都是大有裨益的。
  • Bundle跟踪器(Bundle Tracker)。OSGi早就有了一个服务跟踪器(Service Tracker)用于监控进出的服务,Bundle跟踪器是对服务器跟踪器概念的一个延伸,用于监控bundle的信息。此前服务可以通过BundleListener来动态查看进出的bundle,而BundleTracker也达到了同样的高度,就像ServiceTracker之于ServiceListener一样。我们可以通过这个特性执行动态注册之类的功能,就好象是Blueprint服务或声明式服务读取或处理元数据一样。比如说,Web引擎可能会通过HttpService自动扫描新安装的bundle和自动注册的Servlet。
  • 服务钩子(Service Hook)。除了判定当前的服务外,我们还可以拦截服务之间的事件并对其进行过滤。这可用来实现基于角色的许可模型或是根据产品的不同而开启不同的功能集。此外还可以通过拦截另一个bundle的事件而提供代理(或是负载平衡)同时又隐藏这些事件,然后用另一种机制进行代理(比如说分布式服务)。监听器钩子可以按需实现这些功能而无需提前注册。
  • 条件许可(Conditional Permission)。OSGi 4.2中许可的一大变化是增加了DENY访问及允许访问的能力。通过与证书签名的结合,这种方式可以显式指定某个bundle的子集上都允许哪些许可权限。这有助于创建安全的OSGi平台,可以阻止安装那些未授权的bundle。

详细内容请见


分类: Architecture 标签: