¿Qué es una aplicación independiente? Principales plataformas y tecnologías

Necesitamos crear una aplicación independiente que contenga el motor del navegador. En realidad, está previsto que toda la lógica se escriba en JS y podría publicarse trivialmente en Internet, pero se necesita una conexión con otra aplicación que se ejecute en paralelo.

La primera sugerencia es utilizar el componente IE y no preocuparse por eso. Pero tal vez se pueda hacer algo con el motor FF, pero no puedo imaginar cómo. Escuché algo sobre XUL Runner, pero esto es algo diferente.

Si alguien puede explicar brevemente y proporcionar enlaces, estaría muy agradecido. Bueno, también se necesitan opiniones sobre la realidad y el significado de tales problemas)

Alexander alias Efreeti[expediente]
La funcionalidad multiplataforma completa no funcionará.

  1. se puede escribir en XUL (consulte con aquellos que lo saben), pero requerirá que Mozilla ejecute su aplicación, pero funcionará en casi todos los sistemas operativos compatibles con Mozilla.
  2. puede escribir una HTA (aplicación de hipertexto) solo para Windows utilizando todo el arsenal de capacidades de JScript y Windows Scripting Host.

No puedo dar enlaces exactos, ya que no conozco el primero, pero para obtener información sobre el segundo voy al sitio web de Microsoft para buscar.

Rumata[expediente]
La multiplataforma no es una prioridad, quiero usar FF por razones "ideológicas";)
En realidad, la pregunta la hizo alguien conocedor de XUL, pero HTA no es eso. Si usa IE, habrá una aplicación C++.

David Mzareulyan[expediente]
¿Cómo puedes entonces conectar esta aplicación con otra? No encontré ninguna información sobre la API externa en el sitio web.

XULRunner (basado en mi propia experiencia) es más que adecuado para el rápido desarrollo de clientes pesados ​​y aplicaciones independientes. Incluyendo interacción simple con una base de datos SQLite. En términos de comunicación con otras aplicaciones, ya sea TCP / IP o contenedores de consola (en este último caso hay un inconveniente: no se puede acceder a la salida estándar a través de nsIProcess). Dado que los detalles de la tarea no están claros, es difícil responder con más detalle.

Kirill[expediente], David Mzareulyan[expediente]
Necesito crear un programa con un navegador integrado (sin avance/retroceso y otras cosas), que al mismo tiempo pueda transferir datos desde un programa JavaScript de terceros que se ejecuta en este mismo navegador.

La opción más obvia (para mí) es el motor IE y un componente ActiveX autoescrito que da acceso a ese otro programa.
Pero quiero FF (o no IE). Estoy preguntando acerca de las opciones sobre cómo se puede hacer esto (y si es recomendable hacerlo).

Alexander alias Efreeti[expediente]
No soy partidario ni partidario de ciertos sistemas operativos.
Pero para su caso, JScript y el motor MSIE son más adecuados.

pregunta y fue formulada por un experto de XUL

Entonces tu pregunta suena un poco diferente.

VST (Tecnología de estudio virtual)– formato de complemento de audio introducido por Steinberg. El formato está bastante extendido y mucha gente sabe qué es y con qué se come... Pero todavía veo mensajes en foros como: “¿Qué es VST?” o “Instalé un instrumento VST, pero no funciona. Ni siquiera tiene un acceso directo en el escritorio o un exe…” etc. Entonces, en pocas palabras: qué es y cómo funciona.

¿Qué son los instrumentos Vst (VSTi)?

Fuente de audio controlada vía midi. Podría ser un sintetizador, sampler o rompler. Para que el complemento Vst funcione, necesita un programa host con el que pueda acceder a él.
Es simple: primero instale el programa anfitrión (por ejemplo: Sonar o Cubase, Nuendo, Fruity Loops, Logic, etc., etc.). Luego, instale la herramienta Vst, después de instalarla, inicie el programa host y úselo.

Un poco sobre el contenido de los propios complementos.

Como regla general, la base de un complemento VST es *.dll ( no ejecutable!) archivo, que, después de instalar la herramienta, se coloca en la carpeta con sus complementos VST.
Por ejemplo, si estás trabajando en Cubase, la ruta sería así:
C:\Archivos de programa\Steinberg\Vstplugins
Si está en Sonar, entonces así:
C:\Archivos de programa\Cakewalk\VstPlugins
Lo mismo para otros programas. Es decir, si está instalando un complemento Vst por primera vez y no está visible en (el programa host), primero que nada verifique la presencia de archivos DLL en esta carpeta.
Otro punto. Si hay archivos dll en el directorio de complementos VST, pero el complemento aún no está visible en el sistema, es posible que su DAW necesite escanear la carpeta para encontrar nuevos complementos, como lo haría, por ejemplo, si está trabajando en Sonar ( botón del complemento Volver a escanear).

