Les conférences 2011: sortez vos calendriers !

Voici une liste des conférences intéressantes sur notre thème du Java pour les applications temps réels et / ou embarquées :

Si vous connaissez d’autres conférences, je peux les rajouter ici.

A bâtons rompus avec Fred Rivard (IS2T)

En ce moment, j’aime trouver et lire des articles sur Internet. Je viens de tomber sur A bâtons rompus avec Fred Rivard (IS2T) que je trouve très intéressant.

L’article porte sur Fred RIVARD de la société IS2T et parle principalement des avantages que Java peut apporter dans les systèmes embarqués et notamment dans les micro contrôleur 32 bits qui envahissent de plus en plus notre quotidien.

La société IS2T, basée à Nantes, propose des outils spécifiques pour les systèmes Java embarqués :

  • MicroEJ : atelier de développement applicatif Java intégré à Eclipse
  • MicroBSP : customisation de plateformes Java
  • ESR : librairies métiers optimisées

Bonne lecture !

La technologie Java est prête à embarquer

Voici un article de février 2008 sur www.mesures.com : La technologie Java est prête à embarquer

L’article aborde les sujets suivants :

  • Java est de plus en plus utilisé dans l’industrie
  • Une application développée avec ce langage peut être portée sur n’importe quelle plate-forme matérielle sans recompilation
  • Des solutions existent pour adapter Java aux contraintes temps réel
  • L’empreinte mémoire peut être réduite pour les petits micro contrôleurs
  • Java remplace déjà les langages C et Ada pour certaines applications critiques

J’aime particulièrement le paragraphe intitulé « Se débarrasser des idées reçues ».

De plus, l’article mentionne ceci dans le domaine du transport, de la défense et de l’ avionique : « Ces secteurs qui ont travaillé très longtemps avec des langages très poussés et spécialisés tels que l’Ada commencent à connaître une pénurie d’ingénieurs qualifiés. Ils étudient de près les capacités “safety critical” de Java et les certifications (DO-178B en tête)  qui seront bientôt disponibles. »

Effectivement, le grand challenge de Java pour pénétrer ces marchés à fortes contraintes, est la certification DO-178B mais cela reste complexe encore aujourd’hui.

Les deux spécifications permettant de certifier une application Java avec la norme DO178-B sont :

Bonne lecture !

RT-SIMEX : Retro-ingénierie de Traces d’analyse de SIMulation et d’EXécution de systèmes temps-réel

En flânant sur le web, je viens de découvrir l’outil RT-Simex qui semble ne plus être maintenu depuis fin 2009.

L’objectif semblait pourtant intéressant, je cite : l’ambition générale d’amélioration des méthodes et outils de conception de logiciels embarqués. Il a pour objet le développement de techniques permettant de relier entre elles différentes prédictions et observations du comportement temps-réel de logiciels.

Les comportements attendus sont définis formellement au niveau d’un modèle de conception. Nous utiliserons le profil UML/MARTE, et plus particulièrement les mécanismes d’annotation, et le modèle de temps.

Les observations du logiciel sont matérialisées notamment par des « traces d’exécution », qui constituent des données brutes qu’il s’agit de traiter, analyser, corréler, et présenter à l’utilisateur sous une forme aussi commode que possible, à des fins de vérification, validation, et localisation de défauts.

Jazelle où comment faire exécuter du bytecode par un ARM

La technologie Jazelle se divise en deux :

  • Jazelle DBX (Direct Bytecode eXecution) permet à des processeurs ARM d’exécuter du bytecode directement. Jazelle fut spécifié dans l’architecture ARMv5TEJ et le premier processeur utilisant cette technologie fut le ARM926EJ-S, la lettre J indiquant que c’est une carte exécutant du Java. ARM affirme que près de 95% du code d’une application Java peut être exécuté par la technologie Jazelle.
  • Jazelle RCT (Runtime Compilation Target) supporte la compilation Ahead-Of-Time (AOT) et la compilation Just-In-Time (JIT) du code Java.

Voici quelques liens pour creuser le sujet :

Cela montre un réel effort chez ARM qui souhaite accélérer l’exécution du code Java afin d’améliorer les performances sur les téléphones portables et tablettes PC équipés de leurs processeurs.

Analyse de la méthode values() des énumérés

Un collègue me demande si la méthode values() des énumérés ne créé pas de nouveau objet. N’étant pas sûr de ma réponse, je me lance donc dans l’analyse.

La classe Enum de Java comporte une méthode values() pour récupérer toutes les valeurs de l’énuméré dans un tableau, prenons l’exemple de code suivant :

public enum Days {Monday, Tuesday};
 
public EnumValues() {
   Days.values();
}

L’analyse du bytecode montre uniquement un appel à l’opcode INVOKESTATIC :

LINENUMBER 7 L1
INVOKESTATIC EnumValues$Days.values()[LEnumValues$Days;
POP

Mais où est donc le code de la méthode values() ?

(Lire la suite…)

Littérature sur le Java temps réel

Voici quelques livres qui traitent de Java temps réel :

  • The Real-Time Specification for Java de Greg BOLLELLA, James GOSLING, Benjamin BROSGOL, Peter DIBBLE, Steve FURR, David HARDIN, Mark TURNBULL
  • Real-Time Java Programming With Java RTS de Eric Jean BRUNO et Greg BOLLELLA
  • Real-Time Java Platform Programming de Peter DIBBLE
  • Concurrent and Real-Time Programming in Java de Andy WELLINGS

Bonne lecture !

(Lire la suite…)