平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术

介绍

由于世界仍在Java的掌控之中,因此我们经常定义所谓的基于组件的平台 。 我在2000年的OpenUSS(开放大学支持系统)方面拥有这一经验。 当时我有一个想法,就是开发一个可以使用组件体系结构和J2EE技术​​( OpenUSS Component Architecture )进行扩展的平台。 一段时间后,我们看到了门户和Portlet技术的诞生。 每个人都试图构建可轻松安装在基于Java的门户服务器中的portlet。 您还记得所有这些门户网站,例如Apache Jetspeed,Liferay,JBoss Portal,IBM Webshepe Portal等吗?

门户网站浪潮过后,出现了OpenSocial小工具 ,该工具不仅为Java指定,而且通常可用于不同的技术实现。 它使用完全独立于Java的HTMLJavaScriptREST 。 Apache Shindig是OpenSocial小工具容器的开源实现。 OpenSocial小工具还是iGoogle,Orkut,MySpace,XING和StudiVZ的主要技术。 使用OpenSocial,您可以通过两种不同的方式集成Web应用程序

今天,您仍然拥有诸如Portal,Portlet和OpenSocial小工具之类的技术,但是它们不再具有吸引力。 iGoogle已死, 没人愿意在新的Web应用程序中使用门户和Portlet技术 。 如今,所有重要的Web应用程序都不再使用这些门户,Portlet和小工具。 这些技术的增长肯定会降为零

平台

如今, 平台通常由两个元素组成:

  • 适用于网络浏览器的Web App :今天,它仍然是使用最多的应用程序。 笔记本电脑,台式机,平板电脑和智能手机用户使用此类应用程序。
  • 本机应用程序的平板电脑,智能手机和穿戴式:只有在少数情况下,你仍然需要台式机应用程序和笔记本电脑作为web应用是用于该用途的情况一天比一天好。 当今,针对智能手机,平板电脑和可穿戴设备的最具针对性的平台是AndroidiOS

让我们详细看一下这两个元素。

网络应用

如上所述,我们不再需要那些门户,Portlet和小工具。 我们是否还在寻找基于组件的平台? 我们是否仍然需要遵循以下要求,而这些要求通常是通过使用门户网站,Portlet和小工具来解决的

  • 汇总内容和应用
  • 跨应用程序集成
  • 提供统一的用户界面
  • 支持统一的Web应用程序开发平台
  • 个性化内容和服务
  • 部署用于发布动态页面的框架

答案是肯定的,但主要重点转移到了不同​​领域 。 Web应用程序开发的新趋势是所谓的渐进式Web应用程序 (PWA)。 今天更重要的是专注于用户体验而不是Web应用程序本身 。 以下是渐进式Web应用程序定义 (摘自Google Developers Code Lab):

  • 渐进式–适用于每个用户,无论浏览器选择如何。
  • 响应式–适合任何外形:台式机,手机和平板电脑。
  • 独立的连接性–增强了服务人员的能力,可以离线或在低质量的网络上工作。
  • 类似于本机应用程序–通过应用程序风格的交互和导航,用户感觉就像一个应用程序。
  • 新鲜-由于服务人员的更新过程,始终保持最新状态。
  • 安全-通过HTTPS提供服务,以防止监听并确保内容未被篡改。
  • 可发现–由于W3C清单和服务工作者的注册范围,可以将其识别为“应用程序”,从而使搜索引擎可以找到它。
  • 可重新参与–通过推送通知等功能使重新参与变得容易。
  • 可安装–允许用户在主屏幕上“保留”他们认为最有用的应用,而无需麻烦应用商店。
  • 可链接–通过URL轻松共享,不需要复杂的安装。

因此,主要重点

  • 门户网站,它被定义portlet和小工具 ,使企业的寿命(交付的门户网站,门户,小工具)和开发人员 (其中写门户网站,门户,小工具), 易于
  • 渐进式Web应用程序 ,使用户感到高兴。

