System architecture

From Sense/Net Wiki
Jump to: navigation, search
  •  
  •  
  •  
  •  
  • 100%
  • 6.3
  • Enterprise
  • Community
  • Planned

Overview

System architecture

Sense/Net ECM is a web application. It has the same architectural characteristics as web applications usually have (it runs on IIS and has an SQL database), but there are a couple of important differences that need to be taken into account when deploying and operating this product. In this article developers and system administrators may learn about the architecture and components of a Sense/Net ECM solution.

Details

To install Sense/Net ECM you will need a web server and a database server (the built-in database provider currently supports Microsoft SQL Server). For evaluating the product these servers may be on the same machine but in a production environment it is advisable to have them as separate instances.

For details about hardware and software requirements please check the following article:

To read more about the installation process and how system operators will work with Sense/Net ECM, please read the following article:

Detailed architecture (two web nodes)

Database

Database structure

Everything stored in the Sense/Net Content Repository is stored in the database. Even if parts of content items (like file binaries) are served from somewhere else (e.g. from the file system or a 3rd party source), every content needs to be added to the Content Repository for the system to be able to recognise it.

The database is a single central point of the system. Database admins should take care of creating both incremental and full backups regularly.

To learn more about the database structure (tables, indexes), please visit the following article:

Web folder

Web folder structure

A Sense/Net ECM web application instance is hosted on Internet Information Services (IIS). All files related to the product (web application binaries, tools, text files, etc.) are stored in the web folder, nothing Sense/Net-related is (and should be) stored outside of the web folder. For details about the contents of the web folder please visit the following article:

Index

Lucene

One of the most important items stored in the web folder is the index. This is a folder containing the index files generated and maintained by the Lucene indexing tool (.Net version). This is a 3rd party component used by Sense/Net ECM for indexing content items and executing queries. Even the smallest operations (e.g. determining child elements of a folder) are performed using content queries.

The index stored in the web folder lets Sense/Net ECM execute queries in proc in the context of the web process. This is one of the reasons we can offer a super fast searching experience, even for complex and ad-hoc queries.

For details please visit the following article:

The index is an essential part of the system. It is maintained by the Lucene component and must not be modified while the web site is still running. If the web site is stopped, it is allowed to make a copy of the index for backup/restore purposes - but an index backup of course needs a corresponding database backup.

It is also possible to re-create the full index from the database, using the following tool - but in case of large (hundreds of GBs or multiple TBs) databases this may be a time-consuming operation that takes hours.

In case of smaller Sense/Net ECM instances it is possible to create a backup of the whole system (web folder, index, database) using a single tool. Visit the Backup Tool article for details.

Caching

Proxy Cache

Every enterprise application needs to offer some kind of caching to be able to serve the ever-increasing user load. In case of Sense/Net ECM every web server has its own local in-memory cache that helps reducing SQL server load and makes every operation faster.

The most important cache in Sense/Net ECM is the content cache. When a system accesses a content for any reason, it loads almost all the metadata for that single item (only binaries and long text values are loaded later when needed). This way subsequent content load operations become significantly faster.

To improve page load, portlets (the building blocks of pages) can also be cached individually. This is basically an HTML cache that stores the markup of a single portlet on a page, without affecting other dynamic parts of the page.

An additional possibility is to employ a proxy cache to reduce server load even further: this way requests will not even reach the web server, after the web server generated the html content for the first time.

Network load balancing (NLB)

NLB
Sense/Net ECM supports multiple web nodes for both network load balancing and reducing site downtime. In that case you will have the same web folder (including the full index folder) on every web server with their own IIS site configured.

You will select one of the web servers to execute the custom tools in the web folder (e.g. import or export), but other than that, all web nodes are equal. They communicate with each other (to keep in-memory cache and index synchronized) using the MSMQ technology. For details see the following article:

Task management

Task management
The web application infrastructure is not sufficient for certain tasks. For example long-running or resource-consuming jobs are best moved to the background, to a separate application domain. This is why we offer the following solution for these kinds of tasks.

Task Management is a separate component outside of the main Sense/Net ECM product. From version 6.4.1 it is a truly standalone module that can be used even by 3rd party clients that have no relationship with Sense/Net ECM. It is a separate web application that has its own installation package and product life cycle. For details please visit this article:

Related links

References