Skip to content

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

Open

Description

@v-kkhuang

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!

Activity

  1. github-actions commented on Dec 4, 2025

    @github-actions

    😊 Welcome to the Apache Linkis community!!

    We are glad that you are contributing by opening this issue.

    Please make sure to include all the relevant context.
    We will be here shortly.

    If you are interested in contributing to our website project, please let us know!
    You can check out our contributing guide on
    👉 How to Participate in Project Contribution.

    Community

    WeChat Assistant WeChat Public Account

    Mailing Lists

    Name Description Subscribe Unsubscribe Archive
    dev@linkis.apache.org community activity information subscribe unsubscribe archive
  2. changed the title [-][Feature][Linkis]tomcat&jetty替换宝兰德方案[/-] [+][Feature][Linkis] Replace Tomcat & Jetty with BES (BaoLanDe) middleware solution[/+] on Dec 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions