Overblog Suivre ce blog
Administration Créer mon blog

Articles récents

Démarche pour la création d'entreprise au Maroc (Casablanca) - 1ère étape

8 Octobre 2017 , Rédigé par Ahmed Amine Benkirane

Je reprends le clavier pour rédiger cet article. Cette semaine, j'ai négocié mon départ de mon ancienne société où j'ai travaillé en tant que Directeur des Systèmes d'Information du 2 septembre 2012 au 02/10/2017 soit pour une durée totale de 5 ans et 1 mois.

Fort de l’indemnité négociée et de ma volonté d'entreprendre, j'ai décidé, de fonder mon entreprise. L'objectif démarcher des clients pour effectuer des missions autour des Systèmes d'Informations et du Management de projets informatiques. Ma passion !

Cet article va donc vous donner les différentes démarches à effectuer pour arriver à créer son entreprise au Maroc et plus précisément à Casablanca.

Première phase : AVOIR LA VOLONTÉ de créer son entreprise et trouver une idée de projets. Après cela, il faut lui trouver plusieurs noms possibles en fonction de votre activité. Vous pouvez choisir de 1 à 5 noms à trier par ordre de préférence.

Deuxième phase : déposer un certificat négatif au Centre Régional d'Investissement de votre région. A Casablanca, celui-ci se trouve à côté de l'ancienne fontaine à pigeon, boulevard Hassan 2 soit ici sur Google Maps. Il faut se rendre au CRI avec le formulaire de demande certificat négatif qui se trouve à cette adresse pré-rempli et une copie non légalisée de votre carte d'identité.

Lorsque vous arrivé au CRI, il faut prendre un ticket d'attente à la borne à droite de l'entrée en arrivant. Sélectionner "Dépôt OMPIC (n°5)". Lorsque votre tour arrive, il suffit de fournir les documents et le cette première démarche est terminée.

Nous verrons dans un prochain article la phase suivante de dépôt des statuts et demande de numéros fiscaux + patente. Pour plus de détails sur les démarches, le site http://www.marocentrepreneurs.com est plutôt bien fait et, au Maroc, ceci est plutôt rare pour bien le préciser.

Lire la suite

Retours sur l'"IDC Francophone Africa CIO Summit 2017" à Marrakech

21 Avril 2017 , Rédigé par Ahmed Amine Benkirane Publié dans #Evénements

Après plusieurs mois sans rédiger un seul article, je reprends le clavier pour vous faire un retour sur, ce que je considère comme l'un des meilleurs événements de l'année pour les DSI Africains. Cet événement est le "IDC Francophone Africa CIO Summit 2017" qui est organisé pour la 5ème année consécutive par l'IDC au Maroc principalement sur la journée du 13 avril 2017. Cet article reste, bien sûr, une restitution d'un point de vue personnel où j'essaye de partager mon propre regard sur l'événement.

Tout d'abord, je tiens à remercier, personnellement, l'équipe organisatrice à l'IDC d'avoir choisi le Maroc pour ce sommet des DSI de l'Afrique francophone ainsi que leur invitation depuis la première édition en 2013 à chaque fois dans des lieux magnifiques comme Le Mazagan à El Jadida pour les 4 premières éditions et le Movenpick de Marrakech pour cette dernière édition. Cela permet d'être dans un cadre où on se sent tellement à l'aise qu'il est alors possible de se concentrer pleinement sur l'événement et les différentes présentations riches en enseignement qui s'y déroulent. 