这并不意味着使用渐进式Web应用程序我们就无法交付上述要求。 让我们详细了解所有需求点。
 

(1)汇总内容和应用程序,并跨应用程序进行集成

使用渐进式Web应用程序,情况看起来会有所不同。 您将不会使用Portlet进行这样的集成。 相反,它将是使用相同工具栏的许多Web应用程序的集成,并且每个Web应用程序都像一个独立的应用程序一样工作。 这是一个比较。

集成门户

门户和Portlet集成:带有门户和Portlet的netvibes

在Portal和Portlet集成中,每个Portlet可以作为单独的Web应用程序最大化。

渐进式

与Google Web Apps进行渐进式Web Apps集成:Google+,收件箱,搜索等。

在Google关闭之前,我是iGoogle(来自Google的OpenSocial Gadgets解决方案)的愉快用户。 一开始我以为我需要像netvibes一样寻找替代品。 最后,我一点都不会错过。 如果我需要获取信息,则最需要全屏模式的信息 。 因此,最后,我总是需要一个整体的Web应用程序, 而不仅是一个小Portlet 。在渐进式Web Apps集成中,每个图标都定义了一个Web应用程序,它将作为独立的Web应用程序单独打开,以遵循Native的规则。 类似于应用程序

(2)提供统一的用户界面

两种类型都可以支持统一的用户界面。 渐进式Web应用程序使用常见的UI模型,例如Google Material DesignBootstrap 。 Portal,Portlet和小工具大多具有使用Portal Container中的外观的机制。

(3)支持统一的Web应用开发平台

这是渐进式Web应用发挥作用的地方。 只要该Web应用程序使用HTMLJavaScript,CSSREST ,就可以在不同的技术堆栈(如Java,PHP,JavaScript等)中实现。 由于在这样的渐进式Web应用程序中没有任何“门户容器”,因此您可以垂直使用所选的技术堆栈 。 而门户和Portlet部署是基于门户容器的 。 因此,如果将Tomcat用作容器,则必须将Portlet部署在该容器中。 当然,您可以拨打远程服务电话,但这不是标准情况。

(4)个性化内容和服务

这是Portlet展示其强大特性的地方。 您可以根据需要关闭和打开portlet。 如果您在上方看到Google工具栏,则还可以个性化内容。 因此,在这种情况下,渐进式Web应用程序可以通过其Web应用程序的个性化设计执行相同的操作。
 

(5)部署发布动态页面的框架

这也可能与这两种类型和趋势去微服务

总之,您仍然可以使用Progressive Web Apps满足上述要求。 此外,您可以使用标准Web组件构建基于组件的Web应用程序。 可以在此处看到渐进式Web应用程序的一些实际使用案例:

本机应用

如果没有照顾最常用的客户端(手机和平板电脑)的平台策略,那就是失败。 以下是当今客户端设备及其操作系统的类型:

  • 装有Windows,Linux和MacOS的台式机笔记本电脑 :在大多数情况下,您只需要带有Web应用程序的Web浏览器(Firefox,Internet Explorer,Edge,Chrome和Safari)。 无需为每个操作系统构建本机应用程序,只需使用Progressive Web Apps 。 以下是一些事实:
  • 装有Android和iOS的平板电脑 :目前,您需要为Android和iOS构建本机应用程序。 但是在许多情况下,带有渐进式Web应用程序的Web应用程序可能是解决方案,因为Web应用程序可以执行与本机应用程序几乎相同的功能,尤其是随着HTML5的到来。
  • 具有Android和iOS的手机 :如目前在平板电脑区域中一样,您需要为Android和iOS构建本机应用程序。 由于屏幕大小,我们可能需要开发本机应用程序。 但是,渐进式Web应用每天都在做得更好(请参见下面的图片以及Flipkart和Air Berlin的两个示例)。
  • 配备Android Wear,Android Auto,Android TV,watchOS,Apple CarPlay和tvOS的可穿戴设备, 小工具, 汽车和 电视 :这是您必须编写本机应用程序的区域,因为较小的设备将无法运行网络浏览器。
