2016年会成为Java EE微服务年吗?

进入2016年时间还不是很长,让我们回顾下去年年底的一个预言。去年12月,来自C2B2的Steve Millidge预测,2016年将会成为Java EE微服务年。在一定程度上,这是基于Steve在JavaOne上的演讲,他在演讲中详细地讨论了这个主题。此外,Steve还是Payara的联合创始人,Payara的目标用户也是对微服务感兴趣的Java EE开发人员。Steve还认为,SOA和微服务之间的差别很小,这种观点我们以前听说并且报道过。他在视频中指出:

“微服务与SOA没什么不同。它还是关于SOA”。

当然,现在还存在争论,因为他的背景和当前的工作重心,Steve可能会发现自己很难保持客观的态度。不过,早在2014年,微服务还处于起步阶段,Adam Bien就描述了理想的Java EE微服务:

[...]理想的Java EE微服务是一个单[实体控制边界]组件,在一个WAR包中,部署在单台服务器/域中。在这种情况下,开发人员可以单独地发布和重新部署单个组件(又称微服务)。WAR包之间不可能直接调用方法,因此,WAR包将不得不使用比如JAX-RS来彼此通信。

我们在去年年底就微服务、DevOps和Java EE相关内容采访了Markus Eisele,他详细论述了自己为什么认为Java EE将会在微服务生态圈的发展中扮演重要的角色。还有一些其他使用Java EE编写微服务的方法,包括TomEE和WildFly。KumuluzEE是JavaOne 2015 Duke选择奖的其中一个获奖者,该框架是一个Java EE微服务框架。该框架的联合创建者Matjaz Juric解释说:

KumuluzEE是第一个使用标准Java API的微服务框架。微服务架构的重点是将应用程序开发成服务并将这些服务单独部署;没有一个框架提供自动化部署和配置,是不可能使用Java EE实现真正的微服务架构的。

让我们看一些人们如何看待微服务和Java EE的其他例子,这会非常有趣,因为有些人严格来讲并不属于传统的Java EE领域。例如,早在2014年,Alex Soto就论述了为什么Java EE和RxJava是一个很棒的方案。不过,并不是每个人都认可使用Java EE能使开发人员采用微服务。正如Rick Hightower所说的那样:

如果你将一个WAR文件部署到一个Java EE容器,那么你很可能不是在做微服务开发。如果你在一个容器或EAR文件中包含超过一个WAR文件,那么你肯定不是在做微服务开发。如果你将服务部署为AMI或Docker容器,而且你的微服务有一个main方法,那么你可能是在编写微服务。

而且,Rick也不认为微服务与SOA相同:

事实上,它们在许多方面是完全相反的。例如,SOA往往采用WSDL,后者是一种非常严格的、强类型的服务端点定义方式。WSDL和XML模式中所有的未知量都来自XML。

当然,我们已经多次讨论过,SOA和Web Service常常没有关系。不过,Rick及其他一些人确信,Java EE太过臃肿或者说笨拙,以其为基础构建微服务并不合适。Jeppe Cramon认为,Java EE之所以是一个糟糕的基础还有更为根本的原因:

如果我们将两路(同步)通信与小/微服务结合使用,并根据比如“1个类=1个服务”的原则,那么我们实际上回到了使用Corba、J2EE和分布式对象的20世纪90年代。遗憾的是,新生代的开发人员没有使用分布式对象的经验,因此也就没有认识到这个主意多么糟糕,他们正试图重复历史,只是这次使用了新技术,比如用HTTP取代了RMI或IIOP。

如果微服务和SOA密切相关,那么可能会有一种观点,就是微服务可以像SOA那样采用一种技术无关的方式。你认为呢?2016年会成为Java EE微服务年吗?如果有的话,Java EE会在微服务中扮演什么角色?

本文转自d1net(转载)

时间: 2024-07-30 14:41:28

2016年会成为Java EE微服务年吗?的相关文章

Apache发布支持Java EE微服务的Meecrowave服务器

Apache OpenWebBeans团队希望通过使服务器适应用户来消除复杂性.所以,该团队发布了Apache Meecrowave项目1.0版. Apache Meecrowave是一款小型服务器,非常适合微服务和独立服务.Apache OpenWebBeans表示, "Apache Meecrowave是一个基于Apache OpenWebBeans,Tomcat,CXF和Johnzon的微型服务器.换句话说,它包含了所有你需要从命令行运行基于JavaEE的微服务,而且只有9 MB.&quo

使用Java构建微服务