Cet événement dont le slogan,cette année, est "Enabling Dynamic Change for the Digital Era" (Activer le changement dynamique à l'ère digitale)  est sponsorisé par différents constructeurs et partenaires comme DELL EMC, Lenovo, Arkeos, Mac Affee, Fujitsu et, cette année, le sponsor principal était Oracle qui nous a présenté, dès le 12 avril 2017 au soir, exclusivement pour un cercle restreint de DSI, son nouveau processeur SPARC M7 qui intègre nativement des hautes capacités de cryptage des données alliant sécurité et performance. L'heure des limitations des performances vs sécurité est terminée pour les présentateurs de chez Oracle. Les DSI et autres IT Managers sont, eux, les invités VIP de cet événement.

Cette année, malheureusement, l'équipe de l'IDC a réduit à une journée cet événement (hors la soirée du 12 avril) alors que les précédentes éditions tenaient sur 2 jours. Malheureusement, oui, car pour les "aficionados" comme moi, une journée de veille technologique présentée par des experts talentueux chez IDC comme :

  • Serge Findling, vice président de la recherche sur la transformation digitale chez IDC dont la présentation principale a  comme titre "Développer les nouvelles capacités IT pour la transformation digitale",

 

 

  •  Jyoti Lachandani, vice président de la région Moyen-Orient, Turquie et Afrique toujours chez IDC, dont les deux principales présentations avaient comme titre "Digital Transformation - A new World of opportunities - IDC Perspectives" et "How to Make Digital Business A Reality - IDC Perspectives". Jyoti est anglophone mais, l'équipe IDC met tout en oeuvre pour que les DSI de l'Afrique francophone invités à l'événement aient la traduction en temps réel de sa présentation.

Ces deux-là sont des trésors de connaissance pour le monde de l'IT et partagent sans compter leur savoir. Merci Messieurs, sans vos présentations, cet événement n'aurait pas l'immense intérêt qu'il a (désolé pour les autres "speakers" qui sont aussi très bons mais là on est dans la haute voltige) ! Ils sont présents chaque année depuis la première édition pour mon plus grand bonheur, certainement partagé par beaucoup de mes pairs dans l'assemblée présente.

Je disais donc ces 2 haut-voltigeurs nous propulse dans le futur de l'IT avec un bonheur indescriptible. Monsieur Serge Findling, avec un excellent français, nous apprends que dès aujourd'hui, des entreprises disruptives font de l'IT un vrai business qui enrichie leurs investisseurs avec des solutions numériques complètement réinventées :

  • Under Armour a investi 800 million de $ sur des applications connectées à la santé et à l'activité physique qui permettent aux athlètes et aux sportifs amateurs d'accroitre leur performance.

 

  • Caterpillar a connecté tous ses engins qui permettent de donner à leurs utilisateurs et partager entre eux des informations sur la bonne utilisation de ces équipements grâce l'application "CAT CONNECT" accessible sur n'importe quel "device".
  • BMW i a investi dans le rachat de 16 startups développant des activités autour de la voiture connectée pour que la BMW i devienne le  prolongement de nos équipements mobiles dans une voiture.

 

Toutes ces initiatives sont aujourd'hui permises grâce aux accélérateurs d'innovation apportés par, ce qu'appelle IDC, la 3ème plateforme c'est à dire le Cloud, le Big Data, le Social Business et la Mobilité précise Serge Findling.

IDC prévoit l'émergence d'une économie DX c'est à dire basée principalement sur la transformation digitale dans les 3 à 4 prochaines années. Celle-ci va s'appuyer sur une période d'abondance d'un certain nombre de facteurs facilitateurs alors que d'autres facteurs vont tomber dans une période de pénurie. Tout cela est résumé dans le slide ci-dessous présenté par IDC :

 

 

 

 

 

 

 

 

 

 

Pour être complètement franc, sur cette partie, je ne suis pas entièrement d'accord que cela est proche de la réalité africaine d'un point de vue d'un DSI Africain mais je vais résumer le point de vue d'IDC qui reste vrai pour le monde occidental. Ici, Serge Findling indique que nous sommes sur une période d'abondance sur un certain nombre de facteurs qui sont :

  • l'argent : Serge nous indique que le coût de l'argent n'est plus très cher (c'est le point principal où je suis le moins d'accord) et qu'en conséquence les dépenses d'investissement dans l'IT vont exploser dans les 3 prochaines années. Nous allons passer d'un montant de l'investissement total de 0.88 Trillion de $ en 2015 à 2.70 Trillion de $ prévu en 2020 soit un triplement des investissements. Ce point de vue est une réalité dans le monde Occidental et, en Europe où j'ai passé une partie de ma vie professionnelle mais, en Afrique, avec les risques encore réels dans le monde professionnel et l'instabilité, les banques ont encore de la peine a prêté de l'argent frais aux entrepreneurs auxquels ils demandent des gages de sécurité beaucoup trop élevé,
  • les données : l'IDC nous informe que les données générées vont passer de 4.4 Zbytes (1 Zbytes = 1 billion TBytes) en 2015 à 160 Zbytes en 2025. Cette augmentation exponentielle de la quantité de données accumulées ouvrent des possibilités infinies pour les entreprises (Social Business),
  • les objets connectés (ou IoT) : IDC prévoie le passage de 15 billion d'objets connectés en 2016 à 80 Billion en 2020.

En parallèle, IDC précise qu'en parallèle à cette période d'abondance, nous vivons aussi une période de pénurie :

  • la durée moyenne de vie des entreprises a beaucoup baissé depuis les années 50. C'est ce qui oblige les CEO à se repenser et innover, de plus en plus, pour rester dans la course. Dans les années 50, une entreprise, nouvellement créée pouvait espérer prospérer 61 ans en moyenne. Cette espérance de vie a diminué à 25 ans dans les années 80 pour passer à 18 ans en moyenne aujourd'hui. Et les innovations, pour IDC, doivent obligatoirement passer par la transformation digitale, nouvelle pierre angulaire de l'économie actuelle et surtout future,
  • les talents dans l'IT vont être de plus en plus difficile à trouver, motiver et surtout à retenir.

IDC indique que les organisations doivent prendre en compte ces différents facteurs pour accélérer leur transformation digitale dès maintenant et prendre de l'avance sur leurs concurrents sous peine de ne plus pouvoir rattraper le retard ou très difficilement. Seules celles qui auront su innover en investissant en masse sur l'IT pourront espérer continuer à prospérer.

Serge Findling continue sa présentation en précisant pourquoi les entreprises doivent faire des changements ambitieux. Une étude de l'IDC effectuée en 2016 indique que les 3 principaux objectifs de la transformation digitales auxquels pensent les entrepreneurs sont les suivants :

  • 66% des entreprises mises sur la transformation du client en améliorant l'expérience client,
  • 48% pensent qu'elles doivent investir sur la transformation de l'information. Les organisations doivent trouver des solutions pour créer un avantage compétitif par rapport à leur concurrent en se basant sur les données récoltées,
  • 41% estiment qu'elles doivent repenser leur modèle d'exploitation en créant un nouveau business model.

 

Au vu de l'importance stratégique à venir de la transformation digitale, le DSI a un rôle très important à jouer de part son expertise IT et opérationnelle. Il doit être le garant du développement des capacités de l'entreprise à soutenir la transformation numérique par:

  • la recommandation des technologies émergentes pour transformer,
  • l'assurance que l'innovation est intégrée aux systèmes de l'entreprise,
  • la réorganisation de l'infrastructure pour soutenir la transformation numérique. 

Pour finir, Serge Findling nous informe que si l'entreprise réussi à mettre en place, en son sein, des capacités DX alors elle ne pourra qu'accélérer sa performance économique. Il précise que pendant toute la période de transformation digitale, l'entreprise devra faire face à un faible recul de sa performance avant de l'accélérer. J'ai beaucoup pensé à mon cher patron à ce moment-là de la présentation lorsqu'on discutait ensemble de cette phase de recul dans laquelle je me trouve actuellement alors que je viens de déployer le nouvel ERP de l'entreprise. Il m'était alors difficile de faire comprendre à un entrepreneur cette étape "normale" du processus de transformation numérique.  

  

Dans un prochain article, je vous ferais un retour sur les 2 autres présentations clés faites par Jyoti Lachandani à "IDC Francophone Africa CIO Summit 2017" ce 13 avril 2017.

Merci d'être arrivé jusque là et, si vous avez des commentaires, n'hésitez pas à partager !

 

 

Lire la suite

Externalisation messagerie au Maroc : Google Apps For Work vs Office 365

12 Mai 2015 , Rédigé par Ahmed Amine Benkirane Publié dans #Messagerie

Ce billet sera l'occasion pour moi de partager avec vous les raisons qui m'ont poussé à choisir Google Apps For Work dans le cadre d'une décision de migration de la messagerie de l'entreprise pour laquelle je travaille en tant que DSI.

Contexte

Alors que la DSI que je pilote gérait un serveur de messagerie Exchange 2010 en interne, le contexte de la volonté de migration a été poussé principalement par des problèmes techniques principalement indépendants de la DSI :

  • problème de connexion ADSL qui ne fonctionne pas,
  • problème d'électricité récurrent sur le lieu où se trouve la salle serveurs,
  • problème de redondance et de synchronisation des annuaires (AD) de l'entreprise,
  • problème de blacklistage du domaine,
  • problème de non réception de certains mails externes.

En raison de ces différents aléas critiques, l'externalisation de la messagerie s'est imposée en raison de son importance capitale aujourd'hui au travail quotidien de la plupart des utilisateurs de l'entreprise.

Comparatif

Le choix entre les deux - seules - solutions clés en main en mode SaaS a été très difficile et a duré un bon mois et demi avant de prendre une décision. Il existe beaucoup de posts à ce sujet sur Internet mais je souhaitais donner aussi ma contribution dans mon environnement particulier. Ce choix a été fait dans un contexte particulier au Maroc avec des contraintes techniques importantes d'ADSL et même d'électricité.De plus, un des éléments est l'intégration avec un ERP prévu d'être utilisé au sein de mon entreprise qui est Dynamics AX. C'est pour cette raison que je souhaite partager avec vous les éléments qui m'ont poussé à faire le choix de Google Apps For Work à travers le tableau ci-dessous :

Eléments de comparaison

Google Apps For Work Office 365 Winner

Services Messagerie

- Web Mail

- (POP - IMAP)/SMTP

- Google Apps Sync for Microsoft Outlook

- ActiveSync (Android, iOS, Windows Phone, BlackBerry)

- Web Mail

- (POP - IMAP)/SMTP

- MAPI (Mode connecté Exchange)

- ActiveSync (Android, iOS, Windows Phone, BlackBerry)

Egalité

Services

de travail collaboratif

- Google Sites (Inclus*) : Intranet/Extranet

- Google Hangouts (Inclus*):Messagerie instantanée, Chat Audio & Vidéo, Bureau à distance

- MS SharePoint Online (Option*)

- MS Lync (Option*) : Messagerie instantanée, Chat Audio & Vidéo, Bureau à distance

Google Apps à budget identique ou inférieur sinon égalité mais Office 365 sera plus cher.
Gestion des fichiers

- Google Drive

- Google Docs

- MS OneDrive

- MS Office Online

Egalité
Stockage 30 Go 50 Go Office 365

Outils

de migration

- ‘’GAMME’’ Google Apps Migration for Microsoft Exchange.

- ‘’GASMO’’  Google Apps Sync for Microsoft Outlook

- Migrations à distance

- Migration Exchange intermédiaire

- Migration Exchange à basculement

- Migrations IMAP

Office 365
Administration

- Gérer les comptes utilisateur et les paramètres de sécurité à partir d'une console d'administration centrale

- Contrôler l'accès des utilisateurs aux fonctionnalités et services

- Gérer à distance l'ensemble des appareils en usage dans votre organisation

- Suivi de production à l'aide d'audits et de rapports

- Gérer les comptes utilisateur et les paramètres de sécurité à partir d'une console d'administration centrale

- Contrôler l'accès des utilisateurs aux fonctionnalités et services

- Gérer à distance l'ensemble des appareils en usage dans votre organisation

- Suivi de production à l'aide d'audits et de rapports

Egalité
Sécurité Accès au Web mail de n’importe quel poste connecté à Internet Accès au Web mail de n’importe quel poste connecté à Internet Egalité
Intégration avec Dynamics AX Non intégré Intégré uniquement car l’intégration avec Dynamics AX ne peut se faire que si Office est installé en mode Desktop donc nécessité de la version Business Premium ou E3. Office 365 uniquement en cas d’achat de la version Business Premium ou E3 mais c’est plus cher.
Montée en compétence des utilisateurs Google mail est bien connu des utilisateurs. Par contre, les autres Apps moins, la montée en compétences sera plus longue. Quasiment identique à Office Desktop Office 365
Utilisation bande passante Optimisé car conception purement Web Non optimisé car conception plutôt Desktop Google Apps
Prix/ Qualité Environ 500 MAD HT annuel / utilisateur Dépend type utilisateur / non défini clairement Google Apps
Support 24/24 et 7/7 24/24 et 7/7 Egalité

Conclusion

Ce tableau montre bien que le choix n’est pas du tout évident.

Ceci dit, d’un point de vue global et objectif, le meilleur rapport qualité/prix reste Google Apps pour les raisons principales suivantes :

1) En terme de services et de nouvelles fonctionnalités pour les collaborateurs de l'entreprise, Google Apps sort largement gagnant à budget quasiment identique (100 MAD HT annuel de différence en plus). Plusieurs applications (Chat interne, Centralisation de documents, Vidéoconférence, Chaîne Youtube, Cercle Google+, …) sont offertes avec Google Apps alors qu’il faut payer plus cher pour avoir certaines fonctionnalités avec Microsoft 365. Google Apps en en développement continu et la philosophie est d’offrir toute nouvelle application. Ce point est décisif de mon point de vue.

