0
votes

I'm new to WEB SOA applications and i have several questions about how to implements this architecture.

I would like to make a SOA based application involving multiple services using spring restfull api. I'm aware of how to build each service itself.

i've already made a maven based project exposing a restful service using spring boot and secured it using spring security... my problem is to implement several services:

  1. I don't know if i have to make a project for each one or there's a better solution... i want them to communicate through XML/Json so they won't be in same project in my point of view.

  2. All secured by same service which makes use of spring security, i don't know how to link between the security service and the other ones. i don't want to write same security config classes on each project and then the user would be asked for sign in each time he accesses one of the services.

  3. Share some resources which are used by all most services such as domain model classes, since i don't want to copy paste them (make duplicates), if i would change anything i would have to make changes in all services ... horrible :/

Thanks in advance.

1

1 Answers

0
votes

1- Secure them all (the entire application) using one service which make use of spring security and which will be asked for whenever a client access one of the services.

This link will help you : https://www.youtube.com/watch?v=3s2lSD50-JI

2- Share some resources which are used by all most services such as domain model classes.

Here it is about how to organize your project in your IDE or in your architecture. Using packages, shared libraries, shared projects or maven modules can help you.

3- Deploy all services inside one " application container ".

Your IDE or Maven should be able to help you deploy you application in a container. In the case of Spring Boot, there is an embedded Tomcat server that can run your application. Or if you have your Tomcat stand alone installation, you can deploy it by your self.

Reading you post, I guess your are new in Spring Boot development. The learning path I can suggest is the following (in my point of view) :

  1. N-Tier Pattern for application architecture, and the purpose of the layers
  2. The architecture of the Web and HTTP protocol
  3. SOA and REST Services
  4. Maven to build and compile your projects
  5. Spring Boot, in mostly moderns architectures used to implement Backends my exposing REST Services

You can find by Googling tones of well explained documentations and blogs concerning those subjects.