Che cos'è un programma "wrapper"?

7

Dove lavoro, i dipendenti utilizzano un programma desktop di terze parti per i loro clienti. Questo programma salva i dati in un file flat. Il mio collega desidera scrivere un programma Java che carica quel file flat su un server remoto, apre il programma desktop quando il file flat viene scaricato da un sito Web e controlla se il programma desktop è in esecuzione o meno guardando i processi di Windows.

Continua a chiamare questo helper / programma di utilità un "wrapper". Ma non avvolge nulla! Ho provato a chiarirlo con lui, ma lui ha detto: "Beh, lo chiamo wrapper". Ora ha tutti in azienda chiamandolo "involucro". Come lo chiameresti? Dico che è un programma di supporto o un programma di utilità.

    
posta user6950 03.11.2010 - 06:24
fonte

8 risposte

9

Non penso che ci sia una definizione ufficiale! Nella mia mente, un programma wrapper è un programma che, in generale, inizia prima dell'avvio del programma avvolto e termina non prima di quando il programma è terminato. Un programma wrapper probabilmente gestirà anche la durata del programma spostato (avvialo per te, fermalo per te.)

Raccomando di non discutere troppo sui nomi delle cose, però. L'importante è progettare un software che funzioni bene. A volte la terminologia del buon lavoro può aiutare in questo obiettivo; a volte è un hobgoblin.

    
risposta data 03.11.2010 - 06:36
fonte
3

La terminologia non è così importante a meno che non venga utilizzata in modo errato e crei confusione. In questo caso, se un altro programma che è un programma wrapper venga introdotto agli utenti, questi verranno confusi perché vedranno due programmi descritti allo stesso modo, ma con funzionalità diverse.

Un esempio: un "classico" di ciò che ho visto più e più volte nei team di sviluppo è dove qualcuno inizia a scrivere classi stub o false per scopi di test. Ma li chiama "mock", anche usando la parola "mock" nei nomi delle classi. Cioè MockOfExternalThing. Non c'è nulla di sbagliato in questo, tranne che quando qualcun altro arriva e ha bisogno di usare un vero e proprio sistema di simulazione come EasyMock o Mockito. Ora i programmatori non possono dire con cosa hanno a che fare. Peggio ancora, gli sviluppatori che non hanno mai utilizzato alcun sistema di derisione prima di essere completamente confusi sul termine finto e sul significato.

Quindi nel tuo caso non mi preoccuperei troppo dell'altra persona che usa il termine wrapper, se e solo se pensi che sia improbabile che gli utenti vengano presentati con qualcos'altro che funziona in modo diverso, ma usa lo stesso termine.

    
risposta data 03.11.2010 - 07:03
fonte
3

Un wrapper è un livello, una porzione di codice, elementi che incapsulano la logica interna del processo o processo finale.

Possiamo dire che esistono due tipi principali di wrapper:

  • wrapper di astrazione : il principio è quello di nascondere / astrarre l'attività finale per essere il meno possibile associata ad essa (ad esempio, il chiamante del wrapper non ha bisogno di conoscere l'attività finale logica).

  • wrapper motore / controller : vengono utilizzati per aggiungere una logica specifica o di contesto che non può, o non deve, essere eseguita dall'attività finale.

Nota che un wrapper può raggiungere anche questi due obiettivi.

Può essere usato in molti casi ma su un programma, un programma wrapper è un "programma di avvio". Il suo obiettivo principale è avviare il programma figlio.

Può passare alcuni parametri di contesto al programma figlio, gestire le fasi di pre-lancio e di post-lancio, riavviare / spegnere il sistema, ecc ...

Può avviare il programma figlio come un nuovo processo o come un processo interno, ma l'esecuzione del programma wrapper è direttamente collegata all'esecuzione del programma figlio: se il wrapper si ferma, il programma figlio si ferma.

Per fare un confronto con un client di terze parti, a un client di terze parti non interessa il processo del programma figlio. È lì per mantenere i file del programma figlio / configurazione / roba ma non è responsabile della sua esecuzione anche se può avviarlo.

    
risposta data 03.11.2010 - 14:18
fonte
3

Se non riesce a spiegare perché lo chiama "programma wrapper", allora ha usato questa parola in modo intuitivo senza pensare troppo al nome. I nomi sono suoni e fumo - non discutere i nomi delle cose.

    
risposta data 19.02.2012 - 14:23
fonte
2

Mi sembra un servizio, non un involucro. I servizi sono queste piccole creature veglie che guardano da lontano per condizioni specifiche per saltare nella mischia e gestire un lavoro strano. Penso che il servizio sia tecnicamente una parola chiave riservata da Microsoft Windows, sebbene lo fosse anche il termine 'thread' fino a quando non è stato utilizzato in un contesto più ampio. Quindi sentiti libero di adattare quella parola. Almeno è più accurato del wrapper.

    
risposta data 03.11.2010 - 12:27
fonte
0

Ho sempre visto i wrapper come generalmente piccoli programmi che eseguono pre e post processing per qualche altro programma o procedura. Quindi in genere il wrapper sarà quello che effettua la chiamata al programma che sta eseguendo il wrapping.

Esempi del motivo per cui potresti fare questo:

  • Ti permette di impostare in modo programmatico le condizioni ambientali per il programma che viene chiamato in modo che siano sempre in una forma che rende il programma avvolto felice.

  • Ti consente effettivamente di mascherare la chiamata del programma avvolto, se lo desideri, dagli occhi dell'utente.

risposta data 03.11.2010 - 14:00
fonte
0

Un "wrapper" è qualsiasi cosa che vendite, gestione o marketing vogliano chiamare. Hai visto i nuovi spot pubblicitari reclamizzare Windows come "il cloud?" Esatto, hai la tua "piccola nuvola" proprio lì sul desktop ...

    
risposta data 03.11.2010 - 14:20
fonte
0

Se è spiegato in parole povere, che le persone non techie possono capire, non ci saranno problemi.

Da quanto ho capito, un programma wrapper è avvolto attorno a un programma standard per gestire i passaggi sofisticati o restrittivi per gli utenti finali come in un programma personalizzato che potrebbe aderire ai criteri aziendali.

    
risposta data 03.11.2010 - 07:46
fonte

Leggi altre domande sui tag