jetbrains java 编辑器(JetBrains发布Projector用于远程访问IDE)

日前IDE巨头JetBrains宣布开源发布一个工具Projector。可用来通过网络远程运行JetBrains IDE和Swing应用程序的工具和框架。

jetbrains java 编辑器(JetBrains发布Projector用于远程访问IDE)(1)

概述

了解JB IDE的同学可能都知道,其IDE都是Java开发,其UI界面都是用Swing组件来绘制的。其他一些基于IntelliJ的IDE(比如Android Studio)的架构也都是这样的。尽管JetBrains IDE和Swing应用程序用等工具都桌面APP,但是随着移动互联网的发展,对其Web化和客户端(瘦客户机)也有了很多需求。

Projector就是这样的一个工具,通过自托管的Projector平台,在服务器上运行基于IntelliJ的IDE和基于Swing的应用程序,然后通过浏览器和客户端应用程序远程访问。Projector立足于解决:

更接近运行时和数据库开发代码,以减少访问环节。

通过统一管理集中开发环境,提高安全性。

一些大型项目的开发需要。

防止码农在本地复制代码。

解决开发者本地硬件条件不足的问题。

实现瘦客户。

需要在Windows上实现运行于GNU/Linux环境(甚至是ChomeOS)的IDE 。

需要能在服务器上长期持续运行的情况。

实现在服务器端远程调试(devtest,devprod)。

VM或Docker具有调试源和预配置IDE的镜像。

需要远程访问的配置项目。

注意,Projector不是用于开发者之间的协作工具。对于协作开发工具,需要使用Code With Me。后续可能会有结合Code With Me和Projector的统一远程访问和协作工具。

jetbrains java 编辑器(JetBrains发布Projector用于远程访问IDE)(2)

开放源码

Projector项目基于开源协议发布。项目不同部分分别使用了三种开源许可:

客户端:MIT License (Expat) ;

服务器端:GNU GPL v2.0 Classpath Exception;

Dockerfiles:Apache License 2.0。

项目通过GitHub发布,用户可以使用git Clone PR参与项目。

jetbrains java 编辑器(JetBrains发布Projector用于远程访问IDE)(3)

架构

Projector总体上基于客户端(包括浏览器-服务器的CS架构。在服务器上运行IDE,然后可以通过网络连接到它。客户端和服务器之间的连接快捷而轻巧。

可以将其视为类似于VNC的远程桌面解决方案,但仅会显示IDE窗口,并且对基于Java的应用程序进行调优,以实现最大吞吐量。

Projector提供了用于设置服务器或客户端的多个选项。可以使用浏览器或本机应用程序连接到IDE。本机应用程序提供更好的功能(例如,提供键盘快捷键),但仅适用于PC操作系统。对于移动端设备,只能通过浏览器来连接,将来可能会推出移动APP。

网络客户端

浏览器体验与使用交互式网站非常相似。但是,可以选择进入全屏模式,从而提供更类似于桌面的体验。

可以通过更改URL参数来控制Web客户端的属性。例如,在移动设备上,可以在URL添加“mobile”参数,可以包括打开虚拟键盘的功能。

Web客户端是使用HTML5 Canvas API实现的,并且应在与此API兼容的每种浏览器中都可以使用。目前官方已经对Chrome/Chromium,Firefox和Safari适配测试。

本机应用

可以将本机应用程序用于macOS,Windows和Linux。 二进制文件可以通过官方下载,所有源代码都发布在源代码发布在GitHub。

除提供Dock/任务栏集成之类的功能外,此应用还支持Ctrl W/Cmd W等键盘快捷键,这些快捷键在浏览器客户端不可用。

服务器端

官方提供了Python 安装脚本为安装服务器端组件提供了灵活性。这是一个独立的发行版,可用于GNU/Linux主机。可以选择要安装的IDE、版本和安全性选项等。

Docker镜像

Docker是在云环境中运行Projector的最简单方法。官方提供脚本,可自动生成包含JetBrains IDE和Projector的Docker镜像。IDE将无人值守并隔离运行,并且服务器上也不必再安装X11,可以在命令行下运行。

镜像是使用自定义Docker注册表发布预构建的镜像,不支持Docker Hub,可以通过IntelliJ IDEA社区版提取:

docker pull registry.jetbrains.team/p/prj/containers/projector-idea-c

IDE插件

另外可以通过在IDE中安装插件,而无需在单独的服务器上部署。使用该插件,可以让当前设备充当服务器。

需要注意的是,插件模式运行的实例,其隔离性要差得多,另外也有可能遇到一些与操作系统的交互的问题。例如,无法在macOS上无法渲染全局菜单。

总结

Projector是一种技术,而不是最终用户解决方案。用户可以使用它来定制自己的基础架构,以满足业务需求。另外该项目的代码都是开源的,因此没有任何限制。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页