IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Jolie, un langage de programmation orienté services,
Il permet d'agréger directement les API de services dans un serveur Web

Le , par Bruno

614PARTAGES

20  0 
Lancé en 2006 dans le cadre de ses études à l'Université de Bologne par Fabrizio Montesi, Jolie (Java Orchestration Language Interpreter Engine) est un langage de programmation open source pour le développement d'applications distribuées basées sur des microservices. Dans le paradigme de programmation proposé avec Jolie, chaque programme est un service qui peut communiquer avec d'autres programmes en envoyant et en recevant des messages sur un réseau. Jolie prend en charge une couche d'abstraction qui permet aux services de communiquer en utilisant différents supports, allant des sockets TCP/IP aux communications locales en mémoire entre les processus.

Jolie est actuellement pris en charge par un interpréteur implémenté dans le langage Java, qui peut être exécuté dans plusieurs systèmes d'exploitation, notamment les systèmes d'exploitation basés sur Linux, OS X et Windows. Le langage est doté d'une sémantique formelle, ce qui signifie que l'exécution des programmes Jolie est définie mathématiquement. Pour cette raison, Jolie est utilisé dans la recherche pour l'étude de techniques basées sur le langage pour le développement de systèmes distribués, et il est également utilisé pour l'enseignement dans certaines universités.


Si les qualités de Jolie en font un langage prisé dans le domaine de la recherche, notamment pour l'étude des techniques basées sur le langage pour le développement des services et systèmes distribués, il n’en est pas moins vrai que le langage n’est pas accepté par toute la communauté des développeurs. Au sein de cette communauté, certains professionnels du développement estiment que le langage qui cristallise les concepts de programmation de l'informatique orientée services sous forme de constructions linguistiques n’est qu’un langage de trop. Si l'on en croit du moins la réaction de cet internaute lors d’une discussion sur Jolie.

« Qui veut réellement cela ? Les gens veulent de bonnes bibliothèques pour faire cela avec les langages qu'ils utilisent déjà, et non pas avoir à faire des compromis juste pour avoir un microservice. Remarquez que la page d'accueil donne de nombreux exemples des parties du code relatives aux services, mais absolument aucun exemple de ce à quoi ressemble la logique métier. En fait, même dans la documentation, le code d'exemple est minimal et trivial ».
Pour un autre internaute, le langage est une autre forme de framework et, sans surprise, il a été développé en Java pour les utilisateurs de Java.

« Je pense que cela peut devenir populaire pour les fans de frameworks Java. Entre eux, les gens peuvent se chamailler à propos de J2EE, Spring ou Quarkus, ou Oracle Fusion, Microprofile et une myriade d'autres. Mais l'idée centrale est que toute personne utilisant directement Java avec l'aide de librairies standard et tierces est un vieux fossile qui devrait être éliminé du projet/de l'entreprise ou, mieux encore, de la main-d'œuvre tout entière ».

S’il est établi que Jolie ne fait pas l’unanimité, il convient de mentionner que le concept même du langage intéresse plus d’une personne. « Je le veux. Au moins l'idée. Je veux quelque chose qui ressemble à un langage de programmation (les plus courants) qui décrit et spécifie le flux d'une fonctionnalité, pas un YAML ou un fichu fichier XML, mais pas non plus un framework XYZ qui contient tous les détails de mise en œuvre. Peut-être que Jolie n'est pas ce que je veux et qu'il a plus de bagages que ce dont je suis actuellement conscient, mais il ressemble d'une certaine manière à quelque chose dont j'ai besoin », déclare Pedro Batista, un développeur Web. Voici, ci-dessous, quelques caractéristiques du langage Jolie :

Penser en termes de services

Jolie cristallise les concepts de programmation de l'informatique orientée services sous forme de constructions linguistiques. Les éléments de base des logiciels ne sont pas des objets ou des fonctions, mais plutôt des services qui peuvent être déplacés et répliqués selon les besoins. Une composition de services est un service.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
type HelloRequest {
	name:string
}

interface HelloInterface {
requestResponse:
	hello( HelloRequest )( string )
}

service HelloService {
	execution: concurrent

	inputPort HelloService {
		location: "socket://localhost:9000"
		protocol: http { format = "json" }
		interfaces: HelloInterface
	}

	main {
		hello( request )( response ) { 
			response = "Hello " + request.name
		}
	}
}

Adapté aux microservices et aux API

Jolie est un langage de programmation axé sur les contrats, qui place la conception des API au premier plan. Il prend en charge les communications synchrones et asynchrones. Les modèles de données sont définis par des types qui supportent le raffinement (en rouge dans le code ci-dessous), et les transformations DTO (Data Transfer Objects) sont gérées de manière transparente par l'interpréteur....
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de coder_changer_vie
Inactif https://www.developpez.com
Le 21/05/2021 à 14:52
J'ai lu rapidement, mais y a-t-il un autre avantage à par celui de l'abstraction à l'utiliser plutôt que de partir sur des projets Spring Boot ?
0  0