[Feature][Linkis] Replace Tomcat & Jetty with BES (BaoLanDe) middleware solution

Open
#5,305 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
java, spring-boot

Research direction

Start by reviewing Linkis's current Tomcat/Jetty deployment packaging and container-specific code in linkis-dist. Assess Servlet 3.0+/4.0, WebSocket, classloader, and Spring Boot external-container compatibility on BES. Done means BES-compatible deployment packages, all services validated on BES, existing deployments retained, and migration documentation published.

Written by the indexing model from the issue text.

Description

feature
Linkis Component

linkis-dist

What happened

English:

Linkis currently uses Tomcat and Jetty as servlet containers. For domestic localization requirements, there is a need to support BES (BaoLanDe/宝兰德) middleware as an alternative container solution.

Background:
BES (BaoLanDe) is a domestic middleware solution commonly required in Chinese government and enterprise environments for localization (信创) compliance. Supporting BES would enable Linkis deployment in these environments.


中文:

Linkis当前使用Tomcat和Jetty作为servlet容器。为满足国产化需求,需要支持宝兰德(BES)中间件作为替代容器解决方案。

背景:
宝兰德(BES)是中国政府和企业环境中国产化(信创)合规常见要求的国产中间件解决方案。支持宝兰德将使Linkis能够在这些环境中部署。

What you expected to happen

English:

Linkis should support BES middleware as a servlet container option:

  1. Provide BES-compatible deployment packages
  2. Ensure all Linkis services can run on BES container
  3. Maintain compatibility with existing Tomcat/Jetty deployments
  4. Provide migration guide from Tomcat/Jetty to BES

中文:

Linkis应该支持宝兰德中间件作为servlet容器选项:

  1. 提供与宝兰德兼容的部署包
  2. 确保所有Linkis服务都能在宝兰德容器上运行
  3. 保持与现有Tomcat/Jetty部署的兼容性
  4. 提供从Tomcat/Jetty迁移到宝兰德的指南
How to reproduce

English:
Current situation:

  1. Linkis services are packaged for Tomcat/Jetty deployment
  2. BES middleware deployment is not officially supported
  3. Manual adaptation is required for BES deployment

中文:
当前情况:

  1. Linkis服务打包用于Tomcat/Jetty部署
  2. 不正式支持宝兰德中间件部署
  3. 需要手动适配才能部署到宝兰德
Anything else

English:

Implementation Approach:

  1. Container Abstraction: Abstract servlet container dependencies to support multiple implementations
  2. BES Compatibility Testing: Test Linkis services on BES Application Server
  3. Build System Updates: Add BES-specific build profiles in Maven/Gradle
  4. Dependency Management: Handle BES-specific dependencies and APIs
  5. Documentation: Create BES deployment guide

Technical Considerations:

  • Servlet API compatibility (ensure using standard Servlet 3.0+/4.0 APIs)
  • WebSocket support verification on BES
  • Spring Boot embedded container vs external container deployment
  • ClassLoader isolation issues
  • BES-specific configuration requirements

BES Middleware Information:

  • Official Website: http://www.bessystem.com/
  • Supports JEE standards (Servlet, JSP, EJB, etc.)
  • Compatible with mainstream application servers

Migration Steps:

  1. Review current Tomcat/Jetty specific code
  2. Replace with standard Servlet APIs
  3. Test on BES Application Server
  4. Create BES deployment WAR/EAR packages
  5. Update deployment documentation

中文:

实现方法:

  1. 容器抽象:抽象servlet容器依赖以支持多种实现
  2. 宝兰德兼容性测试:在宝兰德应用服务器上测试Linkis服务
  3. 构建系统更新:在Maven/Gradle中添加宝兰德特定的构建配置文件
  4. 依赖管理:处理宝兰德特定的依赖和API
  5. 文档:创建宝兰德部署指南

技术考虑:

  • Servlet API兼容性(确保使用标准Servlet 3.0+/4.0 API)
  • 在宝兰德上验证WebSocket支持
  • Spring Boot嵌入式容器vs外部容器部署
  • ClassLoader隔离问题
  • 宝兰德特定的配置要求

宝兰德中间件信息:

迁移步骤:

  1. 审查当前Tomcat/Jetty特定代码
  2. 替换为标准Servlet API
  3. 在宝兰德应用服务器上测试
  4. 创建宝兰德部署WAR/EAR包
  5. 更新部署文档
Are you willing to submit a PR?
  • Yes I am willing to submit a PR!
Dominant language
Java
Stars
3.4k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/linkis

All issues in apache/linkis

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.