¿Qué es un programa "wrapper"?

7

Donde trabajo, los empleados utilizan un programa de escritorio de terceros para sus clientes. Este programa guarda los datos en un archivo plano. Mi colega quiere escribir un programa Java que carga ese archivo plano a un servidor remoto, abre el programa de escritorio cuando se descarga el archivo plano desde un sitio web y comprueba si el programa de escritorio se está ejecutando o no mirando los procesos de Windows.

Él sigue llamando a este programa de ayuda / utilidad "envoltorio". ¡Pero no envuelve nada! Traté de aclararlo con él, pero él dijo: "Bueno, lo llamo una envoltura". Ahora tiene a todos en la compañía llamándolo "envoltorio". ¿Como lo llamarias? Yo digo que es un programa auxiliar o un programa de utilidad.

    
pregunta user6950 03.11.2010 - 06:24

8 respuestas

9

¡No creo que haya una definición oficial! En mi opinión, un programa de envoltura es un programa que, en general, se inicia antes de que se inicie el programa de enrollado, y no se cierra antes de que se cierre el programa. Es probable que un programa contenedor también administre la vida útil del programa envuelto (inícielo por usted, deténgalo por usted).

Sin embargo, recomiendo no discutir demasiado sobre los nombres de las cosas. Lo importante es diseñar software que funcione bien. A veces, la terminología de elaboración puede ayudar en este objetivo; a veces es un hobgoblin.

    
respondido por el Mike Clark 03.11.2010 - 06:36
3

La terminología no es tan importante a menos que se use incorrectamente y cree confusión. En este caso, si otro programa que es un programa de envoltorio se introduce a los usuarios, se confundirán porque verán dos programas descritos de la misma manera, pero con una funcionalidad diferente.

Un ejemplo: un "clásico" de esto que he visto una y otra vez en los equipos de desarrollo es donde alguien comienza a escribir clases de stub o falsas con fines de prueba. Pero los llama "simulacros", incluso usando la palabra "simulacro" en los nombres de las clases. Es decir. MockOfExternalThing. No hay nada de malo en esto, excepto que cuando alguien más aparece y necesita usar un marco de burla real como EasyMock o Mockito. Ahora los programadores no pueden decir con qué están tratando. Peor aún, los desarrolladores que no han usado ningún marco de burla antes de confundirse completamente con el término simulacro y lo que significa.

Por lo tanto, en su caso, no me preocuparía demasiado que el otro usuario use el término envoltorio, solo si cree que es poco probable que los usuarios reciban otra cosa que funcione de manera diferente, pero que use el mismo término.

    
respondido por el drekka 03.11.2010 - 07:03
3

Una envoltura es una capa, porción de código, cosas que encapsulan la lógica interna de la tarea final o el proceso.

Podemos decir que hay dos tipos principales de envoltorios:

  • envoltorios de abstracción : el principio es ocultar / abstraer la tarea final para que esté lo menos ligada posible (es decir, la persona que llama al envoltorio no necesita saber la tarea final) lógica).

  • envoltorios de motor / controlador : se usan para agregar una lógica específica o de contexto que no puede (o no se supone que se haga) en la tarea final.

Tenga en cuenta que un contenedor también puede lograr estos dos objetivos.

Se puede usar en muchos casos, pero sobre un programa, un programa contenedor es un "iniciador de programa". Su objetivo principal es lanzar el programa infantil.

Puede pasar algunos parámetros de contexto al programa hijo, manejar los pasos previos al lanzamiento y posteriores al lanzamiento, reiniciarlo, apagarlo, etc. ...

Puede iniciar el programa hijo como un proceso nuevo o como un proceso interno, pero la ejecución del programa contenedor está directamente vinculada a la ejecución del programa hijo: si el contenedor se detiene, el programa hijo se detiene.

Para compararlo con un cliente de terceros, a un cliente de terceros no le importa el proceso del programa hijo. Está allí para mantener los archivos / configuración / cosas del programa hijo, pero no es responsable de su ejecución, incluso si puede iniciarlo.

    
respondido por el JoeBilly 03.11.2010 - 14:18
3

Si no puede explicar por qué llama a esto un "programa de envoltura", entonces usó esta palabra intuitivamente sin pensar demasiado en el nombre. Los nombres son sonidos y humo, no discutas sobre los nombres de las cosas.

    
respondido por el user48060 19.02.2012 - 14:23
2

Me suena como un servicio, no un envoltorio. Los servicios son estas pequeñas criaturas de la vigilia que observan desde lejos las condiciones específicas para saltar a la refriega y manejar algún trabajo extraño. Creo que el servicio es técnicamente una palabra clave reservada por Microsoft Windows, aunque también lo era el término 'hilo' hasta que se usó en un contexto más amplio. Así que siéntete libre de adaptar esa palabra. Al menos es más preciso que la envoltura.

    
respondido por el Neil 03.11.2010 - 12:27
0

Siempre he visto las envolturas como programas generalmente pequeños que realizan el procesamiento previo y posterior de algún otro programa o procedimiento. Por lo general, la envoltura será la que realice la llamada al programa que está envolviendo.

Ejemplos de por qué puede hacer esto:

  • Le permite configurar de manera programática las condiciones del entorno para el programa al que se llama, para que siempre estén en una forma que haga feliz al programa envuelto.

  • Le permite efectivamente enmascarar la llamada del programa envuelto, si así lo desea, desde los ojos del usuario.

respondido por el Kavet Kerek 03.11.2010 - 14:00
0

Una "envoltura" es lo que las ventas, la administración o el marketing quieran llamar. ¿Has visto los nuevos anuncios publicitarios que promocionan a Windows como "la nube"? Así es, obtienes tu propia "pequeña nube" allí mismo en el escritorio ...

    
respondido por el wheaties 03.11.2010 - 14:20
0

Si se explica en términos sencillos, que las personas que no son expertos en tecnología pueden entender, no habrá ningún problema.

A mi entender, un programa de envoltura se envuelve alrededor de un programa estándar para manejar los pasos sofisticados o restrictivos para los usuarios finales como en un programa personalizado que tal vez se adhiera a las políticas de la compañía.

    
respondido por el Digital Dude 03.11.2010 - 07:46

Lea otras preguntas en las etiquetas