Autónomo.

Estas son versiones independientes de complementos que no requieren un programa anfitrión. Con ellos, todo es completamente simple: después de la instalación, aparecen en el escritorio tanto un archivo exe como un acceso directo. Lanzado y trabajado. Un inconveniente. Puedes reproducir fácilmente los sonidos del instrumento instalado, pero aún necesitarás un programa anfitrión para grabar lo que tocas 

Efectos vs.

Como ya dije. Los instrumentos VST son fuentes de sonido. Los efectos Vst no producen sonidos; procesan el flujo de audio entrante. Todo lo demás es cierto según lo escrito anteriormente.

Dx, Dxi

Los instrumentos y efectos Dxi son una alternativa a VST, un formato desarrollado por Microsoft. No existen diferencias fundamentales; los formatos son idénticos en muchos aspectos. Muchos programas soportan igualmente complementos VST y Dxi, además, existen adaptadores Vst que pueden adaptarlos fácilmente para que funcionen en programas host compatibles con Dxi...
Además, en el shell al instalar muchos complementos, hay un menú en el que puede elegir en qué formato instalar el complemento.

Las tecnologías multiplataforma permiten la operación conjunta de varias plataformas de hardware y software en beneficio de las organizaciones de consumidores.

Arquitecturas de software básicas

Aplicaciones independientes

Generalmente pueden ser programas de servicio, utilidades del sistema, editores de texto y gráficos, compiladores, programas corporativos bastante simples. Un sistema de información corporativo desarrollado, por regla general, no puede constar de componentes separados y no relacionados.

Arquitectura cliente-servidor de dos niveles

Esta arquitectura se ha generalizado desde principios de la década de 1990 en medio del crecimiento del mercado de computadoras personales y la disminución de la demanda de mainframes. En una arquitectura cliente-servidor, el software se divide en dos partes: la parte cliente y la parte servidor. La tarea de la parte del cliente (programa cliente) es interactuar con el usuario, transferir la solicitud del usuario al servidor, recibir la solicitud de la parte del servidor (programa del servidor) y presentarla en un formato fácil de usar. El programa del servidor procesa las solicitudes de los clientes y emite respuestas. Ejemplos clásicos: tecnologías web (cliente-navegador, servidor-servidor web), trabajo con DBMS distribuido (cliente - un programa especial, servidor - servidor de base de datos). El desarrollo de la arquitectura cliente-servidor, y especialmente el surgimiento de las interfaces gráficas modernas, condujo primero al surgimiento de un tipo de arquitectura cliente-servidor llamado "arquitectura de cliente pesado" Aquí, la lógica de presentación de datos y la lógica de negocios se colocan en el cliente, que (por ejemplo, en el caso de que el servidor sea un DBMS) se comunica con la lógica de almacenamiento y acumulación de datos en el servidor mediante un lenguaje de consulta estructurado. SQL.Sin embargo, la necesidad de instalar " clientes gordos", que requiere una cantidad significativa de bibliotecas especiales y configuraciones de entorno especiales, en una gran cantidad de computadoras de usuario con diferentes entornos operativos, generalmente causa muchos problemas. Por lo tanto, como alternativa, también surgió una arquitectura de dos niveles. "con cliente ligero".En este caso, lo ideal es que el programa cliente implemente sólo una interfaz gráfica de usuario. (GUI) y envía/recibe solicitudes, y toda la lógica empresarial es ejecutada por el servidor. Idealmente, el cliente es simplemente un navegador de Internet, que está disponible en el entorno operativo estándar de cualquier computadora de usuario y no requiere configuración especial, instalación de software especializado, etc. Desafortunadamente, este esquema tampoco está exento de deficiencias, aunque solo sea porque el servidor a veces tiene que asumir funciones que no son típicas para implementar la lógica empresarial de la aplicación (por ejemplo, ¡el servidor DBMS tiene que realizar cálculos!)

Arquitectura de varios niveles

Inicio del proceso de desarrollo de software empresarial en arquitectura multicapa se estableció en el marco de la tecnología cliente/servidor. En ellos, junto con la parte cliente de la aplicación y el servidor de la base de datos, aparecieron los servidores de aplicaciones. (Servidores de aplicaciones).Idealmente:

  • el programa cliente implementa GUI,envía solicitudes al servidor de aplicaciones y recibe una respuesta de él,
  • el servidor de aplicaciones implementa la lógica empresarial y realiza solicitudes al servidor de "tercer nivel" (por ejemplo, un servidor de base de datos para datos),
  • el servidor de tercer nivel atiende solicitudes del servidor de aplicaciones.

