java项目如何实现暴露功能模块供其他系统调用

本人小白,今天看了下需求说明。其中有2个模块是做成接口供其他系统调用的,但是我不明白这个是怎么实现的。
求大神讲解一下。

1.可以利用spring的restful接口。
2.新建一个servlet或者action,供其他系统http方式调用。
3.新建esb服务。
4.新建main方法,通过osgi的boundle方式

就是说提供一个interface出来,其实现不是public的
比如:interface A 和一个可以获得A实例的类
private class Almpl实现A

调用过程:A a = AFactory.create()