• Non ci sono risultati.

2.1 Software Communication Architecture (SCA)

2.1.6 Core Framework di SCA

Un framework è un insieme di classi e metodi che costituiscono un modello riutilizzabile per una specifica classe di software. SCA definisce nel Core Framework (CF) un insieme di interfacce che regolano la dislocazione e la gestione delle waveform e dei loro componenti. Queste interfacce determinano l’architettura e un livello del sistema dettagliato. Il CF SCA comprende:

• interfacce base per applicazioni;

• interfacce base per dispositivi;

• interfacce di framework di servizio;

• interfacce di framework di controllo;

• Domanin Profile.

Le interfacce SCA del CF sono definite nel CORBA IDL. Le relazioni tra le interfacce sono mostrate in modo semplificato in Fig. 2.4.

23

Fig. 2. 4 – Relazioni semplificate delle SCA CF IDL [17].

Base Application Interfaces

Nello SCA tutti i componenti della waveform sono tenuti a implementare le interfacce base d’applicazione. A livello più alto, di queste interfacce, c’è l’interfaccia Resource che fornisce un’interfaccia comune per la configurazione ed il controllo (come ad esempio in comportamento di start e stop) del componente software ed eredita le seguenti interfacce base:

LifeCycle è utilizzata per inizializzare e rilasciare una risorsa.

TestableObject fornisce le interfacce contenenti test di capacità.

PropertySet fornisce le operazioni per configurare e interrogare le

proprietà delle risorse.

PortSupplier fornisce l’operazione per ottenere il riferimento della

porta di un oggetto.

Le interfacce base di applicazione includono anche le interfacce Port e

ResourceFactory. La prima è utilizzata per connettere i componenti di tipo

Resource. La seconda è un’interfaccia opzionale usata per creare e abbattere le risorse, ed inoltre per fornire ai componenti le funzionalità di connessione e disconnessione necessarie per assemblare la waveform.

24

Più in dettaglio ogni interfaccia definisce i metodi utilizzati dal Domain Profile per istallare e controllare i componenti. La relazione tra le interfacce di applicazione è mostrata in Fig 2.5. È da notare che l’interfaccia Resource è creata da ResourceFactory.

Fig. 2. 5 – Diagramma delle relazioni delle interfacce di applicazione [8].

Interfaccia PortSupplier

Le porte provide ereditano dall’interfaccia PortSupplier l’operazione getPort() che è usata per ottenere una specifica porta da un componente (per esempio è utilizzata da connectPort() ).

Interfaccia lifeCycle

Definisce due operazioni, inizialize() per settare un componente ad un preciso stato iniziale, e releaseObject() per deallocare un componente quando questo non è più necessario.

Interfaccia Port

Un sistema SCA è composto da più componenti che comunicano fra loro attraverso le porte. Queste porte ereditano dalla classe Port due operazioni per instaurare le comunicazioni: connectPort() e disconnectPort(). Quando una

25

waveform è installata, tutte le connessioni tra componenti devono essere impostate. Supponiamo per esempio di voler stabilire una connessione tra la porta

use sul componente A e la porta provide sul componente B. Durante l’istallazione

il metodo connectionPort() è chiamato sulla porta use di A e la connessione con la porta provide di B è stabilita. Per recuperare il riferimento di B, SCA chiama il

Naming Service del Domain Manager (vedi Frame Control Interfaces).

Interfaccia PropertySet

È usata per accedere alle proprietà dei componenti. Essa definisce due operazioni: configure() che esegue runtime la configurazione delle proprietà, e query() per leggere il valore della proprietà di un componente.

Interfaccia TastableObject

È ereditata da un componente per eseguire test di costruzione. Il progettista del sistema può usare l’operazione di runTest() per testare il componente, per esempio per cercare errori all’interno del componente.

Interfaccia Resource

Ogni componente software nelle waveform SCA eredita l’interfaccia di Resource; questa a sua volta eredita i vari metodi da LifeCycle, TastableObject, PortSupplier, e PropertySet. Resource fornisce due operazioni: start() e stop(). Questi permettono di avviare e arrestare il componente (come ad esempio avviare o arrestare la generazione di un segnale).

Interfaccia ResourceFactory

L’interfaccia Resource può esere creata attraverso ResourceFactory. Inoltre ResourceFactory deve essere utilizzata per abbattere Resource.

Base Device Interfaces

Queste interfacce consentono l’interazione con il dispositivo hardware (device) fornendo un proxy al resto del framework. Questa astrazione permette la comunicazione fra elementi che non sono CORBA e il resto del framework. Queste sono le interfacce di particolare interesse per gli ingegneri dell’hardware e gli sviluppatori dei driver, ed includono le interfacce:

26

Device che fornisce una rappresentazione logica del dispositivo

hardware. Essa deriva dall’interfaccia Resource ma la estende per fornire la gestione dello stato e della capacità (alloca e dealloca capacità). Un ASIC o una parte di hardware è un tipico esempio di hardware fisico rappresentato da questa interfaccia;

LoadableDevice che estende le funzionalità di Device. Aggiunge

funzioni di caricamento e scaricamento che modificano (in esecuzione) il comportamento del dispositivo fisico. FPGA e DSP sono tipici esempi di componenti hardware rappresentati da questa interfaccia;

