W
W
WhiteNinja2017-02-19 20:25:04
ASP.NET
WhiteNinja, 2017-02-19 20:25:04

How to competently organize the architecture of a complex of several systems?

Good afternoon!
Dear Colleagues, I ask for advice on the organization of the architecture of a complex of systems.
For example, there are three systems (in fact, there can be a dozen systems):
1. Warehouse management system (SecondApplication)
2. Customer management system (FirstApplication)
3. Management and configuration system (MainApplication)
897f0c75bc8742349ae2cc97df93b2ed.png
Management and configuration system (MainApplication) - serves to setting the hierarchy of departments in the organization, the list of employees, setting them different access rights in different systems (FirstApplication, SecondApplication), collects aggregated information and other systems. Those. on the one hand, it serves as a virtual workspace for each employee, and on the other hand, it is a "single control panel" for administrators and managers.
Each of the systems consists, at the moment, of three levels Data Access Layer, Bussines Logic Layer, and Presentation Layer.
The database is currently one, for all systems, but it should be possible to place the tables of each system in different databases, on different servers.
MainApplication contains such services as
- PositionService (with CRUD methods) - a service responsible for positions;
- DepartmentService (with CRUD methods) - service responsible for departments;
- SystemRoleService (with CRUD methods) - service responsible for roles in systems;
etc.
Of course, at some point in the FirstApplication and SecondApplication applications, it was necessary to get, for example, all the positions of the current user, i.e. in theory, use the PositionService methods from the BLL of the MainApplication system. At the moment, this is done by duplicating the service and entities in the BLL and DAL FirstApplication and SecondApplication, which of course is not correct, since if you change the Position entity (for example, a position) or change the GetPositionsByUserId method, you need to change it in three places - MainApplication, FirstApplication , SecondApplication.
The need to call "common functions" began to grow in different systems, everything began to swell and it became clear that duplication of methods would not lead to good things.
As a way out of this situation - web services based on wcf, or ASP.NET WEB API. After reading the information about wcf, there are still a lot of blank spots and a number of questions:
- will the approach with wcf services work much slower than the current approach (duplication)?
- if the example uses several services-classes PositionService, DepartmentService, RoleService, etc., will these be separate wcf-services?
- what layers are obtained for each system: DAL <-> BLL <-> WCF <-> ASP.NET MVC ?
A huge request to advise on this issue, maybe I'm looking at the wrong approaches (WCF, API).
How to correctly organize the interaction between several systems in a complex of systems?
Thanks in advance for any help!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Axian Ltd., 2017-02-19
@AxianLTD

The key word is enterprise service bus, but there are strong doubts that your office needs it and will draw on resources.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question