java开发涉及到的各种框架比较,技术选型

SOA服务框架

Dubbo:

一个分布式服务框架,以及SOA治理方案.

SOA框架有:淘宝的HSF、阿里的dubbo、amazon coral、twitter Finagle,Xfire(ws服务)+OSGI+Spring,支付宝SOA架构,WebService也是古老的SOA。

其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。是远程服务调用中间件。

不过已经不再更新了,不推荐.

axis2:

是新一代的SOAP引擎,Web Services 框架.推荐.

cxf:

是一个开源的 Services框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。推荐.

通信框架

Apache MINA:

大并发量socket 通信框架

是 Apache组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的TCP/UDP 应用程序开发、串口通讯程序。

 

 

Apache Thrift:

可伸缩的跨语言服务开发框架

Facebook实现的一种高效的、支持多种编程语言的远程服务调用的框架。

目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等。其中所用到的数据传输方式包括 XML,JSON 等,然而 XML 相对体积太大,传输效率低,JSON 体积较小,新颖,但还不够完善。Facebook 开发的远程服务调用框架 Apache Thrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#,Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。

 

 

Hessian:

是一个轻量级的remotingonhttp工具,使用简单的方法提供了RMI的功能。相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

 

分布式协调服务框架

Zookeeper:

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

 

 

消息框架

Mule:

Mule是一个企业服务总线(ESB)消息框架.它的主要特性包括:

1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker).
2.可插入的连接性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smtp,pop3,file,xmpp等.
3.支持任何传输之上的异步,同步和请求响应事件处理机制.
4.支持Axis或者Glue的WebService. 
5.灵活的部署结构[Topologies]包括Client/Server,P2P, ESB 和EnterpriseService Network. 
6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中.
7.使用基于SEDA处理模型的高度可伸缩的企业服务器.
8.强大的基于EIP模式的事件路由机制等.

notify:

notify是推模式的消息中间件。

 

Metamorphosis:

Metamorphosis是拉模式的消息中间件。

 

 

集群平台

Terracotter:

是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能定向传送、分布式协作、服务器镜像、分片等技术,允许用户在不改变现有系统代码的情况下实现单机Java应用向集群化应用的无缝迁移。使得用户可以专注于商业逻辑的开发,由Terracotta负责实现高性能、高可用性、高稳定性的企业级Java集群。

terracotta 3.7+tomcat 6.x +apache2.x 集群配置:前台用apache处理静态页面,tomcat处理jsp动态页面,然后将session会话状态分离出来用terracotta做session服务器

 

工作流框架

jboss jBPM:

oracle workflow:

Activiti:

         国内应用的比较广泛,也比较容易上手,推荐.

Shark

osworkflow

你可能感兴趣的:(架构)