The layered architecture for designing the system enables self-independence between layers

SDSS benefited from the greater public availability of spatial data and the more flexible software, which enables its integration/- modelling into the geographic information system. In addition, an open-source SDSS project known as MicroLEIS DSS aids agriculture soil protection and land sustainability. It comprises valuable tools and techniques for decision-making in a wide range of agro-ecological schemes. This system builds on statistics, databases, neural networks, expert systems, Web technology, and GIS applications. The SDSS for agricultural land management, helps in decision making for the land management of food crops. It also aids in testing, validating and sensitivity checking of the decision models. The study revealed that SDSS is developed on Compromise Programming modules to produce spatial information integrated with fuzzy set and analytic hierarchy. SDSS utilises input information in operation, for instance, information from field experts and its applications. Whilst noticeable progress has been made in digital support systems, nonetheless, most of the proposed DSS have been put forward to handle aspects related to precision agriculture, irrigation management and optimal farming. Additionally, not much, if at all, have been proposed around facilitating support for farmers in terms of addressing their enquiries, questions and complaints, and optimising the whole process efficiently, besides providing insights to the beneficiaries from the vast amount of historic data, and recorded experience. The aim of this study, therefore, is to design and develop a system by considering the unique requirements of the farmers into accessing information whilst enhancing the overall system’s usability and acceptability. That is, the proposed DSS enables farmers to access information and experts’ advice; for example,hydroponic net pots information regarding the choice of seeds to sow, optimal harvesting times, knowing how to treat and combat plant diseases and pests, weather/calamity based forecasting and advisory etc.

The system is designed using a client–server architecture, where the client-side is responsible for all user interactions with the system. Clients interact with the server through web services. The Server applications are deployed on server machines along with a storage for managing data sets. Apart from these services, the Agro Support Analytics system also provides user registration and login functionality. A user can interact with the online Agro Support Analytics Central Server from the client machine through a web browser. The Agro Support Analytics Central Server handles input connections from clients as well as it hosts user registration and login services. In order to execute user requests the Agro Support Analytics Central Server is connected to more back-end services; i) Farmer Complaint service, ii) Historical Search service, iii) Analytics Apps. The overall working of the client/server system is illustrated in Fig. 2.Software applications of Agro Support Analytics have been designed on the configuration and plugin-based mechanism. This mechanism facilitates support for new workflow management systems and algorithms without altering the core of the system. Since the scope of the project is broad and complex; the overall project requirements can be divided into different applications with varying degrees of independence between the applications. Each application is further divided such that the application logic and business logic can be executed across servers. Moreover, the system under consideration requires faster network communications, high reliability, and excellent performance. In order to fulfil these design requirements, the n-tier architecture, or multi-layered software architecture is employed where each of the layers corresponds to a different level of abstraction. The N-tier or multi-layered approach is particularly suitable for developing web-scale and cloud-hosted applications very quickly and relatively risk-free. N-tier application architecture provides a model by which developers can create flexible and reusable applications. By segregating an application into tiers, developers acquire the option of maintaining, modifying, or adding a specific layer, instead of reworking the entire application.

In practice, the tiered architecture greatly simplifies the management of the software infrastructure. In this project, the layered architecture followed is ’closed’, meaning a request should go through all layers from top to bottom. Since architecture is broken up into multiple layers, the changes that need to be made should be more comfortable and less extensive than having to tackle the entire architecture.In a given layer, software components that belong to a similar level are organised horizontally, where the components may depend on the processing of each other, and this also makes relevant components to stays in a single compatible layer. This allows for a clean separation between types of components and also helps gather similar programming code together in one location. By isolating the layers, they become independent from one another. In the layered architecture, although the components from one layer can interact with the components of another layer, but they do not directly depend on other layer’s components. Traditional enterprise systems use RDBMS while the NoSQL system is widely adopted due to its excellent performance and high availability for large sets of distributed data. Thus if, for example, we want to change the database from SQL to NoSQL , this will cause a significant impact on the database layer, but that won’t impact any other layers. The adapted layered architectural pattern reduces the communication overhead caused by network traffic to provide faster network communications and efficient system performance. The component-based layered architecture also makes the testing process simple and convenient as individual components from each layer can be tested separately.This consists of a back-end database service comprising of various types of data sets, files, and the database management system that manages and provides access to the project data.