2) Pour la montée en compétences, je ne parle que des outils autres que la messagerie qui sont offert avec la solution de Google. Comme initialement, c’est la messagerie qu’on souhaite externalisée, d’un point de vue de l’apprentissage, les deux se valent. Pour les initiés, il sera facile d’utiliser les autres Apps de Google dès le démarrage. Pour les autres, ils mettront un peu plus de temps avec des guides utilisateurs ou des formations internes.

3) La différence d’espace de stockage n’est pas vraiment un point de décision car, dans tous les cas, 30Go est suffisant pour la majorité des utilisateurs et dans tous les cas, un nettoyage régulier de la boîte de messagerie est nécessaire.

4) La migration est certainement plus facile avec Microsoft Office 365 car nous sommes dans les mêmes environnements. Cependant, Google Apps offre des possibilités de synchronisation de notre annuaire d’entreprise avec celui de Google. De plus, c’est le prestataire qui va s’occuper de cette partie donc la complexité, si elle existe, sera absorbé par lui.

5) enfin, l'aspect optimisation de la bande passante dans un pays comme le Maroc a aussi été un point déterminant pour le choix de la solution Google Apps.

N'hésitez pas à poster vos commentaires si vous souhaitez plus d'informations à ce sujet. J'espère que ce billet vous aura aidé à prendre une décision et convaincre votre hiérarchie pour faire le bon choix en fonction de votre propre environnement.

