A software defined network, SDN, controller for task scheduling and/or resource provisioning and/or service providing, comprising: - a receiving unit configured to receive a request for scheduling at least one task and/or provisioning at least one resource and/or providing at least one service; and - a processing unit configured to schedule at the least one task and/or provision the at least one resource and/or provide the at least one service based on the request received by the receiving unit and on an explicit constraint defined in the received request, and/or an implicit constraint imposed by the received request - wherein the SDN controller, further comprises: - a database, configured to store task information, and/or resource information, and/or service information; and - a query creation unit configured to extract the explicit constraint defined in the received request, and/or to derive the implicit constraint imposed by the received request, the query creation unit being further configured to generate a query based on the explicit constraint and/or the implicit constraint; and - a constraint solving unit configured to solve constraints in the generated query based on the task information, and/or the resource information, and/or the service information in the database, the constraint solving unit being further configured to identify a task schedule, and/or a set of resources, and/or a service configuration available for executing the received request based on the generated query and/or the task information, and/or the resource information, and/or the service information; wherein the processing unit is further configured to schedule the at least one task, and/or provision the at least one resource, and/or provide the at least one service based on the identified task schedule, and/or the identified set of resources, and/or the identified service configuration, and the request received by the receiving unit. - a receiving unit configured to receive a request for scheduling at least one task and/or provisioning at least one resource and/or providing at least one service; and - a processing unit configured to schedule at the least one task and/or provision the at least one resource and/or provide the at least one service based on the request received by the receiving unit and on an explicit constraint defined in the received request, and/or an implicit constraint imposed by the received request - wherein the SDN controller, further comprises: - a database, configured to store task information, and/or resource information, and/or service information; and - a query creation unit configured to extract the explicit constraint defined in the received request, and/or to derive the implicit constraint imposed by the received request, the query creation unit being further configured to generate a query based on the explicit constraint and/or the implicit constraint; and - a constraint solving unit configured to solve constraints in the generated query based on the task information, and/or the resource information, and/or the service information in the database, the constraint solving unit being further configured to identify a task schedule, and/or a set of resources, and/or a service configuration available for executing the received request based on the generated query and/or the task information, and/or the resource information, and/or the service information; - a database, configured to store task information, and/or resource information, and/or service information; and - a query creation unit configured to extract the explicit constraint defined in the received request, and/or to derive the implicit constraint imposed by the received request, the query creation unit being further configured to generate a query based on the explicit constraint and/or the implicit constraint; and - a constraint solving unit configured to solve constraints in the generated query based on the task information, and/or the resource information, and/or the service information in the database, the constraint solving unit being further configured to identify a task schedule, and/or a set of resources, and/or a service configuration available for executing the received request based on the generated query and/or the task information, and/or the resource information, and/or the service information;