apache / apache/linkis

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

Open
#5,305 1 comment 0 reactions 0 assignees View on GitHub
feature
Dominant language
Java
Stars
3.4k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

### 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隔离问题
- 宝兰德特定的配置要求

**宝兰德中间件信息:**
- 官方网站:http://www.bessystem.com/
- 支持JEE标准(Servlet、JSP、EJB等)
- 兼容主流应用服务器

**迁移步骤:**
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!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.