Lire la suite

Outlook 2010 : Dossier Favoris disparu de l'affichage

31 Mars 2015 , Rédigé par Ahmed Amine Benkirane Publié dans #Divers trucs et astuces

Dans le cas où le dossier Favoris n'apparaît plus sur le volet de navigation, c'est simplement parfois parce que vous êtes sur le mauvais type d'affichage. Il existe plusieurs types d'affichage de ce volet de navigation (dossiers, courrier, ..). En cliquant sur CTRL + 1 dans Outlook 2010, vous activer l'affichage en mode courrier et le dossier Favoris devrait réapparaître.

Lire la suite

Le Big Data : une révolution en marche

4 Mai 2012 , Rédigé par benkirane Publié dans #Nouvelles technologies

Avec l'avènement des réseaux sociaux en particulier et du Web en général, le nombre de données produites est en constante augmentation. Chaque individu, aujourd'hui, génère un nombre très élevé d'informations. Cette volumétrie génère, elle-même, de manière automatique de la donnée. En effet, plus on a d'informations, plus on a besoin de l’indexée (moteurs de recherche, annuaires) ou simplement de la traiter pour y apporter de la plus-value (Business Intelligence, CRM, cyber-criminalité, ...). Les problématiques de stockage, traitement et restitution de ces données dans des temps raisonnables sont devenues primordiales.La solution Big Data alliée à des frameworks comme Haddop ou le Map Reduce, a vu le jour pour répondre à ces problématiques. Cette nouvelle notion apporte avec elle quelques révolutions technologiques mais aussi intellectuelles.

Le Big Data : la révolution des systèmes de gestion des données

La première révolution qu'apporte le Big Data est la façon dont les données sont gérées. Pour traiter des quantités énormes de données qui arrivent, en temps réel, à partir de sources très diverses (humains, robots, électroniques, capteurs, ...), les contraintes imposées par les SGBD relationnels associé à leur coût exorbitant (administration, licence, infrastructures) ne peuvent plus perdurer. Deux principales causes à cela: la première est la capacité faible d'évolution des systèmes relationnels et la seconde la nécessité de structurer les données.

Dans les systèmes actuels, il devient de plus en plus difficile de prévoir la quantité de données qui seront stockées. Des entreprises comme google, facebook, amazon ou autre twitter ne peuvent savoir au Go près quel volume de données elles auront à gérer et à quel moment. La nécessité de disposer d'un système fortement évolutif est primordial. C'est là qu'interviennent les bases de données NoSQL (Not Only SQL). Cette terminologie représente l'ensemble des bases de données non relationnelles. Elles répondent exactement aux problématiques soulevées précédemment:

  • Elles sont fortement évolutives. Leur architecture technique est complètement distribuée et basée sur des machines standards ( moins coûteuses). L'augmentation de la capacité de stockage est alors simple puisqu'il s'agit bien souvent d'ajouter quelques machines dans le système. Les données et les temps de calcul sont alors réparties sur l'ensemble de celles-ci de manière automatique.
  • Les données ne sont pas structurées. Il n'y a plus de notions de tables, de type de données et encore moins de relations entre elles. Les données sont stockées de façon brutes, les causes d'erreurs lors des enregistrements sont alors très limitées, voir inexistantes.

