Le service implique des coûts administratifs constants que le fournisseur de services doit supporter. Une bibliothèque correctement conçue transfère tous ces coûts à ses utilisateurs.
Cela signifie que la bibliothèque (si son utilisation est possible) est en mesure de fournir à l'utilisateur les mêmes fonctionnalités, tout en coûtant moins cher au développeur que le service.
En règle générale, la centralisation de ces coûts administratifs est considérée comme un avantage de service.
Les gens disent: "Les services sont faciles à utiliser car ils peuvent être mis à jour de manière centralisée afin que les utilisateurs lents à mettre à jour ne ruinent pas la vie des autres."
Mais cela implique que les utilisateurs qui ne mettent pas à jour à temps peuvent influencer tout le monde. Si un utilisateur ne peut pas influencer négativement d'autres utilisateurs, nous ne nous soucions pas de la rapidité avec laquelle les utilisateurs individuels se mettent à jour; ils ne font que se faire du mal.
Vous pouvez éviter l'impact négatif de certains utilisateurs sur d'autres en ne partageant pas l'état des ressources entre les utilisateurs; en d'autres termes, éviter les services.
Prenons un scénario courant comme exemple: un développeur crée à la fois une bibliothèque et un service, mais découvre plus tard que la bibliothèque (déjà publiée) contient une sorte de bogue ou d'incompatibilité, et qu'elle doit être mise à jour pour tout le monde avant d'améliorer le service. Cela devient un gros casse-tête, à cause duquel le développeur peut naïvement supposer que la fonctionnalité doit être transférée de la bibliothèque au service pour faciliter les mises à jour.
Mais si vous n'avez pas du tout de service, mais seulement une bibliothèque qui contient toutes les fonctions et fait tout ce que le service doit faire, alors ce problème ne se posera pas du tout. Les utilisateurs non mis à niveau souffriront de problèmes existant dans la version originale de la bibliothèque, et tout le monde s'en sortira bien.
Il n'est pas toujours possible d'éviter les services de cette manière; mais cela est possible plus souvent qu'on ne le pense. Voici quelques idées à considérer:
- , , . , , - , , Linux Kubernetes. , .
, , . - , , . , ; , «».
, , , . , :
- ( )
- ( )
- (, , )
- , (, «» , )
- ,
, . - , . , — .
, , , . :
- , , , .
- Java , .
- Capability-safe architectures, , CHERI, , (capability).
- (Software fault isolation) « » Multics, , .
, . - — , , ( , JSON, ..).
. , ; . - , . , , , , , .
, , , . , .
En utilisant cette idée et d'autres, vous pouvez souvent créer une bibliothèque au lieu d'un service.
En éliminant les coûts de maintenance et de mise à niveau associés aux services, les bibliothèques peuvent contenir davantage de fonctionnalités, ce qui profite à la fois au développeur et à l'utilisateur.
Publicité
VDSina propose des VDS à louer pour toutes les tâches, une vaste sélection de systèmes d'exploitation pour une installation automatique, il est possible d'installer n'importe quel système d'exploitation à partir de votre propre ISO , un panneau de contrôle propriétaire pratique et un paiement quotidien d'un tarif que vous pouvez créer individuellement pour votre Tâches.