Skip to main content

 

Documentation & User Guides | FotoWare

FotoWeb services and system architecture

This article explains what the FotoWeb services are and how they work.

FotoWeb architecture

FotoWeb has an architecture that is designed from the bottom up for stability and performance. The main logic in FotoWeb takes place inside four different services that are installed on your server. These services are started automatically by the operating system after a restart of the server. These services depend on each other in the following manner:

You can control these services through the Service Control Manager (SCM), which is a part of Windows. You can find it in under Administrative Tools in the control panel, or simply hit the Windows key and type Services to locate it.

The main tasks in FotoWeb have been divided over this set of services. This ensures that in the event of an unexpected failure, only one component is affected. The other will continue to run normally.

FotoWeb Server Service

The FotoWeb Server service is the main service where the page processing is taking place. This service is responsible for handling every request that is made by users through a web browser and return appropriate HTML code to interact with the user. The FotoWeb Server service depends on all the other services to be able to perform its tasks.

FotoWeb Session Manager Service

The FotoWeb Session Manager Service is responsible to keep track on user sessions. All sessions are created, handled and deleted by this service. It holds the information about number of guest and user sessions created, number of requests made per sessions, session expiry times and maximum allowed sessions per site and per user. All other services communicate with Session Manager to get session information and request updates.

FotoWeb MongoDB Server service

MongoDB is the database which FotoWeb uses to persistently store most data, such as asset metadata, users and albums. It is required for FotoWeb to function.

FotoWeb Workflow Service

The Workflow service handles all workflow and contact sheet requests. Once a user creates a workflow request, the FotoWeb Server service posts this request to Workflow service and continues processing other user requests. The Workflow service picks up the request in the background and processes it in its own pace.

This separation is created to allow processing of ‘heavy’ workflow requests in the background without affecting the performance of FotoWeb Server.

FotoWeb Service Engine

The FotoWeb Service Engine consists of several sub services that continuously perform different tasks in background. The sub services started by the Service Engine are as follows:

System log service

This service is responsible of handling all status events posted by FotoWeb modules and writing them to their designated locations such as FotoWeb system log, FotoWare log server and Windows Event log.

Event log service

This service is responsible of handling all activity events posted by FotoWeb modules and writing them to their designated locations and formats such as FotoWeb log files and FotoWeb database. The events handled by this services are those defined in Site | Properties | Activity logging.

Mail service

This service is responsible of processing email requests made by different FotoWeb modules.

Task scheduler

This service is responsible of executing and processing different tasks defined in FotoWeb such as cache cleanup, keyword extraction, log flushing etc at their scheduled times.

Crash report handler

This is an on-demand sub service that is automatically started whenever a crash has occurred in any of ‘exe’ based FotoWeb modules. The service collects the required information about the crash, creates XML files describing the crash and compresses these files into a final ZIP file along with the ‘mini dump’ written by the crashing module. Finally, the service sends email notifications (if enabled) and uploads the crash report to FotoWare (if enabled, requires unique system id from FotoWare). If the crash report is successfully uploaded, it is then deleted from the system. A maximum of 20 newest (not uploaded) crash reports are kept on the disk to minimize disk usage, while the oldest ones are deleted automatically.

The crash reporter utility is located at C:\Program Files (x86)\Common Files\FotoWare\Crash Reporter 1.0

Process Monitoring

To ensure that the system is able to recover in the event of failures, a ‘mother process’ is watching all the processes. This mother process will check that the processes are running as expected through various checks. If a process fails to respond or stops unexpectedly, it will automatically be restarted.

If a process continues to fail over and over again, FotoWeb will eventually stop the service. This makes it possible for the administrator to take action, or ask the operating system to automatically perform an action, e.g. restarting the server.

This can be set up through the Services application in Administrative Tools. Find the service you want to control, right-click and select Properties. The Recovery tab lets you control these options.

FotoWeb and Internet Information Services

FotoWeb is dependent upon the Microsoft Internet Information Services. IIS provides the web service functionality for FotoWeb. All requests to FotoWeb are routed through the FotoWeb ISAPI18 modules. An ISAPI module can be compared to a CGI program, but an ISAPI module stays in memory as long as the web server is running. This means that the FotoWeb modules have less overhead than a traditional CGI program, and will work with much higher performance due to the close integration with IIS. The FotoWeb ISAPI modules are placed in the ‘bin’ folder.

When a request to a FotoWeb page is received by IIS, the request is sent to the ‘fotoweb_isapi.dll’ module. This module will then open a connection to the FotoWeb Server service, which is responsible for handling all the requests to FotoWeb. This architecture means that in the case of a failure in FotoWeb, IIS is not affected and vice versa.

  • Was this article helpful?