天气

具有材质设计的渐进式Web应用程序

Java实现技术

为不同的目标系统开发应用程序非常昂贵。 渐进式Web应用程序的想法很棒,因为它使您无需为每个操作系统编写本机应用程序。 但是仍然在某些情况下(至少在当前情况下),我们需要构建本机应用程序。 为此目的并节省资源,有所谓的混合应用程序开发 。 有很多带有HTML用户界面混合应用程序框架

这种技术的问题在于HTML UI并不是真正的原生。 因此,存在第二种类型的混合应用程序 ,即具有本机UI的混合应用程序框架 。 在这种情况下,您仍将在每个操作系统中使用本机UI,并使用例如相同的编程语言来覆盖其余内容。 由于Java仍然是排名第一的编程语言 ,因此明智的做法是将平台策略基于Java。

平台比较专家

比较渐进式Web应用程序–具有HTML UI的混合应用程序–具有本机UI的混合应用程序

下图显示了运行时渐进式Web应用程序具有HTML UI的混合应用程序和本机UI之间的比较。

Java为我们提供什么样的工具和产品来实现上述技术?

(1)基础

(2)基于渐进式Web应用程序的Web应用程序

(3)具有HTML UI的本机应用程序

  • Android和iOS的外观上使用mGWT和mGWT PhoneGap :使用相同的Java,GWT和PhoneGap / Apache Cordova技术,您可以使用HTML UI编写本机应用程序。 您可能应该使用Progressive Web Apps技术,而不是使用该技术,因为HTML UI看起来并不是本机的。 渐进式Web应用程序是相同的,您可以在Web和移动设备上编写一次。

(4)具有本机UI的本机应用程序

  • 在Android中,您可以仅使用Java来实现本机UI,不需要任何特殊的解决方法。
  • 在iOS中,您需要使用Objective-C来实现本机UI。 使用诸如J2ObjC (Java到Objective-C的编译器)之类的开源产品将极大地重用Java代码。
  • Google Inbox这样的产品使用GWT和J2ObjC在同一时间跨操作系统(Web,Android和iOS)交付相同的功能。

平台策略

那么,我们今天如何定义平台策略? 以下是我的总结:

(1)基础

  • 如果您使用Java作为编程语言的Spring引导Spring云为您的microService archtiecture实现。 但是最后,您可以使用不同的实现技术,例如Java,.NET和其他。 在下一点中使用这些标准很重要。

(2)服务器端和业务逻辑

  • 使用RESTfulJSON进行mircoservices之间的通信。
  • 在此平台策略中,必须使用OpenId ConnectOAuth 2进行身份验证和单点登录,以便您能够将所有微服务与所有不同的实现技术集成在一起。

(3)用户界面

  • Portal和Portlet已死 。 将渐进式Web应用程序用于任何可能的应用程序。 如果您需要集成许多Progressive Web Apps,则只需使用集成或工具栏,就像Google对其产品所做的操作一样(请参见上面的Google+图片)。
  • 如果需要本机应用程序,请使用本机UI而不是HTML UI的混合应用程序框架来构建它们。
  • 以下是一些开源产品 ,它们使您可以更轻松地在Java中使用Native UI构建Progressive Web Apps和Native App: GWTJ2ObjC 。 考虑使用它们可以提高生产率和上市时间。

当今的平台策略不必将每个单独的实现都基于相同的语言,即使您的团队只强调相同的语言,而Java仍然是可用的顶级编程语言。 本文结尾的下一张图片显示了基于Java的技术平台的最新实现技术。

平台策略

基于Java的平台实现技术


翻译自: https://www.javacodegeeks.com/2016/09/platform-strategy-portlets-opensocial-gadgets-progressive-web-apps-state-art.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值