<<L'observation scientifique est toujours une observation polémique. >>
Gaston Bachelard
Ceci est un tutoriel permettant de concevoir simplement une communication TCP en Java.
Le code est bien commenté et bien indenté ; j'espère qu'il sera compris avec facilité.
Pour en savoir plus sur le protocole TCP, vous pouvez vous référer à l'article TCP/IP.
Le programme serveur se présente ainsi:
import java.io.*;
public class ServeurTCP {
public static void main(String[] args)throws Exception {
//S'attacher à un port
ServerSocket ss = new ServerSocket(7500);
//Attendre les connexion des clients
System.out.print("Attente connexion...");
/*
* NB : La methode accept() bloque le programme jusqu'à ce
* qu'une connexion soit établie
*/
Socket s = ss.accept();//Bloquant
//Création du flux binaire de lecture
InputStream is = s.getInputStream();
//Création du flux binaire d'écriture
OutputStream os = s.getOutputStream();
/*
* NB: La nature des filtres dépend de la nature de
* l'information initiale
*/
//Filtre de lecture de texte
BufferedReader tmp = new BufferedReader(new InputStreamReader(is));
//Filtre d'ecriture de texte
PrintWriter pw = new PrintWriter(os,true);
//Lecture de la chaine envoyée par le client
String recep = tmp.readLine();
//Je me demande bien ce que fait cette ligne ici
recep = new StringBuffer(recep).reverse().toString();
//Renvoi au client
pw.println(recep);
}
}
Et de son côté, le client TCP (beaucoup plus simple) s'écrit juste en ces quelques lignes:
NB: Je crois qu'il n'y a rien à commenter sur le client !
import java.net.*;
import java.io.*;
public class ClientTCP {
public static void main(String[] args)throws Exception {
//Sattacher à un port (ici peut être?)
Socket s = new Socket("localhost", 7500);
InputStream is = s.getInputStream();
OutputStream os=s.getOutputStream();
BufferedReader tmp = new BufferedReader(new InputStreamReader(is));
PrintWriter pw = new PrintWriter(os,true);
pw.println("Hello World !");
System.out.print("Reçu du serveur: "+tmp.readLine());
}
}
Voilà, c'est rien que ça !
Vous avez réussi à implémenter une communication fiable entre un client et un serveur.
C'est fou ce qu'on nous fatigue pour des choses aussi banales ! ;-)
N'hésitez pas à poster vos commentaires et éventuellement de contribuer à ce blog.
Sinon "enjoyez !".
On ne finit jamais d'apprendre dans la vie ; à chaque jour son expérience, son vécu, son savoir.
Merci de participer à l'amélioration de ce blog. Le savoir n'est serviable que s'il est réellement partagé.
lundi 19 mars 2012
jeudi 8 mars 2012
vendredi 10 février 2012
Le cloud computing expliqué
<< Etre expert c'est tout l'art s'apprendre une science à des vétérans tout en étant un débutant >> Jdan Noritiov
.
.
.
Depuis quelques années, on entend souvent parler de cloud computing sans qu'on sache vraiment de quoi il s'agit.
Voici quelques explications qui, je l'espère, vous permettront de lever certaines zones d'ombre sur le cloud computing..
Pour commencer, Cloud = nuage
Et donc le «cloud computing » serait
l’ «informatique des nuages » ou plutôt l’«informatique dans
nuages ».
Voici donc à quoi ressemble le cloud computing:
Voilà c’est tout – vous avez tout compris !!! :-)
…
Compris ??? … Pas vraiment !
En fait cette terminologie (ou cette technologie, concept…
tout ce que vous voudrez) va plus loin.
Le cloud computing se définirait comme la délocalisation de
son infrastructure informatique sur des serveurs distants.
Aaaaah, là ça devient intéressant !
Mais oui, on fait
tous du cloud sans vraiment le savoir. Que croyez-vous faire lorsque vous vous
connectez à votre webmail (hotmail, yahoo, gmail…) ? … …
« clouder » bien sûr.
Evidemment on ne peut parler de cloud sans faire allusion au
monde de l’entreprise puisque c’est là qu’on s’aperçoit de son véritable impact
… sur les dépenses bien sûr. Ah sacrées entreprises !!!
Imaginez une
entreprise qui ne se soucierait plus de son infrastructure informatique. Aucun
souci de gestion, de maintenance, de stockage, d’espace … et donc une forte
réduction de la CAPEX.
Plaçons nous
maintenant du côté des fournisseurs de service cloud (genre SSII ou autres). Oui,
on parle de service maintenant ! Et ces services peuvent être fournis à la
même manière qu’EDF nous fournit l’électricité. Ces entreprises possèdent un
grand nombre de serveurs et peuvent nous (entreprises et/ou particuliers) procurer
un espace selon nos besoins. D’autres aussi nous permettent d’accéder à des
programmes via le réseau…
Ok ! Mais qu'est-ce-que j'y gagne dans tout ça ?
Euh doucement ! Les entreprises ou moi en tant que
particulier ?
Oui parce que tout ceci n’a pas un très grand
impact chez un particulier. Allons plutôt voir ce qui se passe chez les
entreprises clientes.
- Comme cité plus haut, le principal avantage est lié à
la réduction de la CAPEX et de l’OPEX.
- Vient ensuite ce qu’on appelle la « servicisation »
des ressources informatiques car les entreprises n’auront plus qu’à faire appel
aux services informatiques d’autres entreprises.
- En outre, on peut aussi noter que les ressources
(programmes, fichiers…) ne sont plus sur un terminal local. On eut donc y
accéder via tut terminal connecté au réseau internet. Ceci permet d’assurer la
tolérance aux pannes.
- La flexibilité de l’espace de stockage. Les entreprises
se verront attribuer un espace sur mesure. On parle alors de stockage à la
demande.
Mais LA question d'argent, de money, de diñero est bien le principal soucis.
Aaaah le capitalisme !!!
On peut se faire une idée des économies que peuvent réaliser une entreprise via le schéma suivant. Entre nous, je crois que ça vaut vraiment le coup.
Mais LA question d'argent, de money, de diñero est bien le principal soucis.
Aaaah le capitalisme !!!
On peut se faire une idée des économies que peuvent réaliser une entreprise via le schéma suivant. Entre nous, je crois que ça vaut vraiment le coup.
[source: www.wikipedia.org] |
Mais comment utiliser
le cloud ?
Nous y voilà enfin !
On note trois modes
d’utilisation pour le cloud computing:
- Infrastructure as a Service
(IaaS) :
Dans un tel mode, seules les ressources sont décentralisées.
On parle alors de virtualisation
des ressources. Ce model demeure le plus répandu. Le fournisseur s’assure de la partie stockage, de la
maintenance mais aussi que les ressources soient prêtes à êtres utilisées (via
des machines virtuelles). Le client pour sa part, se charge de l’administration
des données, de la mise en marche/arrêt des services…
En guise d’exemple, on a AmazonEC2, Orange Open Cloud…
- Platfrom as a Service (PaaS):
Ce mode a pour but objectif la mise en place
d’environnements de développement spécifiques. Très utile pour les travaux de
développement. Le fournisseur met en place des environnements afin que les
clients puissent y accéder pour développer des applications, effectuer des tests…
Le fournisseur ne se contente plus seulement d’offrir des espaces de stockage
mais offre en même temps une plateforme logicielle (middleware) afin de
faciliter les travaux des informaticiens.
On peut citer Google Apps, Microsoft Azure…
- Software as a Service (SaaS):
Dans le mode
SaaS, l’utilisateur ne se soucie ni des ressources matérielles ni de
l’infrastructure logicielle. En effet, le client n’a plus besoin d’acheter les
logiciels (qui coûtent parfois très chers), il les loue. Ce
mode est celui qui génère le plus de revenus. Normal, avec les start-up qui
naissent tous les jours. L’avantage pour les clients est qu’ils n’ont plus à se
soucier des taches d’installation souvent fastidieuses de même que les mises à
jour ; tout relève du domaine du fournisseur.
Exemple :
Microsoft Exchange, Sharepoint
Voici un petit
récapitulatif des différents modes présentés ci-dessus.
Mode
|
Utilisateur direct
|
Visibilité
|
SaaS
|
End user
|
+
|
PaaS
|
Développeurs
|
++
|
Iaas
|
Architecte réseau
|
+++
|
Autre
chose : vous entendrez souvent parler de cloud privé, cloud public et de
cloud hybride.
Mais comme ils
sont compliqués ! Heureusement que je suis là :-)
En fait on parle
de cloud privé lorsque les ressources matérielles utilisées font partie du
patrimoine de l’entreprise cliente ; de cloud publique lorsqu’elles (les
ressources) ne font pas partie de leur patrimoine et enfin de cloud hybride
lorsqu’une partie des ressources appartient à l’entreprise et une autre partie
ne lui appartient pas.
C’est aussi simple que ça !
Mais qu’en est-il de la sécurité des
données ?
Et voilà, c’est
le point critique du cloud computing. Mais avant, je vous montre un excellent
travail réalisé par le club de la sécurité de l’informationfrançais :
En effet, on peut
se poser diverse questions du genre :
Où sont stockées
mes données ?
Qui aura accès à
mes données ?
Qu’arrivera t’il
si nous arrêtons notre contrat ?
Mes données sont
stockées pendant combien de temps ?
Et bien d’autres…
Avec les
différentes lois sur la protection de la vie privée (dépendant de la zone
géographique) un vrai problème de sécurité se pose.
Et bien la seule
réponse qui tient la route est la suivante : Tout dépend de vos besoins en
sécurité, du type de cloud vous souhaitez avoir… C’est ce qu’on appelle une analyse de
risques.
En tout état de
causes, la sécurité est partagée entre le fournisseur et le client (tout dépend
de leur niveau de contrôle – cf. figure ci-dessus) bien évidemment en
mettant en place des mécanismes de contrôle d’accès et de chiffrement des
données.
La migration ou
le changement de cloud provider s’effectue grâce à un certain nombre d’APIs
disponibles sur le marché. Cependant, il est conseillé d’utiliser des APIs
standards telles que CDMI (Cloud Data Management Interface) ou encore
OVMF (Open Virtual Machine Format) qui permettent l’interopérabilité
entre les différents fournisseurs cloud.
Et voilà !
J'espère maintenant que vous aurez plus d'arguments quand vous entendrez parler de cloud computing.
N'hésitez pas à poser vos questions, critiquer, suggérer...
J'espère maintenant que vous aurez plus d'arguments quand vous entendrez parler de cloud computing.
N'hésitez pas à poser vos questions, critiquer, suggérer...
Références Bibliographiques
...
Inscription à :
Articles (Atom)