Definite da standard OMG per C++, COBOL, Java.
Necessarie per costruire compilatori IDL, ma …
… il programmatore applicativo deve conoscerle, relativamente ad aspetti quali:
Criteri generali della traduzione da IDL a Java
Per ogni tipo primitivo tipoT del linguaggio IDL, sono riservati gli identificatori TipoTHolder e TipoTHelper, con la particolarità dunque che l’iniziale del nome del tipo viene convertita in maiuscolo. Per esempio, l’identificatore StringHolder relativo al tipo IDL string è riservato.
Per ogni tipo d’utente T definito in una specifica IDL, sono riservati gli identificatori THolder e THelper.
Per ogni interfaccia I definita in una specifica IDL, sono riservati gli identificatori IOperations, IPOA, IPOATie e IPackage.
Gli identificatori di attributi e operazioni che collidono con i nomi dei metodi dichiarati nel classe di libreria Java java.lang.Object.
Sono riservati gli identificatori che collidono con le parole chiave Java.
Un’interfaccia IDL I viene tradotta in una coppia di interfacce Java:
Vengono inoltre generate:
Per ogni dichiarazione IDL:
attribute T x;
vengono generati i seguenti metodi dell’interfaccia Java IOperations:
Ogni operazione IDL definita in un’interfaccia I viene tradotta in un metodo omonimo dell’interfaccia Java IOperations.
Il corpo di tali metodi va implementato dal programmatore della classe servente.
Java non consente di definire classi in un’interfaccia.
Nomi di tipo (struct, exceptions, …) definiti in un’interfaccia IDL I diventano classi, inserite in un package denominato IPackage.
Un modulo IDL viene tradotto in un package Java.
Le dichiarazioni nel modulo sono inserite nel package.
Moduli nidificati sono tradotti in gerarchie di package.
Esempio:
// IDL – gerarchia di moduli
module org {
module omg {
module CORBA { … };
… };
…
};
package org.omg.CORBA;
…
Le eccezioni d’utente diventano classi Java
Sottoclassi della classe di libreria CORBA org.omg.CORBA.UserException.
Una variabile membro per ciascun campo della exception.
Devono essere gestite dal programmatore in blocchi try – catch.
Le eccezioni di sistema sono sottoclassi della classe di libreria Java java.lang.RuntimeException.
La gestione può essere demandata alla piattaforma Java.
Una dichiarazione valuetype IDL viene tradotta in Java in una omonima classe astratta pubblica, contenente:
2. La modellazione a oggetti e il linguaggio UML (richiami)
3. Generalità su Java e la programmazione ad oggetti
6. Regole di traduzione da UML a Java/C++
7. Programmazione multi-thread
8. Sincronizzazione tra thread
9. Programmazione client-server con socket TCP/IP (Java networkin...
10. Programmazione di applicazioni client-server: il Pattern Proxy...
12. Design Patterns
13. Pattern architetturali - Esempi
14. Design pattern creazionali. Esempi
15. Design pattern strutturali. Esempi
16. Introduzione alle tecnologie middleware
17. Modelli di middleware: RPC, MOM, TP, TS