En réalité, le NoSQL n'est pas vraiment une révolution puisque le terme est apparu la première fois en 1998. C'est plutôt sa mise en œuvre à grande échelle depuis ces dernières années qui est une révolution. Les investissements des grandes entreprises de l'informatique moderne citées précédemment sur ce type de SGBD sont sans précédent.

Le Big Data : la révolution des algorithmes de calculs

L'idée première derrière l'utilisation du Big Data est le traitement de l'information à des fins politiques ou commerciales. L'important est d'apporter de la plus-value à ces volumes de données. C'est ce qu'on appelle la Business Intelligence. On traite, par exemple, le contenu des messages postés par un utilisateur afin de connaître ses aspirations et lui fournir du contenu personnalisé qui y réponds.

La volumétrie des données ne permet plus d'utiliser des algorithmes de calculs classiques par récupération de lots de données. Il est nécessaire de recourir à de nouveaux concepts de regroupement de données associé à un calcul distribué. C'est sur ces bases qu'a été imaginé le framework Map Reduce proposé par Google et faisant partie de la solution Hadoop (Apache).

En très simplifié, l'algorithme Map Reduce s'exécute en deux étapes:

  1. La partie Map associe une valeur ou un ensemble de valeurs à une clé personnalisée,
  2. La partie Reduce effectue un calcul sur chacune des valeurs en regroupant les données ayant une clé identique.

Pour comprendre en détail cet algorithme, je vous propose de lire le tutoriel Map Reduce sur le site officiel d'Hadoop.

La possibilité de paralléliser cet algorithme de traitement en fait un outil très puissant pour générer, efficacement, des données à forte valeur ajoutée.

Le Big Data : la révolution des usages

Comment souvent en informatique, des révolutions techniques entrainent souvent des révolutions en terme d'usage. Les applications mobiles en sont un bon exemple. Pour le Big Data, c'est la même chose! La capacité à stocker et traiter un nombre de données en constante augmentation et en temps réel a permis à de nombreuses entreprises d'innover. On a ainsi entendu parler ces dernières années de social TV, de voiture connectée ou encore d'habitat connecté.

Lire la suite

Architecture logicielle : Web services SOAP ou REST ?

3 Mai 2012 , Rédigé par benkirane Publié dans #Architecture logicielle

Le développement de services Web est devenu depuis quelques années un enjeu primordial pour certaines entreprises. Il permet, entre autres, de mettre à disposition à d'autres des services spécifiques à son domaine d'activité qu'ils soient gratuits ou, pour une meilleure qualité de service, payants. Les services Web offerts par google maps, par exemple, sont devenus en quelques années des standards dans le domaine de la géolocalisation. Pour leur mise en œuvre, plusieurs méthodes sont possibles: la traditionnelle basée sur SOAP et celle qui est en constante croissance, basée sur une architecture de type REST. Cet article ne se veut pas une éloge pour l'une ou l'autre des méthodes, il en résume les avantages et inconvénients. Le choix de l'utilisation de l'une ou l'autre doit bien être l'aboutissement d'une étude des besoins de chaque entreprise en fonction de son contexte propre.

SOAP

