Here is the global architecture of Kimios.
The communication between the server and the client is respectively managed by the web services and the API client with SOAP or REST requests (HTTP).
- Kimios data model contains the business code and the database calls through the Hibernate layer,
- Kimios controllers is in charge of the interaction between the data model et web services. Controller checks the rights in order to preserve security and call data model methods to get a response from it.
- Kimios web services are the layer which allows the clients make calls to remote methods. These methods should be as simple as possible and just call the controller.
- Kimios API is another controller which allows any clients to call remote methods from web services.
Finally, Java/.NET/PHP clients are any clients as rich internet application, desktop application or others, using Kimios API.
Here is a design example concerning Document entity. All others features must be designed in the same way.
- DocumentFactory is an interface and represents the data model. In practice should be an implementation of this interface.
- DocumentController is a controller class invoking methods from data model to web services.
- DocumentService is a web service class containing some methods calling them remotely from the client API.
- DocumentController (API) is a controller class located at client side and invoked by the current client (in this example, invoked by DocumentActionHandler, a Java servlet).
Communication from API to web services
Each class of the Kimios API has its own related web service:
Web Services classes
Kimios API classes
Web services about entities
DocumentService and DocumentVersionService are used to get content and information MetaFeeds, comments, etc. about documents, to create, update and delete them. Also used to manage recent items, symbolic links and bookmarks.
FolderService and WorkspaceService are used to manage (get, create, update and delete) folders and workspaces respectively.
Specific web services
- AdministrationService is used to manage role, authentication source, users, locked documents, documents owners and sessions.
- LogService is used to get logs about entities as document, folder or workspace.
- ReportingService is used to get some reports about document hits, document transactions, entity informations or user actions.
- SearchService is used to make searches in order to find documents into Kimios.
- SecurityService is used to get authentication sources, users and groups. It's also used to check privileges for each web services call.
- StudioService is used to manage document types, metafeeds and workflows.
- NotificationService is used to make actions over workflows, as accept request or reject request.