Journal J2EE (EJB), .net (enterprise services), COM/DCOM/OLE, PHP/Python/Perl, Corba, etc...

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
mai
2004
Quand on lit des magazines comme 01 (je l'ai pas choisi, hein), des forums, et... on rencontre ce genre de terme cabalistiques dont on n'est pas toujours en capacité de comprendre ce qu'ils recouvrent.
C'est plus sympa de comprendre les articles que l'ont li...

De plus, en train d'essayer de définir ce qu'il conviendrai de donner comme interfaces, librairies, binding à un nouveau langage (lisaac, langage objet à prototypes compilé), j'essaye de séparer le grain de l'ivraie.

Donc ! Quel technologie fait quoi respectivement ? Sert à quoi ? Qu'en pensez-vous (ceux qui l'utilisent), où peut-on trouver des docs décrivant (succintement) ces technologies ?

merci !
  • # Allez je me lance dans l'impro ! :)

    Posté par  . Évalué à 4.

    J2EE est une norme qui repose sur des technologies autour du langage Java. On y trouve de nombreuses techno :
    - UML (langage de modelisation servant a concevoir des projets orientes objet).
    - XML (langage oriente structure, grammaire et echange de donnees).
    - EJB (API Java pour objets et composants distribues)
    - JDBC, Servlets, JSP, JNDI, RMI, Reflect etc etc... plein plein d'APIs Java pour faire tout plein de trucs..

    Perl est un langage interprete, dit communement 'langage de script'. Il est tres puissant pour la manipulation des fichiers textes et tres agreable a coder. C'est un langage faiblement type et tres laxiste, qui donne au programmeur un reel sentiment de pouvoir faire comme chez meme... :) Ideal pour les petits projets pour lesquels un resultat doit appraitre vite, Un cauchemar pour les grands projets long terme et la reprise de code suite a un changement d'equipe. Personnellement j'adore Perl :)

    PHP reprend un petit peu les bonnes idees de Perl et lui apporte un peu de fraicheur. Ideal pour le developpement de sites web. Rapide, facile.. niquel pour le Web.

    Corba... c'est une technologie dont l'interet reside en grande partie dans la capacite de faire interagir des programmes ecrits dans des langages differents.. C, C++, Java et Cobol savent interragir avec Corba. Cela signifie que via Corba, un prog Java peut par exemple appeler une fonction ecrite en C++ et vice versa. Technologie super lourde, a utiliser dans le cas d'une migration vers des nouvelles technos pour du developpement devant interragir avec le vieux systeme existant (ex: COBOL).

    .Net/COM/DCOM etc etc.. hmm.. pas de commentaire.

    En esperant avoir apporte qq elements d'information :)
    • [^] # Re: Allez je me lance dans l'impro ! :)

      Posté par  . Évalué à 2.

      .Net est un framework http://dotnet.developpez.com/FAQ.NET/(...)
      COM et DCOM sont le pendant crosoft de Corba à peu près et OLE (basé sur COM) permet sous windows de pouvoir utiliser les éléments d'une application dans une autre en gros (un peu comme DCOP sous Kde il me semble).
    • [^] # précisions

      Posté par  . Évalué à 5.

      Tu as cité des langages interprétés: Perl, Python, PHP. Les deux premiers sont "normaux", PHP est conçu pour être intégré dans des documents HTML. Python a une bonne bibliothèque standard et Perl a des milliers de modules sur le CPAN (c'en est d'ailleurs la killer feature avec les expressions régulières). Il est possible d'intégrer tous ces interpréteurs dans Apache pour éviter de devoir les charger à chaque requête (mod_perl pour Perl).

      <ma vie>
      Pour la programmation web, j'adore Perl avec Mason ( http://www.masonhq.com(...) ), qui permet d'intégrer le Perl dans le HTML façon PHP et bien plus: allez voir. Et en plus, on peut placer la logique applicative dans des modules Perl réutilisables par autre chose que le site web.
      </ma vie>

      EJB, DCOM, COM, CORBA, ce sont des technologies relatives aux objets distribués. En gros, tu peux instancier un objet hébergé sur un autre ordinateur et où son code réside et s'exécute. COM et DCOM sont la version de M$ qui ne sait rien faire comme les autres donc je n'en parle pas plus :), CORBA n'impose pas que ces objets soient écrits dans le même langage (Java, C++, mais des portages vers Python ou d'autres langages existent). EJB, ce sont les objets distribués de Java, qui utilisent partiellement CORBA.

      J2EE, c'est (de mémoire) simplement des bibliothèques supplémentaires pour Java (pour par exemple envoyer des e-mails mais bien d'autres choses)

      OLE, c'est encore du M$, c'est un protocole d'inclusion de documents dans d'autres, genre une vidéo dans une présentation PowerPoint (j'espère que je ne dis pas de conneries)

      Quant à .NET, faut-il appeler ça une stratégie, un framework ou autre chose, je ne sais pas. C'est la réponse de M$ à Java. Là où Java est multi-plateformes, .NET est multi-langages: le langage (qui doit être orienté objet) est compilé en un bytecode (le MSIL, Micro$oft Intermediate Language) et il permet de définir une classe dans un langage supportant .NET, de la dériver dans un de ces autres langages et de l'instancier dans un troisième.

      Un de ces langages est COBOL (COBOL orienté objet, si si :), ce qui permettra aux malheureux qui ont des applics COBOL et ne peuvent pas s'en débarasser de les encapsuler dans des objets .NET et de les utiliser dans des langages moins pervers.

      Ah oui, .NET, c'est méga lourd.
      • [^] # Re: précisions

        Posté par  . Évalué à 3.

        Ah oui, .NET, c'est méga lourd.

        Java aussi c'est pas propre à .NET mais propre à tout les langages qui s'exécute derière une VM (Machine virtuelle qui permets de vérifier ce que fait un prog avant de l'exécuter)

        A noter qu'un autre point qui rapproche java et .NET est leur code qui n'est pas vraiment compilé : du MSIL pour .NET et du .class pour java le code étant compilé à la volée (Compilo JIT) ou Interprété.

        Il existe pour ces deux langages des implémentations historiques : SUN Java et Microsoft .NET et des clones libre : GNU ClassPath http://www.gnu.org/software/classpath/(...) pour les classes java, jcs http://gcc.gnu.org/java/(...) pour compiler du java (A ce moment là ce que j'ai dit plus haut ne s'applique pas), Mono http://www.go-mono.com/(...) et DotGNU http://www.gnu.org/projects/dotgnu/(...) pour les compilateurs/VM/Classes .NET

        Au niveau des droit/licenses/open source :
        - On as les sources des classes java de SUN mais la license est restrictive, pas de sources de la VM et SUN détients des brevets que personne ne sait si quelqu'un les viole. Mais à mon avis SUN ne supprimeras pas la communautée OpenSource qui existe au tour de java juste pour le plaisir
        - On as les sources d'une implémentation de .NET de microsoft pour BSD mais pas de celle qui tourne sous windows, toutes les classes de bases, le C# et le MSIL sont standardisés à l'ECMA et bientôt à l'ISO (Avec un droit d'implémentation qui garantit que microsoft ne pouras pas se servir des brevets qu'elle possède dessus) par les classes spécifiques windows/microsoft ne sont pas standardisés et sont surement un champ de mine de brevets (Et contrairement à SUN à mon avis il y as des risques même si microsoft est connu pour ne jamais utiliser ses brevets pour attaquer d'autres sociétés)
        • [^] # Re: précisions

          Posté par  . Évalué à 2.

          Autre détail : l'implémentation libre de Java est vraiment, vraiment loin d'être prête ! Il est impossible de faire tourner la plupart des applis Java actuelles... Par contre, pour .Net, Mono est déjà assez avancé, il ne lui manque que quelques composants comme Windows.Forms dont l'implémentation est incomplète... Mono implémente d'ailleurs ses propres classes mais aussi suit le standard et tente d'implémenter les classes de micro$oft...
          • [^] # Re: précisions

            Posté par  . Évalué à 1.

            Voir aussi la dépêche de DLFP sur la sortie de Mono 1.0 Beta 1
            Entre 1 ou 2 trolls, les discussions contiennent de vrais arguments intéressants !
            http://linuxfr.org/2004/05/07/16201.html(...)
            (138 commentaires, le sujet est assez... chaud, on va dire)
          • [^] # Re: précisions

            Posté par  . Évalué à 2.

            Pour le java c'est vrai pour les normes récentes mais pour les un peu plus ancienne ça marche bien, eclipse tourne avec Classpath donc c'est dejà pas mal.

            Pour Mono/DotGNU bien sur qu'ils implémentent leurs propres API comme GTK#. System.Windows.Forms est un problème notement car ce namespace inclus des spécificités windows tels que les handles de fenêtres, les boucles de messages qui ne sont pas facilement interchangeables avec ce qui existe sous Linux, BSD et autre.
            A noter aussi la différence entre DotGNU et Mono : DotGNU as re-dévelopé une sur couche de X pour implémenter S.W.F là ou Mono utilise Wine (Qui en tant que layer d'émulation windows sait bien sur ce qu'est une boucle de message ou autre)
  • # Python

    Posté par  . Évalué à 2.

    Python est un langage de script qui a la particularité principale d'avoir des blocs distingués selon leur indentation, ce qui implique normalement une plus grande rigueur.
    Il est 100% orienté objet : même les fonctions sont objet ! Ceci permet d'appeler une fonction indifféremment avec un nombre qu'un texte...
    Il dispose d'un interpréteur assez pratique pour débugguer rapidement, et d'une collection honorable de modules (pas encore au niveau de Perl)
    Exemple de python :

    def une_fonction(x):
        "Commentaire : cette fonction affiche x et renvoie 1"
        print x
        return 1

    une_fonction("du texte")
    une_fonction(12345)
    print une_fonction.func_doc        # Affiche le commentaire de la fonction...
    • [^] # Re: Python

      Posté par  (site web personnel) . Évalué à 3.

      Il est 100% orienté objet : même les fonctions sont objet ! Ceci permet d'appeler une fonction indifféremment avec un nombre qu'un texte...

      euh, non rien à voir. Ça c'est parce que le langage est non-typé.
      • [^] # Re: Python

        Posté par  . Évalué à 1.

        Désolé !!!
        J'ai supprimé une phrase et j'ai oublié de corriger !
        Sinon, le reste j'ai bon ?
        Enfin, la possibilité de faire print une_variable_quelconque c'est du un peu au système objet avec l'attribut __str__ non ?
  • # Precisions pour CORBA

    Posté par  . Évalué à 2.

    Plus exactement, CORBA est une specification visant à faire communiquer des applications différentes via le réseau.
    On appelle "bus" le protocole IIOP qui sert de couche de transport entre ces applications. Donc tu peux comparer ca a un protocole RPC un poil plus fouille ... (sous Java, ca s'appelle RMI je crois)

    Il ne faut pas confondre avec par exemple le CLR de .NET qui permet de compiler des bouts d'application ecrits en diverses langages en une même application.

    Sinon, lisaac c'est quoi, tu peux en dire plus ? J'ai trouve des references a des OS sur le web, mais pas a un langage ... C'est un nouveau langage que tu developpes ?
    Je dis ca parce que je developpe moi meme un langage (pas a base de prototype mais a base de classe) ...
    • [^] # Re: Precisions pour CORBA

      Posté par  (site web personnel) . Évalué à 1.

      ---> http://www.isaacos.com(...)

      Lisaac est un langage objet à prototype développé au Loria (Inria Loraine) par Benoît Sonntag. Plus exactement c'est langage dans lequel tout est objet, les objets sont vivant dès la compilation(plus de classe à instancier, les objets se clonent) et qui peuvent changer de parent à l'exécution :

      - parent : OBJECT <-
      (
      + result : OBJECT;

      (flag_heritage).if {
      result := objetparent1;
      }
      else
      {
      result := objetparent2;
      }
      result //renvoi le parent sélectionné
      );

      Lisaac compile le code et génère du C ANSI compilable par gcc sur toute plateforme.

      Un OS d'architecture totalement nouvelle a été conçu avec ce langage (qui l'a été pour ça d'ailleurs), IsaacOS qui est un OS totalement et uniquement constitué d'objets dynamiquement interconnectés entre eux, plus de couches d'abstraction, etc... Tout objet du système est un driver ou une API pour les autres objets.

      Si ça t'interresse les transparents proposés sur le site t'éclaireront.
      L'objet à classe est déjà dépassé ;o)

      Cela dit bon courage :)

      « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Allons-Y

    Posté par  . Évalué à 8.

    J2EE : Ensemble metier pour la plateforme java. Fait tou et n'importe quoi y compris le café, mais en partageant les objets et les methodes au niveau des serveurs et en redistribuant le résultat au niveau des clients. (C'est vaste).

    EJB : enterprise java beans : Les java beans sont des modules de code java réutilisables, a mi chemin entre la librairie et le plug-in le beans a pour but de pouvoir etre appelée par n'importe qu'elle application java et de pouvoir fournir une interface simple.
    L'enterprise java beans c'est pareil avec en plsu des fonctions qui facilitent le déploiement sur un ensemble de serveur et bien sur les echanges de données entre serveurs du J2EE.

    .net : Ensemble de trucs qui font des choses. Un peu comme J2EE en moins bien défini et plus souple. .net est tour a tour une plateforme de dev, un systeme déployé, un gestionnaire de flux et un centraliseurs de données avec reporting suivi. Vaste on vous dit.

    COM : une super librairie qui peut être lié par plein de type de programmes différents (C, C++, C#, Java ou assembleur), et qui peut permettre l'echange de données entre différents processus.

    OLE :un genre de COM qui ne fait pour ainsi dire que de la mise en forme de données vers un format MS : le format OLE. Ca permet d'avoir un joli tableau quand on fait un copié-collé de Excel dans Word (bon pas que ca, mais au moins ca explique bien le coté mis een forme de données.) On eput utiliser des Objets OLE pour tout ce qui est données avec mise en formes, des resultats de requètes ODBC aux images vectorielles.

    DCOM : une supr Mega librairie qui en plus de faire tout ce que fait déja COM est capable d'adapter ses interfaces a son environnement toute seule comme une grande. A noter que le DCOM de type OCX sont encore plus mieux mega super, sur le réseau et il s'adaptent aussi a d'autres objets DCOMs auquel ils sont liés.

    PHP : Langage de programmation web pour serveur en mal de middleware, troll très courtisé aussi. Le PHP est le langage roi du web (taire mon opinion perso ici). Avec une syntaxe qui s'inspire du C, qui aimerait bien être orienté objet et manipuler les interfaces extérieures. Le PHP fait un peu fouilli/Patchwork. Un très bon langage pour dévelloper autre chose par dessus ceci dit.

    Python : Langage scripté a l'origine, multi-interprté/compilé/JITé aujourd'hui. Le python aurait du mourir etouffé après avoir essayé de bouffer un RUBY. Il n'en est rien. Un langage très cohérent avec lui même et qui possède pleins de bibliothèques. L'execution est suffisament rapide pour ne pas faire éclater de rire les gens quand on palre de faire totu un logiciel dans ce langage (N.B pour eviter que les gens eclatent de rire plsu tard, eviter l'interface Tk ... si si ).

    Perl : devait être un super Grep a la base, a mal tourné a cause de son utilisation en CGI sous la bonen epoque du web. Ce langage de scripts qui permet de triater et d'extraire des données d'un ensemble de fichiers, permet surtout de faire en trois lignes de codes des choses qui sont et restent totalement incompréhensibles pour le non initié. Faire une recherche sur One - Liner pour comprendre.

    Corba : Quand ton objet n'est pas DCOM et qu'il n'est pas non plus EJB mais que tu veux quand même y accéder depuis un autre ordi ou un programme ecrit dans un autre langage, c'est le moment de faire appel a ce système qui permet d'appeler a dsitance les methodes des bibliotheques d'a coté. Son gors défaut est de ne pas réussir a suivre les compilateurs dans la course folle qui a lieu en ce moment, il en résulte qu'il ne marche pas bien (surtout entre deux langages différents) et qu'il a du mal a décoller.

    RMI : Remote method invocation : C'est un corba light pour Java seulement, parceque des fois dévelloper des EJB ca gonfle.

    ORB brocker : le distributeur de fonctions corbas (ou presque). Orbit utilisé par gnome est un ORB brocker.

    JIT : Just in time : compilation a la volée effectuée uen fois que les tests sont résolus. Utilisé surtout pour compiler le Byte code d'une machine virtuelle en code natif plutot que de l'interpreter au fur et a mesure.

    C'est tout ce que je vois, tu devrais déjà pouvoir te rendre compte tout seul avec ces infos que ca ne sert a rien de lire 01....

    Kha

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.