Prix : 9,84 €
vendredi, janvier 29, 2010
Recommandé papier par le Web
Prix : 9,84 €
jeudi, janvier 28, 2010
Les JavaBeans
La technologie des JavaBeans propose de simplifier le développement et l'utilisation de composants.
Les JavaBeans sont des composants qui respectent certaines conventions dont notamment:
- être Serializable
- posséder un constructeur sans argument
- disposer de Getter et Setter (difficile d'en dire plus sans entrer dans les détails)
Programmation orientée composant
Un composant (java) est un module ou une "librairie" qui fournit un service précis, qui est réutilisable et qui fournit une interface définie par des spécifications.
Entre autre, l'implémentation sous-jacente est donc sans influence pour les autres entités qui intéragissent/utilisent le composant.
La programmation orientée composant est notamment un moyen de découper le développement d'une application (spécialisé selon pour les divers types de composants), une façon d'améliorer la productivité à long terme par la réutilisabilité, ou encore de facilité la mise à jour de parties d'applications.
mardi, janvier 19, 2010
L'injection de dépendances pour les pressés
Sommaire, vulgarisé, inexact mais simple et concis, voici une ébauche d'explication sur l'injection de dépendances, concept utilisée notamment dans les architectures Java EE.
Lorsqu'un composant (exemple: un système de cache) peut être implémenté par différents mécanismes (exemple: base de données ou système de fichier), il est utile de séparer l'interface de l'implémentation en deux classes.
L'application qui utilise l'interface peut instancier l'implémentation désirée, explicitement dans le code de l'application.
Au contraire, l'injection de dépendance est un mécanisme permettant de spécifier l'implémentation en dehors du code de l'application, afin de rendre cette dernière plus souple et réutilisable.
La classe n’est pas responsable dans l’instanciation des autres classes dont elle a besoin. Les objets sont "injectés" au moment de la construction ou de l’initialisation de l’objet qui les utilise (en respectant le scope de la classe).
vendredi, janvier 08, 2010
Monter un disque via SSH
Pour automatiser certaines tâches de déploiement sur un serveur distant, il peut être utile d'avoir monté un "network drive" via SSH.
Il existe un logiciel freeware :
Dernière version: RedDrive
Explication d'installation (très simple) : http://hartvig.de/2008/mounting-your-ssh-shares-in-microsoft-windows/
mardi, décembre 29, 2009
Emulation de CD / DVD
Pour lire les fichiers ISO (fichiers "images" de vos CD et DVD) sans avoir besoin de les graver, il existe le bien connu logiciel Alcohol 120%.
Dans les logiciels gratuits, il y a le génial Daemon Tool (lite) : http://www.disk-tools.com/download/daemon
lundi, novembre 02, 2009
BPEL Java Embedded : retourner du XML vers BPEL
La plupart du temps, l'output généré par une méthode java embarquée dans du code BPEL se résume à un setVariableData d'une string vers une variable BPEL.
<bpelx:exec import="org.xml.sax.InputSource" />
<bpelx:exec import="org.w3c.dom.Document" />
<bpelx:exec import="java.io.StringReader" />
Je ne connais pas de méthode simple pour renvoyer un document XML directement (voir plus bas).
Cependant, il suffit de convertir votre variable bpel string en document XML. Simple, concis et efficace :
<from expression="ora:parseEscapedXML(bpws:getVariableData('myStringVariable'))"/>
== La méthode suivante ne fonctionne pas (mais il me semble qu'elle le devrait) ==
Au début du document BPEL, réaliser les imports suivants:
<!-- Import for building XML document to string -->
<bpelx:exec import="javax.xml.parsers.DocumentBuilderFactory" /><bpelx:exec import="org.xml.sax.InputSource" />
<bpelx:exec import="org.w3c.dom.Document" />
<bpelx:exec import="java.io.StringReader" />
Dans la fonction java, voici comment construire un document XML à partir d'une string :
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
InputSource source = new InputSource( new StringReader(xmlStr));
Document document = factory.newDocumentBuilder().parse(source);
// Copy the file in the BPEL variable
setVariableData("myVariable","parameters", "/xpath:myxpath",document);
vendredi, octobre 09, 2009
vendredi, octobre 02, 2009
mardi, août 18, 2009
Stockage en ligne
Deux bonnes offres de stockage en ligne:
http://www.humyo.fr (10Go)
htt://www.ADrive.com (50 Go)
vendredi, juillet 31, 2009
Le Grid sur Amazon EC2
Je ne peux m'empêcher d'immédiatement imaginer des scénarios relatifs à l'utilisation du Grid Computing, dans le cadre d'orchestration de tâches/jobs de type bash.
D'une part, si nous utilisons l'infrastructure Amazon EC2 de façon statique (un ensemble de noeuds définis, comme n'importe quel système on-demand), nous pourrions simplement utiliser un scheduler pour ordonnancer et organiser les jobs. Pas besoin de Grid dans ce cas, il me semble.
Au contraire, si l'on considère l'utilisation de l'auto-scaling, l'utilisation de middleware permettrait de mettre en oeuvre facilement la découverte et mise à jour de la topologie des noeuds disponibles.
Mais l'Elastic Load Balancing ne permet-elle pas de se passer de découvrir les ressources, le Cloud d'Amazon EC2 se chargeant lui même de balancer les tâches "là où il y a de la place" et d'augmenter le Cloud si besoin. Les noeuds reçoivent donc les jobs, les exécutent et envoient les résultats au workflow ou à l'application sensées collecter les résultats.
Premières impressions sur Amazon EC2
Vous avez dit Grid ?
Amazon EC2 est avant-tout un service de fourniture de ressources à la demande (on-demand computing, ou utility computing). C'est à dire un grand parc informatique dont on loue les ressources à la demande.
Amazon EC2 utilise des techniques de virtualisation permettant de créer facilement des instances de ressources utilisables très rapidemment.
En outre, Amazon EC2 offre également quelques fonctions avancées bien pratique :
- Auto-scaling : selon des critères quantitatif relatif par exemple au traffic ou à la charge CPU, Amazon peut dynamiquement créer des instances de ressources supplémentaires (basées sur une configuration définie par l'utilisateur)
- Elastic Load Balancing: Amazon EC2 est capable de distribuer le traffic sur plusieurs machines et d'augmenter le nombre de machine
Par contre, Amazon EC2 ne fait en rien du scheduling, ni de la parallélisation d'application, il offre uniquement une infrastructure utile pour le faire.
mardi, juillet 07, 2009
Cloud Computing: informatique dans les nuages
Les clés du cloud computing (en construction) dit "informatique dans les nuages"
La mission du GRID était de proposer une solution de virtualisation de ressources mutualisées délocalisées et hétérogènes.
L'objectif du Cloud Computing est de proposer, reposant sur une infrastructure virtuelle, des services d'utilisation des ressources selon différent niveau d'abstraction (infrastructure, plateforme, application).
- Similitudes avec l'utility computing: les ressources/l'infrastucture est gérée par un fournisseur de ressources (provider). Ainsi, plutôt que de virtualiser en un tout des ressources de plusieurs organisations (GRID), le Cloud Computing Provider mutualise son grand parc de ressources gigantesques pour fournir un grand nombre d'utilisateurs. "Le Cloud Computing nécessite d'énormes data centers, Tous les fournisseurs qui se lancent dans le Cloud Computing nécessitent des infrastructures gigantesques. C'est le cas de Google, Yahoo, Amazon et bien d'autres..." (ITR Manager)
- XaaS (x as a service) : fournir les ressources/applications/plateforme comme on fournit un service (service de stockage, service de calcul, service de gestion de documents, ...). Cela inclut souvent un modèle économique de paiement d'application à la demande plutôt que par licence. Ainsi on pourrait commande une application et commande l'espace disque nécessaire pour l'application, ainsi que de la puissance de calcul pour faire tourner l'application.
- Similitude avec le GRID : l'infrastructure sous-jacente est un nuage (Cloud) composé d'un certain nombre de serveurs distants interconnectés au moyen d'une excellente bande passante indispensable à la fluidité du système
Divergences :
- La philosophie du Cloud n'est plus de proposer une solution middleware pour virtualiser un parc de ressources disponibles dans les entreprises. Il s'agit de proposer directement un service de ressources/plateformes/applications disponible directement. Economiquement, on imagine qu'actuellement ce n'est pas plus cher car le parc est mutualisé (ce qui est très rentable) et d'autres part les ressources en elle-même sont bcp moins chères qu'avant.
- Le Cloud veut rompre avec la notion de scheduling et de file d'attente. Le parc (pool) de ressources doit pouvoir supporter tout pic de demande. Finalement, le Cloud s'affranchit de ces questions...
- Le Cloud ne s'attaque pas à la fédération inter-infrastructure sous l'API. Ceci pouvant conduire à des comportements non déterministes et des instabilités. C'est directement intégré dans l'API (---> euh voir ce qu'il veut exactement dire par là)
La philosophie du Cloud Computing est-elle la suivante: plutôt que de réserver X To de données d'espace, l'utilisateur souscrit à un espace disque infini. Il paie ce qu'il utilise. Abstraction donc totale de la taille d'espace disque.
mardi, juin 30, 2009
Victime de piratage
Pour les victimes de pirate, où porter plainte ?
Si votre email, votre compte facebook ou votre comptes et mots de passe ont été détournés pour vous nuire, vous pouvez porter plainte (gratuitement bien sûr) au service de police de l'internet.
Fournissez bien toutes les informations nécessaires :
- adresse email
- noms des comptes
- dates et heures des activités "illicites"
Il est bien sûr inutile de fournir vos mots de passe.
jeudi, juin 25, 2009
Choisir un appareil photo
Quelques qualités à prendre en considération pour le choix d'un appareil photo.
- Taille du capteur: influence la résolution
- Portée du zoom de l'appareil: 35-200 mm déjà pas mal (25-400 mm ne change pas énormément)
- Présence d'un stabilisateur optique ou mécanique
- Taille du capteur: influence la résolution
- Portée du zoom de l'appareil: 35-200 mm déjà pas mal (25-400 mm ne change pas énormément)
- Présence d'un stabilisateur optique ou mécanique
Elections Présidentielle 2002 FR2 - Résultats 1er tour
Le choc du 21 Avril 2002 lors de l'annonce du résultat du 1er tour des présidentielles
mercredi, mai 13, 2009
jeudi, mai 07, 2009
BPEL : modifier à l'exécution l'adresse d'une WSDL
Pour modifier dynamiquement (au runtime) l'url du service d'une WSDL et ainsi pouvoir s'adresser à plusieurs serveurs proposant un même service, voici la méthode.
1.) Dans l'une de vos WSDL, importer le schema wsa http://schemas.xmlsoap.org/ws/2003/03/addressing/ (import)
2.) Dans votre BPEL déclarer une variable de type wsa:EndpointReference
3.) Dans un assign, copier l'url dans l'élément Address de l'élément EndpointReference
Note : il faut absolument initialiser la variable de type wsa:EndpointReference avec le(s) élément(s) que vous souhaitez modifier (Address si vous modifiez uniquement l'adresse).
mardi, mai 05, 2009
Inscription à :
Articles (Atom)