# The Construction of a Digital Agricultural GIS Application Suite
## 2 Design Considerations and Methods
### Implementation Method
#### 2.2.3 Microservices  
Microservice architecture represents a contemporary approach to software development, aimed at decomposing large-scale application systems into a series of small, independent components [43; 44]. Each component is dedicated to a specific business function and possesses the capability for independent development, testing, and deployment [45]. Each microservice is constructed around a singular business function, equipped with its  
Figure 2: Application component architecture. own programming language environment and database, enabling independent deployment and scalability. These microservices communicate with other components within the application through lightweight communication protocols such as HTTP and via API interfaces. The architectural style of microservices can be regarded as a natural extension of Service-Oriented Architecture, emphasizing the independence, self-governance, and lightweight nature of services [46]. The common core components of a microservice architecture typically include service communication components, service gateway components, and load-balancing components. The communication between these components often leverages RabbitMQ (Rabbit Message Queue) technology. RabbitMQ not only supports AMQP (Advanced Message Queuing Protocol) but also various other protocols to meet different application requirements, including MQTT (Message Queuing Telemetry Transport), STOMP (Streaming Text Oriented Message Protocol), and HTTP/WebSocket. Among those protocols, the AMQP protocol has the characteristics of security, reliability, message orientation, and flexible routing [47], which conforms to the changing style of geographic information network service requirements and is most suitable. In the context of digital agricultural applications, upon receiving a network request, the microservice architecture necessitates the service gateway to filter and process the request, subsequently identifying the relevant microservice through the service API table. Similarly, when responding to a request, the microservice architecture must also pass through the service gateway. Given the high concurrency scenarios inherent to both data network services and functional network services within digital agricultural applications, the utilization of load-balancing components is essential to enhance the performance and processing capabilities of the microservice architecture. The microservice architecture designed for the digital agricultural GIS application suite in this paper comprises four layers: the data layer, the microservice layer, the theme layer, and the application layer, as illustrated in Figure 3.  
The data layer encompasses the datasets pertinent to digital agricultural thematic applications, including standardized sample plots, plot management data, and exogenous plot data. Plot management data typically comprise environmental data associated with plots, such as temperature and rainfall data, while exogenous plot data refers to attribute data obtained through external means to capture social perceptions related to plots. The microservice layer is bifurcated into data services and functional services. Service nodes within this layer, operating within a big data environment, often opt for cluster deployment to address the high concurrency scenarios characteristic of digital agricultural thematic applications. The thematic layer represents an organic integration of microservices within the microservice layer, encompassing services such as agricultural plot extraction, crop type identification, crop growth parameter inversion, and multi-granularity crop decision making. These thematic services are conducted at the plot scale, aligning one to one with real-world agricultural plots, thereby facilitating the practical implementation of digital agricultural thematic applications. The application layer exemplifies the construction of a web platform by developers for a specific module within digital agriculture.