Por tanto, el programa cliente puede ser "ligero". Las ventajas de esta arquitectura son obvias:

  • los cambios en cada enlace se pueden realizar de forma independiente;
  • se reduce la carga en la red, ya que los enlaces no intercambian grandes cantidades de información entre sí;
  • se garantiza el escalamiento y la sencilla modernización de los equipos y software que soportan cada uno de los enlaces, incluida la actualización del parque de servidores y equipos terminales, DBMS, etc.;
  • Las aplicaciones se pueden escribir en lenguajes estándar de tercera o cuarta generación ( Java, C/C++).

El siguiente paso lógico es aumentar aún más el número de enlaces, y aumentará no sólo debido a la partición, cuando cada uno de los enlaces técnicos conocidos es "más delgado", sino que todo el modelo de negocio se construye como uno multienlace. Los sistemas de software empresarial modernos son, por regla general, sistemas complejos de componentes que interactúan entre sí en diferentes niveles, cada uno de los cuales puede ser clientes para algunos componentes y servidores para otros.

El principal problema de los sistemas basados ​​​​en una arquitectura cliente-servidor de dos niveles, o más aún arquitectura multicapa, es que deben ser móviles en la clase más amplia posible de entornos de hardware y software. Incluso si nos limitamos UNIX- En las redes locales orientadas, diferentes redes utilizan diferentes equipos y protocolos de comunicación. Los intentos de crear sistemas que admitan todos los protocolos posibles conducen a sobrecargarlos con detalles de red en detrimento de la funcionalidad. Un aspecto aún más complejo de este problema está asociado con la posibilidad de utilizar diferentes representaciones de datos en diferentes nodos de una red local heterogénea. Diferentes computadoras pueden tener diferentes direcciones, representación numérica, codificación de caracteres, etc. Esto es especialmente importante para servidores de alto nivel: telecomunicaciones, informática, bases de datos.

