An application server that interfaces with at least one repository (104, 106) for managing a service based on an Aspect Oriented Programming, AOP technique, the application server comprising: a composition entity configured to interface with the at least one repository (104, 106) to load a service description identifying a list of application concerns (120a, 120b) which are implemented by the service into runtime data; a weaving entity configured to interface with the at least one repository (104, 106) to access an aspect description identifying a list of aspect concerns (126a, 126b) implemented by an aspect, where the list of aspect concerns (126a, 126b) has a unique aspect identification and each aspect concern is identified by a unique identifier; and the weaving entity configured to dynamically update a run-time service description of the application concerns (120a, 120b) in the runtime data throughout execution of the service, wherein the run-time service description of the application concerns (120a, 120b) is updated by adding, removing or marking as removed the unique identifier defined for the aspect concern that is weaved into the application concerns (120a, 120b) in the runtime data, characterised in that the weaving entity is configured to mark one of the application concerns (120a, 120b) in the runtime data with the unique aspect identification when aspect weaving caused a change in that application concern, and either to consult the service description when deciding if one of the aspect concerns (126a, 126b) is to be added and if a function of the one aspect concern is already covered in the service then the one aspect concern is not weaved into the application concerns (120a, 120b) in the runtime data or if a different aspect concern having the same unique aspect identification is about to be weaved at another join-point then to allow this because the different aspect concern is described with the same unique aspect identification. a composition entity configured to interface with the at least one repository (104, 106) to load a service description identifying a list of application concerns (120a, 120b) which are implemented by the service into runtime data; a weaving entity configured to interface with the at least one repository (104, 106) to access an aspect description identifying a list of aspect concerns (126a, 126b) implemented by an aspect, where the list of aspect concerns (126a, 126b) has a unique aspect identification and each aspect concern is identified by a unique identifier; and the weaving entity configured to dynamically update a run-time service description of the application concerns (120a, 120b) in the runtime data throughout execution of the service, wherein the run-time service description of the application concerns (120a, 120b) is updated by adding, removing or marking as removed the unique identifier defined for the aspect concern that is weaved into the application concerns (120a, 120b) in the runtime data, characterised in that the weaving entity is configured to mark one of the application concerns (120a, 120b) in the runtime data with the unique aspect identification when aspect weaving caused a change in that application concern, and either to consult the service description when deciding if one of the aspect concerns (126a, 126b) is to be added and if a function of the one aspect concern is already covered in the service then the one aspect concern is not weaved into the application concerns (120a, 120b) in the runtime data or if a different aspect concern having the same unique aspect identification is about to be weaved at another join-point then to allow this because the different aspect concern is described with the same unique aspect identification.