## 3 Methodology
### Design of Workspace
#### 3.2.2 Generation of Data-Computing Solutions  
When the data-processing workflow is configured, it can only represent the data-processing logic, and cannot really carry out data processing. At this point, it is necessary to bind data-processing services and data resource services to each logical node in the workflow. Since the workspace instance records all data services in the open network space, users can access and select the relevant data services directly and bind them to the corresponding workflow node. However, in practice, the existing data services in the network may not all meet the needs of users to configure data. Users can only associate and bind those data services that meet the requirements to the data-processing node, and for those missing data services, users can deploy their own data service container to publish the relevant data service for the corresponding data-processing nodes. For example, when users need to perform grid segmentation for a certain research area, if there is no corresponding data service in the network, users need to encapsulate the grid-partitioning algorithm (based on open-source or self-implemented code) and publish these algorithms in their own data service container as data-processing services. Then, when the container is registered with the workspace, users can access these grid-partitioning algorithm services in the workspace instance. When the data service binding is complete, a data-computing solution that can actually run is formed. Figure 6 shows an example of an XML expression of a data-computing solution. An executable computing solution consists of three main parts: (1) The \"DataCollection\" node refers to the collection of data resource services required in the current data-processing workflow. It consists of several \"Data\" nodes. Each \"Data\" node represents a specific data resource service. The \"id\" attribute is used to uniquely identify the data resource service, and the \"source\" attribute indicates the network host address of the data service container where the current data resource service resides. Thus, a data resource service can be uniquely located through the \"id\" and \"source\" attributes. (2) The \"MethodCollection\" node refers to the collection of data-processing services required in the current data-processing workflow. It consists of several \"Method\" nodes. Each \"Method\" node consists of \"InputCollection\", \"ControlParams\", and \"OutputCollection\" nodes. The  
Figure 6: The XML expression of a data-computing solution. \"InputCollection\" node consists of several \"Input\" nodes. Each \"Input\" node represents an input to the current data-processing service, and the \"id\" attribute of the node corresponds to the \"id\" attribute of the \"Data\" node. The \"ControlParams\" node consists of several \"Param\" nodes. Each \"Param\" node represents the control parameter of the current data-processing service, where the \"type\" attribute and the \"value\" attribute indicate the type and value of the control parameter, respectively. The \"OutputCollection\" node consists of several \"Output\" nodes. Each \"Output\" node represents the output of the current data-processing method; its \"id\" attribute is used to uniquely identify the output, and the \"target\" attribute is used to indicate the server where the output is stored. (3) The \"LinkCollection\" node records the data-processing logic of the current data-processing workflow, which is composed of several \"Link\" nodes. Each \"Link\" node records the connection sequence between two nodes in the data-processing workflow. The \"from\" attribute indicates the \"id\" of the \"start\" node, and the \"to\" attribute indicates the \"id\" of the \"end\" node. Thus, when the data-computing solution is executed, the execution order of the data-processing services can be determined by traversing the \"LinkCollection\" node. At this point, an executable data-computing solution is generated.