stringtranslate.com

VME de la CCI

VME ( Virtual Machine Environment ) es un sistema operativo para mainframes desarrollado por la empresa británica International Computers Limited (ICL, ahora parte del grupo Fujitsu ). Originalmente desarrollado en la década de 1970 (como VME/B , más tarde VME 2900 ) para manejar los nuevos mainframes de la serie 2900 de ICL , el sistema operativo ahora se conoce como OpenVME e incorpora un subsistema Unix , y se ejecuta en mainframes de la serie 39 y Trimetra de ICL [1] , así como en servidores x64 estándar de la industria . [2]

Orígenes

El programa de desarrollo del sistema New Range comenzó con la fusión de International Computers and Tabulators (ICT) y English Electric Computers en 1968. Una de las decisiones fundamentales fue que contaría con un nuevo sistema operativo. En ICL se llevaron a cabo diversos estudios de viabilidad y diseño, siendo los tres más destacados:

El arquitecto principal de VME/B fue Brian Warboys , quien posteriormente se convirtió en profesor de ingeniería de software en la Universidad de Manchester . Se pueden ver varias influencias en su diseño, por ejemplo, Multics y el sistema operativo George 3 de ICL ; sin embargo, fue diseñado esencialmente desde cero.

VME/B fue visto principalmente como un competidor del mainframe IBM System/370 como sistema operativo comercial y adoptó la codificación de caracteres EBCDIC . [3]

Historia

Cuando se lanzó por primera vez New Range en octubre de 1974, su sistema operativo se conocía como "Sistema B". Cuando se entregó por primera vez, se había convertido en "VME/B". [4]

VME/K (originalmente conocido internamente como "System T" por "Tiny") fue desarrollado independientemente (según Campbell-Kelly, "por capricho de Ed Mack"), y fue entregado más tarde con los mainframes más pequeños como el 2960. En ese momento VME/B todavía estaba plagado de problemas de rendimiento y confiabilidad, y el equipo de administración principalmente estadounidense tenía dudas al respecto.

También hubo un proyecto conocido como System D, que era un sistema operativo avanzado y altamente modular diseñado para configurar y crear aplicaciones personalizadas casi en tiempo real. Aunque se utilizó para presentar una oferta por un sistema para British Rail, posteriormente se canceló debido a limitaciones de recursos de ingeniería.

ICL había vendido un gran sistema a la Agencia Espacial Europea para procesar datos de Meteosat en su centro de operaciones de Darmstadt . Se desarrolló in situ una variante a medida de VME/K, conocida como VME/ESA, para satisfacer los requisitos del cliente.

Tras una crisis financiera en 1980, se incorporó una nueva dirección a ICL: Christophor Laidlaw como presidente y Robb Wilmot como director general. Una de las primeras decisiones de la nueva dirección fue abandonar el VME/K. [5] Así, en julio de 1981, se lanzó el VME 2900. [4] : 340  Aunque se presentó a la base de clientes como una fusión de VME/B y VME/K, en realidad era la base VME/B con algunas características seleccionadas del VME/K incorporadas. Esto proporcionó la oportunidad de eliminar algunas características obsoletas, que permanecieron disponibles para los clientes que las necesitaban en forma de la opción "BONVME". [ cita requerida ]

El sufijo "2900" se eliminó en la versión del sistema 213 (SV213) cuando ICL lanzó la Serie 39 en 1985 como sucesora de la serie 2900 original, y el prefijo "Open" se agregó después de SV294. VME se volvió capaz de alojar aplicaciones escritas originalmente para Unix a través de un subsistema basado en UNIX System V Release 3 , llamado VME/X, adaptado para ejecutarse bajo VME y utilizando la codificación de caracteres ASCII . [6] [7] [8] ICL había anunciado originalmente una instalación Unix alojada para VME en 1985, con disponibilidad y soporte para aplicaciones estratégicas que llegarían dentro de dieciocho meses. [9] Se informó que esta instalación, que soportaba SVR1 , estaba en "pruebas de campo" y se actualizaría a SVR2 antes de un lanzamiento general en el verano de 1987. [10] Luego se anunció una disponibilidad limitada para los clientes existentes de VME, y se orientó a otros hacia la gama Clan de sistemas departamentales Unix de ICL. [11] En octubre de 1987, ICL hizo disponible la versión SV221 de VME con soporte para ejecutar SVR2 como un invitado del sistema Unix VME. [12] Esta implementación, descrita como un producto "no comercializado" también conocido como VNS, informó el diseño de VME/X, una implementación en gran parte nueva que fue lanzada en 1991 y reconocida como compatible con XPG3, con compatibilidad con XPG4 base 1 a continuación en 1992. [8] : 489–490 