The datasets are made accessible to the Information and Analysis Services layer by hosting them on the Cloud. The second major functionality considered in AgroSupport Analytics is a Farmer Complaint Registration and Expert Response system. This system involves the development of interfaces for the online complain management, which can be remotely accessed to queries. These complaints can be reviewed by experts to provide feedback or suggestions using Expert web-forms. In order to store farmer complaints and associated experts’ responses, a new OnLine Farmer Complain and Expert Response dataset storage is established to contain richer data as compare to the available historical complaints data acquired from the Egyptian agricultural departments. Based on this data, extended analysis and predictions could be made possible that goes beyond the natural language based textual processing. Other datasets comprise User Profile and Login Info that includes the profile and login information of the users and user logs and activity history that contains the activities and logs of the Users. The layer also includes Agro Big Data Storage that contains the Historical Complain Dataset, the Online Farmer Complain and Expert Response Dataset. Search and Analytics Services in the Service layer interacts with this dataset in order to extract information from it.The Information and Analysis Services layer contains back-end software components and provides authentication, persistency, and information services. The authentication is a RESTful web service that operates on top of the User Data Info dataset in the private cloud and authenticates the users. Depending on the authentication result, user access type, and privileges, the user is given access to the modules in the application layer. The Complaint Management Services interfaces between the Online Complain Management application and the Online Farmer Complain and Expert Response dataset can provide functionalities such as crawl the datasets; make a model based on the structure of dataset; and store both data sets and outcomes, data dictionaries including possible parameters’ values, such that these are query-able by other tools and services, and store and index the image files associated with data sets.

The Search Service provides a mechanism to directly query datasets from the Agro Big Data Storage for querying, indexing, and searching based on Historical Search Engine as well as Farmer Complain and Expert Response Data. The Analytic and External Weather Projections services will act as information services and provide an interface between Analytic apps and the Agro Big Data Storage. Based on the Analytic apps information request, these services can query the Agro Big Data Storage dataset and then can apply data-mining, visualization, and machine learning algorithms on the data and then return the information to the Analytic apps.This layer contains user-friendly front-end interfaces designed for farmers and experts to remotely access the web components containing static as well as dynamic content. The front-end content is rendered by the web browser. These components include the User Sign In and Sign Up module, Farmer and Expert Dashboards, and Online Complain Management System. User Sign-In and Sign-Up components are available to authenticate the valid system users. After Sign In, Users can view Dashboards that contains their previous activity and up-coming notifications. In the Online Complain Management System, Farmer can submit their new complaint along with the textual, audio, and imagery data. The complaints are reviewed by the Experts, and they provide feedback or suggestions using Expert interface. These web forms are supported both in Arabic and English texts. This layer also includes Historical Search Engine and Analytics Apps. Using the Historical Search Engine component,blueberry grow pot users can query the Search Services, which in turn calls the Agro Big Data Storage to find the closest response from Historical Complain Datasets. The Analytics Apps can include analysis and predictions on the existing and/or external data sources to identify and explore patterns of ‘cause effect relationships’. The Querying Service is designed as a web service to be invoked over HTTPS to interact with the Agro Big Data storage, as shown in Fig. 5. This service-oriented approach provides the option to expose the server-side functionality to the client application. It enables a transparent and easy setup for providing desired functionality to users as well as external services within an authenticated session. The implementation of Querying Service starts with user verification that utilises the identity retrieval method provided by the Agro Support Analytics gateway. This feature not only secures the system by authenticating all the incoming requests but is also useful for maintaining logs of user activities. After user authentication, Querying Service initiates a query-building phase.

The implementation of the query-building involves i) parsing of parameters provided by the user, ii) selection of appropriate data sets.To interact with the query and complaint management component farmer needs to register with system if he is a new user or he can enter his login credentials to see the query and complaint management page. The system sends an automated email to the farmers email upon his registration. After registration/login, farmer can see a dashboard, where they can see list of all previous queries or complaints that are submitted. For each query or complaint, a status parameter is available with three possible values, i.e., ‘unresolved’, ’in-process’, or ‘resolved’. When a new query or complaint is submitted, its status is set as ‘unresolved’ by the system. This status can later be changed as ‘resolved’ by the agroexpert or by the farmer upon the resolution. Whenever the status is changed, the system sends an automated email to the farmer’s email regarding the change in the query or complaint status. In order to raise a new query or complaint, the farmer presses a ‘‘New Query or Complaint” button and a new form appears where the farmer enters the title of the query or complaint along with a detailed description in free text. Farmers can also relate their query or complaint with several filters available on the web-page. For example, farmers can add information regarding his area or region and can associate their query or complaint with one of the categories such as profitable crops for a region, irrigation, harvesting procedures and timings, management issues, pest issues, plant diseases, weather/calamity-based issues, etc., as shown in Fig. 4. Farmers also have the option to relate their query with a crop and attach images or audio files related to the issue they are facing. The additional information that the farmer provides will help the supervisor/admin later to assign them to the appropriate agro-expert. After the successful submission, the farmers’ dashboard appears with the status of the new query or complaint marked as ‘unresolved’. Farmers have the option to click on a query or complaint to view its details and responses made by agro-experts and he can make multiple top-ups on a query or complaint before it gets ‘resolved’.Supervisor can view a list of all farmers and the queries or complaints submitted by them. When a new farmer registers with the system, supervisor receives an automated email.