Au départ, les architectes d'entreprise ont privilégié les services Web de type SOAP. Les principaux avantages de ce protocole étant:
  • l'indépendance vis à vis du langage de programmation,
  • l'indépendance vis à vis de la plateforme où ils sont déployés,
  • son extensibilité,
  • l'utilisation du standard XML pour l'échange des messages,
  • le contenu des messages échangés qui incluent le format d'échange cela permet d'avoir un contrat personnalisé entre le fournisseur et le consommateur du service,
  • l'utilisation du protocole HTTP pour le transport qui permet de s'affranchir des problématique de firewalls: en réalité SOAP est indépendant de la couche de transport puisqu'il l'a redéfini (entête, format d'échange, type des données échangées, ...). Cependant, HTTP est le protocole de transport le plus largement utilisé par SOAP.

Ces avantages devaient permettre une interopérabilité entre des applications hétérogènes développées en Java, .NET ou PHP. Cependant, les architectes ont été confrontés à des problèmes parmi eux:

  •  SOAP étant extensible, plusieurs standards sont apparus, regroupés sous la forme WS-* :

    WS-Addressing, WS-Policy, WS-Security, WS-Federation, WS-ReliableMessaging, WS-Coordination, WS-AtomicTransaction, WS-RemotePortlets, etc. Leur nombre croissant a abouti à l'augmentation de la complexité perçue de SOAP. De plus, des différences d'implémentations ont aboutis à des problèmes d’interopérabilité entre applications hétérogènes. 
  • pour que les applications puissent interagir entre elles, la description des Web services en WSDL et la définition d'un dictionnaire de données sont nécessaires dans l'entreprise. Cependant, dès qu'une erreur de conception de ce dictionnaire apparaît, l'implémentation des services Web devient problématique et couteuse. Ajoutée à cela, le coût de mise en œuvre des fichiers de description des services Web (le WSDL) et des fichiers de données (XSD). En résumé, le coût de mise en œuvre est souvent très élevé.
  • La conception des services Web en elle-même. Si un service est mal conçu, et cela peut arriver très vite, le nombre de données qu'il renvoie peut-être très important. Ajoutée à cela, la verbosité de SOAP, très rapidement, des problèmes de performance sont rencontrés qui induisent souvent à une remise en cause de la conception elle-même des services.

Le coût et la complexité d'implémentation générés par les inconvénients de SOAP ont remis en cause, complètement, les avantages de son utilisation. Les réseaux sociaux, dans un premier temps, avec leur volume de données échangées puis les autres entreprises, ensuite, se sont positionnées sur un autre moyen de mettre en œuvre des services Web moins couteux, plus simple à implémenter et surtout plus efficace. Cette méthode qui n'est pas nouvelle puisqu'elle est basée sur les fondamentaux du protocole HTTP est l'architecture REST (cf. mon billet précédent sur ce thème).

REST

Les architectures de type REST deviennent, de plus en plus, des standards dans les entreprises aujourd'hui. La plupart des consultants en informatique de gestion vous le diront. Cependant, au delà de l'effet de mode, la mise en œuvre de services Web basée sur cette architecture a de quoi séduire. Les principales motivations pour le choix de cette architecture sont:

  • l'indépendance vis à vis du langage de programmation,
  • l'indépendance vis à vis de la plateforme sur laquelle ils sont déployés,
  • la plus grande simplicité d'implémentation car la couche transport n'a pas besoin d'être redéfinie et il n'est plus nécessaire de créer un dictionnaire de données comme on le fait avec SOAP.
  • la non intégration du format d'échange au sein des messages. Cela induit une verbosité beaucoup plus faible et donc une performance accrue et une plus grande souplesse dans l'implémentation,
  • l'utilisation de multiples formats pour l'échange de données (XML, JSON, HTML),
  • qu'elle est plus proche de la conception et de la philosophie initiale du Web (URI, GET, POST, PUT et DELETE),
  • pas de gestion d'états du client sur le serveur.

Comme les services Web de type SOAP, ceux basés sur l'architecture REST ont le gros avantage d'être interopérables et indépendants de leur environnement de déploiement avec, en bonus, de meilleures performances. Cependant, ils ont des défauts conséquents à leur adhésion au protocole de transport HTTP:

  • une limitation en matière de sécurité,
  • il n'est pas fiable et ne garantit pas la bonne transmission des messages,
  • la limitation en terme d'actions possibles (CRUD uniquement),
  • les navigateurs actuels implémentent mal les opérations PUT et DELETE.
Dans la réalité, ces limitations ne sont pas vraiment un frein. La sécurité peut-être introduite de plusieurs façons différentes (tokens d'authentification, HTTPS, des outils comme Spring security en java). Les problèmes de standardisation des navigateurs sont détournés par surcharge de la méthode POST. Le vrai frein au choix de REST pour la mise en oeuvre de Web Services est le besoin propre à chaque application.

Conclusion

Internet existe depuis plusieurs décennies maintenant et, avec le retour des architectures REST, on peut se rendre compte que pendant ces années, beaucoup ont perdu les fondamentaux même du protocole HTTP. Les navigateurs, eux-mêmes, ne l'implémentent pas convenablement, ce qui est un comble. De mon point de vue, en tant que professionnel du Web, le plus grand avantage de REST est de revenir aux sources de la toile comme l'ont pensé ses créateurs. Le Web n'est pas un ensemble de pages HTML mais un ensemble de ressources dont l'une des représentations est le HTML. D'autres sont possibles comme JSON, XML, PDF, etc... Sur ces ressources, il est possible d'effectuer 4 opérations principales qui sont GET, POST, PUT et DELETE, du CRUD en résumé.

Ceci est important, lorsqu'on réfléchit au choix d’architecture logicielle. Si vos services Web sont orientés action (plus complexes que les opérations simples du CRUD) et qu'ils nécessitent une sécurité élevée ou un contrat rigide d'échange, SOAP sera, souvent, le protocole le plus adapté.

Si vos services Web sont orientés ressources avec des opérations simples sur celles-ci, REST sera le choix le plus judicieux. Le développement de ces services se focalisent plus sur l'identification des ressources. REST impose le reste de la conception par la possibilité d’implémenter les 4 actions ou verbes (HTTP) du CRUD.

 

Lire la suite

Sed : la commande qui permet de remplacer un caractère (ou une chaine) par un autre

3 Avril 2012 , Rédigé par benkirane Publié dans #Divers trucs et astuces

Il arrive souvent qu'on ait besoin de remplacer un caractère par un autre dans un fichier qui comprends plusieurs mégaoctets de données. Avec la fonctionnalité de remplacement des éditeurs de texte classiques tels que Notepad ou Notepad++ sous Windows, ce remplacement peut prendre un temps excessivement long. Dans cet article, je vous donne une petite astuce qui permet d'aller beaucoup plus vite par l'utilisation de la commande linux sed suivante:

sed -i 's/<ancien caractère ou chaine>/<nouveau caractère ou chaine>/g' <fichier_texte_a_modifier>

Un exemple d'utilisation qui remplace tous les caractères '|' par ',' pour tous les fichiers avec l'extension 'unl' du répertoire courant:

sed -i 's/|/,/g' *.unl

Remarque : Cette commande est aussi utilisable sous Windows après avoir installé Cygwin.

Lire la suite

Rendre votre fichier CSS compatible à tous les navigateurs !

28 Mars 2012 , Rédigé par benkirane Publié dans #Divers trucs et astuces

Malgré l'arrivée du CSS3 et la standardisation en cours de la plupart des navigateurs aux normes du W3C, il reste quelques propriétés CSS qui ne sont pas encore identiques à tous les navigateurs. Pour améliorer la lisibilité de votre fichier CSS par les navigateurs, un site en ligne existe à cette adresse: http://prefixmycss.com/.

Par simple copier-coller dans l'éditeur du site, vous avez en sortie un code CSS qui comprends l'ensemble des valeurs particulières à l'ensemble des navigateurs. Attention, cependant, les nouvelles propriétés arrivées avec le CSS3 ne fonctionneront pas avec les anciennes versions des navigateurs.

Lire la suite

Les avantages et inconvénients des outils de gestion de version distribués (DVCS)

21 Février 2012 , Rédigé par benkirane Publié dans #Les outils pour la gestion du code source

Aujourd'hui, la taille des projets informatiques est de plus en plus importante. Les équipes de développements comptent, ainsi, de plus en plus de membres. Tout au long de la réalisation des programmes informatiques, de nombreuses personnes "commitent" tous les jours leur code. Avec les systèmes de gestion de source traditionnels tels que CVS ou SVN, il devient de plus en plus compliqué de travailler au quotidien. Les problèmes récurrent sont :

  • Les conflits de code lors des commits suite au travail de deux développeurs sur une même portion de code,
  • La gestion des différentes versions de code (celle en recette et celle en cours de développement principalement),
  • La difficulté de valider l'intégration de son code avec le reste du projet avant le commit.

La cause principale de ces soucis que rencontrent les grosses équipes de développements au quotidien est la centralisation du repository contenant le code source partagé. Pour cette raison, des logiciels de gestion de version distribués ont été créés. Ils gèrent les versions à l'aide d'une architecture des dépôts du code source distribuée. En effet, ces logiciels impliquent que chaque développeur a une copie locale d'un "repository" de référence ou maître avec lequel elle est synchronisée.

Gestion du commit

Pour faire un commit, la procédure est, en général, la suivante:

  1. Synchroniser son "repository" local avec le "repository" maître (faire un "pull") pour "tirer" (récupérer) les dernières modifications effectuées par les autres membres de l'équipe,
  2. "Commiter" ses modifications dans le "repository" local,
  3. Exécuter la compilation du programme et les tests,
  4. Si tout est ok, synchroniser son "repository" local avec le "repository" maître (faire un "push") pour "pousser" (partager) ses modifications avec le reste de l'équipe.

Avantages/Inconvénients des DVCS

L'architecture distribuée des DVCS induit de nombreux avantages:

  • Avoir un repository local identique au repository de référence pour faire des commits et valider son code avant de le partager à l'ensemble de l'équipe,
  • La gestion des branches et surtout le développement sur l'une ou l'autre est souvent beaucoup mieux géré qu'avec les logiciels de gestion de source traditionnels: ceci est facilité par le fait que les DVCS copient tout l'historique de versionning dans chaque repository local,
  • La gestion des "merges" est beaucoup plus simple avec les DVCS: en effet, tant que la même ligne de code n'est pas modifiée par deux développeurs en même temps, le logiciel de gestion des versions effectue un merge automatique du code,
  • La possibilité de développer en mode non connecté de manière plus efficace: le développeur peut, par exemple, synchroniser son repository local moins souvent puisque la gestion des merges est plus efficace,
  • Le code source et son versionning est sauvegardé sur l'ensemble des repositories locaux et n'est plus centralisé sur une seule machine: cela implique moins de risque de perdition de données.

Ces nombreux avantages ne sont pas, bien sûr, sans certains inconvénients surtout, au départ, lors du passage d'un logiciel traditionnel à un DVCS:

  • Le coût de mise en œuvre (installation, déploiement, transfert des projets de l'ancien VCS, ...),
  • Nécessité de faire monter en compétence l'ensemble des développeurs: cette partie n'est pas à négliger car de nouveaux concepts sont à (re-)apprendre.

Les logiciels du marché

Les principaux logiciels de gestion de code source distribué sont Mercurial et Git. Vous trouverez tous les détails sur leur site officiel respectif.

Lire la suite

Tutoriel : Installer une machine virtuelle avec un système d'exploitation Ubuntu

15 Février 2012 , Rédigé par benkirane Publié dans #Divers trucs et astuces pour Linux

Dans le cadre de mise en œuvre de POC, il est souvent nécessaire d'avoir une machine Linux à disposition. Or, très souvent, les entreprises ne fournissent que des machines Windows. Il est alors compliqué d'obtenir une machine avec un système d'exploitation de type Linux. Aujourd'hui, je vais essayer de vous faciliter la vie grâce à ce billet sous forme de tutoriel d'installation d'une machine virtuelle démarrée avec un système d'exploitation de type Linux qu'est Ubuntu.

Etape 1 : Téléchargement du logiciel Virtual Box

Pour commencer, il est nécessaire d'installer le logiciel Virtual Box fourni gratuitement par Oracle à l'adresse suivante: https://www.virtualbox.org/wiki/Downloads.
Ce logiciel permet de démarrer une machine virtuelle sur votre PC. Sur la page précédente, choisissez le système d'exploitation de la machine sur laquelle vous allez installer Virtual Box (à priori Windows) puis cliquer sur enregistrer le fichier comme on peut le voir sur la copie d'écran ci-dessous:

 

Une fois le fichier téléchargé, doucle cliquez dessus pour installer le logiciel. Vous pouvez laisser les paramètres par défaut ou choisir le répertoire d'installation si vous le souhaitez puis cliquez sur Next jusqu'au commencement de l'installation.
Cliquez sur installer lorsque la fenêtre suivante s'affiche vous demandant une confirmation de l'installation d'un contrôleur de bus Oracle:


L'installation peut prendre quelques minutes. Vous devriez avoir à la fin la confirmation de la réussite de l'installation par l'affichage de la fenêtre suivante:



Cliquez alors sur le bouton Finish.


Etape 1 bis : Téléchargement d'une image du système d'exploitation Ubuntu.


En parallèle à l'installation l'installation du logiciel Virtual Box, vous pouvez télécharger une image du système d'exploitation Ubuntu (Version 11.10 à l'heure où j'écris ce billet) à l'adresse suivante: http://ubuntu-fr.org/telechargement.

Cliquez sur le lien Télécharger puis cliquez sur Enregistrer le fichier lorsque la fenêtre suivante s'affiche:



Le téléchargement peut prendre plusieurs dizaines de minutes en fonction du débit de votre connexion internet...


Etape 2 : créer votre machine virtuelle

Au niveau du logiciel Virtual Box, créez une nouvelle machine virtuelle en allant sur l'onglet Machine -> Créer... comme vous pouvez le voir sur la copie d'écran suivante:




Un assistant à la création de votre machine virtuelle va alors s'ouvrir:




Cliquez alors sur le bouton Suivant. Le nom de votre machine virtuelle vous sera alors demandé ainsi que le type de système d'exploitation. Vous pouvez alors saisir Ubuntu 11.10 (32 bits) comme illustré ci-dessous:



Cliquez ensuite sur le bouton Suivant. Il vous sera alors demandé d'indiquer la taille de mémoire RAM allouée à la machine virtuelle. En fonction de votre besoin et de la taille de la mémoire présente sur votre ordinateur, vous devez décider de la taille allouée surtout rester bien dans la partie verte comme vous pouvez le voir sur la copie d'écran ci-dessous:



Cliquez ensuite sur le bouton Suivant. Il vous sera alors demandé d'indiquer la taille de disque dur que vous souhaitez affecter à votre machine virtuelle. Vous pouvez alors créer un nouveau disque dur de la taille que vous souhaitez:




Cliquer sur le bouton Suivant. La fenêtre suivante va alors s'afficher vous indiquant le type de disque dur virtuel que vous souhaitez créer. Vous pouvez laisser le paramètre par défaut et cliquer sur le bouton Suivant.




Après le clic sur le bouton Suivant, il vous sera demandé d'indiquer le détail du type de stockage que vous souhaitez. Pour des temps de réponse améliorés, vous pouvez choisir le type "Taille fixe" puis cliquez sur le bouton Suivant:



Suite au clic sur le bouton Suivant, il vous sera alors demandé de saisir la taille de ce disque de taille fixe. Pensez à bien allouer un espace disque assez important pour vos besoins d'installations de logiciels. Je vous conseille si vous avez assez d'espace disque sur votre ordinateur, d'allouer au minimum 20Go (attention à l'espace libre sur votre disque dur physique) comme vous pouvez le voir sur la copie d'écran ci-dessous:




Une fois la taille du disque dur virtuel choisie, vous pouvez cliquer sur le bouton Suivant. La fenêtre suivante de confirmation de la création s'affichera alors:




Si vous êtes d'accord avec le récapitulatif de création du disque dur virtuel, vous pouvez cliquer sur le bouton Créer sinon annuler la création grâce au bouton prévu à cet effet. Au bout de quelques minutes, le disque dur virtuel est créé et une page récapitulative de la création de la machine virtuelle s'affiche alors:




Si vous êtes d'accord avec le récapitulatif, vous pouvez cliquer sur le bouton Créer. Au bout de quelques minutes, vous verrez apparaître votre machine virtuel dans Virtual Box comme on peut le voir sur l'illustration suivante:





La machine virtuelle est maintenant créée. Il reste une dernière étape l'installation d'Ubuntu sur cette machine.

Etape 3 : installation d'Ubuntu sur la machine virtuelle


Pour installer Ubuntu, il faut permettre à la machine virtuelle de démarrer sur le CD d'installation du système d'exploitation. Pour se faire, cliquer sur le bouton Configuration et aller sur la partie Stockage au niveau du menu à gauche, la fenêtre suivante s'affiche alors:




Sur cette fenêtre, cliquez sur le bouton d'ajout d'un nouveau CD/DVD à côté de la ligne Contrôleur IDE puis, lorsque la nouvelle fenêtre s'affiche cliquez sur le bouton Choisir un disque comme illustré sur la copie d'écran suivante:




Il faut ensuite, récupérer l'image .iso d'Ubuntu téléchargée précédemment. Vous devriez avoir alors la configuration suivante avec la ligne vers le Disque Ubuntu ajoutée:




Bien vérifier qu'au niveau de l'attribut Lecteur CD/DVD, la ligne Maître primaire IDE est bien sélectionné. Il ne vous reste plus qu'à lancer votre machine virtuelle à l'aide du bouton prévu à cet effet dans Virtual Box. L'installation d'Ubuntu commencera alors comme vous pouvez le voir sur la copie d'écran suivante:



Elle est identique à une installation classique. Vous trouverez très facilement des tutoriaux pour cette partie. A la fin de l'installation, vous pourrez utilisez votre nouvelle machine virtuelle avec un système d'exploitation Ubuntu.

Etape 4 : suppression du contrôleur IDE

Lorsque l'installation est terminée, il faut supprimer le contrôleur IDE que vous avez ajouté précédemment vers l'image du disque d'installation d'Ubuntu. Pour se faire, vous devez cliquer sur le bouton Configuration puis aller dans la partie Stockage en passant par le menu de gauche de Virtual Box. Cliquez ensuite sur le contrôleur IDE d'Ubuntu et cliquer sur le bouton de suppression marqué "-" en bas à droite de l'écran central. Ceci fait, au prochain démarrage de la machine virtuelle, il ne vous sera pas demandé de réinstaller Ubuntu et vous démarrerez directement sur le disque dur virtuel où a été installé le système d'exploitation.

Lire la suite
1 2 3 4 5 6 > >>