En 2007, Fujitsu anunció una versión de VME ejecutada como un subsistema alojado, llamado superNova , dentro de Microsoft Windows , o SUSE o Red Hat Enterprise Linux en hardware x86-64 . [2]

En 2012, el grupo de usuarios de VME, AXiS, anunció que después de casi 40 años se disolvería debido a la reducción de su base de usuarios. [13]

Fujitsu tenía la intención de brindar soporte a VME en las computadoras de los clientes hasta 2020. [14]

En 2020, Fujitsu transfirió 13 aplicaciones de HM Revenue and Customs desde sus computadoras a la plataforma de alojamiento virtual administrado VME de Fujitsu. [15] [16]

A partir de 2021, el Departamento de Trabajo y Pensiones reemplazó por completo sus sistemas basados ​​en VME, tras la finalización de su galardonado programa de reemplazo VME-R. [17]

Arquitectura

VME está estructurado como un conjunto de capas, cada una de las cuales tiene acceso a recursos en diferentes niveles de abstracción. Los recursos virtuales proporcionados por una capa se construyen a partir de los recursos virtuales ofrecidos por la capa inferior. El acceso a los recursos de cada capa se controla a través de un conjunto de niveles de acceso: para que un proceso utilice un recurso en un nivel de acceso particular, debe tener una clave de acceso que ofrezca acceso a ese nivel. El concepto es similar a los "anillos de protección" en Multics . La arquitectura permite 16 niveles de acceso, de los cuales los 6 más externos están reservados para el código de nivel de usuario.

Ortogonalmente a los niveles de acceso, el sistema operativo pone recursos a disposición de las aplicaciones en forma de una máquina virtual (VM). Una VM puede ejecutar múltiples procesos. En la práctica, una VM en VME se acerca más al concepto de un proceso en otros sistemas operativos, mientras que un proceso VME (o un subproceso creado por la aplicación) es más como un hilo en otros sistemas. Sin embargo, los procesos que se ejecutan dentro de una VM no pueden ejecutarse simultáneamente y, por lo tanto, se parecen a los hilos de usuario que se encuentran en otros sistemas. [18] :  32 Una instrucción dedicada está involucrada en la transferencia de control entre procesos que comparten la misma VM. [8] :  483

La asignación de recursos a una máquina virtual utiliza un modelo de pila: cuando se vacía la pila, se liberan todos los recursos asignados a ese nivel de pila. Por lo tanto, las llamadas desde una aplicación al sistema operativo se realizan mediante una llamada que conserva la misma pila de procesos, pero con un cambio en el nivel de protección; la eficiencia resultante de las llamadas al sistema es una de las características que hace que la arquitectura sea competitiva.

La comunicación entre máquinas virtuales se logra mediante eventos (canales de comunicación con nombre) y áreas de memoria compartida. La arquitectura de hardware también proporciona instrucciones de semáforo INCT (incremento y prueba) y TDEC (prueba y decremento).

