wso2几个核心项目介绍

作为WSO2专家,我来为你详细解析这些核心项目的作用。这些项目构成了WSO2数字平台生态系统的基石。

项目分类与作用概览

项目名称 类别 核心作用 对应产品
product-apim API管理 WSO2 API Manager的完整发行版 WSO2 API Manager
product-is 身份管理 WSO2 Identity Server的完整发行版 WSO2 Identity Server
carbon-apimgt API管理核心 API管理的核心业务逻辑和运行时组件 API Manager核心引擎
apim-apps 前端应用 API Manager的Web控制台(Publisher、DevPortal、Admin) 用户界面层
apim-analytics-publisher 数据分析 API流量数据分析与可视化 API Analytics
carbon-analytics-common 分析基础 分析功能的共享库和工具 多产品共享
carbon-identity-framework 身份框架 身份管理的核心框架和扩展点 Identity Server核心
carbon-kernel 运行时平台 WSO2 Carbon平台的核心运行时环境 所有产品的基础
identity-api-server 身份API 提供RESTful身份管理API Identity Server API层
identity-data-publisher-authentication 身份数据 认证事件数据发布组件 审计与监控
identity-governance 身份治理 身份生命周期和合规性管理 治理功能模块

详细解析

1. carbon-kernel - 基础运行时平台

作用:WSO2所有产品的统一基础平台

  • 提供OSGi运行时环境
  • 模块化架构支持(Carbon组件)
  • 统一的管理控制台
  • 日志、监控、集群等基础设施
  • 热部署和动态更新支持

类比:相当于Java的JVM或.NET的CLR,是所有WSO2产品运行的"操作系统"。

2. product-apim - API管理完整产品

作用:完整的API管理解决方案

  • API设计、发布、生命周期管理
  • API网关和流量管理
  • 开发者门户(DevPortal)
  • API安全(OAuth2、JWT、API密钥)
  • 速率限制和配额管理
  • 完整的安装包和发行版

使用场景:企业需要对外或对内提供API服务,进行统一管理和监控。

3. product-is - 身份管理完整产品

作用:完整的身份和访问管理解决方案

  • 单点登录(SSO)
  • 身份联合(SAML、OIDC、WS-Federation)
  • 多因素认证(MFA)
  • 身份治理和管理
  • 特权账户管理
  • 完整的安装包和发行版

使用场景:企业需要统一的身份认证、授权和用户管理平台。

4. carbon-apimgt - API管理核心引擎

作用:API Manager的核心业务逻辑

  • API发布和订阅逻辑
  • 密钥管理服务(KMS)
  • 流量控制策略引擎
  • API分析数据收集
  • 与网关的通信接口
  • 可被其他产品集成的核心模块

关键点 :这是product-apim的核心,但也可以独立集成到其他解决方案中。

5. apim-apps - API管理前端应用

作用:API Manager的用户界面

  • Publisher门户:API提供者创建和管理API
  • DevPortal门户:开发者发现、测试和订阅API
  • Admin门户:系统管理员进行配置和管理
  • 基于React的现代化前端架构
  • carbon-apimgt后端通过REST API通信

架构特点:前后端分离,可以独立部署和定制UI。

6. carbon-identity-framework - 身份管理框架

作用:Identity Server的可扩展框架

  • 认证框架和SPI(服务提供者接口)
  • 授权策略引擎(XACML、基于角色的访问控制)
  • 声明管理和配置文件处理
  • 身份存储连接器(LDAP、JDBC、SCIM)
  • 会话管理和单点登录实现

扩展性:允许开发自定义身份提供者、认证器、用户存储等。

7. apim-analytics-publisher - API分析服务

作用:API流量数据的实时分析和可视化

  • 实时API流量监控
  • 性能指标分析(延迟、吞吐量、错误率)
  • 开发者使用情况统计
  • 异常检测和告警
  • 基于WSO2 Stream Processor构建

数据流:API Gateway → 分析服务 → 可视化仪表板

8. carbon-analytics-common - 分析共享库

作用:为所有分析功能提供基础组件

  • 数据流处理通用组件
  • 事件格式定义和序列化
  • 分析算法库
  • 数据持久化工具
  • 监控和度量收集框架

共享性 :被apim-analytics-publisheridentity-data-publisher-authentication等多个分析模块使用。

9. identity-api-server - 身份REST API服务

