Skip to content

Latest commit

 

History

History
128 lines (109 loc) · 3.53 KB

README.md

File metadata and controls

128 lines (109 loc) · 3.53 KB

LEO LECLERC

CHARLOTTE LECLERE

Tp3_Service-oriented-computing

#On supposera que la bibliothèque est déployée à l'adresse BIBLIO et le portail à l'adresse PORTAIL.

  • Repertoire {

    @PUT @Produces(TYPE_MEDIA) @Consumes(TYPE_MEDIA) @ReponsesPUTOption // Requête (méthode http + url) : (put) http://BIBLIO/biblioteque ou (put) http://PORTAIL/portail // Corps : Livre // Réponses (à spécifier par code) : // - 404 : Pas de resultats // - 200 : TYPE_MEDIA contenant un HyperLien Optional<HyperLien> chercher(Livre l);

    @PUT @ReponsesPUTOption @Path(JAXRS.SOUSCHEMIN_ASYNC) @Consumes(JAXRS.TYPE_MEDIA) @Produces(JAXRS.TYPE_MEDIA) // Requête (méthode http + url) : (put) http://BIBLIO/biblioteque/async ou (put) http://PORTAIL/portail/async // Corps : Livre // Réponses (à spécifier par code) : // - 404 : Pas de resultats // - 200 : TYPE_MEDIA contenant un HyperLien Future<Optional<HyperLien>> chercherAsynchrone(Livre l, @Suspended final AsyncResponse ar);

    @GET @Path(SOUSCHEMIN_CATALOGUE) @Produces(TYPE_MEDIA) // Requête (méthode http + url) : (GET) http://BIBLIO/biblioteque/catalogue ou (GET) http://PORTAIL/portail/catalogue // Corps : VIDE // Réponses (à spécifier par code) : // - 200 : List<HyperLien> HyperLiens repertorier();

  • Archive @Path("{id}") @ReponsesGETNullEn404 // Adresse de la sous-ressource : biblioteque // Requête sur la sous-ressource (méthode http + url) : // Corps : // Réponses (à spécifier par code) : // - 200 : IdentifiantLivre Livre sousRessource(@PathParam("id") IdentifiantLivre id) ;

    @Path("{id}") @GET @Produces(JAXRS.TYPE_MEDIA) @ReponsesGETNullEn404 // Requête (méthode http + url) : (GET) http://BIBLIO/biblioteque/{id} // Corps : id du livre // Réponses (à spécifier par code) : // - 200 : IdentifiantLivre // - 404 : si null Livre getRepresentation(@PathParam("id") IdentifiantLivre id);

    @POST @ReponsesPOSTEnCreated @Consumes(JAXRS.TYPE_MEDIA) @Produces(JAXRS.TYPE_MEDIA) // Requête (méthode http + url) : (POST) http://BIBLIO/biblioteque/ // Corps : Livre // Réponses (à spécifier par code) : // - 201 : Hyperlien HyperLien ajouter(Livre l); }

  • AdminAlgo @PUT @Path(JAXRS.SOUSCHEMIN_ALGO_RECHERCHE) @Consumes(JAXRS.TYPE_MEDIA) // Requête (méthode http + url) : http://PORTAIL/admin/recherche // Corps : NomAlgo // Réponses (à spécifier par code) : // - VIDE void changerAlgorithmeRecherche(NomAlgorithme algo);

  • Exemple de livre

  • Exemple de nom d'algo

-- Analyse des résultats :


recherche sync seq Réalisé en : 7703ms


recherche sync multi Réalisé en : 1543ms


recherche sync stream 8 Réalisé en : 1532ms


recherche sync stream rx Réalisé en : 7602ms


recherche async seq Réalisé en : 7540ms


recherche async multi Réalisé en : 1519ms


recherche async stream 8 Réalisé en : 1524ms


recherche async stream rx Réalisé en : 7534ms

Bilan : En syncrhone les stream 8 et le multi threading est beaucoup plus performant. En ce qui concernent l'asynchrone, on obtient le meme constat. Par ailleurs nous avons testé en utilistant .stream plutot que .paralleleStream et on se rend compte que c'est encore plus rapide puisque la quantité de donné etant si faible qu'il est plus long de diviser les taches puis de les rassembler que des les faires sequentiellement dans le principe des stream avec Java 8.