/** * Copyright 2012 David Llewellyn-Jones <D.Llewellyn-Jones@ljmu.ac.uk> * Liverpool John Moores University <http://www.ljmu.ac.uk/cmp/> * Aniketos Project <http://www.aniketos.eu> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ package eu.aniketos.ncvm; import eu.aniketos.data.ICompositionPlan; import eu.aniketos.data.IConsumerPolicy; /** * Recursively call other services to determine whether a policy applies to it * Performs the task of deconstructing a service into its subservices in order * to select the correct module to invoke for verification. * @author LJMU/David Llewellyn-Jones * */ public interface INestedCompositionVerification { /** * Performs recursive decomposition of a service and invokes either the * CSVM, PVM or SPDM depending on the result in order to verify whether * the policy holds for the service. The method acts on the given * service plan. * @param service the BPMN service composition definition to check the policy against * @param policy the ConSpec security policy to check against the service * @return a value representing the result of the verification checks */ public IVerificationResult verifyProperty(ICompositionPlan service, IConsumerPolicy policy); /** * Performs recursive decomposition of a service and invokes either the * CSVM, PVM or SPDM depending on the result in order to verify whether * the policy holds for the service. The method acts on a service that * has already been deployed to the marketplace and therefore no service * plan is required. * @param serviceID the ID of the service as stored in the marketplace to check the policy against * @param policy the ConSpec security policy to check against the service * @return a value representing the result of the verification checks */ public IVerificationResult verifyPropertyDeployed(String serviceID, IConsumerPolicy policy); /** * Configure the address and access method of the feedback service to use to generate log/feedback output to * @param wsdlUrl address of the Web Service to send feedback to. Only needed if useTracker is false. * @param useTracker set to true if DOSGi service tracking should be used to access the service, or direct access as a Web Service otherwise */ public void configureNCVMFeedback(String wsdlUrl, boolean useTracker); /** * Configure the address and access method of the CSVM service to use * @param wsdlUrl address of the Web Service to use. Only needed if useTracker is false. * @param useTracker set to true if DOSGi service tracking should be used to access the service, or direct access as a Web Service otherwise */ public void configureCSVM(String wsdlUrl, boolean useTracker); /** * Configure the address and access method of the PVM service to use * @param wsdlUrl address of the Web Service to use. Only needed if useTracker is false. * @param useTracker set to true if DOSGi service tracking should be used to access the service, or direct access as a Web Service otherwise */ public void configurePVM(String wsdlUrl, boolean useTracker); /** * Configure the address and access method of the SPDM service to use * @param wsdlUrl address of the Web Service to use. Only needed if useTracker is false. * @param useTracker set to true if DOSGi service tracking should be used to access the service, or direct access as a Web Service otherwise */ public void configureSPDM(String wsdlUrl, boolean useTracker); /** * Configure the address and access method of the Marketplace service to use * @param wsdlUrl address of the Web Service to use. Only needed if useTracker is false. * @param useTracker set to true if DOSGi service tracking should be used to access the service, or direct access as a Web Service otherwise */ public void configureMarketplace(String wsdlUrl, boolean useTracker); /** * Perform various functionality tests. Each of the services needed for the verification chain * are called to ensure they're available. Test data will also be sent to each of the services * and the return results checked for errors and correctness. Results output are generated as log * output and to the feedback service. */ public void performTests (); }