Design for Simias Sever

From iFolder

iFolder Server Architecture

Image:Server-archi-dgm.jpg


The iFolder server runs behind Apache2 leveraging Mono's ASP.NET application bridge - mod_mono. The server consists of three ASP.NET application domains:

  • simias10,
  • ifolder (user) and
  • admin.

The “simias10” application domain contains the core server frameworks:

  • Simias,
  • FlaimDB,
  • Synchronization and
  • Identity.

An Authentication handler is configured in the domain so all requests destined to /simias10 are subject to authentication. The Authentication handler leverages the Identity framework to perform an authentication on behalf of the user. In the architecture above the Internal identity handler is configured so the source identity resides in Simias itself. The identity consists of a username and password. The Identity framework also includes a synchronization class where identities from an external source, such as Novell's eDirectory, can be pulled or synchronized into Simias. The synchronization module handles iFolder synchronization between the clients and server. The module contains an HTTP synchronization module and the actual framework itself. Client synchronization is performed over HTTP using a non-standard protocol where actions are described in the HTTP header itself.

The server frameworks are accessed via four core web services:

  • User,
  • Admin,
  • Domain and
  • Server.

The User web service exposes methods an end user application needs to create, delete, share and manage iFolders.

Admin exposes web service methods for managing the iFolder namespace. Actions such as disk quota, sharing policy, synchronization policy and user management can be performed through this web service.

The Domain web service contains methods for managing and discovering system objects in the server domain. In the current architecture each iFolder system may contain only one server domain. This single domain is replicated to all slave servers in an iFolder system.

The Server web service exposes methods for multi-server functionality. When a slave server is provisioned into the system Server methods are used. Other methods allow users to provision onto a server. In the current architecture, a user is provisioned to one server so all iFolders the user owns are created on the same server.

The “Admin” application domain contains the iFolder ASP.NET administrative console. The project consists of .aspx pages and C# code. The Admin console accesses the services of /simias10 via the four core web services.

The “User” application domain contains the iFolder web access console. Using a standard browser end users can access and manage their iFolders using this console. Like the “Admin” domain, the “User” project is ASP.NET based and consists of pages and code.

The overall architecture of the server is more straight forward with less components when compared to the iFolder client architecture.