The architecture of our applications is based on separation of responsibilities and is designed to be able to handle future expansions as well as increases in load. The following illustration shows, in tiers, the primary components of our applications, as well as the exchanges among them.

The top tier is the presentation part. It has three components:

  • Web Application: This is the storefront application with which users interact.
  • Management application: This application is dedicated mainly to managing the authorization rules for the system. It can be deployed in a context different from the Web application (for example, in an application accessible uniquely via an intranet instead of being open on the Web), or it can be integrated into the Web application itself.
  • Identity provider: This application essentially offers user authentication services (in practice, it is simply the connection page). We will explain below how this application is used. By separating this responsibility of the Web application, we can, if needed, employ other identity providers. This is illustrated by the “trusted external identity provider” component, which is hatched.

The bottom tier is the one that preserves information. It is composed of:

  • Application DB: This database preserves the information specific to the Web application itself. In particular, it is composed of information to appear on menus and information on user sessions.
  • Core Services DB: All of the databases used by « Cyberjustice Core Services » to preserve their own information. These databases are independent from one another, and thus may or may not be held on the same physical server or integrated into the same database.

The intermediary tier in the illustration is the heart of all our systems. It is « Cyberjustice Core Services » which we have described above. There are three types of exchanges that link the components of this tier with those of the other tiers and among themselves:

  • Exchanges among the applications and « Cyberjustice Core Services »: These exchanges process application user requests. They are performed using Web services in accordance with the Windows Communication Foundation framework application. Depending on the context and nature of the request, we use Web services that employ different communication protocols:
    • SOAP services for inputting, updating and deletion;
    • RestFULL services for information extraction from complex structures;
    • OData services for information extraction from simple structures.
  • Exchanges among « Cyberjustice Core Services »: These exchanges are regulated via connectors defined within the « Cyberjustice Kernel ». For example, they make it possible for document services to obtain information on the parties involved in a case. The separation effected by using Web services for exchanges between the Web application and « Cyberjustice Core Services » makes it possible to isolate the management part from the information-saving part.
  • Exchanges with the data tier: These exchanges are regulated via the Entity Framework and LINQ framework applications. These exchanges perform the functions of selection, inputting, deleting and updating of information preserved in the databases.