zoukankan      html  css  js  c++  java
  • 2016年会成为Java EE微服务年吗?

    原文  http://www.infoq.com/cn/news/2016/02/javaee-microservices

    进入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会在微服务中扮演什么角色?

    查看英文原文: Java EE and Microservices in 2016?

  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/5696437.html
Copyright © 2011-2022 走看看