Una solución general al problema de la movilidad de dichos sistemas es el uso de tecnologías que implementen protocolos de llamada a procedimientos remotos. (RPC - Llamada a procedimiento remoto de forma estandarizada e independiente de la plataforma. Cuando se utilizan tales tecnologías, acceder a un servicio en un nodo remoto parece una llamada a un procedimiento normal (métodos de objetos remotos). Medio RPC, que naturalmente contiene toda la información sobre las características específicas del equipo de red local y los protocolos de red, traduce la llamada en una secuencia de interacciones de red. Por lo tanto, los detalles del entorno y los protocolos de la red quedan ocultos para el programador de la aplicación.

Al llamar a un procedimiento remoto, programe RPC producir conversión de formato de datos cliente en formatos intermedios independientes de la máquina y luego conversión a formatos de datos del servidor. Al transmitir parámetros de respuesta, se realizan transformaciones inversas. Por lo tanto, si el sistema se implementa en base a un paquete estándar RPC Se puede transferir fácilmente a cualquier entorno abierto.

tecnología CORBA

CORBA (Arquitectura de intermediario de solicitud de objetos comunes)- este es un conjunto especificaciones abiertas interfaces, que define la arquitectura de la tecnología para la manipulación de objetos entre procesos y plataformas independientes. Los desarrolladores de estas interfaces son DIOS MÍO Y X/Abrir.

Grupo de gestión de objetos, Inc. (DIOS MÍO) es una organización internacional fundada en 1989, formada por más de 800 miembros: proveedores de sistemas de información, desarrolladores de software y usuarios. DIOS MÍO avanza la teoría y la práctica de la tecnología orientada a objetos en el campo del desarrollo práctico de software. Este proceso implica el desarrollo de estándares industriales y especificaciones de gestión de instalaciones para crear un marco común para el desarrollo de software. Los objetivos principales son: reutilización, portabilidad y interoperabilidad Software orientado a objetos en entornos distribuidos y heterogéneos. El soporte para estos estándares hace posible desarrollar aplicaciones heterogéneas que se ejecutan en todas las plataformas y sistemas operativos principales.

X/Abrir es una organización abierta, independiente y mundial respaldada por la mayoría de los mayores proveedores de sistemas de información, organizaciones de usuarios y empresas de software. X/Abrir desarrolla un entorno de sistema integral e integrado basado en estándares existentes y emergentes - Entorno de aplicaciones comunes (CAE).Componentes CAE definido en estándares X/CAE abierto.Objetivo principal CAE- creación de paquetes de interfaz de software (API) que se puede utilizar en la práctica manteniendo la máxima portabilidad a nivel de códigos fuente de programas. API También mejore la interoperabilidad de las aplicaciones al proporcionar definiciones y enlaces a protocolos y sus perfiles.

Las especificaciones anteriores se prueban minuciosamente y aquellas que pasan la prueba reciben premios. Marca X/Open (marca XPG),con licencia X/Abrir.

La infraestructura conceptual en la que se basan todas las especificaciones. DIOS MÍO,es Arquitectura de gestión de objetos (OMA).Incluido OMA Incluye una variedad de estándares estandarizados o en proceso de estandarización. DIOS MÍO servicios, servicios, muestras de software y plantillas (Servicios CORBA, instalaciones CORBA horizontales y verticales),lenguaje para definir interfaces de objetos distribuidos , mapeos estandarizados o estandarizables idl en lenguajes de programación y finalmente el modelo de objetos. CORBA.

Cualquiera puede implementar la tecnología según las especificaciones. Los productos de software creados, naturalmente, ya no son de código abierto, sino que se convierten en productos comerciales.

arquitectura CORBA

CORBA Define cómo los componentes de software distribuidos en una red pueden interactuar entre sí independientemente de los sistemas operativos y los lenguajes de implementación que los rodean. El elemento central de la arquitectura. CORBA es ORB (Agente de solicitud de objetos)- software que proporciona comunicación entre objetos, incluido el que permite

  • encontrar un objeto remoto por referencia de objeto (IOR - ,
  • llamar a un método en un objeto remoto, pasándole parámetros de entrada (parámetros de clasificación),
  • obtener el valor de retorno y los parámetros de salida (descomponer parámetros).

De este modo ORBE es el vínculo entre partes distribuidas de una tecnología basada CORBA sistema, permitiendo que una parte del sistema no se preocupe por la ubicación física de otras partes (objetos) del sistema. Presente en el mercado ORBE de diferentes fabricantes (por ejemplo, VisiBroker, WebLogic), pero todos cumplen con la misma especificación CORBA. Por lo tanto, en principio CORBA le permite construir sistemas distribuidos mientras usa simultáneamente ORBE diferentes fabricantes y construir el sistema simultáneamente en diferentes plataformas y diferentes protocolos de red (esto en terminología CORBA llamado interoperabilidad - interoperabilidad).En arquitectura CORBA Cada objeto cuyos métodos son accesibles para otros objetos (generalmente llamado objeto CORBA) tiene una referencia de objeto única en toda la red accesible. (IOR - Referencia de objetos interoperables) donde podrás contactar con él. Puede buscar objetos CORBA tanto por IOR como por nombres simbólicos si están registrados (normalmente durante la creación) en un servicio de nombres especial. (Servicio de nombre).Para acceder a los métodos de un objeto CORBA, este último tiene una interfaz abierta a todos los demás objetos CORBA. Las interfaces de los objetos CORBA generalmente se describen utilizando una especial definida por la especificación. CORBA idioma IDL (lenguaje de definición de interfaz). Fabricantes ORBE suministrado con ORBE así como utilidades que convierten descripciones de interfaces de objetos CORBA en construcciones de los lenguajes de programación correspondientes.

Base interoperabilidad es el protocolo GIOP - Protocolo general entre ORB, diseñado para la comunicación entre objetos y ORBE en línea. La estandarización del protocolo de comunicación permite a los desarrolladores de diversas partes del sistema corporativo no preocuparse por lo que utilizan. ORBax en otras partes ( ORBE dominios)

sistemas. Casi todos los ORBbi modernos se basan en IIOP - Protocolo inter-ORB de Internet(esta es una versión del protocolo común GIOP, que prevé su uso como protocolo de transporte. TCP/IP).

Especificación CORBA También proporciona una serie de servicios estandarizados. (Servicios CORBA) y Fondos Comunes horizontales y verticales (Instalaciones Comunes). Los servicios son objetos CORBA ordinarios con interfaces estandarizadas (y escritas en IDL). Estos servicios incluyen, por ejemplo, el servicio de nombres ya mencionado. NombreServicio, un servicio de mensajes que permite a los objetos CORBA intercambiar mensajes, un servicio de transacciones que permite a los objetos CORBA organizar transacciones. En un sistema real, no todos los servicios deben estar presentes; su conjunto depende de la funcionalidad requerida. Hasta la fecha sólo se han desarrollado 14 servicios de objetos.

Entre servicios de objetos e instalaciones compartidas. CORBA no hay un límite claro. Estos últimos también son objetos CORBA con interfaces estandarizadas. Instalaciones comunes se dividen en horizontales (comunes a todas las áreas de aplicación) y verticales (para un área de aplicación específica). Por ejemplo, desarrollado Instalaciones comunes para organizaciones médicas, para varias industrias, etc.




Arriba