作用:提供标准化的身份管理REST API

  • SCIM 2.0 API(用户/组管理)
  • OAuth2/OIDC端点
  • SAML2 Web SSO端点
  • 认证API(基本认证、MFA)
  • 基于JAX-RS的实现

标准化:提供符合行业标准的API接口,便于系统集成。

10. identity-data-publisher-authentication - 认证数据发布

作用:发布认证事件用于审计和分析

  • 捕获登录成功/失败事件
  • 记录认证方法和上下文
  • 发布到消息总线(如WSO2 Event Stream)
  • 支持实时监控和合规性报告

合规性:满足SOX、GDPR等法规的审计要求。

11. identity-governance - 身份治理模块

作用:管理身份生命周期和合规性

  • 用户自助服务(密码重置、账户解锁)
  • 工作流驱动的审批流程
  • 角色和权限管理
  • 合规性策略和报告
  • 身份验证和认证

治理流程:入职 → 权限分配 → 定期审查 → 离职回收

项目间关系与协作

架构层次

复制代码
应用层 (apim-apps, 用户界面)
    ↓
业务层 (product-apim, product-is - 完整产品)
    ↓
服务层 (carbon-apimgt, carbon-identity-framework - 核心引擎)
    ↓
框架层 (identity-api-server, identity-governance - 功能模块)
    ↓
平台层 (carbon-kernel - 基础运行时)
    ↓
数据层 (apim-analytics-publisher, identity-data-publisher-authentication - 数据分析)

典型集成场景

场景1:API管理 + 身份管理

复制代码
用户访问 → API Gateway (product-apim) 
         → 身份验证 (product-is/carbon-identity-framework)
         → 访问控制 (identity-governance)
         → 记录审计日志 (identity-data-publisher-authentication)

场景2:自定义身份提供者

复制代码
自定义需求 → 扩展 carbon-identity-framework
          → 实现自定义认证器
          → 通过 identity-api-server 暴露API
          → 集成到 product-is

场景3:API分析平台

复制代码
API流量 → API Gateway
       → 发送数据到 apim-analytics-publisher
       → 使用 carbon-analytics-common 处理
       → 在 apim-apps/DevPortal 展示

开发与定制指南

1. 基于现有产品扩展

  • 使用product-apimproduct-is作为基础
  • 通过功能插件进行扩展
  • 最小化修改核心代码

2. 深度定制开发

  • carbon-kernel开始构建
  • 集成carbon-apimgtcarbon-identity-framework
  • 开发自定义模块
  • 构建自己的发行版

3. 前端定制

  • 修改apim-apps中的React组件
  • 保持与后端API兼容
  • 可以完全替换UI层

4. 分析功能扩展

  • 扩展carbon-analytics-common
  • 添加自定义分析处理器
  • 集成到现有数据流水线

版本与兼容性

版本对应关系

  • API Manager 4.xproduct-apim 4.x + carbon-apimgt 6.x + apim-apps 4.x
  • Identity Server 6.xproduct-is 6.x + carbon-identity-framework 5.x
  • Carbon Platform 4.xcarbon-kernel 4.x

依赖管理

xml 复制代码
<!-- 示例:在自定义项目中引用 -->
<dependency>
    <groupId>org.wso2.carbon</groupId>
    <artifactId>carbon-apimgt</artifactId>
    <version>6.5.0</version>
</dependency>

总结建议

对于不同角色的建议

  1. 最终用户/管理员

    • 直接使用product-apimproduct-is发行版
    • 通过配置和插件满足大部分需求
  2. 系统集成商

    • 基于现有产品进行集成
    • 开发自定义连接器和适配器
    • 重点关注identity-api-server的API集成
  3. 产品开发者

    • 深入理解carbon-kernel和框架层
    • 基于carbon-apimgtcarbon-identity-framework开发
    • 考虑模块化架构和扩展点
  4. 前端开发者

    • 专注于apim-apps的定制开发
    • 保持与后端REST API的兼容
    • 利用现有的组件库

学习路径

  1. product-apim/product-is开始,了解完整功能
  2. 深入研究carbon-apimgt/carbon-identity-framework架构
  3. 掌握carbon-kernel的扩展机制
  4. 根据需要学习特定模块(分析、治理等)

这些项目共同构成了WSO2强大而灵活的数字平台,支持从开箱即用的产品到深度定制的企业级解决方案的各种需求。