The Fredhopper Access Server (FAS) is a component-based, service-oriented and server-based software system, which provides search and merchandising IT services to e-Commerce companies such as large catalog traders, travel booking, classified advertising, etc.
We present the structure of FAS in the following way: query engine, business manager, indexer, data manager, search engine optimizer and targeting diagnostic tool. An architectural view of how these components are related in FAS is shown Figure 1.
Figure 1
In the following paragraphs we describe informally the functionalities of each component:
To minimize the possible disruption caused by updates of data and configuration in a FAS installation, each FAS installation is deployed for a customer according to the FAS deployment architecture. Figure 2 shows an example setup. A FAS deployment consists of a set of ``environments''. In this case study we focus on two types of environments: live and staging. Briefly, the staging environment is responsible for data and configuration updates while the live environment is responsible for serving queries from client-side web applications.
Figure 2
A live environment processes queries from client web applications via the Web Services technology. FAS aims to provide a constant query capacity to client-side web applications. In the deployment example in Figure 2 there are two live environments.
A staging environment is responsible for receiving client data updates in XML format, indexing the XML, and distributing the resulting indices across all live environments using the Replication System.
The communication between the live and the staging are governed by the replication protocol, which is implemented by the Replication System Product Line. Specifically, the Replication System Product Line consists of a synchronization server residing in a staging environment, a set of synchronization clients residing in the live environments. The synchronization server determines the schedule of replication, as well as the content of each replication item. The synchronization client is responsible for receiving data and configuration updates. A replication item is a set of files representing a single unit of replicable data.
The Replication System Product Line consists of several variants of the replication system. We express these variants as features. Figure 3 shows the feature diagram of the replication system. The feature diagram has five main sub-features: Installation, Resources, Replication Item, Load and Job Processing.
Figure 3
To take all the variability of the Replication System Product Line into account, we construct the Full ABS model of the Replication System Product Line using the Delta Modeling Workflow [5,6]. A full ABS model of Replication System Product Line constructed using the Delta Modeling Workflow can be found at [7].
More information can be found in [1,Section 5.1] and [2,Section 5.1]. Formal models of parts of FAS constructed used during evaluation can be found in [3].
[1] Requirement Elicitation, August 2009. Deliverable 5.1 of project FP7-231620 (HATS), available at http://www.hats-project.eu/sites/default/files/Deliverable51_rev2.pdf#page=38.
[2] Evaluation of Core Framework, August 2010. Deliverable 5.2 of project FP7-231620 (HATS), available at http://www.hats-project.eu/sites/default/files/Deliverable52.pdf#page=59.
[3] Supplementary models of D5.2, August 2010, available at http://www.hats-project.eu/sites/default/files/Deliverable5.2Models.zip
[4] ABS model of the Replication System, February 2011, available at http://www.hats-project.eu/sites/default/files/replicationSystem.zip
[5] M. Helvensteijn. Delta Modeling Workflow. In Proc. 6th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS 2012), ACM 2012.
[6] M. Helvensteijn, R. Muschevici and P. Y. H. Wong. Delta Modeling in Practice - A Fredhopper Case Study. In Proc. 6th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS 2012), ACM 2012.
[7] ABS model of the Replication System, February 2012, available at http://www.hats-project.eu/sites/default/files/replicationSystem2012.zip
[8] ABS model of the Replication System with Dynamic Policy Switching, January 2013, available at http://www.hats-project.eu/sites/default/files/replication-system-dynamic-policy.zip
[9] ABS model of the Replication System for runtime verfication, January 2013, available at http://www.hats-project.eu/sites/default/files/replication-system-saga.zip
[10] ABS model of the Replication System for static deadlock analysis, January 2013, available at http://www.hats-project.eu/sites/default/files/replication-system-sda.zip
[11] ABS model of the Replication System for learning based black box testing, January 2013, available at http://www.hats-project.eu/sites/default/files/replication-system-lbtest.zip