vendredi, janvier 29, 2010

Recommandé papier par le Web


Ce que je cherche depuis un moment : envoyez dorénavant vos recommandés en quelques minutes, depuis votre PC. Le recommandé a la même valeur légale qu'un recommandé à La Poste avec en outre une preuve de contenu et une garantie de qualité de traitement et de confidentialité des envois.
Prix : 9,84 €
www.mycertipost.be

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)
Ces conventions permettent notamment de découvrir dynamiquement l'ensemble des éléments qui composent le bean, ou encore de permettre à un framework de gérer lui-même le cycle de vie et l'utilisation de ces JavaBeans.


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

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.

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

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

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

Choisir la distribution linux

Un chouette test pour vous aider à choisir: faire le test

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

Manipuler des SOAP header en BPEL

Voici quelques références pour savoir comment manipuler des SOAP header en BPEL :

- lien 1
- lien 2