ExecutableDevice che estende l’interfaccia LoadableDevice

permettendo l’esecuzione e la terminazione di risorse. Un tipico esempio di dispositivo rappresentato da questa interfaccia è il GPP. In realtà ogni processore con capacità di multithread può essere rappresentato da questa interfaccia;

AggregateDevice è usata per rappresentare dispositivi composti,

che formati da più dispositivi logici sono presentati al dominio come una singola interfaccia.

Framework Control Interfaces

Queste interfacce forniscono al Core Framework funzionalità di gestione e controllo sull’intero dominio. Ci sono quattro interfacce in questa categoria:

ApplicatioFactory, Application, DeviceManager, e DomainManager.

L’interfaccia ApplicationFactory è usata per creare istanze di una specifica waveform. Essa ottiene istruzioni di assemblaggio dal Domain Profile. Queste istruzioni includono una lista dei componenti che costituiscono la waveform, la loro ubicazione e le loro rispettive connessioni. ApplicatioFactory trova il giusto Device basandosi sulle capacità disponibili, lancia il componente, stabilisce le rispettive connessioni ed esegue la configurazione e inizializzazione iniziale. La Fig. 2.6 mostra graficamente le operazioni semplificate dell’ApplicatioFactory.

27

Fig. 2. 6 – Operazioni dell’Application Factory [17].

Dopo aver creato l’applicazione, ApplicationFactory ritorna con un istanza creata dall’interfaccia Application. Questa interfaccia fornisce un contenitore per tutte le risorse nella waveform, permettendo la configurazione della waveform e le indagini di stato di ogni singola interfaccia. Questa interfaccia è anche responsabile di terminare l’applicazione, rilasciando tutte le risorse usate e restituendo al dispositivo host le capacità assegnate.

L’interfaccia DeviceManager è utilizzata per gestire l’insieme dei dispositivi logici. Solitamente questa interfaccia è usata per rappresentare una board abilitata al CORBA. Quando istanziata, l’interfaccia DeviceManager crea il file system per la board che rappresenta e lancia tutti i dispositivi logici sotto suo controllo. DeviceManager inoltre ottiene l’ubicazione del DomainManager e si registra come parte del dominio radio di quest’ultimo.

L’interfaccia DomainManager controlla e mantiene lo stato generale della radio. Essa crea il FileManager che conterrà il (o i) file system di ogni DeviceManager registrati sotto il suo dominio. DomainManager imposta il naming_context per la radio nel naming_service di CORBA. Inoltre DomainManager fornisce un’interfaccia di registrazione per l’interfacce DeviceManager, Device, Application e Service, gestisce l’accesso ai

28

DeviceManager registrati e alle applicazioni istallate e fornisce l’interfaccia utente.

Framework Services Interfaces

Queste interfacce sono utilizzate per eseguire tutte le operazioni relative ai file. Permettono di accedere ai file attraverso la piattaforma SCA distribuita:

File fornisce l’accesso e le operazioni base a file individuali

all’interno del dominio radio. Ad esempio lettura, scrittura, chiusura;

FileSystem permette l’acceso remoto a file system fisici e la

creazione, cancellazione, copia e così via dei file. Tipicamente il FileSystem è limitato a una parte di hardware o a un singolo sistema operativo (OS Operating System);

FileManager permette la gestione di molteplici e distribuiti

FileSystem. Questo può essere visto come un file system root che monta e smonta gli altri file system.

Domain Profile

Tutta l’informazione relativa alle applicazioni e alle piattaforme all’interno di SCA è racchiusa nell’insieme di file chiamato Domain Profile. Questi file descrivono le interfacce, i modelli di capacità, le proprietà, le interdipendenze, l’interconnessioni, e le ubicazioni logiche di ogni componente all’interno del dominio. Queste informazioni sono descrtitte in linguaggio XML (eXtensible Markup Language) [Appendice]. Le relazioni fra i descrittori del Domain Profile è mostrata in Fig. 2.7.

29

Fig. 2. 7 –Relazioni tra i descrittori del Domain Profile [17].

I file Software Package Descriptor (SPD) descrivono i componenti software e la loro implementazione. Le interfacce fornite ed usate da ogni componente sono descritte nei file Software Component Descriptor (SCD), e un riferimento di questo file è incluso nel SPD. Le proprietà di ogni componente sono descritte nei file Properties Descriptor (PRF). Per proprietà si intende la rappresentazione di ogni caratteristica, logica e fisica del componente.

La waveform, o le waveform, sono descritte nel file Software Assembly Descriptor (SAD), che include una lista dei componenti che compongono ogni waveform, le connessioni fra loro, e gli specifici requisiti di dislocazione e configurazione. Il file SAD contiene un file SPD per ogni componente della waveform.

Le caratteristiche della piattaforma sono descritte nel file Device Package Descriptor (DPD) e Device Configuration Descriptor (DCD); entrambi questi file sono noti come Device Profile. Ogni componente hardware è descritto con il file DPD e il file SPD. Il file DPD inoltre contiene il file PRF, che descrive le caratteristiche del dispositivo come serial number, tipo di processore, capacità. Il file DCD contiene una lista dei dispositivi inizialmente dislocati dal

30

DeviceManager all’accensione e l’informazione necessaria per localizzare il DomainManager.

Documenti correlati