Before the feeling a little bit confused, the structure of the design diagram first put up, compared to say.
Models that the CAMCOCO architecture can support:
1, b/s procedures, such as CRM and so on, and access to ordinary sites are no different, are from the Web server to operate;
2, the app's server-side program. The app can be native, or it can be HTML5. The app has access to rest data through the Web server to protect the security of the SOA;
3, the server side of the WinForm program;
As can be seen from the design diagram, Lao Hu divides the client (usage scene) into three categories:
1, non-trusted remote client : Meaning can be used by any user, we cannot ensure that the user will not be through URL spoofing, cookie spoofing and other illegal access, the SOA service needs a secrtkey, this key is not to be mastered by the client, In this case, this type of non-trusted client can only access the SOA as a springboard through a Web service, while the key to the SOA remains in the Web service and is not delivered directly to the client.
2. Trusted remote client : In some scenarios used locally, user identity and security can be guaranteed, and they will not engage in various spoofing or attempt to decipher the SOA key. Then they can directly access the SOA service to operate.
3. Trusted local clients : There are some localized services, such as when we introduce the message middleware, we need to do some service of message queue processing, we can cross SOA directly access the business layer.
Clustering of Web services and SOA services
Clustering is a relatively tall on the noun, in fact, the old Hu is the various services to decompose, from the functional module level began to decouple.
For example, in a CRM, the old Hu will split the functional system:
Web cluster
1. Frame WEB:framework.camcoco.com
2. Authentication Web Service: passport.camcoco.com
3. Organization Structure Management Web service: org.camcoco.com
4. Customer Management Web service: customer.camcoco.com
5. Order Management Web service: order.camcoco.com
6 、....
SOA clusters
1. Authentication SOA Service: soa_passport.camcoco.com
2. Organization Structure Management SOA services: soa_org.camcoco.com
3. Customer Management SOA Service: soa_customer.camcoco.com
4. Order Management SOA Service: soa_order.camcoco.com
5 、...
The framework web is responsible for loading a CAMCOCO client framework that contains a bunch of old JS, such as Ajax calls, scene hold and restore, data submission validation, CSS styling, and so on.
Other Web services are lightweight services, such as customer management, only to do customer-related functions, such as customer list, query, new, maintenance and so on.
Each Web service is followed by a corresponding SOA service, which is responsible for receiving client data and then forwarding it to the SOA for processing.
After this split, the future of old Hu to do a new project, also used in the organization structure, authentication, customer management, production management, then we directly to the previous service call over, and then a new production management on the line. (Of course, this is the ideal situation, the customer management module is mostly to be modified)
If you sell a set of programs to a user, the user said that customers here I need to make some changes, then we can easily locate the customer this module, whether it is from the business layer to modify or only modify the interface layer, are very convenient. At the same time, the update will not affect the normal use of other functional modules.
As for the business layer, the old Hu design entity does not contain the operation method, all operations are placed in the aggregation, the entity is only responsible for the data legitimacy validation. So, Lao Hu believes that entities can be handed over to any layer above, so that the transfer of parameters between the layers can be passed directly to the entity object, without the need to design a complex interface function to separate the attributes of the entity passed down.
The business layer contains more than n business units for different services, such as the example above, Then there will be at least CAMCOCO.Business.Customer and CAMCOCO.Business.Order, as for how each business unit is designed, as needed, such as the use of message middleware to relieve stress, such as the use of IOC for flexible business transformation.
In short, the original purpose of Camcoco design is:
1, each business is detachable can be combined, different systems can share as many business modules;
2, within the framework allowed, as little as possible to write code, and the code is as far as possible to standardize;
3, the individual business (except the core business) will not affect the operation of the global system, different services can be assigned to different personnel, each of the different levels of business can be assigned to different personnel to complete.
GO on ...
[Camcoco] [C #] My system Architecture general diagram