summaryrefslogtreecommitdiffstats
path: root/embedding
diff options
context:
space:
mode:
Diffstat (limited to 'embedding')
-rw-r--r--embedding/pom.xml54
-rw-r--r--embedding/src/main/java/eu/novi/mapping/embedding/EmbeddingAlgorithmInterface.java56
2 files changed, 110 insertions, 0 deletions
diff --git a/embedding/pom.xml b/embedding/pom.xml
new file mode 100644
index 0000000..77d0798
--- /dev/null
+++ b/embedding/pom.xml
@@ -0,0 +1,54 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>eu.novi</groupId>
+ <artifactId>parent</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <relativePath>../parent/</relativePath>
+ </parent>
+ <packaging>bundle</packaging>
+ <artifactId>embedding</artifactId>
+ <name>API for embedding algorithms</name>
+
+ <developers>
+ <developer>
+ <id>blazej.pietrzak</id>
+ <name>Blazej Pietrzak</name>
+ <email>blazej.pietrzak@man.poznan.pl</email>
+ <organization>PSNC</organization>
+ <organizationUrl>http://www.man.poznan.pl/</organizationUrl>
+ <roles>
+ <role>architect</role>
+ <role>developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ </developers>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Export-Package>eu.novi.mapping.embedding</Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>eu.novi</groupId>
+ <artifactId>information-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>eu.novi</groupId>
+ <artifactId>jung-osgi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/embedding/src/main/java/eu/novi/mapping/embedding/EmbeddingAlgorithmInterface.java b/embedding/src/main/java/eu/novi/mapping/embedding/EmbeddingAlgorithmInterface.java
new file mode 100644
index 0000000..0358c8a
--- /dev/null
+++ b/embedding/src/main/java/eu/novi/mapping/embedding/EmbeddingAlgorithmInterface.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2012, NOVI Consortium, European FP7 NOVI Project
+ * Copyright according to BSD License
+ * For full text of the license see: Software/LICENSE.txt
+ *
+ * @author <a href="mailto:alvaro.monje@entel.upc.edu">Alvaro Monje</a>
+ * @author <a href="mailto:arisleeiv@netmode.ntua.gr">Aris Levadeas</a>
+ * @author <a href="mailto:chrisap@noc.ntua.gr">Chrysa Papagianni</a>
+ */
+package eu.novi.mapping.embedding;
+
+import java.util.List;
+import java.util.Map;
+
+import edu.uci.ics.jung.graph.SparseMultigraph;
+import eu.novi.im.core.impl.LinkImpl;
+import eu.novi.im.core.impl.NodeImpl;
+import eu.novi.im.core.impl.ResourceImpl;
+import eu.novi.im.core.impl.GroupImpl;
+import eu.novi.im.policy.impl.NOVIUserImpl;
+
+/**
+ * This module provides an interface for the embedding algorithms that will be
+ * used for solving in the inter-domain VNE problem. It is testbed specific.
+ *
+ * @author <a href="mailto:alvaro.monje@entel.upc.edu">Alvaro Monje</a>
+ * @author <a href="mailto:arisleeiv@netmode.ntua.gr">Aris Levadeas</a>
+ * @author <a href="mailto:chrisap@noc.ntua.gr">Chrysa Papagianni</a>
+ */
+public interface EmbeddingAlgorithmInterface {
+
+ List<Map<ResourceImpl,ResourceImpl>> embed(String sessionID, SparseMultigraph<NodeImpl, LinkImpl> virtualTopology,
+ SparseMultigraph<NodeImpl, LinkImpl> resources);
+
+ List<Map<ResourceImpl,ResourceImpl>> embed(String sessionID, GroupImpl partialTopology, NOVIUserImpl noviUsers);
+
+ /**
+ * Gets the testbed name where the algorithm is located
+ *
+ * @return Testbed name
+ */
+ String getTestbedName();
+
+ String getTestbedTopLeveAuthority();
+
+ /**
+ * Gets the name of the algorithm
+ *
+ * @return The name of the current Algorithm
+ */
+ String getAlgorithmName();
+
+ /** testing who are you **/
+ String whoAreYou(String question);
+
+}