本文讲的是使用Java构建微服务,[编者的话]本文翻译自Dzone Guide to the Java Ecosystem,Dzone是一个关于Java的优秀网站.文中介绍了几种用Java构建微服务的方法,包括Container-less.Self-contained以及In-container.翻译经验不足,如有错误,请慷慨指出. @Container容器技术大会将于2016年1月24日在北京举行,来自爱奇艺.微博.腾讯.去哪儿网.美团云.京东.蘑菇街.惠普.暴走漫画等知名公司的技术负责人将分

使用 Java 构建微服务

快速浏览 在Java生态中,构建微服务的策略包括Container-less,Self-contained,以及In-container等. Container-less微服务将应用及其依赖打包成一个单一的jar文件. Self-contained微服务也是打包成一个单一的Jar文件,但它还包括一个嵌入式框架,这个框架含有可选的第三方lib,当然这些lib是兼容的. In-container微服务打包成一个完整的Java EE容器,该服务在Docker镜像中实现. 基于微服务的架构给架构师和开发

微服务:Java EE的掘墓人

在Java问世之初,包括IBM.BEA.Oracle在内的一些巨头公司看到了Java作为一门杰出的Web编程语言可能给他们带来的巨大商机.那么如何通过一门编程语言来赚钱呢?答案就是使用这门语言构建复杂无比的服务器,让那些大公司支付一大笔费用来购买这些服务器.于是紧接着就出现了Java EE规范.JSR规范,以及WebLogic.WebSphere等服务器中间件. 在这些服务器上面部署了大型的程序包,它们运行缓慢,消耗大量的内存.基于这些容器的开发和调试对开发人员来说简直就是噩梦,作为对他们的补偿

将Java EE单体应用打造成微服务

本文讲的是将Java EE单体应用打造成微服务[编者的话]如何将单体应用拆分成微服务相信是很多人共同的疑问,本文作者就技术和组织结构等方面为我们提供了一个思路,一起来看看吧~ 紧接着上篇为什么微服务应该是事件驱动的介绍博客,我还想再花一些文章和篇幅就这块为我即将参加的一些演讲做些准备(与你相约jBCNconf及在旧金山的Red Hat峰会).你可以通过在twitter上关注我@christianposta来跟进这个项目的最新进展.在本文里,我们将讨论第一部分,即如何拆分一个单体应用. 这些文章里

Velocity China 2016:阿里巴巴Aliware EDAS微服务解决之道

原文:http://mp.weixin.qq.com/s/F6_E8RxwLrWIe5nslOfuSQ 如今的阿里巴巴平台上,业务生态百花齐放,新的创新业务不断涌现,而这都得益于阿里底层的微服务架构高可扩展.而谁能想到,早在10年以前,偌大的淘宝网站点都是运行在单一的部署包内,往往对其中一个模块的改动都会牵一发而动全身. 自从2007年以来,在这近10年时间里,阿里巴巴技术团队一直在微服务的道路上摸索前进着,其间伴随着互联网和移动互联网的盛行,海量的用户一次又一次的洗礼了各个机构的IT系统,而在

甲骨文宣布因 '主要增强功能'延迟发布Java EE 8

甲骨文(Oracle)公开承认不得不再一次延迟Java  8企业版的发布.新版Java企业版(Java EE)将于2017 年底上架,比原定计划推迟了至少六个月.甲骨文上一次调整发布日期是今年6月,其时的计划发布日期是明年"上半年". 甲骨文Java EE 和应用程序服务器开发副总裁Anil Gaur在美国加州旧金山的召开的甲骨文JavaOne大会上公布了新日期. Gaur承诺Java EE 9 将于Java  EE 8发布后的一年后发布,即是说 2018年年底. Gaur 表示,Ja

Java EE供应商和伦敦Java用户组宣布新的MicroProfile

在上次DevNation大会期间,Red Hat.IBM.Tomitribe.Payara和伦敦Java社区宣布创建MicroProfile,这是一种设法利用Java EE技术创建供应商中立的微服务框架的新方案.其目标是在2016年9月发布第一个公开版本,让开发人员可以使用Java更轻松地创建可移植的微服务.对此,来自伦敦Java社区的Martijn Verburg是这样说的: 我们最初的目标是为最熟悉企业级Java(如果你愿意,可以说Java EE)的开发人员开个头,让他们可以用一种供应商无关

Oracle 宣布 Java EE 8 推迟到2017年年底发布

经过数周的猜测,甲骨文集团副总裁,负责 Java EE 和 WebLogic Server 的 Anil Gaur,在2016的 Javaone 盛会上正式公布了 Oracle 为 Java EE 规划的路线图.计划在2017年底发布具备基础微服务和云服务能力的 Java EE 8,2018年底发布 Java EE 9. 对于新特性,Anil Gaur 表示,虽然新的应用开发方式像是 reactive programming (响应式编程)和 containerisation 能带来较大的好处,