├── .gitattributes ├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── Figure ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── Sipht.jpg ├── image-20220602104714337.png ├── image-20220602105100404.png ├── image-20220602105133930.png ├── image-20220602110231417.png ├── image-20220602110455889.png ├── image-20220602110516362.png ├── image-20220602110545957.png ├── image-20220602110606728.png ├── image-20220602110623512.png ├── image-20220602110636712.png ├── image-20220602110709390.png ├── image-20220602122128001.png ├── image-20220605121431849.png ├── image-20220605121544791.png ├── image-20220605122750335.png ├── image-20220605122936849.png ├── image-20220605132326535.png ├── image-20220611113535690.png └── image-20220611113704237.png ├── LICENSE.md ├── README.md ├── The Details of Offloading and Scheduling Algorithms.pdf ├── fogworkflowsim.sql ├── lib ├── cloudsim-3.0.3-sources.jar ├── cloudsim-3.0.3.jar ├── cloudsim-examples-3.0.3-sources.jar ├── cloudsim-examples-3.0.3.jar ├── commons-math3-3.5.jar ├── drawbar.jar ├── drawpicture.jar ├── drawplot2.jar ├── flanagan.jar ├── guava-18.0.jar ├── javabuilder.jar ├── jdom-2.0.0.jar ├── jgoodies-forms-1.8.0-sources.jar ├── jgoodies-forms-1.8.0.jar ├── json-simple-1.1.1.jar ├── jxl.jar ├── kmeans.jar ├── miglayout15-swing.jar └── plottest.jar ├── mvnw ├── mvnw.cmd ├── out └── artifacts │ └── fog_jar │ ├── classmate-1.5.0.jar │ ├── ecj-3.18.0.jar │ ├── fog.jar │ ├── hibernate-validator-6.0.17.Final.jar │ ├── jackson-annotations-2.10.0.jar │ ├── jackson-core-2.10.0.jar │ ├── jackson-databind-2.10.0.jar │ ├── jackson-datatype-jdk8-2.10.0.jar │ ├── jackson-datatype-jsr310-2.10.0.jar │ ├── jackson-module-parameter-names-2.10.0.jar │ ├── jakarta.annotation-api-1.3.5.jar │ ├── jakarta.validation-api-2.0.1.jar │ ├── javax.servlet-api-4.0.1.jar │ ├── jboss-logging-3.4.1.Final.jar │ ├── jstl-1.2.jar │ ├── jul-to-slf4j-1.7.28.jar │ ├── log4j-api-2.12.1.jar │ ├── log4j-to-slf4j-2.12.1.jar │ ├── logback-classic-1.2.3.jar │ ├── logback-core-1.2.3.jar │ ├── slf4j-api-1.7.28.jar │ ├── snakeyaml-1.25.jar │ ├── spring-aop-5.2.0.RELEASE.jar │ ├── spring-beans-5.2.0.RELEASE.jar │ ├── spring-boot-2.2.0.RELEASE.jar │ ├── spring-boot-autoconfigure-2.2.0.RELEASE.jar │ ├── spring-boot-starter-2.2.0.RELEASE.jar │ ├── spring-boot-starter-json-2.2.0.RELEASE.jar │ ├── spring-boot-starter-logging-2.2.0.RELEASE.jar │ ├── spring-boot-starter-validation-2.2.0.RELEASE.jar │ ├── spring-boot-starter-web-2.2.0.RELEASE.jar │ ├── spring-context-5.2.0.RELEASE.jar │ ├── spring-core-5.2.0.RELEASE.jar │ ├── spring-expression-5.2.0.RELEASE.jar │ ├── spring-jcl-5.2.0.RELEASE.jar │ ├── spring-web-5.2.0.RELEASE.jar │ ├── spring-webmvc-5.2.0.RELEASE.jar │ ├── tomcat-embed-core-9.0.27.jar │ ├── tomcat-embed-el-9.0.27.jar │ └── tomcat-embed-jasper-9.0.27.jar ├── pom.xml └── src ├── main ├── java │ ├── com │ │ └── ccis │ │ │ └── fog │ │ │ ├── Advices.java │ │ │ ├── Developer.java │ │ │ ├── EmailService.java │ │ │ ├── FogApplication.java │ │ │ ├── IndexController.java │ │ │ ├── IndexService.java │ │ │ ├── OutputEntity.java │ │ │ ├── SystemVersion.java │ │ │ ├── User.java │ │ │ ├── VerCodeGenerateUtil.java │ │ │ ├── VisitCount.java │ │ │ ├── domparse.java │ │ │ └── drawWorkflow │ │ │ └── workFlowController.java │ ├── engine │ │ ├── DagGraphUtil.java │ │ ├── DockerLink.java │ │ ├── ParseXML.java │ │ └── Test.java │ └── org │ │ ├── cloudbus │ │ └── cloudsim │ │ │ ├── Cloudlet.java │ │ │ ├── CloudletScheduler.java │ │ │ ├── CloudletSchedulerDynamicWorkload.java │ │ │ ├── CloudletSchedulerSpaceShared.java │ │ │ ├── CloudletSchedulerTimeShared.java │ │ │ ├── Consts.java │ │ │ ├── DataCloudTags.java │ │ │ ├── Datacenter.java │ │ │ ├── DatacenterBroker.java │ │ │ ├── DatacenterCharacteristics.java │ │ │ ├── File.java │ │ │ ├── FileAttribute.java │ │ │ ├── HarddriveStorage.java │ │ │ ├── Host.java │ │ │ ├── HostDynamicWorkload.java │ │ │ ├── HostStateHistoryEntry.java │ │ │ ├── InfoPacket.java │ │ │ ├── Log.java │ │ │ ├── NetworkTopology.java │ │ │ ├── Packet.java │ │ │ ├── ParameterException.java │ │ │ ├── Pe.java │ │ │ ├── ResCloudlet.java │ │ │ ├── SanStorage.java │ │ │ ├── Storage.java │ │ │ ├── UtilizationModel.java │ │ │ ├── UtilizationModelFull.java │ │ │ ├── UtilizationModelNull.java │ │ │ ├── UtilizationModelPlanetLabInMemory.java │ │ │ ├── UtilizationModelStochastic.java │ │ │ ├── Vm.java │ │ │ ├── VmAllocationPolicy.java │ │ │ ├── VmAllocationPolicyObO.java │ │ │ ├── VmAllocationPolicySimple.java │ │ │ ├── VmScheduler.java │ │ │ ├── VmSchedulerSpaceShared.java │ │ │ ├── VmSchedulerTimeShared.java │ │ │ ├── VmSchedulerTimeSharedOverSubscription.java │ │ │ ├── VmStateHistoryEntry.java │ │ │ ├── core │ │ │ ├── CloudInformationService.java │ │ │ ├── CloudSim.java │ │ │ ├── CloudSimShutdown.java │ │ │ ├── CloudSimTags.java │ │ │ ├── DeferredQueue.java │ │ │ ├── FutureQueue.java │ │ │ ├── SimEntity.java │ │ │ ├── SimEvent.java │ │ │ └── predicates │ │ │ │ ├── Predicate.java │ │ │ │ ├── PredicateAny.java │ │ │ │ ├── PredicateFrom.java │ │ │ │ ├── PredicateNone.java │ │ │ │ ├── PredicateNotFrom.java │ │ │ │ ├── PredicateNotType.java │ │ │ │ └── PredicateType.java │ │ │ ├── distributions │ │ │ ├── ContinuousDistribution.java │ │ │ ├── ExponentialDistr.java │ │ │ ├── GammaDistr.java │ │ │ ├── LognormalDistr.java │ │ │ ├── LomaxDistribution.java │ │ │ ├── ParetoDistr.java │ │ │ ├── UniformDistr.java │ │ │ ├── WeibullDistr.java │ │ │ └── ZipfDistr.java │ │ │ ├── lists │ │ │ ├── CloudletList.java │ │ │ ├── HostList.java │ │ │ ├── PeList.java │ │ │ ├── ResCloudletList.java │ │ │ └── VmList.java │ │ │ ├── network │ │ │ ├── DelayMatrix_Float.java │ │ │ ├── FloydWarshall_Float.java │ │ │ ├── GraphReaderBrite.java │ │ │ ├── GraphReaderIF.java │ │ │ ├── TopologicalGraph.java │ │ │ ├── TopologicalLink.java │ │ │ ├── TopologicalNode.java │ │ │ └── datacenter │ │ │ │ ├── AggregateSwitch.java │ │ │ │ ├── AppCloudlet.java │ │ │ │ ├── EdgeSwitch.java │ │ │ │ ├── HostPacket.java │ │ │ │ ├── NetDatacenterBroker.java │ │ │ │ ├── NetworkCloudlet.java │ │ │ │ ├── NetworkCloudletSpaceSharedScheduler.java │ │ │ │ ├── NetworkConstants.java │ │ │ │ ├── NetworkDatacenter.java │ │ │ │ ├── NetworkHost.java │ │ │ │ ├── NetworkPacket.java │ │ │ │ ├── NetworkVm.java │ │ │ │ ├── NetworkVmAllocationPolicy.java │ │ │ │ ├── RootSwitch.java │ │ │ │ ├── Switch.java │ │ │ │ ├── TaskStage.java │ │ │ │ └── WorkflowApp.java │ │ │ ├── power │ │ │ ├── PowerDatacenter.java │ │ │ ├── PowerDatacenterBroker.java │ │ │ ├── PowerDatacenterNonPowerAware.java │ │ │ ├── PowerHost.java │ │ │ ├── PowerHostUtilizationHistory.java │ │ │ ├── PowerVm.java │ │ │ ├── PowerVmAllocationPolicyAbstract.java │ │ │ ├── PowerVmAllocationPolicyMigrationAbstract.java │ │ │ ├── PowerVmAllocationPolicyMigrationInterQuartileRange.java │ │ │ ├── PowerVmAllocationPolicyMigrationLocalRegression.java │ │ │ ├── PowerVmAllocationPolicyMigrationLocalRegressionRobust.java │ │ │ ├── PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation.java │ │ │ ├── PowerVmAllocationPolicyMigrationStaticThreshold.java │ │ │ ├── PowerVmAllocationPolicySimple.java │ │ │ ├── PowerVmSelectionPolicy.java │ │ │ ├── PowerVmSelectionPolicyMaximumCorrelation.java │ │ │ ├── PowerVmSelectionPolicyMinimumMigrationTime.java │ │ │ ├── PowerVmSelectionPolicyMinimumUtilization.java │ │ │ ├── PowerVmSelectionPolicyRandomSelection.java │ │ │ ├── lists │ │ │ │ └── PowerVmList.java │ │ │ └── models │ │ │ │ ├── PowerModel.java │ │ │ │ ├── PowerModelCubic.java │ │ │ │ ├── PowerModelLinear.java │ │ │ │ ├── PowerModelSpecPower.java │ │ │ │ ├── PowerModelSpecPowerHpProLiantMl110G3PentiumD930.java │ │ │ │ ├── PowerModelSpecPowerHpProLiantMl110G4Xeon3040.java │ │ │ │ ├── PowerModelSpecPowerHpProLiantMl110G5Xeon3075.java │ │ │ │ ├── PowerModelSpecPowerIbmX3250XeonX3470.java │ │ │ │ ├── PowerModelSpecPowerIbmX3250XeonX3480.java │ │ │ │ ├── PowerModelSpecPowerIbmX3550XeonX5670.java │ │ │ │ ├── PowerModelSpecPowerIbmX3550XeonX5675.java │ │ │ │ ├── PowerModelSqrt.java │ │ │ │ └── PowerModelSquare.java │ │ │ ├── provisioners │ │ │ ├── BwProvisioner.java │ │ │ ├── BwProvisionerSimple.java │ │ │ ├── PeProvisioner.java │ │ │ ├── PeProvisionerSimple.java │ │ │ ├── RamProvisioner.java │ │ │ └── RamProvisionerSimple.java │ │ │ ├── sdn │ │ │ ├── Activity.java │ │ │ ├── AggregationSwitch.java │ │ │ ├── Arc.java │ │ │ ├── Channel.java │ │ │ ├── Constants.java │ │ │ ├── CoreSwitch.java │ │ │ ├── EdgeSwitch.java │ │ │ ├── ForwardingRule.java │ │ │ ├── Link.java │ │ │ ├── Middlebox.java │ │ │ ├── NetworkOperatingSystem.java │ │ │ ├── Node.java │ │ │ ├── Package.java │ │ │ ├── PhysicalTopology.java │ │ │ ├── Processing.java │ │ │ ├── Request.java │ │ │ ├── RoutingTable.java │ │ │ ├── SDNDatacenter.java │ │ │ ├── SDNHost.java │ │ │ ├── Switch.java │ │ │ ├── TimedVm.java │ │ │ ├── Transmission.java │ │ │ ├── example │ │ │ │ ├── LogPrinter.java │ │ │ │ ├── SDNBroker.java │ │ │ │ ├── SDNExample.java │ │ │ │ ├── SimpleNetworkOperatingSystem.java │ │ │ │ ├── VmAllocationPolicyCombinedLeastFullFirst.java │ │ │ │ ├── VmAllocationPolicyCombinedMostFullFirst.java │ │ │ │ ├── VmAllocationPolicyMipsLeastFullFirst.java │ │ │ │ ├── VmAllocationPolicyMipsMostFullFirst.java │ │ │ │ ├── VmSchedulerSpaceSharedEnergy.java │ │ │ │ ├── Workload.java │ │ │ │ ├── WorkloadParser.java │ │ │ │ ├── policies │ │ │ │ │ ├── VmAllocationPolicyCombinedLeastFullFirst.java │ │ │ │ │ ├── VmAllocationPolicyCombinedMostFullFirst.java │ │ │ │ │ ├── VmAllocationPolicyMipsLeastFullFirst.java │ │ │ │ │ ├── VmAllocationPolicyMipsMostFullFirst.java │ │ │ │ │ └── VmSchedulerTimeSharedEnergy.java │ │ │ │ └── topogenerators │ │ │ │ │ ├── PhysicalTopologyGenerator.java │ │ │ │ │ ├── VMRequestRandomGenerator.java │ │ │ │ │ ├── VirtualTopologyGenerator.java │ │ │ │ │ └── VirtualTopologyGeneratorVmTypes.java │ │ │ ├── overbooking │ │ │ │ ├── BwProvisionerOverbooking.java │ │ │ │ ├── OverbookingNetworkOperatingSystem.java │ │ │ │ ├── PeProvisionerOverbooking.java │ │ │ │ ├── VmAllocationPolicyOverbooking.java │ │ │ │ └── VmSchedulerTimeSharedOverbookingEnergy.java │ │ │ ├── power │ │ │ │ ├── PowerUtilizationHistoryEntry.java │ │ │ │ ├── PowerUtilizationInterface.java │ │ │ │ └── PowerUtilizationMaxHostInterface.java │ │ │ └── request │ │ │ │ └── VMRequestGenerator.java │ │ │ └── util │ │ │ ├── Check.java │ │ │ ├── ExecutionTimeMeasurer.java │ │ │ ├── MathUtil.java │ │ │ ├── Test.java │ │ │ ├── Test2.java │ │ │ ├── WorkloadFileReader.java │ │ │ └── WorkloadModel.java │ │ ├── fog │ │ ├── entities │ │ │ ├── Controller.java │ │ │ ├── FogBroker.java │ │ │ ├── FogDevice.java │ │ │ ├── FogDeviceCharacteristics.java │ │ │ └── OffloadingEngine.java │ │ ├── offloading │ │ │ ├── OffloadingStrategy.java │ │ │ ├── OffloadingStrategyAllinCloud.java │ │ │ ├── OffloadingStrategyAllinFog.java │ │ │ ├── OffloadingStrategySimple.java │ │ │ └── Plot.java │ │ └── utils │ │ │ ├── CanBeSentResult.java │ │ │ ├── Config.java │ │ │ ├── FogEntityFactory.java │ │ │ ├── FogEvents.java │ │ │ ├── FogLinearPowerModel.java │ │ │ ├── FogUtils.java │ │ │ ├── GeoCoverage.java │ │ │ ├── GeoLocation.java │ │ │ ├── Logger.java │ │ │ ├── NetworkUsageMonitor.java │ │ │ ├── OperatorEdge.java │ │ │ ├── OperatorSetComparator.java │ │ │ ├── ResourceUsageDetails.java │ │ │ └── distribution │ │ │ ├── DeterministicDistribution.java │ │ │ ├── Distribution.java │ │ │ ├── NormalDistribution.java │ │ │ └── UniformDistribution.java │ │ ├── tools │ │ └── IpUtil.java │ │ └── workflowsim │ │ ├── ClusterStorage.java │ │ ├── ClusteringEngine.java │ │ ├── CondorVM.java │ │ ├── FileItem.java │ │ ├── Job.java │ │ ├── Task.java │ │ ├── WorkflowEngine.java │ │ ├── WorkflowParser.java │ │ ├── WorkflowPlanner.java │ │ ├── WorkflowSimTags.java │ │ ├── clustering │ │ ├── AbstractArrayList.java │ │ ├── BasicClustering.java │ │ ├── BlockClustering.java │ │ ├── ClusteringInterface.java │ │ ├── HorizontalClustering.java │ │ ├── TaskSet.java │ │ ├── VerticalClustering.java │ │ └── balancing │ │ │ ├── BalancedClustering.java │ │ │ ├── methods │ │ │ ├── BalancingMethod.java │ │ │ ├── ChildAwareHorizontalClustering.java │ │ │ ├── HorizontalDistanceBalancing.java │ │ │ ├── HorizontalImpactBalancing.java │ │ │ ├── HorizontalRandomClustering.java │ │ │ ├── HorizontalRuntimeBalancing.java │ │ │ └── VerticalBalancing.java │ │ │ └── metrics │ │ │ ├── BalancingMetric.java │ │ │ ├── DistanceVariance.java │ │ │ ├── HorizontalRuntimeVariance.java │ │ │ ├── ImpactFactorVariance.java │ │ │ └── PipelineRuntimeVariance.java │ │ ├── failure │ │ ├── FailureGenerator.java │ │ ├── FailureMonitor.java │ │ ├── FailureParameters.java │ │ └── FailureRecord.java │ │ ├── planning │ │ ├── BasePlanningAlgorithm.java │ │ ├── DHEFTPlanningAlgorithm.java │ │ ├── HEFTPlanningAlgorithm.java │ │ ├── PlanningAlgorithmInterface.java │ │ └── RandomPlanningAlgorithm.java │ │ ├── reclustering │ │ ├── ClusteringSizeEstimator.java │ │ └── ReclusteringEngine.java │ │ ├── scheduling │ │ ├── BaseSchedulingAlgorithm.java │ │ ├── DataAwareSchedulingAlgorithm.java │ │ ├── FCFSSchedulingAlgorithm.java │ │ ├── GASchedulingAlgorithm.java │ │ ├── MCTSchedulingAlgorithm.java │ │ ├── MaxMinSchedulingAlgorithm.java │ │ ├── MinMinSchedulingAlgorithm.java │ │ ├── PsoScheduling.java │ │ ├── RoundRobinSchedulingAlgorithm.java │ │ ├── SchedulingAlgorithmInterface.java │ │ └── StaticSchedulingAlgorithm.java │ │ └── utils │ │ ├── ClusteringParameters.java │ │ ├── DistributionGenerator.java │ │ ├── OverheadParameters.java │ │ ├── Parameters.java │ │ ├── PeriodicalDistributionGenerator.java │ │ ├── PeriodicalSignal.java │ │ └── ReplicaCatalog.java ├── resources │ ├── application.properties │ └── static │ │ ├── css │ │ ├── DrawWorkflow │ │ │ ├── cyberShake.css │ │ │ ├── epigenomics.css │ │ │ ├── inspiral.css │ │ │ ├── montage.css │ │ │ ├── nodeInfo.css │ │ │ ├── other.css │ │ │ └── sipht.css │ │ ├── algorithmsSetting.css │ │ ├── chart.css │ │ ├── drawWorkflow.css │ │ ├── fog.css │ │ ├── fogImport.css │ │ ├── index.css │ │ ├── login.css │ │ └── setStep.css │ │ ├── easyui │ │ └── jquery.easyui.min.js │ │ ├── echarts │ │ ├── echarts-en.min.js │ │ └── echarts.min.js │ │ ├── images │ │ ├── 2vm.png │ │ ├── QRCode01.png │ │ ├── QRCode02.png │ │ ├── ahu_logo.png │ │ ├── back_show.jpg │ │ ├── cloudServer.jpg │ │ ├── cloudServer.png │ │ ├── cross2.png │ │ ├── deakin_logo.png │ │ ├── del.png │ │ ├── developers.png │ │ ├── disabled.jpg │ │ ├── disabled.png │ │ ├── edge_logo.png │ │ ├── file.ico │ │ ├── fogServer.jpg │ │ ├── fogServer.png │ │ ├── loading.gif │ │ ├── login_01.jpg │ │ ├── login_02.jpg │ │ ├── login_03.jpg │ │ ├── mobile.jpg │ │ ├── mobile.png │ │ ├── mon-spr.png │ │ ├── monash_logo.png │ │ ├── schoolLogo.png │ │ ├── swinburne_logo.png │ │ ├── task.jpg │ │ ├── titleLog.png │ │ └── userlogo.jpg │ │ ├── jquery │ │ ├── canvas-nest.min.js │ │ ├── jparticle.min.js │ │ ├── jquery-1.9.1.min.js │ │ ├── jquery-ui-1.10.4.min.js │ │ ├── jquery.cookie.js │ │ ├── jquery.json2xml.js │ │ ├── jquery.min.js │ │ ├── jquery.qrcode.min.js │ │ ├── jquery.xml2json.js │ │ ├── jsencrypt.js │ │ ├── jsplumb.js │ │ ├── jsplumb.min.js │ │ ├── raphael.min.js │ │ └── zylVerificationCode.js │ │ ├── js │ │ ├── DrawWorkflow │ │ │ ├── cyberShake.js │ │ │ ├── epigenomics.js │ │ │ ├── inspiral.js │ │ │ ├── montage.js │ │ │ ├── nodeInfo.js │ │ │ ├── other.js │ │ │ └── sipht.js │ │ ├── algorithmsSetting.js │ │ ├── algorithmsSettingGA.js │ │ ├── algorithmsSettingPSO.js │ │ ├── developerInformation.js │ │ ├── drawWorkflow.js │ │ ├── fogImport.js │ │ ├── fogSetting.js │ │ ├── index.js │ │ ├── jquery.table2excel.js │ │ ├── setStep.js │ │ └── setStepTemp.js │ │ ├── layui │ │ ├── css │ │ │ ├── demo.css │ │ │ ├── icon.png │ │ │ ├── jquery-ui-1.10.4.min.css │ │ │ ├── layer_v3.1.1.css │ │ │ ├── layui.css │ │ │ ├── layui.mobile.css │ │ │ ├── loading-1.gif │ │ │ └── modules │ │ │ │ ├── code.css │ │ │ │ ├── laydate │ │ │ │ └── default │ │ │ │ │ └── laydate.css │ │ │ │ └── layer │ │ │ │ └── default │ │ │ │ ├── icon-ext.png │ │ │ │ ├── icon.png │ │ │ │ ├── layer.css │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ ├── font │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── iconfont.eot │ │ │ ├── iconfont.svg │ │ │ ├── iconfont.ttf │ │ │ ├── iconfont.woff │ │ │ └── iconfont.woff2 │ │ ├── images │ │ │ └── face │ │ │ │ ├── 0.gif │ │ │ │ ├── 1.gif │ │ │ │ ├── 10.gif │ │ │ │ ├── 11.gif │ │ │ │ ├── 12.gif │ │ │ │ ├── 13.gif │ │ │ │ ├── 14.gif │ │ │ │ ├── 15.gif │ │ │ │ ├── 16.gif │ │ │ │ ├── 17.gif │ │ │ │ ├── 18.gif │ │ │ │ ├── 19.gif │ │ │ │ ├── 2.gif │ │ │ │ ├── 20.gif │ │ │ │ ├── 21.gif │ │ │ │ ├── 22.gif │ │ │ │ ├── 23.gif │ │ │ │ ├── 24.gif │ │ │ │ ├── 25.gif │ │ │ │ ├── 26.gif │ │ │ │ ├── 27.gif │ │ │ │ ├── 28.gif │ │ │ │ ├── 29.gif │ │ │ │ ├── 3.gif │ │ │ │ ├── 30.gif │ │ │ │ ├── 31.gif │ │ │ │ ├── 32.gif │ │ │ │ ├── 33.gif │ │ │ │ ├── 34.gif │ │ │ │ ├── 35.gif │ │ │ │ ├── 36.gif │ │ │ │ ├── 37.gif │ │ │ │ ├── 38.gif │ │ │ │ ├── 39.gif │ │ │ │ ├── 4.gif │ │ │ │ ├── 40.gif │ │ │ │ ├── 41.gif │ │ │ │ ├── 42.gif │ │ │ │ ├── 43.gif │ │ │ │ ├── 44.gif │ │ │ │ ├── 45.gif │ │ │ │ ├── 46.gif │ │ │ │ ├── 47.gif │ │ │ │ ├── 48.gif │ │ │ │ ├── 49.gif │ │ │ │ ├── 5.gif │ │ │ │ ├── 50.gif │ │ │ │ ├── 51.gif │ │ │ │ ├── 52.gif │ │ │ │ ├── 53.gif │ │ │ │ ├── 54.gif │ │ │ │ ├── 55.gif │ │ │ │ ├── 56.gif │ │ │ │ ├── 57.gif │ │ │ │ ├── 58.gif │ │ │ │ ├── 59.gif │ │ │ │ ├── 6.gif │ │ │ │ ├── 60.gif │ │ │ │ ├── 61.gif │ │ │ │ ├── 62.gif │ │ │ │ ├── 63.gif │ │ │ │ ├── 64.gif │ │ │ │ ├── 65.gif │ │ │ │ ├── 66.gif │ │ │ │ ├── 67.gif │ │ │ │ ├── 68.gif │ │ │ │ ├── 69.gif │ │ │ │ ├── 7.gif │ │ │ │ ├── 70.gif │ │ │ │ ├── 71.gif │ │ │ │ ├── 8.gif │ │ │ │ ├── 9.gif │ │ │ │ └── bg.jpg │ │ ├── lay │ │ │ └── modules │ │ │ │ ├── carousel.js │ │ │ │ ├── code.js │ │ │ │ ├── colorpicker.js │ │ │ │ ├── element.js │ │ │ │ ├── flow.js │ │ │ │ ├── form.js │ │ │ │ ├── jquery.js │ │ │ │ ├── laydate.js │ │ │ │ ├── layedit.js │ │ │ │ ├── layer.js │ │ │ │ ├── laypage.js │ │ │ │ ├── laytpl.js │ │ │ │ ├── mobile.js │ │ │ │ ├── rate.js │ │ │ │ ├── slider.js │ │ │ │ ├── table.js │ │ │ │ ├── transfer.js │ │ │ │ ├── tree.js │ │ │ │ ├── upload.js │ │ │ │ └── util.js │ │ ├── layui.all.js │ │ └── layui.js │ │ └── xml │ │ ├── dax │ │ ├── C_yberShake_30.xml │ │ ├── CyberShake_100.xml │ │ ├── CyberShake_1000.xml │ │ ├── CyberShake_30.xml │ │ ├── CyberShake_50.xml │ │ ├── Epigenomics_100.xml │ │ ├── Epigenomics_24.xml │ │ ├── Epigenomics_47.xml │ │ ├── Epigenomics_997.xml │ │ ├── HEFT_paper.xml │ │ ├── Inspiral_100.xml │ │ ├── Inspiral_1000.xml │ │ ├── Inspiral_30.xml │ │ ├── Inspiral_50.xml │ │ ├── Montage_100.xml │ │ ├── Montage_20.xml │ │ ├── Montage_200.xml │ │ ├── Montage_300.xml │ │ ├── Montage_40.xml │ │ ├── Montage_60.xml │ │ ├── Montage_80.xml │ │ ├── Sipht_29.xml │ │ ├── Sipht_58.xml │ │ ├── Sipht_968.xml │ │ ├── Sipht_97.xml │ │ ├── dax.zip │ │ └── floodplain.xml │ │ └── environment-setting │ │ ├── EnvironmentSetting.xml │ │ └── 大EnvironmentSetting.xml └── webapp │ └── WEB-INF │ └── jsp │ ├── DagStructure.jsp │ ├── DrawWorkflow │ ├── cyberShake.jsp │ ├── epigenomics.jsp │ ├── inspiral.jsp │ ├── montage.jsp │ ├── nodeInfo.jsp │ ├── other.jsp │ └── sipht.jsp │ ├── algorithmsSetting.jsp │ ├── algorithmsSettingGA.jsp │ ├── algorithmsSettingPSO.jsp │ ├── allRecommendations.jsp │ ├── barChart.jsp │ ├── customFileChose.jsp │ ├── developerInformation.jsp │ ├── documentInfo.jsp │ ├── drawWorkflow.jsp │ ├── exampleFileChose.jsp │ ├── fogImport.jsp │ ├── fogSetting.jsp │ ├── forgotPsw.jsp │ ├── index.jsp │ ├── indextemp.jsp │ ├── indextmp.jsp │ ├── lineChart.jsp │ ├── login.jsp │ ├── login_main.jsp │ ├── recommendations.jsp │ ├── register.jsp │ ├── setStep.jsp │ ├── systemInfo.jsp │ ├── systemVersions.jsp │ └── userlogin.jsp └── test └── java └── com └── ccis └── fog └── FogApplicationTests.java /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | 30 | ### VS Code ### 31 | .vscode/ 32 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /Figure/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/1.png -------------------------------------------------------------------------------- /Figure/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/2.png -------------------------------------------------------------------------------- /Figure/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/3.png -------------------------------------------------------------------------------- /Figure/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/4.png -------------------------------------------------------------------------------- /Figure/Sipht.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/Sipht.jpg -------------------------------------------------------------------------------- /Figure/image-20220602104714337.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602104714337.png -------------------------------------------------------------------------------- /Figure/image-20220602105100404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602105100404.png -------------------------------------------------------------------------------- /Figure/image-20220602105133930.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602105133930.png -------------------------------------------------------------------------------- /Figure/image-20220602110231417.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110231417.png -------------------------------------------------------------------------------- /Figure/image-20220602110455889.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110455889.png -------------------------------------------------------------------------------- /Figure/image-20220602110516362.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110516362.png -------------------------------------------------------------------------------- /Figure/image-20220602110545957.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110545957.png -------------------------------------------------------------------------------- /Figure/image-20220602110606728.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110606728.png -------------------------------------------------------------------------------- /Figure/image-20220602110623512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110623512.png -------------------------------------------------------------------------------- /Figure/image-20220602110636712.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110636712.png -------------------------------------------------------------------------------- /Figure/image-20220602110709390.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602110709390.png -------------------------------------------------------------------------------- /Figure/image-20220602122128001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220602122128001.png -------------------------------------------------------------------------------- /Figure/image-20220605121431849.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220605121431849.png -------------------------------------------------------------------------------- /Figure/image-20220605121544791.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220605121544791.png -------------------------------------------------------------------------------- /Figure/image-20220605122750335.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220605122750335.png -------------------------------------------------------------------------------- /Figure/image-20220605122936849.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220605122936849.png -------------------------------------------------------------------------------- /Figure/image-20220605132326535.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220605132326535.png -------------------------------------------------------------------------------- /Figure/image-20220611113535690.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220611113535690.png -------------------------------------------------------------------------------- /Figure/image-20220611113704237.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/Figure/image-20220611113704237.png -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2022 Anhui University && Deakin University 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /The Details of Offloading and Scheduling Algorithms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/The Details of Offloading and Scheduling Algorithms.pdf -------------------------------------------------------------------------------- /lib/cloudsim-3.0.3-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/cloudsim-3.0.3-sources.jar -------------------------------------------------------------------------------- /lib/cloudsim-3.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/cloudsim-3.0.3.jar -------------------------------------------------------------------------------- /lib/cloudsim-examples-3.0.3-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/cloudsim-examples-3.0.3-sources.jar -------------------------------------------------------------------------------- /lib/cloudsim-examples-3.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/cloudsim-examples-3.0.3.jar -------------------------------------------------------------------------------- /lib/commons-math3-3.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/commons-math3-3.5.jar -------------------------------------------------------------------------------- /lib/drawbar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/drawbar.jar -------------------------------------------------------------------------------- /lib/drawpicture.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/drawpicture.jar -------------------------------------------------------------------------------- /lib/drawplot2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/drawplot2.jar -------------------------------------------------------------------------------- /lib/flanagan.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/flanagan.jar -------------------------------------------------------------------------------- /lib/guava-18.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/guava-18.0.jar -------------------------------------------------------------------------------- /lib/javabuilder.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/javabuilder.jar -------------------------------------------------------------------------------- /lib/jdom-2.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/jdom-2.0.0.jar -------------------------------------------------------------------------------- /lib/jgoodies-forms-1.8.0-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/jgoodies-forms-1.8.0-sources.jar -------------------------------------------------------------------------------- /lib/jgoodies-forms-1.8.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/jgoodies-forms-1.8.0.jar -------------------------------------------------------------------------------- /lib/json-simple-1.1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/json-simple-1.1.1.jar -------------------------------------------------------------------------------- /lib/jxl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/jxl.jar -------------------------------------------------------------------------------- /lib/kmeans.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/kmeans.jar -------------------------------------------------------------------------------- /lib/miglayout15-swing.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/miglayout15-swing.jar -------------------------------------------------------------------------------- /lib/plottest.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/lib/plottest.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/classmate-1.5.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/classmate-1.5.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/ecj-3.18.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/ecj-3.18.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/fog.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/fog.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/hibernate-validator-6.0.17.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/hibernate-validator-6.0.17.Final.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jackson-annotations-2.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jackson-annotations-2.10.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jackson-core-2.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jackson-core-2.10.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jackson-databind-2.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jackson-databind-2.10.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jackson-datatype-jdk8-2.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jackson-datatype-jdk8-2.10.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jackson-datatype-jsr310-2.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jackson-datatype-jsr310-2.10.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jackson-module-parameter-names-2.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jackson-module-parameter-names-2.10.0.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jakarta.annotation-api-1.3.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jakarta.annotation-api-1.3.5.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jakarta.validation-api-2.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jakarta.validation-api-2.0.1.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/javax.servlet-api-4.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/javax.servlet-api-4.0.1.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jboss-logging-3.4.1.Final.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jboss-logging-3.4.1.Final.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jstl-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jstl-1.2.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/jul-to-slf4j-1.7.28.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/jul-to-slf4j-1.7.28.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/log4j-api-2.12.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/log4j-api-2.12.1.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/log4j-to-slf4j-2.12.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/log4j-to-slf4j-2.12.1.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/logback-classic-1.2.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/logback-classic-1.2.3.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/logback-core-1.2.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/logback-core-1.2.3.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/slf4j-api-1.7.28.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/slf4j-api-1.7.28.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/snakeyaml-1.25.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/snakeyaml-1.25.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-aop-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-aop-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-beans-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-beans-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-autoconfigure-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-autoconfigure-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-starter-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-starter-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-starter-json-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-starter-json-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-starter-logging-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-starter-logging-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-starter-validation-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-starter-validation-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-boot-starter-web-2.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-boot-starter-web-2.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-context-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-context-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-core-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-core-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-expression-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-expression-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-jcl-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-jcl-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-web-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-web-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/spring-webmvc-5.2.0.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/spring-webmvc-5.2.0.RELEASE.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/tomcat-embed-core-9.0.27.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/tomcat-embed-core-9.0.27.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/tomcat-embed-el-9.0.27.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/tomcat-embed-el-9.0.27.jar -------------------------------------------------------------------------------- /out/artifacts/fog_jar/tomcat-embed-jasper-9.0.27.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/out/artifacts/fog_jar/tomcat-embed-jasper-9.0.27.jar -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/Advices.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | public class Advices { 4 | private String date; 5 | 6 | private String advices; 7 | 8 | public String getDate() { 9 | return date; 10 | } 11 | 12 | public String getAdvices() { 13 | return advices; 14 | } 15 | 16 | public void setDate(String date) { 17 | this.date = date; 18 | } 19 | 20 | public void setAdvices(String advices) { 21 | this.advices = advices; 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return "Advices{" + 27 | "date='" + date + '\'' + 28 | ", advices='" + advices + '\'' + 29 | '}'; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/Developer.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | public class Developer { 4 | 5 | private String name; 6 | 7 | private String university; 8 | 9 | private String email; 10 | 11 | public String getName() { 12 | return name; 13 | } 14 | 15 | public String getUniversity() { 16 | return university; 17 | } 18 | 19 | public String getEmail() { 20 | return email; 21 | } 22 | 23 | public void setName(String name) { 24 | this.name = name; 25 | } 26 | 27 | public void setUniversity(String university) { 28 | this.university = university; 29 | } 30 | 31 | public void setEmail(String email) { 32 | this.email = email; 33 | } 34 | 35 | @Override 36 | public String toString() { 37 | return "Developer{" + 38 | "name='" + name + '\'' + 39 | ", university='" + university + '\'' + 40 | ", email='" + email + '\'' + 41 | '}'; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/EmailService.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.beans.factory.annotation.Value; 5 | import org.springframework.mail.MailSendException; 6 | import org.springframework.mail.SimpleMailMessage; 7 | import org.springframework.mail.javamail.JavaMailSenderImpl; 8 | import org.springframework.scheduling.annotation.Async; 9 | import org.springframework.stereotype.Service; 10 | 11 | @Service 12 | public class EmailService { 13 | @Autowired 14 | JavaMailSenderImpl mailSender; 15 | 16 | /** 17 | * 从配置文件中获取发件人 18 | */ 19 | @Value("${spring.mail.username}") 20 | private String sender; 21 | 22 | /** 23 | * 邮件发送 24 | * @param receiver 收件人 25 | * @param verCode 验证码 26 | * @throws MailSendException 邮件发送错误 27 | */ 28 | @Async 29 | public void sendEmailVerCode(String receiver, String verCode) throws MailSendException { 30 | SimpleMailMessage message = new SimpleMailMessage(); 31 | /*message.setSubject("验证码"); //设置邮件标题 32 | message.setText("尊敬的用户,您好:\n" 33 | + "\n本次请求的邮件验证码为:" + verCode + ",本验证码5分钟内有效,请及时输入。(请勿泄露此验证码)\n" 34 | + "\n如非本人操作,请忽略该邮件。\n(这是一封自动发送的邮件,请不要直接回复)"); //设置邮件正文*/ 35 | message.setSubject("Verification Code"); //设置邮件标题 36 | message.setText("Dear user:\n" 37 | + "\nThe email verification code for this request is:" + verCode + ",This verification code is valid for 5 minutes, please enter it in time.(Do not disclose this verification code)\n" 38 | + "\nPlease ignore this email if it is not your own operation。\n(This is an automatic email, please do not reply directly)"); //设置邮件正文 39 | message.setTo(receiver); //设置收件人 40 | message.setFrom(sender); //设置发件人 41 | mailSender.send(message); //发送邮件 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/FogApplication.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class FogApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(FogApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/SystemVersion.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | public class SystemVersion { 4 | 5 | //版本号 6 | private String versionNum; 7 | 8 | //备注 9 | private String note; 10 | 11 | //更新日期 12 | private String updateTime; 13 | 14 | public String getVersionNum() { 15 | return versionNum; 16 | } 17 | 18 | public void setVersionNum(String versionNum) { 19 | this.versionNum = versionNum; 20 | } 21 | 22 | public String getNote() { 23 | return note; 24 | } 25 | 26 | public void setNote(String note) { 27 | this.note = note; 28 | } 29 | 30 | public String getUpdateTime() { 31 | return updateTime; 32 | } 33 | 34 | public void setUpdateTime(String updateTime) { 35 | this.updateTime = updateTime; 36 | } 37 | 38 | @Override 39 | public String toString() { 40 | return "SystemVersion{" + 41 | "versionNum='" + versionNum + '\'' + 42 | ", note='" + note + '\'' + 43 | ", updateTime='" + updateTime + '\'' + 44 | '}'; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/VerCodeGenerateUtil.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | import java.security.SecureRandom; 4 | import java.util.Random; 5 | 6 | public class VerCodeGenerateUtil { 7 | private static final String SYMBOLS = "0123456789"; 8 | private static final Random RANDOM = new SecureRandom(); 9 | 10 | /** 11 | * 生成6位随机数字 12 | * @return 返回6位数字验证码 13 | */ 14 | public static String generateVerCode() { 15 | char[] nonceChars = new char[6]; 16 | for (int index = 0; index < nonceChars.length; ++index) { 17 | nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length())); 18 | } 19 | return new String(nonceChars); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/VisitCount.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog; 2 | 3 | public class VisitCount { 4 | 5 | private String email; 6 | 7 | private String visitIp; 8 | 9 | private String visitDate; 10 | 11 | private String visitAddress; 12 | 13 | public String getUserName() { 14 | return email; 15 | } 16 | 17 | public String getVisitIp() { 18 | return visitIp; 19 | } 20 | 21 | public String getVisitDate() { 22 | return visitDate; 23 | } 24 | 25 | public String getVisitAddress() { 26 | return visitAddress; 27 | } 28 | 29 | public void setEmail(String email) { 30 | this.email = email; 31 | } 32 | 33 | public void setVisitIp(String visitIp) { 34 | this.visitIp = visitIp; 35 | } 36 | 37 | public void setVisitDate(String visitDate) { 38 | this.visitDate = visitDate; 39 | } 40 | 41 | public void setVisitAddress(String visitAddress) { 42 | this.visitAddress = visitAddress; 43 | } 44 | 45 | @Override 46 | public String toString() { 47 | return "visitCount{" + 48 | "email='" + email + '\'' + 49 | ", visitIp='" + visitIp + '\'' + 50 | ", visitDate='" + visitDate + '\'' + 51 | ", visitAddress='" + visitAddress + '\'' + 52 | '}'; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/com/ccis/fog/drawWorkflow/workFlowController.java: -------------------------------------------------------------------------------- 1 | package com.ccis.fog.drawWorkflow; 2 | 3 | 4 | import org.springframework.stereotype.Controller; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | 7 | @Controller 8 | @RequestMapping("/") 9 | public class workFlowController { 10 | 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/engine/Test.java: -------------------------------------------------------------------------------- 1 | package engine; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | public class Test { 7 | public static void main(String[] args){ 8 | 9 | 10 | // String filePath = "E:\\workflow\\Montage_20.xml"; 11 | String filePath = "E:\\dagXML\\line3_3.xml"; 12 | List points = ParseXML.getPoints(filePath); 13 | List> links = ParseXML.getLinks(filePath); 14 | System.out.println("points: " + points); 15 | System.out.println("links:" + links); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/Consts.java: -------------------------------------------------------------------------------- 1 | package org.cloudbus.cloudsim; 2 | 3 | /** 4 | * 5 | * Defines common constants, used throughout cloudsim. 6 | * 7 | * @author nikolay.grozev 8 | * 9 | */ 10 | public final class Consts { 11 | 12 | /** 13 | * Suppreses intantiation. 14 | */ 15 | private Consts(){} 16 | 17 | public static int MILLION = 1000000; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/ParameterException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * ** Network and Service Differentiation Extensions to CloudSim 3.0 ** 3 | * 4 | * Gokul Poduval & Chen-Khong Tham 5 | * Computer Communication Networks (CCN) Lab 6 | * Dept of Electrical & Computer Engineering 7 | * National University of Singapore 8 | * October 2004 9 | * 10 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 11 | * Copyright (c) 2004, The University of Melbourne, Australia and 12 | * National University of Singapore 13 | * ParameterException.java - Thrown for illegal parameters 14 | * 15 | */ 16 | 17 | package org.cloudbus.cloudsim; 18 | 19 | /** 20 | * This exception is to report bad or invalid parameters given during constructor. 21 | * 22 | * @author Gokul Poduval 23 | * @author Chen-Khong Tham, National University of Singapore 24 | * @since CloudSim Toolkit 1.0 25 | */ 26 | public class ParameterException extends Exception { 27 | 28 | /** The Constant serialVersionUID. */ 29 | private static final long serialVersionUID = 1L; 30 | 31 | /** The message. */ 32 | private final String message; 33 | 34 | /** 35 | * Constructs a new exception with null as its detail message. 36 | * 37 | * @pre $none 38 | * @post $none 39 | */ 40 | public ParameterException() { 41 | super(); 42 | message = null; 43 | } 44 | 45 | /** 46 | * Creates a new ParameterException object. 47 | * 48 | * @param message an error message 49 | * @pre $none 50 | * @post $none 51 | */ 52 | public ParameterException(String message) { 53 | super(); 54 | this.message = message; 55 | } 56 | 57 | /** 58 | * Returns an error message of this object. 59 | * 60 | * @return an error message 61 | * @pre $none 62 | * @post $none 63 | */ 64 | @Override 65 | public String toString() { 66 | return message; 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/UtilizationModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim; 10 | 11 | /** 12 | * The UtilizationModel interface needs to be implemented in order to provide a fine-grained control 13 | * over resource usage by a Cloudlet. 14 | * 15 | * @author Anton Beloglazov 16 | * @since CloudSim Toolkit 2.0 17 | */ 18 | public interface UtilizationModel { 19 | 20 | /** 21 | * Returns utilization in percents according to the time. 22 | * 23 | * @param time the time 24 | * @return utilization percentage 25 | */ 26 | double getUtilization(double time); 27 | 28 | } -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/UtilizationModelFull.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim; 10 | 11 | /** 12 | * The UtilizationModelFull class is a simple model, according to which a Cloudlet always utilize 13 | * all the available CPU capacity. 14 | * 15 | * @author Anton Beloglazov 16 | * @since CloudSim Toolkit 2.0 17 | */ 18 | public class UtilizationModelFull implements UtilizationModel { 19 | 20 | /* 21 | * (non-Javadoc) 22 | * @see cloudsim.power.UtilizationModel#getUtilization(double) 23 | */ 24 | @Override 25 | public double getUtilization(double time) { 26 | return 1; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/UtilizationModelNull.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim; 10 | 11 | /** 12 | * The UtilizationModelNull class is a simple model, according to which a Cloudlet always require 13 | * zero capacity. 14 | * 15 | * @author Anton Beloglazov 16 | * @since CloudSim Toolkit 2.0 17 | */ 18 | public class UtilizationModelNull implements UtilizationModel { 19 | 20 | /* 21 | * (non-Javadoc) 22 | * @see cloudsim.power.UtilizationModel#getUtilization(double) 23 | */ 24 | @Override 25 | public double getUtilization(double time) { 26 | return 0; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/Predicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * Predicates are used to select events from the deferred queue. This class is abstract and must be 15 | * extended when writing a new predicate. Some standard predicates are provided.
16 | * The idea of simulation predicates was copied from SimJava 2. 17 | * 18 | * @author Marcos Dias de Assuncao 19 | * @since CloudSim Toolkit 1.0 20 | * @see PredicateType 21 | * @see PredicateFrom 22 | * @see PredicateAny 23 | * @see PredicateNone 24 | * @see Simulation 25 | */ 26 | public abstract class Predicate { 27 | 28 | /** 29 | * The match function which must be overridden when writing a new predicate. The function is 30 | * called with each event in the deferred queue as its parameter when a 31 | * Simulation.select() call is made by the user. 32 | * 33 | * @param event The event to test for a match. 34 | * @return The function should return true if the event matches and should be 35 | * selected, or false if it does not match the predicate. 36 | */ 37 | public abstract boolean match(SimEvent event); 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/PredicateAny.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * A predicate which will match any event on the deferred event queue. There is a publicly 15 | * accessible instance of this predicate in Simulation, called 16 | * Simulation.SIM_ANY, so no new instances need to be created.
17 | * The idea of simulation predicates was copied from SimJava 2. 18 | * 19 | * @author Marcos Dias de Assuncao 20 | * @since CloudSim Toolkit 1.0 21 | * @see Predicate 22 | * @see Simulation 23 | */ 24 | public class PredicateAny extends Predicate { 25 | 26 | /** 27 | * The match function called by Simulation, not used directly by the user. 28 | * 29 | * @param ev the ev 30 | * @return true, if match 31 | */ 32 | @Override 33 | public boolean match(SimEvent ev) { 34 | return true; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/PredicateFrom.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * A predicate which selects events from specific entities.
15 | * The idea of simulation predicates was copied from SimJava 2. 16 | * 17 | * @author Marcos Dias de Assuncao 18 | * @since CloudSim Toolkit 1.0 19 | * @see PredicateNotFrom 20 | * @see Predicate 21 | */ 22 | public class PredicateFrom extends Predicate { 23 | 24 | /** The ids. */ 25 | private final int[] ids; 26 | 27 | /** 28 | * Constructor used to select events that were sent by a specific entity. 29 | * 30 | * @param sourceId the id number of the source entity 31 | */ 32 | public PredicateFrom(int sourceId) { 33 | ids = new int[] { sourceId }; 34 | } 35 | 36 | /** 37 | * Constructor used to select events that were sent by any entity from a given set. 38 | * 39 | * @param sourceIds the set of id numbers of the source entities 40 | */ 41 | public PredicateFrom(int[] sourceIds) { 42 | ids = sourceIds.clone(); 43 | } 44 | 45 | /** 46 | * The match function called by Simulation, not used directly by the user. 47 | * 48 | * @param ev the event to check 49 | * @return true if the event matches the predicate, false otherwise 50 | */ 51 | @Override 52 | public boolean match(SimEvent ev) { 53 | int src = ev.getSource(); 54 | for (int id : ids) { 55 | if (src == id) { 56 | return true; 57 | } 58 | } 59 | return false; 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/PredicateNone.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * A predicate which will not match any event on the deferred event queue. There is a 15 | * publicly accessible instance of this predicate in the {@link Simulation} class, called 16 | * {@link Simulation#SIM_NONE}, so the user does not need to create any new instances. The idea of 17 | * simulation predicates was copied from SimJava 2. 18 | * 19 | * @author Marcos Dias de Assuncao 20 | * @since CloudSim Toolkit 1.0 21 | * @see Predicate 22 | * @see Simulation 23 | */ 24 | public class PredicateNone extends Predicate { 25 | 26 | /** 27 | * The match function called by {@link Simulation}, not used directly by the user. 28 | * 29 | * @param ev the event to check 30 | * @return true if the event matches the predicate, false otherwise 31 | */ 32 | @Override 33 | public boolean match(SimEvent ev) { 34 | return false; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/PredicateNotFrom.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * A predicate which selects events that have not been sent by specific entities. 15 | * 16 | * @author Marcos Dias de Assuncao 17 | * @since CloudSim Toolkit 1.0 18 | * @see PredicateFrom 19 | * @see Predicate 20 | */ 21 | public class PredicateNotFrom extends Predicate { 22 | 23 | /** The ids. */ 24 | private final int[] ids; 25 | 26 | /** 27 | * Constructor used to select events that were not sent by a specific entity. 28 | * 29 | * @param sourceId the id number of the source entity 30 | */ 31 | public PredicateNotFrom(int sourceId) { 32 | ids = new int[] { sourceId }; 33 | } 34 | 35 | /** 36 | * Constructor used to select events that were not sent by any entity from a given set. 37 | * 38 | * @param sourceIds the set of id numbers of the source entities 39 | */ 40 | public PredicateNotFrom(int[] sourceIds) { 41 | ids = sourceIds.clone(); 42 | } 43 | 44 | /** 45 | * The match function called by {@link Simulation}, not used directly by the user. 46 | * 47 | * @param ev the event to check 48 | * @return true if the event matches the predicate, false otherwise 49 | */ 50 | @Override 51 | public boolean match(SimEvent ev) { 52 | int src = ev.getSource(); 53 | for (int id : ids) { 54 | if (src == id) { 55 | return false; 56 | } 57 | } 58 | return true; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/PredicateNotType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * A predicate to select events that don't match specific tags. 15 | * 16 | * @author Marcos Dias de Assuncao 17 | * @since CloudSim Toolkit 1.0 18 | * @see PredicateType 19 | * @see Predicate 20 | */ 21 | public class PredicateNotType extends Predicate { 22 | 23 | /** The tags. */ 24 | private final int[] tags; 25 | 26 | /** 27 | * Constructor used to select events whose tags do not match a given tag. 28 | * 29 | * @param tag An event tag value 30 | */ 31 | public PredicateNotType(int tag) { 32 | tags = new int[] { tag }; 33 | } 34 | 35 | /** 36 | * Constructor used to select events whose tag values do not match any of the given tags. 37 | * 38 | * @param tags the list of tags 39 | */ 40 | public PredicateNotType(int[] tags) { 41 | this.tags = tags.clone(); 42 | } 43 | 44 | /** 45 | * The match function called by {@link Simulation}, not used directly by the user. 46 | * 47 | * @param ev the ev 48 | * @return true, if match 49 | */ 50 | @Override 51 | public boolean match(SimEvent ev) { 52 | int tag = ev.getTag(); 53 | for (int tag2 : tags) { 54 | if (tag == tag2) { 55 | return false; 56 | } 57 | } 58 | return true; 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/core/predicates/PredicateType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.core.predicates; 10 | 11 | import org.cloudbus.cloudsim.core.SimEvent; 12 | 13 | /** 14 | * A predicate to select events with specific tags. 15 | * 16 | * @author Marcos Dias de Assuncao 17 | * @since CloudSim Toolkit 1.0 18 | * @see PredicateNotType 19 | * @see Predicate 20 | */ 21 | public class PredicateType extends Predicate { 22 | 23 | /** The tags. */ 24 | private final int[] tags; 25 | 26 | /** 27 | * Constructor used to select events with the tag value t1. 28 | * 29 | * @param t1 an event tag value 30 | */ 31 | public PredicateType(int t1) { 32 | tags = new int[] { t1 }; 33 | } 34 | 35 | /** 36 | * Constructor used to select events with a tag value equal to any of the specified tags. 37 | * 38 | * @param tags the list of tags 39 | */ 40 | public PredicateType(int[] tags) { 41 | this.tags = tags.clone(); 42 | } 43 | 44 | /** 45 | * The match function called by Sim_system, not used directly by the user. 46 | * 47 | * @param ev the ev 48 | * @return true, if match 49 | */ 50 | @Override 51 | public boolean match(SimEvent ev) { 52 | int tag = ev.getTag(); 53 | for (int tag2 : tags) { 54 | if (tag == tag2) { 55 | return true; 56 | } 57 | } 58 | return false; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/distributions/ContinuousDistribution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.distributions; 10 | 11 | /** 12 | * Interface to be implemented by a random number generator. 13 | * 14 | * @author Marcos Dias de Assuncao 15 | * @since CloudSim Toolkit 1.0 16 | */ 17 | public interface ContinuousDistribution { 18 | 19 | /** 20 | * Sample the random number generator. 21 | * 22 | * @return The sample 23 | */ 24 | double sample(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/distributions/ExponentialDistr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.distributions; 10 | 11 | import java.util.Random; 12 | 13 | /** 14 | * An exponential number generator. 15 | * 16 | * @author Marcos Dias de Assuncao 17 | * @since CloudSim Toolkit 1.0 18 | */ 19 | public class ExponentialDistr implements ContinuousDistribution { 20 | 21 | /** The num gen. */ 22 | private final Random numGen; 23 | 24 | /** The mean. */ 25 | private final double mean; 26 | 27 | /** 28 | * Creates a new exponential number generator. 29 | * 30 | * @param seed the seed to be used. 31 | * @param mean the mean for the distribution. 32 | */ 33 | public ExponentialDistr(long seed, double mean) { 34 | if (mean <= 0.0) { 35 | throw new IllegalArgumentException("Mean must be greater than 0.0"); 36 | } 37 | numGen = new Random(seed); 38 | this.mean = mean; 39 | } 40 | 41 | /** 42 | * Creates a new exponential number generator. 43 | * 44 | * @param mean the mean for the distribution. 45 | */ 46 | public ExponentialDistr(double mean) { 47 | if (mean <= 0.0) { 48 | throw new IllegalArgumentException("Mean must be greated than 0.0"); 49 | } 50 | numGen = new Random(System.currentTimeMillis()); 51 | this.mean = mean; 52 | } 53 | 54 | /** 55 | * Generate a new random number. 56 | * 57 | * @return the next random number in the sequence 58 | */ 59 | @Override 60 | public double sample() { 61 | return -mean * Math.log(numGen.nextDouble()); 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/distributions/GammaDistr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Descripimport java.util.Random; 4 | mulation) Toolkit for Modeling and Simulation of Clouds 5 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 6 | * 7 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 8 | */ 9 | 10 | package org.cloudbus.cloudsim.distributions; 11 | 12 | import java.util.Random; 13 | 14 | /** 15 | * The Class GammaDistr. 16 | * 17 | * @author Marcos Dias de Assuncao 18 | * @since CloudSim Toolkit 1.0 19 | */ 20 | public class GammaDistr implements ContinuousDistribution { 21 | 22 | /** The num gen. */ 23 | private final Random numGen; 24 | 25 | /** The alpha. */ 26 | private final int alpha; 27 | 28 | /** The beta. */ 29 | private final double beta; 30 | 31 | /** 32 | * Instantiates a new gamma distr. 33 | * 34 | * @param seed the seed 35 | * @param alpha the alpha 36 | * @param beta the beta 37 | */ 38 | public GammaDistr(Random seed, int alpha, double beta) { 39 | if (alpha <= 0 || beta <= 0.0) { 40 | throw new IllegalArgumentException("Alpha and beta must be greater than 0.0"); 41 | } 42 | 43 | numGen = seed; 44 | this.alpha = alpha; 45 | this.beta = beta; 46 | } 47 | 48 | /** 49 | * Instantiates a new gamma distr. 50 | * 51 | * @param alpha the alpha 52 | * @param beta the beta 53 | */ 54 | public GammaDistr(int alpha, double beta) { 55 | if (alpha <= 0 || beta <= 0.0) { 56 | throw new IllegalArgumentException("Alpha and beta must be greater than 0.0"); 57 | } 58 | 59 | numGen = new Random(System.currentTimeMillis()); 60 | this.alpha = alpha; 61 | this.beta = beta; 62 | } 63 | 64 | /* 65 | * (non-Javadoc) 66 | * @see cloudsim.distributions.ContinuousDistribution#sample() 67 | */ 68 | @Override 69 | public double sample() { 70 | double sum = 0.0; 71 | for (int i = 0; i < alpha; i++) { 72 | sum += Math.log(numGen.nextDouble()); 73 | } 74 | 75 | return -beta * sum; 76 | } 77 | 78 | } 79 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/distributions/LomaxDistribution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.distributions; 10 | 11 | import java.util.Random; 12 | 13 | /** 14 | * The Class LomaxDistribution. 15 | * 16 | * @author Marcos Dias de Assuncao 17 | * @since CloudSim Toolkit 1.0 18 | */ 19 | public class LomaxDistribution extends ParetoDistr implements ContinuousDistribution { 20 | 21 | /** The shift. */ 22 | private final double shift; 23 | 24 | /** 25 | * Instantiates a new lomax distribution. 26 | * 27 | * @param shape the shape 28 | * @param location the location 29 | * @param shift the shift 30 | */ 31 | public LomaxDistribution(double shape, double location, double shift) { 32 | super(shape, location); 33 | 34 | if (shift > location) { 35 | throw new IllegalArgumentException("Shift must be smaller or equal than location"); 36 | } 37 | 38 | this.shift = shift; 39 | } 40 | 41 | /** 42 | * Instantiates a new lomax distribution. 43 | * 44 | * @param seed the seed 45 | * @param shape the shape 46 | * @param location the location 47 | * @param shift the shift 48 | */ 49 | public LomaxDistribution(Random seed, double shape, double location, double shift) { 50 | super(seed, shape, location); 51 | 52 | if (shift > location) { 53 | throw new IllegalArgumentException("Shift must be smaller or equal than location"); 54 | } 55 | 56 | this.shift = shift; 57 | } 58 | 59 | /* 60 | * (non-Javadoc) 61 | * @see cloudsim.distributions.ParetoDistr#sample() 62 | */ 63 | @Override 64 | public double sample() { 65 | return super.sample() - shift; 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/distributions/ParetoDistr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Descripimport java.util.Random; 4 | mulation) Toolkit for Modeling and Simulation of Clouds 5 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 6 | * 7 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 8 | */ 9 | 10 | package org.cloudbus.cloudsim.distributions; 11 | 12 | import java.util.Random; 13 | 14 | /** 15 | * The Class ParetoDistr. 16 | * 17 | * @author Marcos Dias de Assuncao 18 | * @since CloudSim Toolkit 1.0 19 | */ 20 | public class ParetoDistr implements ContinuousDistribution { 21 | 22 | /** The num gen. */ 23 | private final Random numGen; 24 | 25 | /** The shape. */ 26 | private final double shape; 27 | 28 | /** The location. */ 29 | private final double location; 30 | 31 | /** 32 | * Instantiates a new pareto distr. 33 | * 34 | * @param seed the seed 35 | * @param shape the shape 36 | * @param location the location 37 | */ 38 | public ParetoDistr(Random seed, double shape, double location) { 39 | if (shape <= 0.0 || location <= 0.0) { 40 | throw new IllegalArgumentException("Mean and deviation must be greater than 0.0"); 41 | } 42 | 43 | numGen = seed; 44 | this.shape = shape; 45 | this.location = location; 46 | } 47 | 48 | /** 49 | * Instantiates a new pareto distr. 50 | * 51 | * @param shape the shape 52 | * @param location the location 53 | */ 54 | public ParetoDistr(double shape, double location) { 55 | if (shape <= 0.0 || location <= 0.0) { 56 | throw new IllegalArgumentException("Mean and deviation must be greater than 0.0"); 57 | } 58 | 59 | numGen = new Random(System.currentTimeMillis()); 60 | this.shape = shape; 61 | this.location = location; 62 | } 63 | 64 | /* 65 | * (non-Javadoc) 66 | * @see cloudsim.distributions.ContinuousDistribution#sample() 67 | */ 68 | @Override 69 | public double sample() { 70 | return location / Math.pow(numGen.nextDouble(), 1 / shape); 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/distributions/WeibullDistr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Descripimport java.util.Random; 4 | mulation) Toolkit for Modeling and Simulation of Clouds 5 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 6 | * 7 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 8 | */ 9 | 10 | package org.cloudbus.cloudsim.distributions; 11 | 12 | import java.util.Random; 13 | 14 | /** 15 | * The Class WeibullDistr. 16 | * 17 | * @author Marcos Dias de Assuncao 18 | * @since CloudSim Toolkit 1.0 19 | */ 20 | public class WeibullDistr implements ContinuousDistribution { 21 | 22 | /** The num gen. */ 23 | private final Random numGen; 24 | 25 | /** The alpha. */ 26 | private final double alpha; 27 | 28 | /** The beta. */ 29 | private final double beta; 30 | 31 | /** 32 | * Instantiates a new weibull distr. 33 | * 34 | * @param seed the seed 35 | * @param alpha the alpha 36 | * @param beta the beta 37 | */ 38 | public WeibullDistr(Random seed, double alpha, double beta) { 39 | if (alpha <= 0.0 || beta <= 0.0) { 40 | throw new IllegalArgumentException("Alpha and beta must be greater than 0.0"); 41 | } 42 | 43 | numGen = seed; 44 | this.alpha = alpha; 45 | this.beta = beta; 46 | } 47 | 48 | /** 49 | * Instantiates a new weibull distr. 50 | * 51 | * @param alpha the alpha 52 | * @param beta the beta 53 | */ 54 | public WeibullDistr(double alpha, double beta) { 55 | if (alpha <= 0.0 || beta <= 0.0) { 56 | throw new IllegalArgumentException("Alpha and beta must be greater than 0.0"); 57 | } 58 | 59 | numGen = new Random(System.currentTimeMillis()); 60 | this.alpha = alpha; 61 | this.beta = beta; 62 | } 63 | 64 | /* 65 | * (non-Javadoc) 66 | * @see cloudsim.distributions.ContinuousDistribution#sample() 67 | */ 68 | @Override 69 | public double sample() { 70 | return beta * Math.pow(-Math.log(numGen.nextDouble()), 1 / alpha); 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/lists/VmList.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.lists; 10 | 11 | import org.cloudbus.cloudsim.Vm; 12 | 13 | import java.util.List; 14 | 15 | /** 16 | * VmList is a collection of operations on lists of VMs. 17 | * 18 | * @author Anton Beloglazov 19 | * @since CloudSim Toolkit 2.0 20 | */ 21 | public class VmList { 22 | 23 | /** 24 | * Return a reference to a Vm object from its ID. 25 | * 26 | * @param id ID of required VM 27 | * @param vmList the vm list 28 | * @return Vm with the given ID, $null if not found 29 | * @pre $none 30 | * @post $none 31 | */ 32 | public static T getById(List vmList, int id) { 33 | for (T vm : vmList) { 34 | if (vm.getId() == id) { 35 | return vm; 36 | } 37 | } 38 | return null; 39 | } 40 | 41 | /** 42 | * Return a reference to a Vm object from its ID and user ID. 43 | * 44 | * @param id ID of required VM 45 | * @param userId the user ID 46 | * @param vmList the vm list 47 | * @return Vm with the given ID, $null if not found 48 | * @pre $none 49 | * @post $none 50 | */ 51 | public static T getByIdAndUserId(List vmList, int id, int userId) { 52 | for (T vm : vmList) { 53 | if (vm.getId() == id && vm.getUserId() == userId) { 54 | return vm; 55 | } 56 | } 57 | return null; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/network/GraphReaderIF.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.network; 10 | 11 | import java.io.IOException; 12 | 13 | /** 14 | * This interface abstracts an reader for different graph-file-formats 15 | * 16 | * @author Thomas Hohnstein 17 | * @since CloudSim Toolkit 1.0 18 | */ 19 | public interface GraphReaderIF { 20 | 21 | /** 22 | * this method just reads the file and creates an TopologicalGraph object 23 | * 24 | * @param filename name of the file to read 25 | * @return created TopologicalGraph 26 | * @throws IOException 27 | */ 28 | TopologicalGraph readGraphFile(String filename) throws IOException; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/network/TopologicalLink.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.network; 10 | 11 | /** 12 | * This class represents an link (edge) from an graph 13 | * 14 | * @author Thomas Hohnstein 15 | * @since CloudSim Toolkit 1.0 16 | */ 17 | public class TopologicalLink { 18 | 19 | /** 20 | * id of the link src node-id 21 | */ 22 | private int srcNodeID = 0; 23 | 24 | /** 25 | * id of the link dest node-id 26 | */ 27 | private int destNodeID = 0; 28 | 29 | /** 30 | * representing the link-delay of the connection 31 | */ 32 | private float linkDelay = 0; 33 | 34 | private float linkBw = 0; 35 | 36 | /** 37 | * creates an new link-object 38 | */ 39 | public TopologicalLink(int srcNode, int destNode, float delay, float bw) { 40 | // lets initialize all internal attributes 41 | linkDelay = delay; 42 | srcNodeID = srcNode; 43 | destNodeID = destNode; 44 | linkBw = bw; 45 | } 46 | 47 | /** 48 | * returns the node-ID from the SrcNode 49 | * 50 | * @return nodeID 51 | */ 52 | public int getSrcNodeID() { 53 | return srcNodeID; 54 | } 55 | 56 | /** 57 | * return the node-ID from the DestNode 58 | * 59 | * @return nodeID 60 | */ 61 | public int getDestNodeID() { 62 | return destNodeID; 63 | } 64 | 65 | /** 66 | * return the link-delay of the defined linke 67 | * 68 | * @return the delay-amount 69 | */ 70 | public float getLinkDelay() { 71 | return linkDelay; 72 | } 73 | 74 | /** 75 | * return the link-bw of the defined linke 76 | * 77 | * @return the bw 78 | */ 79 | public float getLinkBw() { 80 | return linkBw; 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/network/datacenter/HostPacket.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.network.datacenter; 10 | 11 | /** 12 | * HostPacket represents the packet that travels through the virtual network with a Host. It 13 | * contains information about cloudlets which are communicating 14 | * 15 | * Please refer to following publication for more details: 16 | * 17 | * Saurabh Kumar Garg and Rajkumar Buyya, NetworkCloudSim: Modelling Parallel Applications in Cloud 18 | * Simulations, Proceedings of the 4th IEEE/ACM International Conference on Utility and Cloud 19 | * Computing (UCC 2011, IEEE CS Press, USA), Melbourne, Australia, December 5-7, 2011. 20 | * 21 | * @author Saurabh Kumar Garg 22 | * @since CloudSim Toolkit 1.0 23 | */ 24 | public class HostPacket { 25 | 26 | public HostPacket( 27 | int sender, 28 | int reciever, 29 | double data, 30 | double sendtime, 31 | double recievetime, 32 | int vsnd, 33 | int vrvd) { 34 | super(); 35 | this.sender = sender; 36 | this.reciever = reciever; 37 | this.data = data; 38 | this.sendtime = sendtime; 39 | this.recievetime = recievetime; 40 | virtualrecvid = vrvd; 41 | virtualsendid = vsnd; 42 | } 43 | 44 | int sender; 45 | 46 | int virtualrecvid; 47 | 48 | int virtualsendid; 49 | 50 | int reciever; 51 | 52 | double data; 53 | 54 | double sendtime; 55 | 56 | double recievetime; 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/network/datacenter/NetworkPacket.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.network.datacenter; 10 | 11 | /** 12 | * NewtorkPacket represents the packet which travel from one server to another. Each packet contains 13 | * ids of the sender VM and receiver VM, time at which it is send and received, type and virtual ids 14 | * of tasks, which are communicating. 15 | * 16 | * Please refer to following publication for more details: 17 | * 18 | * Saurabh Kumar Garg and Rajkumar Buyya, NetworkCloudSim: Modelling Parallel Applications in Cloud 19 | * Simulations, Proceedings of the 4th IEEE/ACM International Conference on Utility and Cloud 20 | * Computing (UCC 2011, IEEE CS Press, USA), Melbourne, Australia, December 5-7, 2011. 21 | * 22 | * @author Saurabh Kumar Garg 23 | * @since CloudSim Toolkit 1.0 24 | */ 25 | public class NetworkPacket { 26 | 27 | public NetworkPacket(int id, HostPacket pkt2, int vmid, int cloudletid) { 28 | pkt = pkt2; 29 | sendervmid = vmid; 30 | this.cloudletid = cloudletid; 31 | senderhostid = id; 32 | stime = pkt.sendtime; 33 | recievervmid = pkt2.reciever; 34 | 35 | } 36 | 37 | HostPacket pkt; 38 | 39 | int senderhostid; 40 | 41 | int recieverhostid; 42 | 43 | int sendervmid; 44 | 45 | int recievervmid; 46 | 47 | int cloudletid; 48 | 49 | double stime;// time when sent 50 | 51 | double rtime;// time when received 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/network/datacenter/TaskStage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.network.datacenter; 10 | 11 | /** 12 | * Taskstage represents various stages a networkCloudlet can have during execution. Four stage types 13 | * which are possible-> EXECUTION=0; WAIT_SEND=1; WAIT_RECV=2; FINISH=-2; Check NeworkConstants.java 14 | * file for that. 15 | * 16 | * Please refer to following publication for more details: 17 | * 18 | * Saurabh Kumar Garg and Rajkumar Buyya, NetworkCloudSim: Modelling Parallel Applications in Cloud 19 | * Simulations, Proceedings of the 4th IEEE/ACM International Conference on Utility and Cloud 20 | * Computing (UCC 2011, IEEE CS Press, USA), Melbourne, Australia, December 5-7, 2011. 21 | * 22 | * @author Saurabh Kumar Garg 23 | * @since CloudSim Toolkit 1.0 24 | */ 25 | public class TaskStage { 26 | 27 | public TaskStage(int type, double data, double time, double stageid, long memory, int peer, int vpeer) { 28 | super(); 29 | this.type = type; 30 | this.data = data; 31 | this.time = time; 32 | this.stageid = stageid; 33 | this.memory = memory; 34 | this.peer = peer; 35 | this.vpeer = vpeer; 36 | } 37 | 38 | int vpeer; 39 | 40 | int type;// execution, recv, send, 41 | 42 | double data;// data generated or send or recv 43 | 44 | double time;// execution time for this stage 45 | 46 | double stageid; 47 | 48 | long memory; 49 | 50 | int peer;// from whom data needed to be recieved or send 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/PowerVmAllocationPolicySimple.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power; 10 | 11 | import org.cloudbus.cloudsim.Host; 12 | import org.cloudbus.cloudsim.Vm; 13 | 14 | import java.util.List; 15 | import java.util.Map; 16 | 17 | /** 18 | * This a simple class representing a simple VM allocation policy that does not perform any 19 | * optimization of the VM allocation. 20 | * 21 | * If you are using any algorithms, policies or workload included in the power package, please cite 22 | * the following paper: 23 | * 24 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 25 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 26 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 27 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 28 | * 29 | * @author Anton Beloglazov 30 | * @since CloudSim Toolkit 3.0 31 | */ 32 | public class PowerVmAllocationPolicySimple extends PowerVmAllocationPolicyAbstract { 33 | 34 | /** 35 | * Instantiates a new power vm allocation policy simple. 36 | * 37 | * @param list the list 38 | */ 39 | public PowerVmAllocationPolicySimple(List list) { 40 | super(list); 41 | } 42 | 43 | /* 44 | * (non-Javadoc) 45 | * @see org.cloudbus.cloudsim.VmAllocationPolicy#optimizeAllocation(java.util.List) 46 | */ 47 | @Override 48 | public List> optimizeAllocation(List vmList) { 49 | // This policy does not optimize the VM allocation 50 | return null; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/PowerVmSelectionPolicy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power; 10 | 11 | import org.cloudbus.cloudsim.Vm; 12 | 13 | import java.util.ArrayList; 14 | import java.util.List; 15 | 16 | /** 17 | * The class of an abstract VM selection policy. 18 | * 19 | * If you are using any algorithms, policies or workload included in the power package, please cite 20 | * the following paper: 21 | * 22 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 23 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 24 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 25 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 26 | * 27 | * @author Anton Beloglazov 28 | * @since CloudSim Toolkit 3.0 29 | */ 30 | public abstract class PowerVmSelectionPolicy { 31 | 32 | /** 33 | * Gets the vms to migrate. 34 | * 35 | * @param host the host 36 | * @return the vms to migrate 37 | */ 38 | public abstract Vm getVmToMigrate(PowerHost host); 39 | 40 | /** 41 | * Gets the migratable vms. 42 | * 43 | * @param host the host 44 | * @return the migratable vms 45 | */ 46 | protected List getMigratableVms(PowerHost host) { 47 | List migratableVms = new ArrayList(); 48 | for (PowerVm vm : host. getVmList()) { 49 | if (!vm.isInMigration()) { 50 | migratableVms.add(vm); 51 | } 52 | } 53 | return migratableVms; 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/PowerVmSelectionPolicyMinimumMigrationTime.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power; 10 | 11 | import org.cloudbus.cloudsim.Vm; 12 | 13 | import java.util.List; 14 | 15 | /** 16 | * The Minimum Migration Time (MMT) VM selection policy. 17 | * 18 | * If you are using any algorithms, policies or workload included in the power package, please cite 19 | * the following paper: 20 | * 21 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 22 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 23 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 24 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 25 | * 26 | * @author Anton Beloglazov 27 | * @since CloudSim Toolkit 3.0 28 | */ 29 | public class PowerVmSelectionPolicyMinimumMigrationTime extends PowerVmSelectionPolicy { 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see 34 | * org.cloudbus.cloudsim.experiments.power.PowerVmSelectionPolicy#getVmsToMigrate(org.cloudbus 35 | * .cloudsim.power.PowerHost) 36 | */ 37 | @Override 38 | public Vm getVmToMigrate(PowerHost host) { 39 | List migratableVms = getMigratableVms(host); 40 | if (migratableVms.isEmpty()) { 41 | return null; 42 | } 43 | Vm vmToMigrate = null; 44 | double minMetric = Double.MAX_VALUE; 45 | for (Vm vm : migratableVms) { 46 | if (vm.isInMigration()) { 47 | continue; 48 | } 49 | double metric = vm.getRam(); 50 | if (metric < minMetric) { 51 | minMetric = metric; 52 | vmToMigrate = vm; 53 | } 54 | } 55 | return vmToMigrate; 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/PowerVmSelectionPolicyRandomSelection.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power; 10 | 11 | import org.cloudbus.cloudsim.Vm; 12 | 13 | import java.util.List; 14 | import java.util.Random; 15 | 16 | /** 17 | * The Random Selection (RS) VM selection policy. 18 | * 19 | * If you are using any algorithms, policies or workload included in the power package, please cite 20 | * the following paper: 21 | * 22 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 23 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 24 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 25 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 26 | * 27 | * @author Anton Beloglazov 28 | * @since CloudSim Toolkit 3.0 29 | */ 30 | public class PowerVmSelectionPolicyRandomSelection extends PowerVmSelectionPolicy { 31 | 32 | /* 33 | * (non-Javadoc) 34 | * @see 35 | * org.cloudbus.cloudsim.experiments.power.PowerVmSelectionPolicy#getVmsToMigrate(org.cloudbus 36 | * .cloudsim.power.PowerHost) 37 | */ 38 | @Override 39 | public Vm getVmToMigrate(PowerHost host) { 40 | List migratableVms = getMigratableVms(host); 41 | if (migratableVms.isEmpty()) { 42 | return null; 43 | } 44 | int index = (new Random()).nextInt(migratableVms.size()); 45 | return migratableVms.get(index); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/lists/PowerVmList.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.lists; 10 | 11 | import org.cloudbus.cloudsim.Vm; 12 | import org.cloudbus.cloudsim.core.CloudSim; 13 | import org.cloudbus.cloudsim.lists.VmList; 14 | 15 | import java.util.Collections; 16 | import java.util.Comparator; 17 | import java.util.List; 18 | 19 | /** 20 | * PowerVmList is a collection of operations on lists of power-enabled VMs. 21 | * 22 | * If you are using any algorithms, policies or workload included in the power package, please cite 23 | * the following paper: 24 | * 25 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 26 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 27 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 28 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 29 | * 30 | * @author Anton Beloglazov 31 | * 32 | * @author Anton Beloglazov 33 | * @since CloudSim Toolkit 2.0 34 | */ 35 | public class PowerVmList extends VmList { 36 | 37 | /** 38 | * Sort by cpu utilization. 39 | * 40 | * @param vmList the vm list 41 | */ 42 | public static void sortByCpuUtilization(List vmList) { 43 | Collections.sort(vmList, new Comparator() { 44 | 45 | @Override 46 | public int compare(T a, T b) throws ClassCastException { 47 | Double aUtilization = a.getTotalUtilizationOfCpuMips(CloudSim.clock()); 48 | Double bUtilization = b.getTotalUtilizationOfCpuMips(CloudSim.clock()); 49 | return bUtilization.compareTo(aUtilization); 50 | } 51 | }); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The PowerModel interface needs to be implemented in order to provide a model of power consumption 13 | * depending on utilization for system components. 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * 25 | * @author Anton Beloglazov 26 | * @since CloudSim Toolkit 2.0 27 | */ 28 | public interface PowerModel { 29 | 30 | /** 31 | * Get power consumption by the utilization percentage according to the power model. 32 | * 33 | * @param utilization the utilization 34 | * @return power consumption 35 | * @throws IllegalArgumentException the illegal argument exception 36 | */ 37 | double getPower(double utilization) throws IllegalArgumentException; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerHpProLiantMl110G3PentiumD930.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an HP ProLiant ML110 G3 (1 x [Pentium D930 3000 MHz, 2 cores], 4GB). 13 | * http://www.spec.org/power_ssj2008/results/res2011q1/power_ssj2008-20110127-00342.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerHpProLiantMl110G3PentiumD930 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 105, 112, 118, 125, 131, 137, 147, 153, 157, 164, 169 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerHpProLiantMl110G4Xeon3040.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an HP ProLiant ML110 G4 (1 x [Xeon 3040 1860 MHz, 2 cores], 4GB). 13 | * http://www.spec.org/power_ssj2008/results/res2011q1/power_ssj2008-20110127-00342.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerHpProLiantMl110G4Xeon3040 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 86, 89.4, 92.6, 96, 99.5, 102, 106, 108, 112, 114, 117 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerHpProLiantMl110G5Xeon3075.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an HP ProLiant ML110 G5 (1 x [Xeon 3075 2660 MHz, 2 cores], 4GB). 13 | * http://www.spec.org/power_ssj2008/results/res2011q1/power_ssj2008-20110124-00339.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerHpProLiantMl110G5Xeon3075 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 93.7, 97, 101, 105, 110, 116, 121, 125, 129, 133, 135 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerIbmX3250XeonX3470.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an IBM server x3250 (1 x [Xeon X3470 2933 MHz, 4 cores], 8GB). 13 | * http://www.spec.org/power_ssj2008/results/res2009q4/power_ssj2008-20091104-00213.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerIbmX3250XeonX3470 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 41.6, 46.7, 52.3, 57.9, 65.4, 73, 80.7, 89.5, 99.6, 105, 113 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerIbmX3250XeonX3480.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an IBM server x3250 (1 x [Xeon X3480 3067 MHz, 4 cores], 8GB). 13 | * http://www.spec.org/power_ssj2008/results/res2010q4/power_ssj2008-20101001-00297.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerIbmX3250XeonX3480 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 42.3, 46.7, 49.7, 55.4, 61.8, 69.3, 76.1, 87, 96.1, 106, 113 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerIbmX3550XeonX5670.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an IBM server x3550 (2 x [Xeon X5670 2933 MHz, 6 cores], 12GB). 13 | * http://www.spec.org/power_ssj2008/results/res2010q2/power_ssj2008-20100315-00239.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerIbmX3550XeonX5670 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 66, 107, 120, 131, 143, 156, 173, 191, 211, 229, 247 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/power/models/PowerModelSpecPowerIbmX3550XeonX5675.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.power.models; 10 | 11 | /** 12 | * The power model of an IBM server x3550 (2 x [Xeon X5675 3067 MHz, 6 cores], 16GB). 13 | * http://www.spec.org/power_ssj2008/results/res2011q2/power_ssj2008-20110406-00368.html 14 | * 15 | * If you are using any algorithms, policies or workload included in the power package, please cite 16 | * the following paper: 17 | * 18 | * Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive 19 | * Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in 20 | * Cloud Data Centers", Concurrency and Computation: Practice and Experience (CCPE), Volume 24, 21 | * Issue 13, Pages: 1397-1420, John Wiley & Sons, Ltd, New York, USA, 2012 22 | * 23 | * @author Anton Beloglazov 24 | * @since CloudSim Toolkit 3.0 25 | */ 26 | public class PowerModelSpecPowerIbmX3550XeonX5675 extends PowerModelSpecPower { 27 | 28 | /** The power. */ 29 | private final double[] power = { 58.4, 98, 109, 118, 128, 140, 153, 170, 189, 205, 222 }; 30 | 31 | /* 32 | * (non-Javadoc) 33 | * @see org.cloudbus.cloudsim.power.models.PowerModelSpecPower#getPowerData(int) 34 | */ 35 | @Override 36 | protected double getPowerData(int index) { 37 | return power[index]; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Activity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | /** 12 | * Activities that can be performed by VM. (Transmission or Compute) 13 | * 14 | * @author Jungmin Son 15 | * @author Rodrigo N. Calheiros 16 | * @since CloudSimSDN 1.0 17 | */ 18 | public interface Activity { 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/AggregationSwitch.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | /** 12 | * Represent aggregation switch 13 | * 14 | * @author Jungmin Son 15 | * @author Rodrigo N. Calheiros 16 | * @since CloudSimSDN 1.0 17 | */ 18 | public class AggregationSwitch extends Switch { 19 | 20 | public AggregationSwitch(String name,int bw, long iops, int upports, int downports, NetworkOperatingSystem nos) { 21 | super(name, bw, iops, upports, downports, nos); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Arc.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | /** 12 | * Traffic requirements between two VMs 13 | * 14 | * @author Jungmin Son 15 | * @author Rodrigo N. Calheiros 16 | * @since CloudSimSDN 1.0 17 | */ 18 | public class Arc { 19 | 20 | int srcId; 21 | int dstId; 22 | int flowId; 23 | long requiredBandwidth; 24 | double requiredLatency; 25 | 26 | public Arc(int srcId, int dstId, int flowId, long reqBW, double reqLatency) { 27 | super(); 28 | this.srcId = srcId; 29 | this.dstId = dstId; 30 | this.flowId = flowId; 31 | this.requiredBandwidth = reqBW; 32 | this.requiredLatency = reqLatency; 33 | } 34 | 35 | public int getSrcId() { 36 | return srcId; 37 | } 38 | 39 | public int getDstId() { 40 | return dstId; 41 | } 42 | public int getFlowId() { 43 | return flowId; 44 | } 45 | 46 | public long getBw() { 47 | return requiredBandwidth; 48 | } 49 | 50 | public double getLatency() { 51 | return requiredLatency; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Constants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | /** 12 | * Constant variables to use 13 | * 14 | * @author Jungmin Son 15 | * @author Rodrigo N. Calheiros 16 | * @since CloudSimSDN 1.0 17 | */ 18 | public class Constants { 19 | 20 | private static final int SDN_BASE = 89000000; 21 | 22 | public static final int SDN_PACKAGE = SDN_BASE + 1; 23 | public static final int SDN_INTERNAL_PACKAGE_PROCESS = SDN_BASE + 2; 24 | public static final int REQUEST_SUBMIT = SDN_BASE + 10; 25 | public static final int REQUEST_COMPLETED = SDN_BASE + 11; 26 | public static final int APPLICATION_SUBMIT = SDN_BASE + 20; // Broker -> Datacenter. 27 | public static final int APPLICATION_SUBMIT_ACK = SDN_BASE + 21; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/CoreSwitch.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | /** 12 | * Represent core switch 13 | * 14 | * @author Jungmin Son 15 | * @author Rodrigo N. Calheiros 16 | * @since CloudSimSDN 1.0 17 | */ 18 | public class CoreSwitch extends Switch { 19 | 20 | public CoreSwitch(String name,int bw, long iops, int upports, int downports, NetworkOperatingSystem nos) { 21 | super(name, bw, iops, upports, downports, nos); 22 | //if (upports>0) throw new IllegalArgumentException("Core switches cannot have uplinks."); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/EdgeSwitch.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | /** 12 | * Represent edge switch 13 | * 14 | * @author Jungmin Son 15 | * @author Rodrigo N. Calheiros 16 | * @since CloudSimSDN 1.0 17 | */ 18 | public class EdgeSwitch extends Switch { 19 | 20 | public EdgeSwitch(String name,int bw, long iops, int upports, int downports, NetworkOperatingSystem nos) { 21 | super(name, bw, iops, upports, downports, nos); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Middlebox.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | import org.cloudbus.cloudsim.Cloudlet; 12 | import org.cloudbus.cloudsim.UtilizationModelFull; 13 | import org.cloudbus.cloudsim.Vm; 14 | import org.cloudbus.cloudsim.core.CloudSimTags; 15 | 16 | /** 17 | * Middlebox represent specific VM that acts as a middle box 18 | * 19 | * @author Jungmin Son 20 | * @author Rodrigo N. Calheiros 21 | * @since CloudSimSDN 1.0 22 | */ 23 | public abstract class Middlebox { 24 | 25 | Vm vm; 26 | int mipsPerOp; 27 | SDNHost host; 28 | static int id=0; 29 | 30 | public Middlebox(Vm vm, int misPerOperation){ 31 | this.vm=vm; 32 | this.mipsPerOp=misPerOperation; 33 | } 34 | 35 | public abstract void editRequest(Request req); 36 | 37 | public int getId(){ 38 | return vm.getId(); 39 | } 40 | 41 | public Vm getVm(){ 42 | return vm; 43 | } 44 | 45 | public void setHost(SDNHost host){ 46 | this.host=host; 47 | } 48 | 49 | public void submitRequest(Request req){ 50 | Cloudlet cl = new Cloudlet(id++,mipsPerOp,1,0,0,new UtilizationModelFull(),new UtilizationModelFull(),new UtilizationModelFull()); 51 | cl.setVmId(vm.getId()); 52 | 53 | host.schedule(host.getHost().getDatacenter().getId(), 0.0, CloudSimTags.CLOUDLET_SUBMIT, cl); 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Node.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Node represents network node (host or switch) 15 | * 16 | * @author Jungmin Son 17 | * @author Rodrigo N. Calheiros 18 | * @since CloudSimSDN 1.0 19 | */ 20 | public interface Node { 21 | 22 | int getAddress(); 23 | public long getBandwidth(); 24 | public void setRank(int rank); 25 | public int getRank(); 26 | 27 | public void clearVMRoutingTable(); 28 | public void addVMRoute(int srcVM, int destVM, int flowId, Node to); 29 | public Node getVMRoute(int srcVM, int destVM, int flowId); 30 | public void removeVMRoute(int srcVM, int destVM, int flowId); 31 | public void printVMRoute(); 32 | 33 | public void addRoute(Node destHost, Link to); 34 | public List getRoute(Node destHost); 35 | 36 | public RoutingTable getRoutingTable(); 37 | 38 | public void addLink(Link l); 39 | public void updateNetworkUtilization(); 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Package.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn; 10 | 11 | 12 | /** 13 | * Network data packet to transfer from source to destination. 14 | * Payload of Package will have a list of activities. 15 | * 16 | * @author Jungmin Son 17 | * @author Rodrigo N. Calheiros 18 | * @since CloudSimSDN 1.0 19 | */ 20 | public class Package { 21 | 22 | int origin; 23 | int destination; 24 | long size; 25 | int flowId; 26 | Request payload; 27 | 28 | private double startTime=-1; 29 | private double finishTime=-1; 30 | 31 | public Package(int origin, int destination, long size, int flowId, Request payload) { 32 | this.origin = origin; 33 | this.destination = destination; 34 | this.size = size; 35 | this.flowId = flowId; 36 | this.payload = payload; 37 | 38 | } 39 | 40 | public int getOrigin() { 41 | return origin; 42 | } 43 | 44 | public int getDestination() { 45 | return destination; 46 | } 47 | 48 | public long getSize() { 49 | return size; 50 | } 51 | 52 | public Request getPayload() { 53 | return payload; 54 | } 55 | 56 | public int getFlowId() { 57 | return flowId; 58 | } 59 | 60 | public String toString() { 61 | return "PKG:"+origin + "->" + destination + " - " + payload.toString(); 62 | } 63 | 64 | public void setStartTime(double time) { 65 | this.startTime = time; 66 | } 67 | public void setFinishTime(double time) { 68 | this.finishTime = time; 69 | } 70 | public double getStartTime() { 71 | return this.startTime; 72 | } 73 | public double getFinishTime() { 74 | return this.finishTime; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/Processing.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | package org.cloudbus.cloudsim.sdn; 9 | 10 | import org.cloudbus.cloudsim.Cloudlet; 11 | 12 | /** 13 | * Processing activity to compute in VM. Basically a wrapper of Cloudlet. 14 | * 15 | * @author Jungmin Son 16 | * @author Rodrigo N. Calheiros 17 | * @since CloudSimSDN 1.0 18 | */ 19 | public class Processing implements Activity { 20 | 21 | long requestId; 22 | Cloudlet cl; 23 | 24 | public Processing(Cloudlet cl){ 25 | this.cl=cl; 26 | } 27 | 28 | public Cloudlet getCloudlet(){ 29 | return cl; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/RoutingTable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | package org.cloudbus.cloudsim.sdn; 9 | 10 | import java.util.*; 11 | 12 | /** 13 | * Routing table for hosts and switches. This has information about the next hop. 14 | * When physical topology is set up, RoutingTable is created with the information 15 | * about next hop 16 | * 17 | * @author Jungmin Son 18 | * @author Rodrigo N. Calheiros 19 | * @since CloudSimSDN 1.0 20 | */ 21 | public class RoutingTable { 22 | 23 | Map> table; 24 | 25 | public RoutingTable(){ 26 | this.table = new HashMap>(); 27 | } 28 | 29 | public void clear(){ 30 | table.clear(); 31 | } 32 | 33 | public void addRoute(Node destHost, Link to){ 34 | List links = table.get(destHost); 35 | if(links == null) 36 | { 37 | links = new ArrayList(); 38 | } 39 | links.add(to); 40 | table.put(destHost, links); 41 | } 42 | 43 | public void removeRoute(Node destHost){ 44 | table.remove(destHost); 45 | } 46 | 47 | public List getRoute(Node destHost) { 48 | List links = table.get(destHost); 49 | if(links == null) 50 | links = table.get(null); 51 | return links; 52 | } 53 | 54 | public Set getKnownDestination() { 55 | return table.keySet(); 56 | } 57 | 58 | public void printRoutingTable() { 59 | for(Node key:table.keySet()) { 60 | for(Link l: table.get(key)) { 61 | System.out.println("dst:"+key+" : "+l); 62 | } 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/TimedVm.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | package org.cloudbus.cloudsim.sdn; 9 | 10 | import org.cloudbus.cloudsim.CloudletScheduler; 11 | import org.cloudbus.cloudsim.Vm; 12 | 13 | /** 14 | * Extension of VM that supports to set start and terminate time of VM in VM creation request. 15 | * If start time and finish time is set up, specific CloudSim Event is triggered 16 | * in datacenter to create and terminate the VM. 17 | * 18 | * @author Jungmin Son 19 | * @author Rodrigo N. Calheiros 20 | * @since CloudSimSDN 1.0 21 | */ 22 | public class TimedVm extends Vm { 23 | 24 | private double startTime; 25 | private double finishTime; 26 | 27 | public TimedVm(int id, int userId, double mips, int numberOfPes, int ram, 28 | long bw, long size, String vmm, CloudletScheduler cloudletScheduler) { 29 | super(id, userId, mips, numberOfPes, ram, bw, size, vmm, cloudletScheduler); 30 | } 31 | 32 | public TimedVm(int id, int userId, double mips, int numberOfPes, int ram, 33 | long bw, long size, String vmm, CloudletScheduler cloudletScheduler, double startTime, double finishTime) { 34 | super(id, userId, mips, numberOfPes, ram, bw, size, vmm, cloudletScheduler); 35 | 36 | this.startTime = startTime; 37 | this.finishTime = finishTime; 38 | } 39 | 40 | public double getStartTime() { 41 | return startTime; 42 | } 43 | 44 | public double getFinishTime() { 45 | return finishTime; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/example/Workload.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | package org.cloudbus.cloudsim.sdn.example; 9 | 10 | import org.cloudbus.cloudsim.sdn.Request; 11 | 12 | /** 13 | * Class to keep workload information parsed from files. 14 | * This class is used in WorkloadParser 15 | * 16 | * @author Jungmin Son 17 | * @since CloudSimSDN 1.0 18 | */ 19 | public class Workload { 20 | public int appId; 21 | public double time; 22 | public int submitVmId; 23 | public int submitPktSize; 24 | public Request request; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/power/PowerUtilizationHistoryEntry.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn.power; 10 | 11 | /** 12 | * To log utilization history, this class holds power utilization information 13 | * 14 | * @author Jungmin Son 15 | * @since CloudSimSDN 1.0 16 | */ 17 | public class PowerUtilizationHistoryEntry { 18 | public double startTime; 19 | public double usedMips; 20 | public PowerUtilizationHistoryEntry(double t, double m) { startTime=t; usedMips=m;} 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/power/PowerUtilizationInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.sdn.power; 10 | 11 | import java.util.List; 12 | 13 | 14 | /** 15 | * Interface to manage utilization history. 16 | * 17 | * @author Jungmin Son 18 | * @since CloudSimSDN 1.0 19 | */ 20 | public interface PowerUtilizationInterface { 21 | public void addUtilizationEntryTermination(double terminatedTime); 22 | public List getUtilizationHisotry(); 23 | public double getUtilizationEnergyConsumption(); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/sdn/power/PowerUtilizationMaxHostInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSimSDN 3 | * Description: SDN extension for CloudSim 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2015, The University of Melbourne, Australia 7 | */ 8 | package org.cloudbus.cloudsim.sdn.power; 9 | 10 | 11 | /** 12 | * Interface to manage host history. 13 | * 14 | * @author Jungmin Son 15 | * @since CloudSimSDN 1.0 16 | */ 17 | public interface PowerUtilizationMaxHostInterface { 18 | void logMaxNumHostsUsed(); 19 | int getMaxNumHostsUsed(); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/util/Check.java: -------------------------------------------------------------------------------- 1 | package org.cloudbus.cloudsim.util; 2 | 3 | public class Check { 4 | 5 | public static void main(String[] args) { 6 | // TODO Auto-generated method stub 7 | // Test2 t2 = new Test2(10); 8 | // Test2 t1 = new Test2(10); 9 | // Test2 t3 = new Test2(40); 10 | // 11 | // if(t1.equals(t2)){ 12 | // System.out.println("Success1"); 13 | // }if(t3==t2){ 14 | // System.out.println("Success2"); 15 | // }if(t1==t3){ 16 | // System.out.println("Success3"); 17 | // } 18 | // System.out.println("DONE"); 19 | Test t2 = new Test(10); 20 | Test t1 = new Test(10); 21 | Test t3 = new Test(40); 22 | 23 | if(t1.equals(t2)){ 24 | System.out.println("Success1"); 25 | }if(t3==t2){ 26 | System.out.println("Success2"); 27 | }if(t1==t3){ 28 | System.out.println("Success3"); 29 | } 30 | System.out.println("DONE"); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/util/ExecutionTimeMeasurer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.util; 10 | 11 | import java.util.HashMap; 12 | import java.util.Map; 13 | 14 | /** 15 | * The class for measuring the execution time. 16 | * 17 | * @author Anton Beloglazov 18 | * @since CloudSim Toolkit 3.0 19 | */ 20 | public class ExecutionTimeMeasurer { 21 | 22 | /** The execution times. */ 23 | private final static Map executionTimes = new HashMap(); 24 | 25 | /** 26 | * Start. 27 | * 28 | * @param name the name 29 | */ 30 | public static void start(String name) { 31 | getExecutionTimes().put(name, System.currentTimeMillis()); 32 | } 33 | 34 | /** 35 | * End. 36 | * 37 | * @param name the name 38 | * @return the double 39 | */ 40 | public static double end(String name) { 41 | double time = (System.currentTimeMillis() - getExecutionTimes().get(name)) / 1000.0; 42 | getExecutionTimes().remove(name); 43 | return time; 44 | } 45 | 46 | /** 47 | * Gets the execution times. 48 | * 49 | * @return the execution times 50 | */ 51 | public static Map getExecutionTimes() { 52 | return executionTimes; 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/util/Test.java: -------------------------------------------------------------------------------- 1 | package org.cloudbus.cloudsim.util; 2 | 3 | public class Test { 4 | public String s1; 5 | public int i1; 6 | 7 | public Test(int i){ 8 | s1 = new String("chas"); 9 | i1=i; 10 | } 11 | 12 | public boolean equals(Test t){ 13 | if(t.s1.equals(s1) && t.i1==(i1) ) 14 | return true; 15 | return false; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/util/Test2.java: -------------------------------------------------------------------------------- 1 | package org.cloudbus.cloudsim.util; 2 | 3 | public class Test2 { 4 | public Test t; 5 | public String st; 6 | 7 | public Test2(int i){ 8 | t = new Test(i); 9 | st = new String("PP"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/org/cloudbus/cloudsim/util/WorkloadModel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Title: CloudSim Toolkit 3 | * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds 4 | * Licence: GPL - http://www.gnu.org/copyleft/gpl.html 5 | * 6 | * Copyright (c) 2009-2012, The University of Melbourne, Australia 7 | */ 8 | 9 | package org.cloudbus.cloudsim.util; 10 | 11 | import org.cloudbus.cloudsim.Cloudlet; 12 | 13 | import java.util.List; 14 | 15 | /** 16 | * This interface defines what a workload model should provide. A workload model generates a list of 17 | * jobs that can be dispatched to a resource by {@link Workload}. 18 | * 19 | * @author Marcos Dias de Assuncao 20 | * @since 5.0 21 | * 22 | * @see Workload 23 | * @see WorkloadFileReader 24 | */ 25 | public interface WorkloadModel { 26 | 27 | /** 28 | * Returns a list with the jobs generated by the workload. 29 | * 30 | * @return a list with the jobs generated by the workload. 31 | */ 32 | List generateWorkload(); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/org/fog/offloading/OffloadingStrategyAllinCloud.java: -------------------------------------------------------------------------------- 1 | package org.fog.offloading; 2 | 3 | import org.fog.entities.FogDevice; 4 | import org.workflowsim.Job; 5 | 6 | import java.util.List; 7 | 8 | public class OffloadingStrategyAllinCloud extends OffloadingStrategy { 9 | 10 | 11 | public OffloadingStrategyAllinCloud(List fogdevices) { 12 | super(fogdevices); 13 | // TODO Auto-generated constructor stub 14 | } 15 | public OffloadingStrategyAllinCloud() { 16 | 17 | } 18 | 19 | public double SelectDatacenter(Job job, double deadline) { 20 | // TODO Auto-generated method stub 21 | job.setoffloading(getcloud().getId()); 22 | return 0; 23 | } 24 | 25 | @Override 26 | public void SelectDatacenter(Job job) { 27 | // TODO Auto-generated method stub 28 | 29 | } 30 | @Override 31 | public void BeforeOffloading(double deadline) { 32 | // TODO Auto-generated method stub 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/fog/offloading/OffloadingStrategyAllinFog.java: -------------------------------------------------------------------------------- 1 | package org.fog.offloading; 2 | 3 | import org.fog.entities.FogDevice; 4 | import org.workflowsim.Job; 5 | 6 | import java.util.List; 7 | 8 | public class OffloadingStrategyAllinFog extends OffloadingStrategy { 9 | 10 | 11 | public OffloadingStrategyAllinFog(List fogdevices) { 12 | super(fogdevices); 13 | // TODO Auto-generated constructor stub 14 | } 15 | public OffloadingStrategyAllinFog() { 16 | 17 | } 18 | 19 | public double SelectDatacenter(Job job, double deadline) { 20 | // TODO Auto-generated method stub 21 | job.setoffloading(getFogNode().getId()); 22 | return 0; 23 | } 24 | 25 | @Override 26 | public void SelectDatacenter(Job job) { 27 | // TODO Auto-generated method stub 28 | 29 | } 30 | @Override 31 | public void BeforeOffloading(double deadline) { 32 | // TODO Auto-generated method stub 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/CanBeSentResult.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class CanBeSentResult { 4 | 5 | private double cpuLoad; 6 | private double nwLoad; 7 | 8 | private boolean canBeSent; 9 | 10 | public CanBeSentResult(double cpuLoad, double nwLoad, boolean canBeSent){ 11 | this.cpuLoad = cpuLoad; 12 | this.nwLoad = nwLoad; 13 | this.canBeSent = canBeSent; 14 | } 15 | 16 | public CanBeSentResult() { 17 | // TODO Auto-generated constructor stub 18 | } 19 | 20 | public double getCpuLoad() { 21 | return cpuLoad; 22 | } 23 | 24 | public void setCpuLoad(double cpuLoad) { 25 | this.cpuLoad = cpuLoad; 26 | } 27 | 28 | public double getNwLoad() { 29 | return nwLoad; 30 | } 31 | 32 | public void setNwLoad(double nwLoad) { 33 | this.nwLoad = nwLoad; 34 | } 35 | 36 | public boolean isCanBeSent() { 37 | return canBeSent; 38 | } 39 | 40 | public void setCanBeSent(boolean canBeSent) { 41 | this.canBeSent = canBeSent; 42 | } 43 | 44 | 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/Config.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class Config { 4 | 5 | public static final double RESOURCE_MGMT_INTERVAL = 100; 6 | public static int MAX_SIMULATION_TIME = 100000; 7 | public static int RESOURCE_MANAGE_INTERVAL = 100; 8 | public static String FOG_DEVICE_ARCH = "x86"; 9 | public static String FOG_DEVICE_OS = "Linux"; 10 | public static String FOG_DEVICE_VMM = "Xen"; 11 | public static double FOG_DEVICE_TIMEZONE = 10.0; 12 | public static double FOG_DEVICE_COST = 3.0; 13 | public static double FOG_DEVICE_COST_PER_MEMORY = 0.05; 14 | public static double FOG_DEVICE_COST_PER_STORAGE = 0.001; 15 | public static double FOG_DEVICE_COST_PER_BW = 0.0; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/FogEvents.java: -------------------------------------------------------------------------------- 1 | 2 | package org.fog.utils; 3 | 4 | public class FogEvents { 5 | private static final int BASE = 50; 6 | //public static final int TUPLE_ARRIVAL = BASE + 1; 7 | //public static final int LAUNCH_MODULE = BASE + 2; 8 | public static final int RELEASE_OPERATOR = BASE + 3; 9 | //public static final int SENSOR_JOINED = BASE + 4; 10 | //public static final int TUPLE_ACK = BASE + 5; 11 | //public static final int APP_SUBMIT = BASE + 6; 12 | public static final int CALCULATE_INPUT_RATE = BASE + 7; 13 | public static final int CALCULATE_UTIL = BASE + 8; 14 | public static final int UPDATE_RESOURCE_USAGE = BASE + 9; 15 | //public static final int UPDATE_TUPLE_QUEUE = BASE + 10; 16 | //public static final int TUPLE_FINISHED = BASE + 11; 17 | //public static final int ACTIVE_APP_UPDATE = BASE+12; 18 | public static final int CONTROLLER_RESOURCE_MANAGE = BASE+13; 19 | public static final int ADAPTIVE_OPERATOR_REPLACEMENT = BASE+14; 20 | public static final int GET_RESOURCE_USAGE = BASE+15; 21 | public static final int RESOURCE_USAGE = BASE+16; 22 | public static final int CONTROL_MSG_ARRIVAL = BASE + 17; 23 | //public static final int UPDATE_NORTH_TUPLE_QUEUE = BASE+18; 24 | //public static final int UPDATE_SOUTH_TUPLE_QUEUE = BASE+19; 25 | //public static final int ACTUATOR_JOINED = BASE+20; 26 | public static final int STOP_SIMULATION = BASE + 21; 27 | //public static final int SEND_PERIODIC_TUPLE = BASE+22; 28 | //public static final int LAUNCH_MODULE_INSTANCE = BASE+23; 29 | public static final int RESOURCE_MGMT = BASE+24; 30 | //public static final int INITIALIZE_SENSOR = BASE+24; 31 | //public static final int EMIT_TUPLE = BASE+25; 32 | public static final int FINISH_SIMULATION = BASE + 26; 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/FogUtils.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class FogUtils { 7 | private static int ENTITY_ID = 1; 8 | 9 | public static String getSensorTypeFromSensorName(String sensorName){ 10 | return sensorName.substring(sensorName.indexOf('-')+1, sensorName.lastIndexOf('-')); 11 | } 12 | 13 | public static int generateEntityId(){ 14 | return ENTITY_ID++; 15 | } 16 | 17 | public static int USER_ID = 1; 18 | 19 | public static int MAX = 10000000; 20 | 21 | public static Map appIdToGeoCoverageMap = new HashMap(); 22 | 23 | public static void set1(){ 24 | ENTITY_ID = 1; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/GeoCoverage.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class GeoCoverage { 4 | 5 | private double lat_l; 6 | private double lat_u; 7 | private double long_l; 8 | private double long_u; 9 | 10 | public GeoCoverage(double lat_l, double lat_u, double long_l, double long_u){ 11 | this.lat_l = lat_l; 12 | this.lat_u = lat_u; 13 | this.long_l = long_l; 14 | this.long_u = long_u; 15 | } 16 | 17 | public boolean covers(GeoCoverage geo){ 18 | if(this.lat_l <= geo.lat_l && this.lat_u >= geo.lat_u && this.long_l <= geo.long_l && this.long_u >= geo.long_u) 19 | return true; 20 | return false; 21 | } 22 | 23 | public double getLat_l() { 24 | return lat_l; 25 | } 26 | 27 | public void setLat_l(double lat_l) { 28 | this.lat_l = lat_l; 29 | } 30 | 31 | public double getLat_u() { 32 | return lat_u; 33 | } 34 | 35 | public void setLat_u(double lat_u) { 36 | this.lat_u = lat_u; 37 | } 38 | 39 | public double getLong_l() { 40 | return long_l; 41 | } 42 | 43 | public void setLong_l(double long_l) { 44 | this.long_l = long_l; 45 | } 46 | 47 | public double getLong_u() { 48 | return long_u; 49 | } 50 | 51 | public void setLong_u(double long_u) { 52 | this.long_u = long_u; 53 | } 54 | 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/GeoLocation.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class GeoLocation { 4 | 5 | private double latitude; 6 | private double longitude; 7 | 8 | public GeoLocation(double latitude, double longitude){ 9 | this.latitude = latitude; 10 | this.longitude = longitude; 11 | } 12 | 13 | public double getLatitude() { 14 | return latitude; 15 | } 16 | public void setLatitude(double latitude) { 17 | this.latitude = latitude; 18 | } 19 | public double getLongitude() { 20 | return longitude; 21 | } 22 | public void setLongitude(double longitude) { 23 | this.longitude = longitude; 24 | } 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/Logger.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | import org.cloudbus.cloudsim.core.CloudSim; 4 | 5 | import java.text.DecimalFormat; 6 | 7 | public class Logger { 8 | 9 | public static final int ERROR = 1; 10 | public static final int DEBUG = 0; 11 | 12 | public static int LOG_LEVEL = Logger.DEBUG; 13 | private static DecimalFormat df = new DecimalFormat("#.00"); 14 | 15 | public static boolean ENABLED = false;; 16 | 17 | public static void setLogLevel(int level){ 18 | Logger.LOG_LEVEL = level; 19 | } 20 | 21 | public static void debug(String name, String message){ 22 | if(!ENABLED) 23 | return; 24 | if(Logger.LOG_LEVEL <= Logger.DEBUG) 25 | System.out.println(df.format(CloudSim.clock())+" : "+name+" : "+message); 26 | } 27 | public static void error(String name, String message){ 28 | if(!ENABLED) 29 | return; 30 | if(Logger.LOG_LEVEL <= Logger.ERROR) 31 | System.out.println(df.format(CloudSim.clock())+" : "+name+" : "+message); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/NetworkUsageMonitor.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class NetworkUsageMonitor { 4 | 5 | private static double networkUsage = 0.0; 6 | 7 | public static void sendingTuple(double latency, double tupleNwSize){ 8 | networkUsage += latency*tupleNwSize; 9 | } 10 | 11 | public static double getNetworkUsage(){ 12 | return networkUsage; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/OperatorEdge.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class OperatorEdge { 4 | 5 | private String src; 6 | private String dst; 7 | private double selectivity; 8 | 9 | public OperatorEdge(String src, String dst, double selectivity){ 10 | this.src = src; 11 | this.dst = dst; 12 | this.selectivity = selectivity; 13 | } 14 | 15 | public String getSrc() { 16 | return src; 17 | } 18 | public void setSrc(String src) { 19 | this.src = src; 20 | } 21 | public String getDst() { 22 | return dst; 23 | } 24 | public void setDst(String dst) { 25 | this.dst = dst; 26 | } 27 | public double getSelectivity() { 28 | return selectivity; 29 | } 30 | public void setSelectivity(double selectivity) { 31 | this.selectivity = selectivity; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/OperatorSetComparator.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | import java.util.Comparator; 4 | import java.util.List; 5 | 6 | public class OperatorSetComparator implements Comparator>{ 7 | 8 | @Override 9 | public int compare(List arg0, List arg1) { 10 | return (arg1.size() - arg0.size()); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/ResourceUsageDetails.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils; 2 | 3 | public class ResourceUsageDetails { 4 | 5 | private double mips; 6 | private double uplinkBandwidth; 7 | private double cpuTrafficIntensity; 8 | private double nwTrafficIntensity; 9 | 10 | public ResourceUsageDetails(double mips, double uplinkBandwidth, 11 | double cpuTrafficIntensity, double nwTrafficIntensity) { 12 | super(); 13 | this.mips = mips; 14 | this.uplinkBandwidth = uplinkBandwidth; 15 | this.cpuTrafficIntensity = cpuTrafficIntensity; 16 | this.nwTrafficIntensity = nwTrafficIntensity; 17 | } 18 | public double getMips() { 19 | return mips; 20 | } 21 | public void setMips(double mips) { 22 | this.mips = mips; 23 | } 24 | public double getUplinkBandwidth() { 25 | return uplinkBandwidth; 26 | } 27 | public void setUplinkBandwidth(double uplinkBandwidth) { 28 | this.uplinkBandwidth = uplinkBandwidth; 29 | } 30 | public double getCpuTrafficIntensity() { 31 | return cpuTrafficIntensity; 32 | } 33 | public void setCpuTrafficIntensity(double cpuTrafficIntensity) { 34 | this.cpuTrafficIntensity = cpuTrafficIntensity; 35 | } 36 | public double getNwTrafficIntensity() { 37 | return nwTrafficIntensity; 38 | } 39 | public void setNwTrafficIntensity(double nwTrafficIntensity) { 40 | this.nwTrafficIntensity = nwTrafficIntensity; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/distribution/DeterministicDistribution.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils.distribution; 2 | 3 | public class DeterministicDistribution extends Distribution { 4 | 5 | private double value; 6 | 7 | public DeterministicDistribution(double value) { 8 | super(); 9 | setValue(value); 10 | } 11 | 12 | @Override 13 | public double getNextValue() { 14 | return value; 15 | } 16 | 17 | public double getValue() { 18 | return value; 19 | } 20 | 21 | public void setValue(double value) { 22 | this.value = value; 23 | } 24 | 25 | @Override 26 | public int getDistributionType() { 27 | return Distribution.DETERMINISTIC; 28 | } 29 | 30 | @Override 31 | public double getMeanInterTransmitTime() { 32 | return value; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/distribution/Distribution.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils.distribution; 2 | 3 | import java.util.Random; 4 | 5 | public abstract class Distribution { 6 | 7 | public static int NORMAL = 1; 8 | public static int DETERMINISTIC = 2; 9 | public static int UNIFORM = 3; 10 | 11 | protected Random random; 12 | public abstract double getNextValue(); 13 | 14 | public Random getRandom() { 15 | return random; 16 | } 17 | 18 | public void setRandom(Random random) { 19 | this.random = random; 20 | } 21 | 22 | public abstract int getDistributionType(); 23 | public abstract double getMeanInterTransmitTime(); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/distribution/NormalDistribution.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils.distribution; 2 | 3 | import java.util.Random; 4 | 5 | public class NormalDistribution extends Distribution { 6 | 7 | private double mean; 8 | private double stdDev; 9 | 10 | public NormalDistribution(double mean, double stdDev) { 11 | setMean(mean); 12 | setStdDev(stdDev); 13 | setRandom(new Random()); 14 | } 15 | 16 | @Override 17 | public double getNextValue() { 18 | return random.nextGaussian()*stdDev + mean; 19 | } 20 | 21 | public double getMean() { 22 | return mean; 23 | } 24 | 25 | public void setMean(double mean) { 26 | this.mean = mean; 27 | } 28 | 29 | public double getStdDev() { 30 | return stdDev; 31 | } 32 | 33 | public void setStdDev(double stdDev) { 34 | this.stdDev = stdDev; 35 | } 36 | 37 | @Override 38 | public int getDistributionType() { 39 | return Distribution.NORMAL; 40 | } 41 | 42 | @Override 43 | public double getMeanInterTransmitTime() { 44 | return mean; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/org/fog/utils/distribution/UniformDistribution.java: -------------------------------------------------------------------------------- 1 | package org.fog.utils.distribution; 2 | 3 | public class UniformDistribution extends Distribution { 4 | 5 | private double min; 6 | private double max; 7 | 8 | public UniformDistribution(double min, double max){ 9 | super(); 10 | setMin(min); 11 | setMax(max); 12 | } 13 | 14 | @Override 15 | public double getNextValue() { 16 | return getRandom().nextDouble()*(getMax()-getMin())+getMin(); 17 | } 18 | 19 | public double getMin() { 20 | return min; 21 | } 22 | 23 | public void setMin(double min) { 24 | this.min = min; 25 | } 26 | 27 | public double getMax() { 28 | return max; 29 | } 30 | 31 | public void setMax(double max) { 32 | this.max = max; 33 | } 34 | 35 | @Override 36 | public int getDistributionType() { 37 | return Distribution.UNIFORM; 38 | } 39 | 40 | @Override 41 | public double getMeanInterTransmitTime() { 42 | return (min+max)/2; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/WorkflowSimTags.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012-2013 University Of Southern California 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package org.workflowsim; 17 | 18 | /** 19 | * This WorkflowSimTags include tags that are not supported in CloudSimTags 20 | * 21 | * @author Weiwei Chen 22 | * @since WorkflowSim Toolkit 1.0 23 | * @date Apr 9, 2013 24 | */ 25 | public class WorkflowSimTags { 26 | 27 | /** 28 | * Starting constant value for cloud-related tags * 29 | */ 30 | private static final int BASE = 1000; 31 | /** 32 | * VM Status is ready (not used) 33 | */ 34 | public static final int VM_STATUS_READY = BASE + 2; 35 | /** 36 | * VM Status is busy (no jobs should run on this vm) 37 | */ 38 | public static final int VM_STATUS_BUSY = BASE + 3; 39 | /** 40 | * VM Status is idle (a job can run on this vm) 41 | */ 42 | public static final int VM_STATUS_IDLE = BASE + 4; 43 | public static final int START_SIMULATION = BASE + 0; 44 | public static final int JOB_SUBMIT = BASE + 1; 45 | public static final int CLOUDLET_UPDATE = BASE + 5; 46 | public static final int CLOUDLET_CHECK = BASE + 6; 47 | 48 | /** 49 | * Private Constructor 50 | */ 51 | private WorkflowSimTags() { 52 | throw new UnsupportedOperationException("WorkflowSim Tags cannot be instantiated"); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/clustering/ClusteringInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012-2013 University Of Southern California 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package org.workflowsim.clustering; 17 | 18 | import org.workflowsim.FileItem; 19 | import org.workflowsim.Job; 20 | import org.workflowsim.Task; 21 | 22 | import java.util.List; 23 | 24 | /** 25 | * The ClusteringInterface for all clustering methods 26 | * 27 | * @author Weiwei Chen 28 | * @since WorkflowSim Toolkit 1.0 29 | * @date Apr 9, 2013 30 | */ 31 | public interface ClusteringInterface { 32 | 33 | /** 34 | * set the task list. 35 | * @param list 36 | */ 37 | public void setTaskList(List list); 38 | 39 | /** 40 | * get job list. 41 | * @return 42 | */ 43 | public List getJobList(); 44 | 45 | /** 46 | * get task list. 47 | * @return 48 | */ 49 | public List getTaskList(); 50 | 51 | /** 52 | * the main function. 53 | */ 54 | public void run(); 55 | 56 | /** 57 | * get all the task files. 58 | * @return 59 | */ 60 | public List getTaskFiles(); 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/clustering/balancing/metrics/BalancingMetric.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright 2012-2013 University Of Southern California 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, 12 | * software distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | */ 18 | package org.workflowsim.clustering.balancing.metrics; 19 | 20 | import org.workflowsim.clustering.TaskSet; 21 | 22 | import java.util.List; 23 | 24 | /** 25 | * Every balancing metric should implement this interface 26 | * @author Weiwei Chen 27 | * @since WorkflowSim Toolkit 1.0 28 | * @date Apr 9, 2013 29 | */ 30 | public interface BalancingMetric { 31 | /** Gets the metric value. 32 | * @param list 33 | * @return */ 34 | public double getMetric(List list); 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/clustering/balancing/metrics/HorizontalRuntimeVariance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright 2012-2013 University Of Southern California 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, 12 | * software distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | */ 18 | package org.workflowsim.clustering.balancing.metrics; 19 | 20 | import org.workflowsim.clustering.TaskSet; 21 | 22 | import java.util.List; 23 | 24 | /** 25 | * HorizontalRuntimeVariance is the standard deviation of the runtime 26 | * @author Weiwei Chen 27 | * @since WorkflowSim Toolkit 1.0 28 | * @date Apr 9, 2013 29 | */ 30 | public class HorizontalRuntimeVariance implements BalancingMetric { 31 | 32 | /** 33 | * Returns the standard deviation of runtime 34 | * @param list taskSets to be checked 35 | * @return the standard deviation 36 | */ 37 | @Override 38 | public double getMetric(List list) { 39 | if (list == null || list.size() <= 1) { 40 | return 0.0; 41 | } 42 | long sum = 0; 43 | for (TaskSet task : list) { 44 | sum += task.getJobRuntime(); 45 | } 46 | long mean = sum / list.size(); 47 | sum = 0; 48 | for (TaskSet task : list) { 49 | long var = task.getJobRuntime(); 50 | sum += Math.pow((double) (var - mean), 2); 51 | } 52 | return Math.sqrt((double) (sum / list.size())) / mean; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/clustering/balancing/metrics/ImpactFactorVariance.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright 2012-2013 University Of Southern California 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, 12 | * software distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | * 17 | */ 18 | package org.workflowsim.clustering.balancing.metrics; 19 | 20 | import org.workflowsim.clustering.TaskSet; 21 | 22 | import java.util.List; 23 | 24 | /** 25 | * ImpactFactorVariance is the standard deviation of their impact factors 26 | * 27 | * @author Weiwei Chen 28 | * @since WorkflowSim Toolkit 1.0 29 | * @date Apr 9, 2013 30 | */ 31 | public class ImpactFactorVariance implements BalancingMetric { 32 | 33 | /** 34 | * Returns the standard deviation of their impact factors 35 | * @param list the TaskSets to be checked 36 | * @return the standard deviation 37 | */ 38 | @Override 39 | public double getMetric(List list) { 40 | if (list == null || list.size() <= 1) { 41 | return 0.0; 42 | } 43 | double sum = 0; 44 | for (TaskSet task : list) { 45 | sum += task.getImpactFactor(); 46 | 47 | } 48 | double mean = sum / list.size(); 49 | //Log.printLine("sum: " + sum ); 50 | sum = 0.0; 51 | for (TaskSet task : list) { 52 | double var = task.getImpactFactor(); 53 | sum += Math.pow(var - mean, 2); 54 | } 55 | return Math.sqrt(sum / list.size()); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/planning/PlanningAlgorithmInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012-2013 University Of Southern California 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package org.workflowsim.planning; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * The Planner interface 22 | * 23 | * @author Weiwei Chen 24 | * @since WorkflowSim Toolkit 1.0 25 | * @date Jun 18, 2013 26 | */ 27 | public interface PlanningAlgorithmInterface { 28 | 29 | /** 30 | * Sets the task list. 31 | */ 32 | public void setTaskList(List list); 33 | 34 | /** 35 | * Sets the vm list. 36 | */ 37 | public void setVmList(List list); 38 | 39 | /** 40 | * Gets the task list. 41 | */ 42 | public List getTaskList(); 43 | 44 | /** 45 | * Gets the vm list. An algorithm must implement it 46 | */ 47 | public List getVmList(); 48 | 49 | /** 50 | * the main function. 51 | */ 52 | public void run() throws Exception; 53 | 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/org/workflowsim/scheduling/SchedulingAlgorithmInterface.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012-2013 University Of Southern California 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package org.workflowsim.scheduling; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * The Scheduler interface 22 | * 23 | * @author Weiwei Chen 24 | * @since WorkflowSim Toolkit 1.0 25 | * @date Apr 9, 2013 26 | */ 27 | public interface SchedulingAlgorithmInterface { 28 | 29 | /** 30 | * Sets the job list. 31 | * @param list 32 | */ 33 | public void setCloudletList(List list); 34 | 35 | /** 36 | * Sets the vm list. 37 | * @param list 38 | */ 39 | public void setVmList(List list); 40 | 41 | /** 42 | * Gets the job list. 43 | * @return 44 | */ 45 | public List getCloudletList(); 46 | 47 | /** 48 | * Gets the vm list. 49 | * @return 50 | */ 51 | public List getVmList(); 52 | 53 | /** 54 | * the main function. 55 | * @throws Exception 56 | */ 57 | public void run() throws Exception; 58 | 59 | /** 60 | * Gets the scheduled jobs. 61 | * @return 62 | */ 63 | public List getScheduledList(); 64 | } 65 | -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/cyberShake.css: -------------------------------------------------------------------------------- 1 | 2 | .top_bar{ 3 | width : 100%; 4 | height : 80px; 5 | border : solid 1px greenyellow; 6 | /*height: 100%;*/ 7 | } 8 | 9 | .operate_node{ 10 | width:40px; 11 | height:40px; 12 | border-radius:50%; 13 | } 14 | 15 | .sameline{ 16 | text-align: center; 17 | width: 100px; 18 | float: left; 19 | } 20 | 21 | .ExtractSGT{ 22 | background-color: #FFFB00; 23 | margin-left: 20px; 24 | margin-top: 10px; 25 | } 26 | 27 | .SeismogramSynthesis{ 28 | background-color: #00CAFF; 29 | margin-left: 20px; 30 | margin-top: 10px; 31 | } 32 | 33 | .ZipSeis{ 34 | background-color: #FF8467; 35 | margin-left: 20px; 36 | margin-top: 10px; 37 | } 38 | 39 | .PeakValCalcOkaya{ 40 | background-color: #FFB300; 41 | margin-left: 20px; 42 | margin-top: 10px; 43 | } 44 | 45 | .ZipPSA{ 46 | background-color: #AED36D; 47 | margin-left: 20px; 48 | margin-top: 10px; 49 | } 50 | 51 | .panel{ 52 | border : solid 1px greenyellow; 53 | margin-top: 2px; 54 | height: 80%; 55 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/epigenomics.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/css/DrawWorkflow/epigenomics.css -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/inspiral.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/css/DrawWorkflow/inspiral.css -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/montage.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | .top_bar{ 4 | width : 100%; 5 | height : 80px; 6 | border : solid 1px greenyellow; 7 | /*height: 100%;*/ 8 | } 9 | 10 | .panel{ 11 | border : solid 1px greenyellow; 12 | margin-top: 2px; 13 | height: 80%; 14 | } 15 | 16 | .operate_node{ 17 | width:40px; 18 | height:40px; 19 | border-radius:50%; 20 | } 21 | 22 | .mProjectPP{ 23 | background-color: #FFFB00; 24 | margin-left: 20px; 25 | margin-top: 10px; 26 | } 27 | 28 | .mDiffFit{ 29 | background-color: #00CAFF; 30 | margin-left: 20px; 31 | margin-top: 10px; 32 | } 33 | 34 | .mConcatFit{ 35 | background-color: #FF8467; 36 | margin-left: 20px; 37 | margin-top: 10px; 38 | } 39 | 40 | .mBgModel{ 41 | background-color: #FFB300; 42 | margin-left: 20px; 43 | margin-top: 10px; 44 | } 45 | 46 | .mBackground{ 47 | background-color: #AED36D; 48 | margin-left: 20px; 49 | margin-top: 10px; 50 | } 51 | 52 | .mImgTbl{ 53 | background-color: #BCE7FF; 54 | margin-left: 20px; 55 | margin-top: 10px; 56 | } 57 | 58 | .mAdd{ 59 | background-color: #D883D2; 60 | margin-left: 20px; 61 | margin-top: 10px; 62 | } 63 | 64 | .mShrink{ 65 | background-color: #CACACA; 66 | margin-left: 20px; 67 | margin-top: 10px; 68 | } 69 | 70 | .mJPEG{ 71 | background-color: #E6F094; 72 | margin-left: 20px; 73 | margin-top: 10px; 74 | } 75 | 76 | .sameline{ 77 | text-align: center; 78 | width: 100px; 79 | float: left; 80 | } 81 | 82 | .buttons{ 83 | float: right; 84 | margin-top: 20px; 85 | margin-right: 10px; 86 | } 87 | 88 | #del img{ 89 | margin-top: 15px; 90 | width: 50%; 91 | height: 60%; 92 | } 93 | 94 | .item{ 95 | width: 80px; 96 | height: 80px; 97 | position: absolute; 98 | border: solid 1px red; 99 | } 100 | -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/nodeInfo.css: -------------------------------------------------------------------------------- 1 | 2 | .nodeInfo{ 3 | margin-left:10px; 4 | } 5 | 6 | .node_input{ 7 | width: 200px; 8 | } 9 | 10 | .node_label{ 11 | width: 120px; 12 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/other.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/css/DrawWorkflow/other.css -------------------------------------------------------------------------------- /src/main/resources/static/css/DrawWorkflow/sipht.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/css/DrawWorkflow/sipht.css -------------------------------------------------------------------------------- /src/main/resources/static/css/chart.css: -------------------------------------------------------------------------------- 1 | body { 2 | border-top: 1px solid #aab9c3; 3 | } -------------------------------------------------------------------------------- /src/main/resources/static/css/fogImport.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: white; 3 | font-family: sans-serif; 4 | font-size: 14px; 5 | /*border: 1px solid #aab9c3;*/ 6 | border-top: 1px solid #aab9c3; 7 | } 8 | .chooseInput { 9 | margin-top: -5px; 10 | height: 38px; 11 | border-radius: 19px 19px 19px 19px; 12 | margin-left: 18px; 13 | float: left; 14 | border-style:none; 15 | outline: none; 16 | text-indent: 5px; 17 | border: 1px solid #DBDBDB; 18 | color:#9ca0a6; 19 | 20 | } 21 | button { 22 | height: 20px; 23 | font-size: 10px; 24 | } 25 | .submit { 26 | width:80px; 27 | height:20px; 28 | position:absolute; 29 | top:16px; 30 | left:292px; 31 | /*text-align: center;*/ 32 | /*text-indent: -10px;*/ 33 | /*display:block;*/ 34 | } 35 | .chosen-file { 36 | /*margin-top: 20px;*/ 37 | margin-left: 20px; 38 | margin-top:5px; 39 | float: left; 40 | } 41 | .line1 { 42 | margin-top: 20px; 43 | height: 40px; 44 | width: 350px; 45 | float: top; 46 | } 47 | .line2 { 48 | width: 270px; 49 | float: top; 50 | margin-left:100px; 51 | margin-top:30px; 52 | } 53 | .li-img { 54 | width: 20px; 55 | height: 20px; 56 | /*margin-top: 40px;*/ 57 | } 58 | li { 59 | cursor: pointer; 60 | list-style: none; 61 | height: 20px; 62 | margin-top: 10px; 63 | } -------------------------------------------------------------------------------- /src/main/resources/static/images/2vm.png: -------------------------------------------------------------------------------- 1 | ‰PNG 2 |  3 | IHDR‘h6tEXtSoftwareAdobe ImageReadyqÉe<&iTXtXML:com.adobe.xmp €ŒœüÖIDATxÚbüÿÿ?)€¨AER YhéÚõæVÖ@A9…G KÝyþŠÂ:}õƙS'åäšjª "f–V\\\’RÒM]÷îÜÑ74²2Њ3A¤oݸž™¿zùR¸aËÖmHÍÊ2¶nؔºxþDªAZV.¯¸ÔÎÑ ÈÞµ}[K]͏? RæVV@)%? á_»|IFNîúÕ«çnÞ¾~åJFBœ–®Dêä±£P?=$óŠK –23ÿûû7*Ðè¥ íÙ¹sï®±‰I À àææZò~pqr±°²Þ¸v (¥©£sôÐ! Q1q dÞ$0±»KYBè÷ÄÑ#@nsm5èd vïØq̇ïUÕÕYXX .~xÿ¾¦¶6„ÍÃË aƒä€¡÷ô‹gπÁdDBDØØÙ̞nhĵõô-ž?Y ç̆ˆ$¤¦A¯_½ºx«$l ^<†l Ô4µ@“zºdhT´«‡'"â€!LB±‰Ép QA•Å… '±±=6kêd Â#uU„áàð>uüØçOŒ_¿~ݾy%µ’”¼ ‹€ÒCýß½µIEND®B`‚ -------------------------------------------------------------------------------- /src/main/resources/static/images/QRCode01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/QRCode01.png -------------------------------------------------------------------------------- /src/main/resources/static/images/QRCode02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/QRCode02.png -------------------------------------------------------------------------------- /src/main/resources/static/images/ahu_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/ahu_logo.png -------------------------------------------------------------------------------- /src/main/resources/static/images/back_show.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/back_show.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/cloudServer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/cloudServer.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/cloudServer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/cloudServer.png -------------------------------------------------------------------------------- /src/main/resources/static/images/deakin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/deakin_logo.png -------------------------------------------------------------------------------- /src/main/resources/static/images/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/del.png -------------------------------------------------------------------------------- /src/main/resources/static/images/developers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/developers.png -------------------------------------------------------------------------------- /src/main/resources/static/images/disabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/disabled.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/disabled.png -------------------------------------------------------------------------------- /src/main/resources/static/images/edge_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/edge_logo.png -------------------------------------------------------------------------------- /src/main/resources/static/images/file.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/file.ico -------------------------------------------------------------------------------- /src/main/resources/static/images/fogServer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/fogServer.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/fogServer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/fogServer.png -------------------------------------------------------------------------------- /src/main/resources/static/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/loading.gif -------------------------------------------------------------------------------- /src/main/resources/static/images/login_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/login_01.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/login_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/login_02.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/login_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/login_03.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/mobile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/mobile.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/mobile.png -------------------------------------------------------------------------------- /src/main/resources/static/images/mon-spr.png: -------------------------------------------------------------------------------- 1 | ‰PNG 2 |  3 | IHDRn ó MçtEXtSoftwareAdobe ImageReadyqÉe< iTXtXML:com.adobe.xmp mRéIDATxÚìYÍjAžÍŽFOy…‹Bp‰@®Á¹$àÑh4$l“ƒ'}ƒ}O 4 | þ²b Añg!˜ƒ»£àA0»¯à-9˜M5ÎÀºg§ªºg¦'óÁdz]Õ5ýuWWϔV_<­9ŽsÉ¡¡lˆ‹Ú“çҍ—Ï‚ËûÀ„ïà{•_‰¢ú õq8áfø©_Ì:àú¢­»HÛaà¢ýÒÅÉ¢Õ%×W…pIâú¿]‚m—ØgÃ_©*ˆ‰TCúœŽãù üJ°«“^S†pS˜µæÿ2Œ2⹆®®[L[„3FLñ)+['î«DÛ?y®£¹)T +5hWp 5 | X‰B8ûP G)½³V®¯-@Äú†[œ,ä`&>´0Û-©ò ¦JNuuPŒc:pýsO’¨ô¼bØVöè}àeâÁ}ÇE¼ÐõVÀô~jÚ¿®qøÀ]q2œ“Ü»<40¯™ûíð 6 | Ñv—Q~ÎaŒt}9P wKrïóÿ+‚îÁ]‰h9 7 | $ð3 HDÛO*ϖœoÁïu¢}艋AïHÚà¨5\ŠÙ9‹ð½œVù•øg!ªŸP¯"&šÀ†˜àýbÖu–¢M 8 | ‘œD 9 | >‹Œm*ƒÅ\X´ðX˜K* Unl·‰}zþJUAL†Òç;à"1‘þìz”Îteˆ4àmæÿ2,2âYÂn/L y|sâÅLõ^Êq®ù«–µ<~kkng 10 | ó§V1&=Ïï*-E!œ}(……£”ÞY+×oÿY$€ˆu‚{øžƒ™øÍ²xËÀŸEª<;èÂqª«­bÓ+Nâž{dœ6°7r÷Î)ÍíLaóÔ*ŠÃnŒ3ö¬Ñ¦÷SÓþ{šüÜà«„»(¹7ük` ÆýMºÌðÑt䟢âà £*¼üŒ1Òõå@Uœ¼5Pµ5÷)Dk"Ôt‡ø e‰h›IåÙœ²¤a)òIEND®B`‚ -------------------------------------------------------------------------------- /src/main/resources/static/images/monash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/monash_logo.png -------------------------------------------------------------------------------- /src/main/resources/static/images/schoolLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/schoolLogo.png -------------------------------------------------------------------------------- /src/main/resources/static/images/swinburne_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/swinburne_logo.png -------------------------------------------------------------------------------- /src/main/resources/static/images/task.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/task.jpg -------------------------------------------------------------------------------- /src/main/resources/static/images/titleLog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/titleLog.png -------------------------------------------------------------------------------- /src/main/resources/static/images/userlogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/images/userlogo.jpg -------------------------------------------------------------------------------- /src/main/resources/static/jquery/canvas-nest.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 hustcc 3 | * License: MIT 4 | * Version: v1.0.1 5 | * GitHub: https://github.com/hustcc/canvas-nest.js 6 | **/ 7 | !function(){function n(n,e,t){return n.getAttribute(e)||t}function e(n){return document.getElementsByTagName(n)}function t(){var t=e("script"),o=t.length,i=t[o-1];return{l:o,z:n(i,"zIndex",-1),o:n(i,"opacity",.5),c:n(i,"color","0,0,0"),n:n(i,"count",99)}}function o(){a=m.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,c=m.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}function i(){r.clearRect(0,0,a,c);var n,e,t,o,m,l;s.forEach(function(i,x){for(i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>a||i.x<0?-1:1,i.ya*=i.y>c||i.y<0?-1:1,r.fillRect(i.x-.5,i.y-.5,1,1),e=x+1;e=n.max/2&&(i.x-=.03*o,i.y-=.03*m),t=(n.max-l)/n.max,r.beginPath(),r.lineWidth=t/2,r.strokeStyle="rgba("+d.c+","+(t+.2)+")",r.moveTo(i.x,i.y),r.lineTo(n.x,n.y),r.stroke()))}),x(i)}var a,c,u,m=document.createElement("canvas"),d=t(),l="c_n"+d.l,r=m.getContext("2d"),x=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(n){window.setTimeout(n,1e3/45)},w=Math.random,y={x:null,y:null,max:2e4};m.id=l,m.style.cssText="position:fixed;top:0;left:0;z-index:"+d.z+";opacity:"+d.o,e("body")[0].appendChild(m),o(),window.onresize=o,window.onmousemove=function(n){n=n||window.event,y.x=n.clientX,y.y=n.clientY},window.onmouseout=function(){y.x=null,y.y=null};for(var s=[],f=0;d.n>f;f++){var h=w()*a,g=w()*c,v=2*w()-1,p=2*w()-1;s.push({x:h,y:g,xa:v,ya:p,max:6e3})}u=s.concat([y]),setTimeout(function(){i()},100)}(); -------------------------------------------------------------------------------- /src/main/resources/static/jquery/zylVerificationCode.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | zylVerCode();//初始化生成随机数 3 | }); 4 | 5 | 6 | //生成随机数 7 | function zylVerCode(len){ 8 | len = len || 4; 9 | var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';//默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1 10 | var maxPos = $chars.length; 11 | var zylCode = ''; 12 | for (i = 0; i < len; i++) { 13 | zylCode += $chars.charAt(Math.floor(Math.random() * maxPos)); 14 | } 15 | $(".zylVerCode").html(zylCode); 16 | } -------------------------------------------------------------------------------- /src/main/resources/static/js/DrawWorkflow/cyberShake.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | /*jsPlumb.ready(function () { 4 | jsPlumb.connect({ 5 | source: 'item_left', 6 | target: 'item_right', 7 | endpoint: 'Rectangle', 8 | connector: ['Bezier'], 9 | anchor: ['Left', 'Right'] 10 | }) 11 | 12 | jsPlumb.draggable('item_left') 13 | jsPlumb.draggable('item_right') 14 | })*/ 15 | -------------------------------------------------------------------------------- /src/main/resources/static/js/DrawWorkflow/epigenomics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/js/DrawWorkflow/epigenomics.js -------------------------------------------------------------------------------- /src/main/resources/static/js/DrawWorkflow/inspiral.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/js/DrawWorkflow/inspiral.js -------------------------------------------------------------------------------- /src/main/resources/static/js/DrawWorkflow/nodeInfo.js: -------------------------------------------------------------------------------- 1 | //nodeInfo.js 2 | 3 | $(document).ready(function(){ 4 | var nodeType = ''; 5 | //获取节点类型 6 | $.ajax({ 7 | url:"/getnodeType", 8 | type:"POST", 9 | data:"", 10 | dataType:"text", 11 | async:false, 12 | contentType:"application/json", 13 | success:function (res) { 14 | console.log(res); 15 | $(".items").hide(); 16 | $("." + res).show() 17 | nodeType = res; 18 | }, 19 | error:function(res){ 20 | layer.msg("Failed to obtain user information!"); 21 | } 22 | }); 23 | var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 24 | 25 | 26 | 27 | //给父页面传值 28 | $('#node_save').on('click', function(){ 29 | parent.layer.tips('Look here', '#parentIframe', {time: 5000}); 30 | parent.layer.close(index); 31 | }); 32 | //关闭iframe 33 | $('#node_close').click(function(){ 34 | 35 | parent.layer.msg('您将标记 [ ' + '111' + ' ] 成功传送给了父窗口'); 36 | parent.layer.close(index); 37 | }); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /src/main/resources/static/js/DrawWorkflow/other.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/js/DrawWorkflow/other.js -------------------------------------------------------------------------------- /src/main/resources/static/js/DrawWorkflow/sipht.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/js/DrawWorkflow/sipht.js -------------------------------------------------------------------------------- /src/main/resources/static/js/algorithmsSettingGA.js: -------------------------------------------------------------------------------- 1 | function settingOK() { 2 | $.ajax({ 3 | url:"/algorithmsSetting/setGA", 4 | type:"post", 5 | data:$("#inputForm").serialize(), 6 | dataType:"json", 7 | success:function (data) { 8 | if(data.result==1){ 9 | alert("Setting success!"); 10 | } 11 | }, 12 | error:function () { 13 | alert("Setting error!"); 14 | } 15 | }); 16 | } 17 | //下载GA 18 | function download() { 19 | location.href="/algorithmsSetting/downloadGA"; 20 | } 21 | //上传GA 22 | function upload() { 23 | var formData = new FormData(); 24 | formData.append("file",$('#file')[0].files[0]) 25 | $.ajax({ 26 | url:"/algorithmsSetting/uploadGA", 27 | type:"POST", 28 | data:formData, 29 | dataType:"json", 30 | processData: false, //对数据不做处理 31 | cache:false, //上传文件不需要缓存 32 | contentType: false, 33 | mimeType:"multipart/form-data", 34 | success:function (data) { 35 | alert("import success!"); 36 | location.reload(); 37 | }, 38 | error:function () { 39 | alert("import error!"); 40 | } 41 | }) 42 | } -------------------------------------------------------------------------------- /src/main/resources/static/js/algorithmsSettingPSO.js: -------------------------------------------------------------------------------- 1 | //设置好参数 2 | function settingOK() { 3 | $.ajax({ 4 | url:"/algorithmsSetting/setPSO", 5 | type:"post", 6 | data:$("#inputForm").serialize(), 7 | dataType:"json", 8 | success:function (data) { 9 | if(data.result==1){ 10 | alert("Setting success!"); 11 | } 12 | }, 13 | error:function () { 14 | $().alert("Setting error!"); 15 | } 16 | }) 17 | } 18 | 19 | //下载PSO 20 | function download() { 21 | location.href="/algorithmsSetting/downloadPSO"; 22 | } 23 | //上传PSO 24 | function upload() { 25 | var formData = new FormData(); 26 | formData.append("file",$('#file')[0].files[0]) 27 | $.ajax({ 28 | url:"/algorithmsSetting/uploadPSO", 29 | type:"POST", 30 | data:formData, 31 | dataType:"json", 32 | processData: false, //对数据不做处理 33 | cache:false, //上传文件不需要缓存 34 | contentType: false, 35 | mimeType:"multipart/form-data", 36 | success:function (data) { 37 | alert("import success!"); 38 | location.reload(); 39 | }, 40 | error:function () { 41 | alert("import error!"); 42 | } 43 | }) 44 | } -------------------------------------------------------------------------------- /src/main/resources/static/js/fogImport.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | $('ul li').click(function(){ 3 | $("#chooseInput").val($(this).text()); 4 | }); 5 | 6 | $("#submit").click(function () { 7 | var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 8 | var fileName = $("#chooseInput").val(); 9 | if (fileName) { 10 | parent.loadXml(fileName); 11 | parent.layer.close(index); 12 | } else { 13 | parent.layer.close(index); 14 | } 15 | }); 16 | }); -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/icon.png -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/loading-1.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.4 MIT License By https://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/iconfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/iconfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/layui/font/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/font/iconfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/0.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/1.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/10.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/11.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/12.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/13.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/14.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/15.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/16.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/17.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/18.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/19.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/2.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/20.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/21.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/22.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/23.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/24.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/25.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/26.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/27.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/28.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/29.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/3.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/30.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/31.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/32.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/33.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/34.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/35.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/36.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/37.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/38.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/39.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/4.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/40.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/41.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/42.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/43.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/44.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/45.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/46.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/47.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/48.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/49.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/5.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/50.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/51.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/52.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/53.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/54.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/55.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/56.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/57.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/58.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/59.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/6.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/60.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/61.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/62.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/63.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/64.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/65.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/66.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/67.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/68.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/69.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/7.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/70.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/71.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/8.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/9.gif -------------------------------------------------------------------------------- /src/main/resources/static/layui/images/face/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/layui/images/face/bg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/layui/lay/modules/code.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.4 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /src/main/resources/static/layui/lay/modules/flow.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.4 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)}); -------------------------------------------------------------------------------- /src/main/resources/static/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.4 MIT License By https://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /src/main/resources/static/xml/dax/dax.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ISEC-AHU/EdgeWorkflow/a3777205a50f2cb19512d7c71e5869fb332e3d73/src/main/resources/static/xml/dax/dax.zip -------------------------------------------------------------------------------- /src/main/resources/static/xml/environment-setting/EnvironmentSetting.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/resources/static/xml/environment-setting/大EnvironmentSetting.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/DrawWorkflow/epigenomics.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2019/12/8 0008 5 | Time: 9:55 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | Epigenomics 12 | 13 | 14 | 15 | epigenoics workflow 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/DrawWorkflow/inspiral.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2019/12/8 0008 5 | Time: 9:56 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | Inspiral 12 | 13 | 14 | 15 | Inspiral workflow 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/DrawWorkflow/other.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2019/12/8 0008 5 | Time: 9:53 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | Other 12 | 13 | 14 | 15 | other workflow 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/DrawWorkflow/sipht.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2019/12/8 0008 5 | Time: 9:56 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | Sipht 12 | 13 | 14 | 15 | Sipht workflow 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/developerInformation.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | FogWorkflowSim 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
Developer NameUniversityE-mail
36 | 37 | 38 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/exampleFileChose.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2020/1/2 0002 5 | Time: 15:24 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | System Information 12 | 13 | 14 | 15 | 16 |
17 |
    18 |
  • Developer Information
  • 19 |
  • System Version
  • 20 | 21 |
22 |
23 |
24 | <%@ include file="developerInformation.jsp"%> 25 |
26 |
27 | <%@include file="systemVersions.jsp"%> 28 |
29 |
30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 45 | 46 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/fogImport.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 | FogWorkflowSim 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |
Select File:
15 | 16 | <%----%> 17 | 18 |
19 |
20 |
    21 |
  • EnvironmentSetting.xml
  • 22 |
  • 大EnvironmentSetting.xml
  • 23 |
24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/jsp/systemInfo.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2020/1/2 0002 5 | Time: 15:24 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | 10 | 11 | System Information 12 | 13 | 14 | 15 | 16 |
17 |
    18 |
  • Developer Information
  • 19 |
  • System Version
  • 20 | 21 |
22 |
23 |
24 | <%@ include file="developerInformation.jsp"%> 25 |
26 |
27 | <%@include file="systemVersions.jsp"%> 28 |
29 |
30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 45 | 46 | -------------------------------------------------------------------------------- /src/test/java/com/ccis/fog/FogApplicationTests.java: -------------------------------------------------------------------------------- 1 | //package com.ccis.fog; 2 | // 3 | //import org.junit.jupiter.api.Test; 4 | //import org.springframework.boot.test.context.SpringBootTest; 5 | // 6 | //@SpringBootTest 7 | //class FogApplicationTests { 8 | // 9 | // @Test 10 | // void contextLoads() { 11 | // System.out.println("dddddd"); 12 | // } 13 | // 14 | //} 15 | --------------------------------------------------------------------------------