基数-报告

Cardinal-Report 提供了对所有分区间调用,在其调用期间传递到分区的所有非基本参数的类型以及分区中的外部类引用的深度分析。 如果在另一个分区中定义了这些类,那么它们是外部类。

所有非原始 Java® 对象都是通过引用传递的。 在 Java 单片应用程序运行时实例中,当所有类都在单个 Java 虚拟机 (JVM) 中运行时,类通常会相互自由地传递引用参数。 将 Java 单片应用程序拆分为在不同 JVM 中运行的类的分区可能会影响传递参数的能力。 例如,在一个 JVM 中指向某个内存位置的引用在另一个 JVM 中毫无意义。 Cardinal-Report 详细描述了一组建议分区的复杂调用语义,因此对于确定重构 Java 单片应用程序的最佳方法至关重要。

样本 Cardinal-Report

该报告为 Java 整体式应用程序的每个业务逻辑分区提供了五个类别的分析。 下图显示了 Daytrader 应用程序的示例报告。 单击任何行将提供所考虑类别的详细信息。


Daytrader 应用程序的基数报告

第一个类别列出了分区中的所有类,如下图所示。


partition_1 分区的成员类

Cardinal-Report 的第二个类别详细描述了特定分区的接口。 特定分区的接口定义并确定分区的签名。 这些接口是 REST API ,用于在分区作为正在运行的分区变为可用时启动该分区。

Cardinal-Report 中的 overloaded_#002 之类的属性表示重载的构造函数或函数。 类旁边的 Persistence 属性暗示关联的类是实体类。


partition_1 分区的特征符

Cardinal-Report 的第三个类别指定了作为分区接口中的参数传递的非基本 Java 类型。


partition_1 分区的特征符中的非基本参数

Cardinal-Report 的前三个类别共同标识了分区的组件以及允许将分区作为微服务调用的 REST API 调用。

其余类别与分区间通信语义有关。 首先,下图详细描述了可由所考虑的分区调用的其他分区的方法。


partition_1 分区调用的其他分区的方法

最终类别指示对作为返回值获得的外部类类型对象的引用,以将调用传递给其他分区。 由于外部类是在所考虑的分区的语法范围之外定义的,所以外部类引用的存在将是构建分区作为微服务的挑战。 下图显示了此外部引用的详细信息。


partition_1 分区中的外部类引用