Los archivos y otros objetos persistentes se registran en un repositorio llamado Catálogo. La jerarquía de nombres de los archivos es independiente de la ubicación de un archivo en una cinta o volumen de disco en particular. En una época en la que había más necesidad de almacenamiento sin conexión, esto facilitó el seguimiento de los archivos independientemente de su ubicación y el traslado de archivos entre ubicaciones sin cambiarles el nombre. Además de los archivos, el Catálogo realiza un seguimiento de los usuarios y grupos de usuarios, volúmenes, dispositivos, conexiones de red y muchos otros recursos. Los metadatos de los archivos se pueden almacenar en un objeto llamado Descripción de archivo. El Catálogo fue probablemente el primer ejemplo de lo que más tarde se llamaría una base de datos entidad-relación .

Las interrupciones se manejan creando un nuevo marco de pila en la pila para el proceso relevante, manejando la interrupción usando este nuevo entorno y luego haciendo estallar la pila para regresar al proceso interrumpido.

Las excepciones en tiempo de ejecución, denominadas contingencias , son capturadas por el manejador de errores de programa de objetos (OPEH), que puede producir un informe (equivalente a un seguimiento de pila ), ya sea de forma interactiva o escrito en un diario.

OMF

El código objeto compilado se mantiene en un formato llamado OMF (Object Module Format), que es tanto el formato de salida del compilador como el formato utilizado por el cargador. Hay varios compiladores disponibles, así como utilidades, en particular Collector, que vincula el código de varios módulos OMF en un solo módulo, para una carga más eficiente en tiempo de ejecución, y Module Amender, que permite aplicar parches a las instrucciones de un módulo OMF para corregir errores, utilizando la sintaxis del lenguaje ensamblador.

LCC

El lenguaje de comandos para VME se conoce como SCL (lenguaje de control del sistema).

Este es mucho más reconocible como un lenguaje de programación de alto nivel tipado que los lenguajes de control de tareas o de shell que se encuentran en la mayoría de los otros sistemas operativos: puede compararse con lenguajes de script como JavaScript , aunque su sintaxis de superficie se deriva de Algol 68 .

SCL está diseñado para permitir tanto el uso interactivo línea por línea desde una consola o desde un archivo de comandos , como la creación de scripts o programas ejecutables (cuando el lenguaje se compila en formato de módulo de objeto de la misma manera que cualquier otro lenguaje de programación VME). La declaración de un procedimiento dentro de SCL también actúa como la definición de un formulario o plantilla simple que permite invocar el procedimiento desde una terminal interactiva, con campos validados de acuerdo con los tipos de datos de los parámetros del procedimiento subyacente o utilizando los valores de los parámetros del procedimiento predeterminados.

El vocabulario de comandos integrado utiliza una convención de nombres consistente con un verbo imperativo seguido de un sustantivo: por ejemplo, DELETE_FILE o DISPLAY_LIBRARY_DETAILS. El comando se puede escribir completo o en una forma abreviada que combina abreviaturas estándar para el verbo y el sustantivo: por ejemplo, XF (X para DELETE, F para FILE) o DLBD (D para DISPLAY, LB para LIBRARY, D para DETAILS).

SCL está estructurado en bloques, con bloques de inicio/fin que cumplen la doble función complementaria de definir el alcance léxico de las declaraciones de variables y definir los puntos en los que se deben liberar los recursos adquiridos del sistema operativo. Las variables del lenguaje (a las que se puede acceder desde las aplicaciones en forma de variables de entorno ) pueden tener varios tipos simples, como cadenas, supercadenas (secuencias de cadenas), booleanos y números enteros, y también se utilizan para contener referencias a recursos del sistema, como archivos y conexiones de red.

Es posible "desensamblar" un programa SCL desde OMF y convertirlo en código fuente SCL mediante el comando READ_SCL (o RSCL). Sin embargo, el resultado no siempre es perfecto y, a menudo, incluye errores que detendrían la recompilación sin la intervención del usuario.

Un ejemplo de código simple se puede ver en el sitio web de 99 botellas de cerveza . [19]

A continuación se muestra un ejemplo más realista, en el que se utiliza SCL para compilar un programa escrito en S3 . Este ejemplo se ha extraído del Archivo de implementaciones de Kermit de la Universidad de Columbia . [20]

