Category | App Services | Data Services |
server interface | HTTP, SOA | HTTP, SOA |
implementation | stateless | stateless |
client interface | REST JSON/ XML | POJO |
addresses | business rules | data challenges |
top concerns | extensibility, flexibility | scalability, performance, reliability |
techniques | AOP, OOP | ADT, Collections, Algorithms |
communicates to | http services | data repositories |
testing | scenarios | data volume, repository accessibility |
error mgmt | app errors | system errors |
i18n, l10n | pass l10n header | choose resource string |
An app service loads up pluggable business rules and logic, and then executes them. A java based implementation recipe might consist of the following:
- Spring libraries to take advantage of its AOP features
- Drools libraries to take advantage of pluggable business rules
A data service allows its clients to create different classes of data, and then manipulate them. A java based implementation recipe might consist of the following:
- Spring libraries to take advantage of its DI features
- Hibernate/ Mybatis libraries for their ORM layer (maybe other JPA for various other No SQL)
As infrastructure, we could evaluate:
- JMS provider (Sonic MQ, Rabbit MQ) for reliable async communications
- BOSH provider (ejabberd, punjab, lightstreamer) for streaming connectivity
- EVENT provider (mule esb) for EDA
No comments:
Post a Comment