企业开发java主流框架技术选型整理

java后台的技术很多,在做新项目的时候会遇到项目技术选型问题。一般是根据项目或者业务情况来选型技术的,要根据项目复杂度,周期,团队成员技能等等来选型技术,比如比较合适技术,但是团队成员没用过,就要考虑学习成本,开发周期等等。欢迎一起来探讨一下公司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 进行无缝集成。推荐.

工作流框架

jboss jBPM:

oracle workflow:

Activiti:

国内应用的比较广泛,也比较容易上手,推荐。但是要拿Activiti做到中国式的企业级应用门槛和难度很高。想用Activiti来做企业应用,其实还需要做大量的开发封装。

Shark

osworkflow

如果java底子不好的话,可以试试国内最新自主研发的XJR快速开发平台工作流。

XJR基于B/S结构,采用主流的Activity工作流引擎,遵循bpmn规范,可实现XML、Json一键导入导出,以及添加了人员动态选择、便捷式会签设置、便捷式任务委托设置、添加自定义表单、自定义节点按钮、动态变量选择(包括会签变量、按钮变量、表单变量)以及各节点属性优化,遵循以使用者为中心的优化原则,通过可视化配置界面,只需要拖拽组件,拼接流程,可视化操作,所见所得就能实现各层的审批。将整个流程的操作变得简单、快捷,实现0基础短时间可自由编辑流程模板。

通信框架

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的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

集群平台

Terracotter:

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

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

消息框架

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是拉模式的消息中间件。

猜你喜欢

转载自www.cnblogs.com/wosoft/p/12468092.html
今日推荐