COMENZAR CUANDO SEA RESULTADO GT 0 +_ ENTONCES +_ ENVIAR MENSAJE DE RESULTADO (RES = RESULTADO, ACTUAR = "SALIR()") ES  INT KMT_SRC, KMT_OMF, KMT_REL  ASIGNAR_BIBLIOTECA (NAM = KERMIT.FUENTE, LNA = KMT_SRC) ASIGNAR_BIBLIOTECA (NAM = KERMIT.OMF, LNA = KMT_OMF) ASIGNAR_BIBLIOTECA (NAM = KERMIT.REL, LNA = KMT_REL)  COMENZAR ELIMINAR_FILE (NAM = *KMT_OMF.KMT_DATA_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_DH_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_EH_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_FH_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_HELP_MTM(101)) ELIMINAR_FILE (NAM = *KMT_OMF.KMT_MAIN_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_PH_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_PP_MODULE(101)) ELIMINAR_FILE (NAM = *KMT_OMF.KMT_SP_MODULE(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_SP_MTM(101)) ELIMINAR_ARCHIVO (NAM = *KMT_OMF.KMT_UI_MODULE(101))  ELIMINAR_ARCHIVO (NAM = *KMT_REL.KERMIT(101)) ELIMINAR_ARCHIVO (NAM = *KMT_REL.MÓDULO_KERMIT(101)) FIN  S3_COMPILE_DEFAULTS (LIS = OBJETO y XREF, DIS = LINEAS DE ERROR)  S3_COMPILE (INP = *KMT_SRC.KMT_DATA_MODULE(101), OMF = *KMT_OMF.KMT_DATA_MODULE(101))  S3_COMPILE (INP = *KMT_SRC.KMT_DH_MODULE(101), OMF = *KMT_OMF.KMT_DH_MODULE(101))  S3_COMPILE (ENTRADA = *KMT_SRC.KMT_EH_MODULE(101), OMF = *KMT_OMF.KMT_EH_MODULE(101))  S3_COMPILE (INP = *KMT_SRC.KMT_FH_MODULE(101), OMF = *KMT_OMF.KMT_FH_MODULE(101))  NUEVO_MÓDULO_DE_TEXTO_DE_MENSAJE (CON = *KMT_SRC.KMT_HELP_MTM(101), OMF = *KMT_OMF.KMT_HELP_MTM(101))  S3_COMPILE (INP = *KMT_SRC.MÓDULO_PRINCIPAL_KMT(101), OMF = *KMT_OMF.KMT_MAIN_MODULE(101))  S3_COMPILE (INP = *KMT_SRC.KMT_PH_MODULE(101), OMF = *KMT_OMF.KMT_PH_MODULE(101))  S3_COMPILE (INP = *KMT_SRC.KMT_PP_MODULE(101), OMF = *KMT_OMF.KMT_PP_MODULE(101))  S3_COMPILE (INP = *KMT_SRC.KMT_SP_MODULE(101), OMF = *KMT_OMF.KMT_SP_MODULE(101))  NUEVO_MÓDULO_DE_TEXTO_DE_MENSAJE (CON = *KMT_SRC.KMT_SP_MTM(101), OMF = *KMT_OMF.KMT_SP_MTM(101))  S3_COMPILE (INP = *KMT_SRC.KMT_UI_MODULE(101), OMF = *KMT_OMF.KMT_UI_MODULE(101))  RECOLECTAR ()---- ENTRADA(*KMT_OMF.KMT_DATA_MODULE(101) & *KMT_OMF.KMT_DH_MÓDULO(101) y *KMT_OMF.KMT_EH_MÓDULO(101) y *KMT_OMF.KMT_FH_MÓDULO(101) y *KMT_OMF.KMT_HELP_MTM(101) y *KMT_OMF.KMT_MAIN_MODULE(101) & *KMT_OMF.KMT_PH_MÓDULO(101) y *KMT_OMF.KMT_PP_MÓDULO(101) y *KMT_OMF.KMT_SP_MÓDULO(101) y *KMT_OMF.KMT_SP_MTM(101) y *MÓDULO DE INTERFAZ DE USUARIO DE KMT_OMF.KMT_(101)) NUEVOMÓDULO(*KMT_REL.KERMIT_MODULE(101)) REPRIMIR RETENCIÓN(KERMIT_LA_RANA) MÓDULO DE LISTA LLEVAR A CABO++++ COMPILACIÓN_SCL (INP = *KMT_SRC.KERMIT(101), SALIDA = *KMT_REL.KERMIT(101), COD = NOTIFWARNINGS, OPT = FIL) FIN

Los comandos ilustrados en este fragmento incluyen WHENEVER (declara la política de manejo de errores), ASSIGN_LIBRARY (vincula un nombre local para un directorio de archivos), DELETE_FILE (convierte un archivo permanente en temporal y luego se elimina al FINAL del bloque), S3_COMPILE (compila un programa escrito en S3: este comando rompe la convención verbo-sustantivo habitual), NEW_MESSAGE_TEXT_MODULE (crea un módulo que contiene mensajes de error parametrizados adecuados para la localización) y COMPILE_SCL, que compila un programa SCL en código objeto.

El comando COLLECT combina diferentes módulos de código de objeto en un solo módulo y está controlado por su propio archivo de comandos local que se incorpora en línea en el SCL entre los delimitadores "----" y "++++". Los subcomandos INPUT y NEWMODULE identifican los nombres de los módulos de entrada y salida; SUPPRESS y RETAIN determinan la visibilidad externa de los procedimientos nombrados dentro del módulo recopilado; y LISTMODULE solicita un informe que describe el módulo de salida.

Tenga en cuenta que se utiliza "." para separar las partes de un nombre de archivo jerárquico. Un asterisco inicial denota un nombre local para una biblioteca, enlazado mediante el comando ASSIGN_LIBRARY. El número entre paréntesis después de un nombre de archivo es un número de generación. El sistema operativo asocia un número de generación con cada archivo y las solicitudes de un archivo obtienen la última generación a menos que se especifique lo contrario. La creación de un nuevo archivo creará de forma predeterminada la próxima generación y dejará intacta la generación anterior; sin embargo, este programa elige deliberadamente crear la generación 101 para identificar una versión pública.

Variantes de seguridad mejoradas

Como resultado de la fuerte participación de ICL en la prestación de servicios informáticos al sector público del Reino Unido, en particular aquellos con requisitos de seguridad especiales como OPCON CCIS , fue uno de los primeros en ingresar al mercado de sistemas seguros .

VME constituía un núcleo de las actividades de ICL en el área de sistemas seguros. Tenía la ventaja de que, al ser el último sistema operativo a gran escala jamás diseñado y construido desde cero, su arquitectura subyacente abarcaba muchos de los elementos primitivos necesarios para desarrollar un sistema seguro, en particular los registros de control de acceso (ACR) asistidos por hardware para limitar los privilegios que podía obtener cualquier proceso (incluidos los usuarios).

Esto llevó a que la Agencia Central de Computación y Telecomunicaciones ( CCTA ) del Gobierno del Reino Unido financiara el Proyecto Spaceman a mediados de la década de 1980 para que el Centro de Tecnología de Defensa (DTC) de ICL desarrollara una variante de seguridad mejorada de VME. [21] ICL lo lanzó como un par de productos complementarios, con la versión comercial denominada High Security Option (HSO) y la versión del sector público, incluidas las tecnologías Government Furnished Encryption (GFE), denominada Government Security Option (GSO).

HSO y GSO fueron probados formalmente bajo el Esquema de Evaluación CESG UK (Seguridad), uno de los predecesores de ITSEC y Common Criteria , y al hacerlo se convirtieron en el primer sistema operativo convencional en ser certificado formalmente.

Serie 39

La gama de la Serie 39 introdujo la Arquitectura Nodal, una novedosa implementación de memoria compartida distribuida que puede considerarse un híbrido entre un sistema multiprocesador y un diseño de clúster . Cada máquina consta de una serie de nodos , y cada nodo contiene su propio procesador de código de orden (CPU) y memoria principal. Las máquinas virtuales suelen estar ubicadas (en cualquier momento) en un nodo, pero tienen la capacidad de ejecutarse en cualquier nodo y de ser reubicadas de un nodo a otro. Los discos y otros periféricos se comparten entre nodos. Los nodos se conectan mediante un bus óptico de alta velocidad, que se utiliza para proporcionar a las aplicaciones una memoria compartida virtual. Los segmentos de memoria que están marcados como compartidos (segmentos públicos o globales) se replican en cada nodo, y las actualizaciones se transmiten a través de la red entre nodos. Los procesos que utilizan segmentos de memoria no compartida (nodal o local) se ejecutan en completo aislamiento de otros nodos y procesos.

Proceso de desarrollo

VME se escribió originalmente casi en su totalidad en S3 , un lenguaje de programación de sistemas especialmente diseñado basado en Algol 68R (sin embargo, VME/K se escribió principalmente en el lenguaje ensamblador SFL). Aunque se utiliza un lenguaje de alto nivel , el sistema operativo no está diseñado para ser independiente de la arquitectura de hardware subyacente: por el contrario, la arquitectura de software y hardware están estrechamente integradas.

Desde principios de la década de 1990 en adelante, algunos subsistemas VME completamente nuevos se escribieron parcial o totalmente en el lenguaje de programación C.

Desde sus inicios, VME se desarrolló con la ayuda de un sistema de repositorio de ingeniería de software conocido como CADES , originalmente diseñado y administrado por David Pearson (científico informático) y construido para ese propósito utilizando una base de datos IDMS subyacente . CADES no es simplemente un sistema de control de versiones para módulos de código: administra todos los aspectos del ciclo de vida del software desde la captura de requisitos, la metodología de diseño y la especificación hasta el mantenimiento de campo. CADES se utilizó en el desarrollo del módulo VME para mantener definiciones separadas de estructuras de datos (modos), constantes (literales), interfaces de procedimiento y los algoritmos centrales. Podrían existir múltiples versiones ('Vidas') de cada uno de estos componentes. Los algoritmos se escribieron en lenguaje de desarrollo de sistemas (SDL), que luego se convirtió a código fuente S3 [22] mediante un preprocesador. Se podrían generar múltiples versiones de los mismos módulos.

Herramientas de desarrollo de aplicaciones

Las herramientas de desarrollo de aplicaciones que ofrece VME se dividen en dos categorías:

El conjunto de herramientas de VME es inusualmente homogéneo, ya que la mayoría de los clientes utilizan el mismo conjunto básico de lenguajes y herramientas. Como resultado, las herramientas también están muy bien integradas. Las herramientas de terceros han causado relativamente poca impresión.

Durante muchos años, la gran mayoría de los usuarios de VME escribieron aplicaciones en COBOL , generalmente haciendo uso de la base de datos IDMS y el monitor de procesamiento de transacciones TPMS . Otros lenguajes de programación incluyeron Fortran , Pascal , ALGOL 68RS , Coral 66 y RPG2 , pero estos servían a intereses minoritarios. Más tarde, a mediados de la década de 1980, los compiladores para C estuvieron disponibles, tanto dentro como fuera del subsistema Unix, en gran medida para permitir la portabilidad de software como los sistemas de bases de datos relacionales . Es interesante que la EEC escribiera un compilador de subconjunto PL/I para ayudar a portar programas de IBM a hardware ICL.

Los compiladores desarrollados dentro de ICL comparten una arquitectura común y, en algunos casos, comparten componentes como generadores de código. Muchos de los compiladores usaban un módulo llamado ALICE [Assembly Language Internal Common Environment] y producían una forma temprana de código precompilado (P-Code) denominada ROSE, lo que permitía cargar bibliotecas compiladas de formato de módulo de objeto (OMF) en cualquier máquina del rango.

Lenguajes de programación de sistemas: S3 y SFL

El lenguaje principal utilizado para desarrollar tanto el sistema operativo VME como otro software del sistema, como compiladores y monitores de procesamiento de transacciones, es S3 . Se trata de un lenguaje de alto nivel basado en muchos aspectos en Algol 68 , pero con tipos de datos y funciones y operadores de bajo nivel estrechamente alineados con la arquitectura de la serie 2900.

También está disponible un lenguaje ensamblador SFL ( System Function Language ). Este se utilizó para el desarrollo de VME/K, cuyos diseñadores no estaban seguros de que un lenguaje de alto nivel pudiera ofrecer un rendimiento adecuado, y también para el sistema de base de datos IDMS debido a sus orígenes como producto de terceros. SFL se llamó originalmente Macro Assembler Programming Language ( MAPLE), pero como la arquitectura 2900 se estaba posicionando como compuesta por máquinas de lenguaje de alto nivel, el nombre se cambió a pedido de ICL Marketing. Se había desarrollado como parte del kit de herramientas para System D, que posteriormente se canceló. Se desarrollaron familias relacionadas de ensambladores para otras arquitecturas (CALM-xx ejecutándose bajo VME, PALM-xx desarrollado en Pascal y ejecutándose en varios hosts) para uso interno.

Ni S3 ni SFL se promocionaron nunca como herramientas de desarrollo comercial para aplicaciones de usuario final, ya que ninguno de ellos se entregaba normalmente como parte estándar del sistema operativo ni se comercializaban explícitamente como productos por derecho propio. Sin embargo, tanto SFL como S3 estaban disponibles como opciones para organizaciones de usuarios y terceros que tenían una necesidad específica de ellos.

Construcción rápida

El entorno de desarrollo de aplicaciones QuickBuild en VME ha tenido un gran éxito a pesar del hecho de que las aplicaciones están en gran medida bloqueadas en el entorno VME. Este entorno se centra en el Sistema de diccionario de datos (DDS, también llamado OpenDDS), un intento temprano y muy exitoso de construir un repositorio integral que admita todas las demás herramientas, con soporte completo para el ciclo de vida del desarrollo. Además de los esquemas de base de datos y las descripciones de archivos y registros, el diccionario realiza un seguimiento de objetos como informes y consultas, diseños de pantalla y código 4GL; también admite una variedad de modelos en el nivel de captura de requisitos, como modelos de relación de entidad y modelos de proceso.

El QuickBuild 4GL está disponible en dos formatos:

Ambos son lenguajes declarativos de alto nivel que utilizan la programación estructurada de Jackson como paradigma de diseño. ApplicationMaster es inusual en su enfoque del diseño de aplicaciones, ya que se centra en la sesión del usuario como si se estuviera ejecutando en un único proceso conversacional, ocultando por completo la complejidad de mantener el estado en las interacciones del usuario. Debido a que 4GL y otras herramientas como el diseñador de pantallas funcionan solo con el diccionario DDS, que también contiene los esquemas de la base de datos, existe una reutilización considerable de metadatos que rara vez se logra con otros 4GL.

Referencias

  1. ^ "Hoy, mañana, VME" (PDF) . Fujitsu . Archivado desde el original (PDF) el 22 de febrero de 2012.
  2. ^ ab Introducción a la arquitectura superNOVA (PDF) (Informe). Fujitsu. Enero de 2007. Archivado desde el original (PDF) el 28 de septiembre de 2007.
  3. ^ Barry J Graham (2002). "Fujitsu OpenVME Costs Compared to IBM Mainframe Costs" (PDF) . Fujitsu Services. Archivado desde el original (PDF) el 1 de febrero de 2014. Consultado el 28 de enero de 2014 .
  4. ^ ab Campbell-Kelly, Martin (1989). ICL: Una historia empresarial y técnica. Oxford University Press. ISBN 0-19-853918-5. Recuperado el 30 de mayo de 2024 .
  5. ^ Knight, Michael (verano de 2008). "Beacon 1963-7: ¿Un diseño de sistema adelantado a su tiempo?". Computer Resurrection (43). Por numerosas y variadas razones, más allá del conocimiento o la competencia del autor para evaluarlas, VME/K no fue un éxito, sino un trauma. VME/K fue finalmente descontinuado en 1981 por el recién nombrado Director Gerente, Robb Wilmot.
  6. ^ Dave Bailey (PowerPoint) (30 de noviembre de 2000). "El desarrollo continuo de OpenVME". ICL. Archivado desde el original el 2 de febrero de 2014. Consultado el 28 de enero de 2014 .
  7. ^ "Resulta que Open VME de ICL es un subconjunto de Unix bajo VME; las aplicaciones están llegando". Computer Business Review . 10 de febrero de 1992. Archivado desde el original el 28 de enero de 2014 . Consultado el 28 de enero de 2014 .{{cite news}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  8. ^ abc Coates, P. (1993). "VME-X: Making VME Open" (PDF) . Revista técnica ICL . ICL: 473. ISSN  0142-1557. Archivado desde el original (PDF) el 5 de marzo de 2016. Consultado el 7 de noviembre de 2015 .
  9. ^ "ICL apuesta por una estrategia de sistemas abiertos". Computerworld . 14 de octubre de 1985. págs. 30–31 . Consultado el 3 de junio de 2024 .
  10. ^ "Unix bajo VME ahora en pruebas de campo". Unigram/X . 27 de septiembre de 1986. p. 4 . Consultado el 22 de julio de 2024 .
  11. ^ "ICL establece Unix bajo VME para septiembre". Unigram/X . 27 de junio de 1987. pág. 1 . Consultado el 22 de julio de 2024 .
  12. ^ "ICL Guests Unix bajo la nueva versión VME, agrega modelos de mainframe 39/80 reducidos". Unigram/X . 3 de octubre de 1987. p. 2 . Consultado el 22 de julio de 2024 .
  13. ^ Cloutt, Harold (2012). "ICL User Group to be disbanded after almost 40 years faithful service to the VME community" (El grupo de usuarios de ICL se disolverá tras casi 40 años de servicio leal a la comunidad VME). AXiS. Archivado desde el original el 24 de marzo de 2012. Consultado el 11 de julio de 2018 .
  14. ^ Clark, Lindsay (21 de enero de 2022). "Quizás deba considerar el costo de no actualizar la tecnología heredada, dijo el Departamento de Trabajo y Pensiones del Reino Unido". The Register . Consultado el 24 de enero de 2022 .
  15. ^ Evenstad, Lis (13 de octubre de 2020). "HMRC firma un contrato de cinco años por 169 millones de libras con Fujitsu para la plataforma VME". Computer Weekly . Consultado el 24 de enero de 2022 .
  16. ^ "Reino Unido-Salford: proveedores de servicios de aplicación". Licitaciones electrónicas diarias . Unión Europea. 12 de octubre de 2020. 2020/S 198-481324 . Consultado el 24 de enero de 2022 .
  17. ^ Evenstad, Lis (26 de marzo de 2021). "DWP completa el proyecto interno de reemplazo de VME". Computer Weekly . Consultado el 27 de mayo de 2024 .
  18. ^ Holt, Nic (1995). La arquitectura de OpenVME (PDF) . International Computers Limited. Archivado desde el original el 8 de noviembre de 2016. Consultado el 21 de junio de 2024 .{{cite book}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  19. ^ Ejemplo de código SCL en el sitio web de 99 botellas de cerveza
  20. ^ "Archivo de código fuente del software Kermit". Proyecto Kermit de la Universidad de Columbia. 22 de agosto de 2011. Consultado el 1 de marzo de 2013 .
  21. ^ Aldrich, Richard J.; Work, JD (2022). "Project Spaceman: Early British Computer Security and Automatic Data Processing". Inteligencia y seguridad nacional . 38 (4): 525–537. doi :10.1080/02684527.2022.2139342 . Consultado el 25 de junio de 2024 .
  22. ^ Juan F Ramil. "Estimación del esfuerzo continuo para la evolución: un estudio de caso" (PDF) .

Fuentes

Enlaces externos