diff --git a/VerteilteSysteme-Examples/build/RMIEchoServer.jar b/VerteilteSysteme-Examples/build/RMIEchoServer.jar index 0322ab7c95a026efd590eac855ccf50d37d9add9..4e35bcc77613753bad15a455757272f642851c27 100644 Binary files a/VerteilteSysteme-Examples/build/RMIEchoServer.jar and b/VerteilteSysteme-Examples/build/RMIEchoServer.jar differ diff --git a/VerteilteSysteme-Examples/build/RMIMandelbrotCalculationsServer.jar b/VerteilteSysteme-Examples/build/RMIMandelbrotCalculationsServer.jar index ce3cb2560a464c54aba4b53cb65c82e0b50ceda5..49805e9f4da1423e85c30fc830ce42dfc84e5bb7 100644 Binary files a/VerteilteSysteme-Examples/build/RMIMandelbrotCalculationsServer.jar and b/VerteilteSysteme-Examples/build/RMIMandelbrotCalculationsServer.jar differ diff --git a/VerteilteSysteme-Examples/build/TCPPerfServer.jar b/VerteilteSysteme-Examples/build/TCPPerfServer.jar index 6b146ec652a2903e8e23665a861a8a431a308eac..6945b701180c09f367552175a3add69ef437f806 100644 Binary files a/VerteilteSysteme-Examples/build/TCPPerfServer.jar and b/VerteilteSysteme-Examples/build/TCPPerfServer.jar differ diff --git a/VerteilteSysteme-Examples/build/TCPServer.jar b/VerteilteSysteme-Examples/build/TCPServer.jar index d189421696391fabe547db0e586aaaa85a6ff007..efeba29582a9e19886b39773e7087acef9ecfec1 100644 Binary files a/VerteilteSysteme-Examples/build/TCPServer.jar and b/VerteilteSysteme-Examples/build/TCPServer.jar differ diff --git a/VerteilteSysteme-Examples/build/TCPServerMulti.jar b/VerteilteSysteme-Examples/build/TCPServerMulti.jar index 1c4aa38cf4b3906dcbe6aa4b966d30f98ba3f707..baa0009de7a55f13b33d1a8c55711a566e179231 100644 Binary files a/VerteilteSysteme-Examples/build/TCPServerMulti.jar and b/VerteilteSysteme-Examples/build/TCPServerMulti.jar differ diff --git a/VerteilteSysteme-Examples/build/TCPTimeCounterRESTServer.jar b/VerteilteSysteme-Examples/build/TCPTimeCounterRESTServer.jar new file mode 100644 index 0000000000000000000000000000000000000000..f604ce3cce44b17d6d619aad25d7fa7f6cdafdfa Binary files /dev/null and b/VerteilteSysteme-Examples/build/TCPTimeCounterRESTServer.jar differ diff --git a/VerteilteSysteme-Examples/build/TCPTimeCounterServer.jar b/VerteilteSysteme-Examples/build/TCPTimeCounterServer.jar index c6a5e5ea6749a3f1920dfc3e0042e9f05134fdb6..65027b4f3aff0ff30ebf98b23c9aac64e361af66 100644 Binary files a/VerteilteSysteme-Examples/build/TCPTimeCounterServer.jar and b/VerteilteSysteme-Examples/build/TCPTimeCounterServer.jar differ diff --git a/VerteilteSysteme-Examples/build/UDPServer.jar b/VerteilteSysteme-Examples/build/UDPServer.jar index a87da5ef89c07ec039280be169b4fe08bcd068e0..55a7eeef81b030da850e09aa2bd00f13a4a92c56 100644 Binary files a/VerteilteSysteme-Examples/build/UDPServer.jar and b/VerteilteSysteme-Examples/build/UDPServer.jar differ diff --git a/VerteilteSysteme-Examples/build/UDPServerMulti.jar b/VerteilteSysteme-Examples/build/UDPServerMulti.jar index 1bad079a23ea810a7e5bae83a8c8db385fdd30ce..8e8acbe6781e7b743a015e18bc4ca073ee5ac31a 100644 Binary files a/VerteilteSysteme-Examples/build/UDPServerMulti.jar and b/VerteilteSysteme-Examples/build/UDPServerMulti.jar differ diff --git a/VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar b/VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar index 74c5a63744d3adc6ffa7bf106315ba0dc791f06a..06128d75f14950f5b013fb5e74d91cdb5af17a4c 100644 Binary files a/VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar and b/VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar differ diff --git a/VerteilteSysteme-Examples/build/build-server-jars.xml b/VerteilteSysteme-Examples/build/build-server-jars.xml index c86cf11cc81abaa19b1b51952e10f4f95e82bb93..a23ab0859ffc7db8c37a62ed2ef77ba1238a9b12 100644 --- a/VerteilteSysteme-Examples/build/build-server-jars.xml +++ b/VerteilteSysteme-Examples/build/build-server-jars.xml @@ -7,7 +7,7 @@ <property name="dir.workspace" value=".." /> <property name="dir.jarfile" value="." /> - <target name="all" depends="create_run_jar_tcpserver, create_run_jar_udpserver, create_run_jar_tcpservermulti, create_run_jar_udpservermulti, create_run_jar_udptimecounterserver, create_run_jar_tcpperfserver, create_run_jar_rmiechoserver, create_run_jar_rmimandelbrotcalculationsserver, create_run_jar_tcptimecounterserver"> + <target name="all" depends="create_run_jar_tcpserver, create_run_jar_udpserver, create_run_jar_tcpservermulti, create_run_jar_udpservermulti, create_run_jar_udptimecounterserver, create_run_jar_tcpperfserver, create_run_jar_rmiechoserver, create_run_jar_rmimandelbrotcalculationsserver, create_run_jar_tcptimecounterserver, create_run_jar_tcptimecounterrestserver"> </target> <target name="create_run_jar_tcpserver"> @@ -91,33 +91,25 @@ </target> <target name="create_run_jar_tcptimecounterserver"> -<!-- - <path id="build.classpath"> - <fileset dir="${dir.buildfile}/lib-aws"> - <include name="*.jar" /> - </fileset> - </path> - - <pathconvert property="mf.classpath" pathsep=" "> - <path refid="build.classpath" /> - <flattenmapper /> - </pathconvert> ---> <jar destfile="${dir.jarfile}/TCPTimeCounterServer.jar" filesetmanifest="mergewithoutmain"> <manifest> <attribute name="Main-Class" value="verteiltesysteme.aws.TCPTimeCounterServer" /> -<!-- - <attribute name="Class-Path" value="${mf.classpath}" /> ---> </manifest> <fileset dir="${dir.buildfile}/bin" /> -<!-- - <fileset dir="${dir.buildfile}/lib-aws"> - <include name="*.jar" /> - </fileset> ---> <zipgroupfileset dir="${dir.buildfile}/lib-aws" includes="*.jar" /> </jar> </target> + <target name="create_run_jar_tcptimecounterrestserver"> + <jar destfile="${dir.jarfile}/TCPTimeCounterRESTServer.jar" filesetmanifest="mergewithoutmain"> + <manifest> + <attribute name="Main-Class" value="verteiltesysteme.aws.TCPTimeCounterRESTServer" /> + </manifest> + <fileset dir="${dir.buildfile}/bin" /> + <zipgroupfileset dir="${dir.buildfile}/lib-aws" includes="*.jar" /> + <zipgroupfileset dir="${dir.buildfile}/lib" includes="*.jar" /> + </jar> + </target> + + </project> diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterRESTServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterRESTServer.java new file mode 100644 index 0000000000000000000000000000000000000000..013192f7ab394faad0e0a17ff1d170d0a0fe709f --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterRESTServer.java @@ -0,0 +1,32 @@ +/* Beispiel angelehnt an http://www.torsten-horn.de/techdocs/jee-rest.htm */ +package verteiltesysteme.aws; + +import java.io.IOException; +import java.net.URI; +import org.glassfish.grizzly.http.server.HttpServer; +import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; +import org.glassfish.jersey.server.ResourceConfig; + +public class TCPTimeCounterRESTServer +{ + public static void main( String[] args ) throws IOException, InterruptedException + { + String baseUrl = ( args.length > 0 ) ? args[0] : "http://localhost:36042"; + + final HttpServer server = GrizzlyHttpServerFactory.createHttpServer( + URI.create( baseUrl ), new ResourceConfig( TCPTimeCounterRESTService.class ), false ); + Runtime.getRuntime().addShutdownHook( new Thread( new Runnable() { + @Override + public void run() { + server.shutdownNow(); + } + } ) ); + server.start(); + + System.out.println("Grizzly-HTTP-Server gestartet"); + System.out.println("Stoppen des Grizzly-HTTP-Servers mit: Strg+C\n"); + System.out.println("RESTful Web Service URL: " + baseUrl + TCPTimeCounterRESTService.webContextPath); + + Thread.currentThread().join(); + } +} \ No newline at end of file diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterRESTService.java b/VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterRESTService.java new file mode 100644 index 0000000000000000000000000000000000000000..08bd24ba5fecfd7d7950a8c81f303aa97a162554 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterRESTService.java @@ -0,0 +1,78 @@ +/* Beispiel angelehnt an http://www.torsten-horn.de/techdocs/jee-rest.htm */ +package verteiltesysteme.aws; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; + +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; + +@Path(TCPTimeCounterRESTService.webContextPath) +public class TCPTimeCounterRESTService { + static final String webContextPath = "/counter"; + static final String bucketName = "vertsys-counter"; + + private Long getCounter() { + // Verbindung zu S3 + AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient(); + String region = s3Client.getRegionName(); + return new Long(s3Client.getObjectAsString(bucketName, region)); + } + + private boolean setCounter(Long counter) { + // Verbindung zu S3 + AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient(); + String region = s3Client.getRegionName(); + s3Client.putObject(bucketName, region, new Long(counter).toString()); + return true; + } + + @GET + @Produces(MediaType.TEXT_PLAIN) + public String getCounterPlain() { + return "Plain-Text: " + getCounter(); + } + + @GET + @Produces(MediaType.TEXT_HTML) + public String getCounterHtml() { + return "<html><head><title>TCPTimeCounter REST Service</title><meta http-equiv=\"refresh\" content=\"5\"/></head><body><h2>HTML: " + getCounter() + "</h2></body></html>"; + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + public String getCounterJson() { + return "{\n \"type\": \"JSON\",\n \"output\": \"" + getCounter() + "\"\n}"; + } + + @POST + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + public String incrCounterPlain(@FormParam("input") String input) { + Long currentCounterValue = getCounter(); + currentCounterValue = currentCounterValue + (new Long(input)).longValue(); + setCounter(currentCounterValue); + return "Plain-Text: TCPTimeCounter counter increased by " + input + " to " + currentCounterValue; + } + + @POST + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + @Produces(MediaType.TEXT_HTML) + public String incrCounterHtml(@FormParam("input") String input) { + Long currentCounterValue = getCounter(); + currentCounterValue = currentCounterValue + (new Long(input)).longValue(); + setCounter(currentCounterValue); + return "<html><title>TCPTimeCounter counter increased by " + input + " to " + currentCounterValue + "</h2></body></html>"; + } + + @POST + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.APPLICATION_JSON) + public String incrCounterJson(@QueryParam("input") String input) { + Long currentCounterValue = getCounter(); + currentCounterValue = currentCounterValue + (new Long(input)).longValue(); + setCounter(currentCounterValue); + return "{\n \"type\": \"JSON\",\n \"output\": \"Plain-Text: TCPTimeCounter counter increased by " + input + " to " + currentCounterValue + "\"\n}"; + } + +} \ No newline at end of file diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/aws/user-data.txt b/VerteilteSysteme-Examples/src/verteiltesysteme/aws/user-data.txt index 0f89413ade168f905388164398ed4e38bd538a5e..631b062f129d1aefa78d9ff74065988bce67d02b 100644 --- a/VerteilteSysteme-Examples/src/verteiltesysteme/aws/user-data.txt +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/aws/user-data.txt @@ -11,7 +11,7 @@ SCRIPT_ROOT_PATH="/tmp/init-script" VERTSYS_PATH="$SCRIPT_ROOT_PATH/verteilte-systeme-bsc-ai-examples/VerteilteSysteme-Examples/build/" #JARS = "TCPServer.jar TCPServerMulti.jar UDPServer.jar UDPServerMulti.jar UDPTimeCounterServer.jar TCPTimeCounterServer.jar TCPPerfServer.jar" -JARS="TCPServer.jar TCPPerfServer.jar UDPServer.jar UDPTimeCounterServer.jar TCPTimeCounterServer.jar" +JARS="TCPServer.jar TCPPerfServer.jar UDPServer.jar UDPTimeCounterServer.jar TCPTimeCounterServer.jar TCPTimeCounterRESTServer.jar" REPO="https://gogs.informatik.hs-fulda.de/srieger/verteilte-systeme-bsc-ai-examples.git" # Create path to run the script