-
Notifications
You must be signed in to change notification settings - Fork 18
Home
Ratel is a library that allows us to integrate system internal components in a simple way, which hopefully enables you to provide a scalable, testable distributed platform with less effort. The basic motivation behind the library is to minimize technological overhead so that the volume of a code that does not implement actual business logic is minimal. Ratel introduces a trivial abstraction of a service in a distributed environment:
In java world service is an interface. On client side you inject an interface, on provider side you implement an interface. Nothing more. Period.
Mission statement : Make intra-company SOA java applications development as simple as possible.
Imagine a world in which building a distributed SOA application is as simple as that:
Just add an annotation that marks your service subject to be discoverable on demand:
@Service
@Publish //<-- service provider
class FooServiceImpl implements FooService{
public int bar(String name) throws MyException{
return 2;
}
}
Just inject a service that you want to use to your code:
class MyApp {
@Discover //<-- service client
FooService service;
...
try {
int result = service.bar("abc");
} catch (MyException ex) {
...
}
And this is all you need to have a working distributed SOA system with features such as: