Características del desarrollo de agentes de software. Desarrollo instrumental y entornos de soporte de software.

Las herramientas instrumentales para el desarrollo de agentes de software forman un medio que se optimiza para la liberación de un cierto tipo de aplicación, con una arquitectura específica.

Los principales entornos de herramientas distintivas de otros medios de los agentes de software de construcción es que el entorno proporciona un ciclo completo de desarrollo de agentes de software, incluidas las etapas del análisis del área temática, etapas de diseño, desarrollo, verificación, así como los pasos de implementación y acompañamiento.

Puede seleccionar los entornos de desarrollo de agentes más famosos y populares:

AVE (entorno de construcción de agentes);

Considere con más detalle los entornos de desarrollo de agentes ambientales instrumentales enumerados.

1. El entorno de la herramienta AgentBuilder proporciona a los desarrolladores que desarrollen una herramienta de desarrollo y una cuenta de una aplicación de agentes. La tecnología de crear un agente inteligente en el entorno AgentBuilder se presenta en la Figura 2.1.

Higo. 2.1

Los medios de desarrollo e implementación se escriben en el lenguaje de programación de Java, lo que les permite trabajar en todas las plataformas donde se instala el miércoles de Java. El agente creado con el kit de herramientas AgentBuilder se puede realizar en cualquier plataforma con una máquina virtual Java (versión 1.1 y superior).

Las herramientas de desarrollo son una interfaz gráfica conveniente para analizar el área temática de la MAC desarrollada y la especificación del comportamiento deseado de los agentes desarrollados por los editores gráficos. En este entorno instrumental, se proporcionan los siguientes pasos de la construcción de una aplicación multi-agente:

definición de la agencia;

crear agentes, que prevé la construcción de la ontología utilizada para realizar el agente de la autoridad delegada y el modelo mental (creencia, capacidad, obligaciones, reglas de conducta);

creación de protocolos para la especificación de la interacción de los agentes de esta agencia;

generando un archivo de descripción del agente especial en el idioma RADL, que, en última instancia, representa el modelo mental y el comportamiento deseado del agente.

El tiempo de ejecución de la aplicación del agente consiste en un agente y procesador para realizar un agente. El procesador utiliza procedimientos de salida lógicos efectivos al comparar las reglas del comportamiento del comportamiento del agente con las creencias del agente definido por el modelo mental actual y los mensajes entrantes. Sobre la base de los argumentos, el procesador realiza ciertas acciones asociadas con la autoridad del agente. El programa Agent es la definición de un agente en forma de un archivo RADL junto con la biblioteca instalada del proyecto. Un programa trenzado junto con el procesador forma un agente realizado. Al ejecutar el entorno de ejecución, se inicializa un procesador de agentes que utiliza el modelo RADL y una ontología del agente presentada como una biblioteca de clase de proyecto (Biblioteca de accesorios de proyectos). Esto requiere la definición del agente (el archivo RADL que proporciona un agente con la capacidad de razonamiento y el modelo mental inicial) y la biblioteca de clases de proyectos (las clases de soporte del proyecto PACS de la biblioteca de clases de proyectos): estos objetos se utilizan Para mostrar el área temática de la tarea.

2. En el entorno Bee-Gent, el desarrollo de aplicaciones orientadas a la agencia se realiza mediante la metodología para especificar el comportamiento de los agentes del sistema distribuido utilizando la Biblioteca Mac que se implementa en el idioma Java. Sobre la base del sistema Bee-Gent ofrecido por el sistema Bee-Gent, es posible estructurar claramente el comportamiento de cada agente como una gráfica de estados y determinar los protocolos de interacción de los agentes. Los estados de interés de los agentes se basan en la base de la viabilidad de los roles definidos en forma de expresiones regulares en la etapa de un análisis orientado a la agencia (por ejemplo, de acuerdo con la metodología GAIA). Un ejemplo de un fragmento del gráfico de comportamiento del agente, el estudiante del sistema de capacitación se muestra en la Figura 2.2.


Higo. 2.2.

El gráfico estatal registra todos los nombres de los estados en los que el agente puede ser. En la siguiente etapa del desarrollo, las clases se definen para cada estado. Cada estado en la columna es una instancia de la clase AwripState de la biblioteca trenzada de Toshiba implementada en el idioma de Java. En el diseñador de clases, se determinan las condiciones previas y posteriores a las condiciones, es decir, Las condiciones que deben ejecutarse en el estado actual para realizar acciones definidas por la clase de estado y determinar la transición al siguiente estado. Luego, las acciones que deben realizarse en cada estado (incluido su propio agente y los procesos de interacción con otros agentes) se especifican. Para los estados iniciales y finales, también se crean las clases "init" y "fin". Si el agente interactúa con otros agentes, entonces con la especificación de los estados específicos, el sistema BEE-Gent prevé la definición del protocolo de interacción. El protocolo debe reflejar todas las líneas de comportamiento del agente en este estado. En cada estado, las actividades del agente están dirigidas a realizar los protocolos de interacción para implementar la línea de comportamiento planificada. Las actividades de cada agente en la MAC se determinan, por ejemplo, un modelo de servicios desarrollado en la etapa de un análisis orientado al agente sobre la metodología GAIA.

Cada línea de comportamiento está documentada por la tabla de la interacción de los agentes con los contenidos de los mensajes y su secuencia. La Figura 2.3 muestra un ejemplo del diagrama de interacción para el estado de estudio de la disciplina del agente del estudiante. El formato de mensaje está determinado por el lenguaje XML / ACL, que es el desarrollo del lenguaje de comunicaciones KQML.


Higo. 2.3. Tabla de interacción del agente estudiante en el estado de "Estudio de la disciplina"

Por lo tanto, en función de los modelos lógicos desarrollados, el sistema Bee-Gent genera automáticamente el esqueleto de un código de programa de software multi-agente en el idioma de Java, que se complementa con el código del programa necesario que proporciona un "ciclo de vida" dado de los agentes. En el sistema Bee-Gent, en contraste con AgentBuilder, al describir el comportamiento de los agentes, las reglas no se utilizan para determinar la reacción del agente a los eventos externos y su estado interno.

3. Jack TM Intelligent Agents (Jack) es un entorno de desarrollo orientado a la agencia que se basa en el lenguaje de programación Java. Jack es un complemento de Java en forma de expansión de los diseños de sintaxis de Java para la implementación de software de las propiedades asociadas con el concepto de un agente inteligente. Jack Agent Programming Language ofrece las siguientes características:

define nuevas clases básicas, interfaces y métodos;

expande la sintaxis de Java para apoyar nuevas clases, definiciones y operadores orientados a la angedad;

proporciona la expansión de la semántica (características al ejecutar) para respaldar el modelo de ejecución requerido por un sistema de software orientado a los actores.

Todas las extensiones de idioma se implementan como complemento, lo que hace que el idioma sea lo más expandible posible y flexible en una programación orientada a la agencia.

A nivel de clases, se introdujeron 5 estructuras principales:

agente que simula entidades intelectuales en JACK;

la capacidad que se recolecta en un componente funcional completo (eventos, planes, muchas creencias y otras habilidades), para uso de los agentes;

un evento para modelar situaciones y mensajes a los que el agente debe ser capaz de responder;

un plan que pretende simular una descripción de procedimiento de cómo el agente administra este evento (todas las acciones realizadas por el agente se proporcionan por adelantado y se describen en sus planes);

muchas convicciones, para modelar el conocimiento del agente en forma de creencias que se adhieren a la semántica de un mundo cerrado o abierto. Este diseño representa la creencia del agente en forma de tuplas relacionales del primer orden y garantiza su consistencia lógica.

Cabe señalar que el comportamiento del agente deseado se encapsula en unidades modulares definidas por estas clases, y las clases contienen toda la estructura requerida para la ejecución y métodos independientes que los programadores en el idioma de la toma se pueden usar. Para establecer la relación entre las clases mencionadas anteriormente, hay un conjunto de declaraciones.

Para establecer relaciones entre las clases mencionadas anteriormente, se proporciona un conjunto de declaraciones. A continuación se muestra un fragmento del código para implementar el diseño del plan escrito en la toma (elementos de sintaxis que pertenecen a Jack se resaltan en negrita):

plan MovimientoResponse extiende el plan (

#Handles evento RobotMoveEvent MoverSponse;

#Uses agente implementando robot Robotinterface;

estático booleano relevante (RobotMoveVent EV)

contexto () (...)

método de oración

En este ejemplo, el plan de acción del programa definido del agente del programa hereda sus funciones básicas de la clase de JackPlan. Además, utilizando múltiples declaraciones para los planes de Jack, se indica cómo se utilizará el plan. Cada declaración está precedida por el símbolo "#" para distinguirlos de los elementos de la sintaxis de Java. # Declaración de eventos de #Handles define un objetivo o evento que responde este plan. Declaración # Agente implementando Agente (s) que puede usar este plan. El plan en el ejemplo solo puede ser realizado por aquellos agentes que implementan la interfaz especificada (RobotInterface). Los soportes figurados contienen el código Java habitual.

Además de la Declaración, el lenguaje JACK para describir los argumentos y el comportamiento realizado por el agente al implementar el plan proporciona a sus operadores métodos de razonamiento asignados por el símbolo precedente "@".

Para apoyar la ejecución de un sistema de software orientado a la agencia, el conector proporciona las siguientes extensiones de idioma adicionales que proporcionan la siguiente semántica:

La multiplenes se construye en el kernel y se elimina de bajo el control del programador.

El trabajo de los agentes se lleva a cabo de tal manera que los agentes manejan muchos planes y tienen acceso a las descripciones de las creencias. Los agentes cumplen los planes en las tareas de gestión de eventos cuando surgen, comparando sus creencias cuando sea necesario. Estos planes pueden iniciar subtareas que, a su vez, pueden iniciar sus subtareas si el agente requiere una respuesta difícil y difícil.

Se ha introducido una nueva estructura de datos, el elemento lógico nombrado (miembro lógico), cuyo valor depende del resultado de la consulta al conjunto de creencias del agente.

La capacidad de realizar solicitudes a una multitud de condenas de agentes utilizando elementos lógicos para esto, a través de su asociación para obtener el resultado deseado. Si la solicitud tiene éxito, el elemento lógico contiene el valor deseado.

El componente del entorno de desarrollo de JACK (entorno de desarrollo de JACK) permite extraer diagramas de resumen por los cuales el entorno genera el esqueleto del código del programa y garantiza que los cambios realizados en el código se muestren en los diagramas.

Los agentes creados en JACK tienen una arquitectura inherente a los agentes intelectuales. Por lo tanto, es posible modelar un comportamiento razonable, de acuerdo con el modelo teórico del agente BDI-arquitectura, basado en creencias, deseos e intenciones.

Según la arquitectura BDI, los agentes inteligentes de Jack son componentes de software autónomos que pueden mostrar un comportamiento sensible basado en la proactividad (enfoque) y la reactividad (evento enviado) a las señales de entrada. Cada agente de este tipo tiene:

convicciones (este es su conjunto de datos sobre el mundo);

deseos (un conjunto de eventos en los que reaccionará y un conjunto de propósitos, los logros de los cuales puede desear);

intención (un conjunto de planes que describen cómo puede manejar los objetivos y planes emergentes).

Si el agente es considerado como un análogo de personalidad, entonces el conjunto de planes describe los pasos que el agente debe ejecutar cuando ocurre un cierto evento o el deseo de lograr un cierto resultado. A primera vista, el comportamiento del agente puede parecer similar a las acciones de los sistemas expertos, con todas las limitaciones inherentes a ellas. Sin embargo, la diferencia fundamental entre los sistemas orientados al agente es que los agentes pueden programarse para cumplir los planes de la misma manera que operaría una personalidad razonable. En particular, con la ayuda de los agentes, puede implementar las siguientes propiedades asociadas con el comportamiento razonable:

los agentes de enfoque sostenibles se enfocan en fines, y no en los métodos seleccionados para lograrlos;

la dependencia contextual en tiempo real: los agentes seguirán las opciones que son aplicables en cada momento y tomen decisiones con respecto a las acciones de seguimiento según las condiciones existentes;

la aprobación de la exactitud del enfoque en tiempo real: el agente garantizará que siga el curso de acciones seleccionado hasta que ciertas condiciones sigan siendo ciertas;

simultáneidad: un sistema de agentes es multi-roscado. Si surgen nuevos objetivos y eventos, el agente puede determinar las prioridades a solicitud de la multitarea.

La aplicación de Jack es un código fuente que implementa la característica para un enfoque orientado a la ansente: agentes, habilidades, eventos, planes, creencias, vistas (consultas), así como una clase de Java con la función principal (), que es el punto de entrada Para la máquina virtual Java, y cualquier otro archivo Java requerido. Los archivos que se crean para estos conceptos deben tener el mismo nombre que el objeto definido en el archivo. Tienen una extensión que define el tipo de concepto de gato. El compilador del agente de Jack convierte los archivos de origen en el idioma del agente de Jack en el código en el idioma Java, que luego se compila en el código de máquina virtual Java para realizar el sistema de destino.

4. El software JADE (Marco de desarrollo del agente de Java) se ha utilizado ampliamente para desarrollar sistemas multi-agentes. Está completamente implementado en Java y apoya los estándares FIPA para crear agentes inteligentes. El objetivo de crear un entorno de JADE es simplificar el proceso de desarrollo estandarizando los métodos de interacción de los agentes en el sistema de servicios del sistema.

Para lograr este objetivo, Jade ofrece un programador para desarrollar sistemas de agentes en las siguientes características:

plataforma de agentes compatibles con la FIPA, basada en FIPA e incluyendo tipos obligatorios de agentes del sistema para administrar, primero, por una plataforma de agente (AMS), segundo, canal de comunicación (ACC) y servicios de directorio (este tipo de agentes se activan automáticamente cuando la plataforma se inicia);

agente distribuido en la plataforma de agente distribuida, que puede usar múltiples hosts, y solo una máquina virtual Java se inicia en cada nodo. Los agentes se realizan como arroyos de Java. Dependiendo de la ubicación del agente, enviando un mensaje, y el que lo recibe, se utiliza el mecanismo de transporte correspondiente para entregar mensajes.

Soporte de múltiples dominios: una serie de agentes DF FIPA basados \u200b\u200ben la Federación, implementando así un agente multidage.

Entorno de ejecución multithreaded con programación de TwoleVel. Cada agente de jade tiene su propio flujo de flujo, pero también es capaz de trabajar en modo multi-roscado. Java Virtual Machine está planeando tareas ejecutadas por los agentes o uno de ellos.

Entorno de programación de objetos oritos. La mayoría de los conceptos característicos de las especificaciones de FIPA están representadas por clases de Java que forman la interfaz de usuario.

Biblioteca de protocolos de interacción. Se utilizan solicitudes de FIPA interactivas estándar y protocolos interactivos de la red de contrato FIPA. Para crear un agente que pueda operar de acuerdo con dichos protocolos, desarrolladores de aplicaciones, solo necesita implementar acciones de dominio específicas, mientras que toda la lógica del protocolo independiente de la aplicación será implementada por el sistema Jade.

GUI de la administración. Las operaciones de administración de plataformas simples se pueden ejecutar a través de una interfaz gráfica que muestra agentes activos y contenedores de agentes. Usando la GUI, los administradores de la plataforma pueden crear, destruir, interrumpir y reanudar a los agentes, crear jerarquías de dominio y federaciones de DF multi-agente (facilitadores).

Jade se basa en las tecnologías Java RMI, Java Corba Idl, la serialización Java y la API de reflexión de Java. El desarrollo de MAC en este entorno se simplifica gracias al uso de las especificaciones FIPA y una serie de herramientas para respaldar la depuración de depuración y sistema. Esta plataforma de agente se puede instalar en computadoras con diferentes sistemas operativos, y se puede configurar a través de una interfaz GUI remota. El proceso de configuración de esta plataforma es bastante flexible: se puede cambiar incluso durante la ejecución de los programas al mover agentes de una máquina a otra. El único requisito para la operación del sistema es la instalación en la máquina de tiempo de ejecución de Java 1.2.

Cada instancia corriente del entorno JADE es un contenedor, porque Puede contener varios agentes. Un grupo de contenedores activos forman una plataforma. El contenedor principal siempre debe estar activo, y todos los demás contenedores deben estar registrados con ellos al crearlos. Por lo tanto, el primer contenedor que se ejecuta en la plataforma es el contenedor principal, y todos los demás son contenedores regulares y deben recibir instrucciones sobre dónde está su contenedor principal en el que deben estar registrados. Si se inicia otro contenedor principal en la red, representa otra plataforma en la que los nuevos contenedores regulares tienen la capacidad de registrarse. La Figura 2.4 muestra los conceptos de plataforma y contenedor anteriores y muestra un script con dos plataformas de jade que constan de tres y un contenedor, respectivamente.


Higo. 2.4. MIÉRCOLES AGENTES DE JADE "EXISTENCIA"

Los agentes de JADE deben tener nombres únicos, conocer los nombres de los demás y, gracias a esto, pueden comunicarse directamente, independientemente de su ubicación real, es decir. Dentro de un solo contenedor (por ejemplo, agentes A2 y A3), en varios contenedores dentro de una plataforma (por ejemplo, A1 y A2) o en varias plataformas (por ejemplo, A4 y A5). El contenedor principal difiere de lo habitual, ya que contiene un sistema de administración de agentes y un enrutador que se inicia automáticamente cuando se inicia el contenedor principal. El sistema de administración del agente de AMS (sistema de administración de agentes) es "POWER" en la plataforma (creación / eliminación de agentes en contenedores remotos solicitados a través de AMS) y proporciona un servicio de nombres de agente. El enrutador de directorio DF (facilitador de directorio), que proporciona el servicio "Páginas amarillas", ayuda a encontrar un agente de otros agentes, para obtener los servicios necesarios que necesita para lograr sus objetivos.

Para comunicarse, la arquitectura de entorno proporciona un proceso de mensajería flexible y eficiente en el que Jade crea una cola y controla la corriente de mensajes de ACL, que son privados para cada agente. Los agentes son capaces de comunicarse con la cola utilizando una combinación de varios modos de su trabajo: bloqueo, votación, ruptura en funcionamiento y comparación con el estándar (si se refiere a los métodos de búsqueda). Kit de herramientas de plataforma multi-agente

En las últimas versiones del sistema, se utilizan Java RMI, Notificación de eventos y IIOP. Sin embargo, puede agregar fácilmente otros protocolos. También proporciona la capacidad de integrar SMTP, HTTP y WAP. La mayoría de los protocolos de comunicación que ya están identificados por la comunidad internacional de desarrolladores de entornos de agentes están disponibles y se pueden ilustrar en ejemplos específicos después de determinar el comportamiento del sistema y sus estados básicos. Junto con el apoyo de los lenguajes de contenido definidos por el usuario, la ontología de la administración del agente, así como las ontologías, que se pueden implementar y registrarse con los agentes y son utilizados por el sistema. Para ampliar significativamente el rendimiento de Jade, es posible integrarse con los clips de JESS y JAVA-Shell.

Un análisis comparativo de las capacidades de los medios de herramientas considerados para desarrollar agentes de software se proporciona en la Tabla 4. Y en la Figura 2.5 muestra los resultados de este análisis.

Tabla 4.

Análisis comparativo de las posibilidades de los medios de comunicación de herramientas para el desarrollo de agentes de software.

Oportunidades de entornos instrumentales.

Medios de organismos de construcción.

Herramientas de gestión de proyectos.

Medio ambiente gráfico para determinar las especificaciones de los agentes.

Mecanismo de control de integridad

Herramientas de ontología de la construcción.

Biblioteca para el desarrollo masivo.

El mecanismo de argumentos del agente sobre sus habilidades y habilidades de otros agentes.

Comunicación del lenguaje formal

Herramientas de interacción del agente

Especificando agentes con habilidades específicas.


Higo. 2.5

Sobre la base de la comparación de las características de los entornos instrumentales considerados, se puede concluir que las tecnologías más poderosas y flexibles para la implementación del concepto de "agente" son los enfoques propuestos por la herramienta AgentBuilder y el entorno Jack.

Es necesario prestar atención al hecho de que para la plataforma Jade hay una extensión BDI adicional - Medio ambiente Jadex. Este entorno proporciona una arquitectura híbrida reactiva-deliberativa, en la que el agente se considera como una "caja negra" que acepta y enviando mensajes. Sobre la base de los resultados de los mensajes de procesamiento, los eventos internos y externos, el mecanismo deliberativo toma decisiones sobre la transición a un nuevo plan de acción o la continuación del anterior. El plan actual puede enviar mensajes a otros agentes, cambiar la base de datos de creencias, formar nuevos objetivos y causar eventos internos. El sistema utiliza la biblioteca de planes que se procesan como clases de Java.

Una de las principales ventajas de desarrollar agentes inteligentes en la plataforma Jadex es que no está obligado a estudiar nuevos lenguajes de programación. En su lugar, los agentes se codifican sobre la base de la programación orientada a objetos en un entorno de desarrollo integrado (IDES), como Eclipse e IntelliJ Idea.

Otro aspecto importante es la independencia del software de la carpeta, ya que Jadex de forma independiente con sus módulos se puede usar en otros escenarios en el nivel superior de la plataforma. Los programas orientados a los agentes agregan las propiedades explícitas de los elementos de actuación autónomos que participan en el proceso de toma de decisiones a los objetos pasivos. En este sentido, los agentes proporcionan ingredientes activos con capacidades de interacción individuales con componentes.

Jadex está diseñado como un mecanismo de decisión independiente, adaptado para trabajar con cualquier sistema vinculante que realice interacción con el agente en relación con su propia administración y recibo de los mensajes.

El agente puede migrar libremente entre hosts, realizando operaciones tanto en el lado del servidor como en el lado del usuario, mientras mantiene la independencia del lugar de ejecución de las tareas.

El análisis de los sistemas de herramientas más conocidos permitió elegir un entorno de Jadex efectivo y asequible.

El entorno de desarrollo integrado (IPR) es un sistema de herramientas de software utilizado por programadores para desarrollar software. En inglés, un entorno de este tipo se llama entorno de desarrollo integrado o IDE abreviado.

El IPR normalmente incluye un editor de texto, compilador, un intérprete, desarrollo de software y ensamblaje y depurador. A veces, también contiene herramientas para la integración con sistemas de control de versiones y una variedad de herramientas para simplificar el diseño de la interfaz gráfica de usuario. Muchos entornos de desarrollo modernos también incluyen la ventana de las clases programáticas, el inspector de objetos y la tabla de jerarquía de clases, para su uso en el desarrollo de software orientado a objetos. La mayoría de las ISR más modernas están diseñadas para desarrollar programas en varios idiomas de programación al mismo tiempo.

Uno de los casos especiales del entorno de desarrollo visual de IPR, que incluye la posibilidad de editar visuales la interfaz del programa.

La ventana principal es el editor de texto que se utiliza para ingresar el código fuente en el IPR y se enfoca en trabajar con la secuencia de símbolos en los archivos de texto. Dichos editores proporcionan una funcionalidad avanzada: el resaltado de sintaxis, la clasificación de cuerdas, los patrones, la conversión de codificación, los códigos de símbolos, etc. A veces se llaman editores de códigos, ya que su propósito principal es escribir código fuente de programas de computadora.

El resaltado de la sintaxis está destacando los diseños sintácticos de texto utilizando varios colores, fuentes y diseños. Generalmente se aplica en los editores de texto para facilitar la lectura del texto de origen, mejorando la percepción visual. A menudo se utiliza al publicar el código fuente en Internet.

El concepto de transmisión, compilador e intérprete se impartió en conferencias anteriores.

Una de las partes más importantes del IPR es un depurador, que es un módulo de entorno de desarrollo o una aplicación separada diseñada para buscar errores en el programa. El depurador le permite realizar rastreo, rastreo, instale o cambie los valores de variables de paso a paso durante la ejecución del programa, instale y elimine los puntos de control o las condiciones de parada, etc.

Los depuradores más comunes son:

- Depurador de GNU - Programas del depurador del proyecto GNU;

- IDA - Desasmizador y depurador de bajo nivel para sistemas operativos de Windows y GNU / Linux;

- Microsoft Visual Studio: entorno de desarrollo de software, incluida la depuración de Microsoft Corporation;

- OLLYDBG es un depurador de bajo nivel gratuito para sistemas operativos Windows;

- Softice - Depurador de bajo nivel para sistemas operativos Windows;

- Dr. Watson: el depurador estándar de Windows le permite crear volcados de memoria;

- WINDBG es un depurador gratuito de Microsoft.

El principal proceso de depuración es la traza. El trazado es un proceso de ejecución del programa paso a paso. En el modo de rastreo, el programador ve la secuencia de ejecución de los comandos y los valores de las variables en este paso del programa, lo que facilita la detección de errores. El rastreo se puede iniciar y finalizar en cualquier lugar del programa, la ejecución del programa puede detenerse en cada comando o en los puntos de parada, el rastreo se puede realizar en el procedimiento / función y sin visitar.

El módulo IPR más importante con el desarrollo conjunto de proyectos de complejidad media y alta es el sistema de gestión de versiones. Sistema de control de versiones (CV de abreviatura en inglés): software para facilitar el trabajo con la información cambiante. Le permite almacenar algunas versiones del mismo documento, si es necesario, volver a las versiones anteriores, determinar quién y cuándo se realizó uno u otro cambio y mucho más.

Dichos sistemas se usan más ampliamente al desarrollar software, para almacenar el código fuente del programa que se está desarrollando. Sin embargo, se pueden aplicar con éxito en otras áreas en las que está en marcha el trabajo con una gran cantidad de documentos electrónicos que cambian continuamente, en particular, se usan cada vez más en CAD, generalmente como parte de los sistemas de gestión de productos. La administración de versiones se utiliza en las herramientas de administración de configuración de varios dispositivos y sistemas.

En nuestro país, es posible debido a la pequeña cantidad de proyectos a gran escala, los sistemas de control de versiones no recibieron distribución, a pesar de que su uso es la clave para la implementación exitosa de grandes proyectos. En este sentido, nos centraremos más en esta característica del DIP.

La mayoría de las versiones Sistemas de control utilizan un modelo centralizado cuando hay un único repositorio de documentos administrado por un servidor especial, que realiza la mayoría de las características de administración de las versiones. El usuario que trabaja con documentos primero debe obtener la versión del documento del repositorio que necesita; Generalmente se crea una copia local del documento, el llamado "flujo de trabajo". La última versión o cualquiera de las versiones o fecha de creación seleccionadas anteriormente se puede obtener, a veces para otras características. Después de que se realicen los cambios necesarios en el documento, la nueva versión se coloca en el repositorio. A diferencia del archivo de ahorro simple, la versión anterior no se borra, y también permanece en el almacenamiento y se puede obtener desde allí en cualquier momento. El servidor puede usar la compresión de Delta: un método para almacenar documentos en los que solo se guardan los cambios entre las versiones en serie, lo que reduce el volumen de los datos almacenados.

A veces, la creación de una nueva versión se realiza desapercibida por el usuario (transparente), ya sea utilizando un programa de aplicación que tiene soporte incorporado para dicha función, o mediante el uso de un sistema de archivos especial. En este último caso, el usuario solo funciona con un archivo como de costumbre, y al guardar el archivo, se crea automáticamente una nueva versión.

A menudo sucede que varias personas trabajan en un proyecto al mismo tiempo. Si dos personas cambian el mismo archivo, entonces uno de ellos puede cancelar accidentalmente los cambios realizados por otros. Los sistemas de control de versiones realizan un seguimiento de tales conflictos y ofrecen herramientas para resolverlas. La mayoría de los sistemas pueden combinar automáticamente los cambios (fusionar) realizados por diferentes desarrolladores. Sin embargo, tal asociación automática de cambios suele ser solo para archivos de texto y luego, solo si cambió las partes diferentes (habitadas) de este archivo. Dicha restricción se debe al hecho de que la mayoría de los sistemas de gestión de versiones se centran en respaldar el proceso de desarrollo de software, y los códigos de origen del programa se almacenan en archivos de texto. Si la asociación automática falló, el sistema puede sugerirle resolver el problema manualmente.

A menudo, la combinación no se puede configurar en modo automático, ni en modo manual, por ejemplo, si el formato de archivo es demasiado complicado o desconocido en absoluto. Algunos sistemas de control de versiones permiten bloquear el archivo en el repositorio. El bloqueo no permite que otros usuarios obtengan una copia de trabajo o evite el cambio en una copia de trabajo del archivo (por ejemplo, las herramientas del sistema de archivos) y, por lo tanto, garantiza un acceso excepcional al usuario que trabaja con el documento.

Otras características del sistema de administración de versiones constan:

Al crear diferentes variantes de una rama de documentos, con una historia general de cambios en el punto de la sucursal y con cosas diferentes después de ella.

Gestión de revistas donde los usuarios pueden registrar explicaciones sobre qué y por qué cambiaron en esta versión;

Controla los derechos de acceso al usuario, resuelva o prohibir la lectura o el cambio de datos dependiendo de la OMS solicite esta acción.

Una clase separada es sistemas de gestión de versiones distribuidas. Dichos sistemas utilizan un modelo distribuido en lugar de un cliente-servidor tradicional. En general, no necesitan un almacenamiento centralizado: toda la historia de los cambios en los documentos se almacena en cada computadora, en el almacenamiento local, y, si es necesario, los fragmentos individuales de la historia del almacenamiento local se sincronizan con el almacenamiento similar en Otra computadora. En algunos sistemas de este tipo, el almacenamiento local se encuentra directamente en los directorios de copia de trabajo.

Cuando el usuario de dicho sistema realiza acciones ordinarias, como recuperar una versión específica del documento, creando una nueva versión y similares, funciona con su copia de repositorio local. A medida que se realizan los cambios de almacenamiento que pertenecen a diferentes desarrolladores, comienzan a diferir, y existe la necesidad de una sincronización. Dicha sincronización se puede llevar a cabo compartiendo parches o los llamados conjuntos de cambios (SOMP. Conjuntos de cambios) entre usuarios.

La principal ventaja de los sistemas distribuidos es su flexibilidad. Cada desarrollador puede funcionar de forma independiente, ya que es conveniente para ello, mantener los documentos intermedios y transmitir resultados a otros participantes cuando lo considere necesario. En este caso, el intercambio de conjuntos de cambios se puede realizar en varios esquemas. En grupos pequeños, los participantes del trabajo pueden intercambiar cambios en el principio "cada uno con cada", debido a que no es necesario crear un servidor dedicado. Una gran comunidad, por el contrario, puede usar un servidor centralizado con el que se sincronizan las copias de todos sus participantes. Las opciones más complejas también son posibles, por ejemplo, con la creación de grupos para el trabajo en ciertas áreas dentro de un proyecto más grande.

Para usar los sistemas de control de versiones, es necesario poseer la terminología de estos sistemas. No hay terminología en general, se pueden usar varios nombres en diferentes sistemas para las mismas acciones.

A continuación se muestran algunas de las opciones más utilizadas. Debido al hecho de que los sistemas fueron desarrollados por la comunidad en inglés, y la terminología de habla rusa aún se desarrolló, se utilizan términos en inglés.

rama (rama) - la dirección del desarrollo, independiente de los demás. La sucursal es una copia de la pieza (como regla general, de un directorio) del repositorio, que se puede hacer de cambios que no afectan a otras sucursales. Los documentos en diferentes ramas tienen la misma historia del punto de la sucursal y diferentes, después de ella.

check-in, cometer, enviar: crear una nueva versión, publicar cambios. Distribuya los cambios realizados en una copia de trabajo al repositorio de documentos. Al mismo tiempo, el repositorio crea una nueva versión de los documentos modificados.

C. heck-Out, clon: extraer un documento del repositorio y crear una copia de trabajo.

C. onFleic: una situación de conflicto cuando varios usuarios realizan cambios en la misma área del documento. El conflicto se detecta en el caso de que un usuario ya ha publicado sus cambios, y el segundo solo intenta publicarlos y el sistema en sí no puede drenar correctamente los cambios en conflicto. Dado que el programa puede no ser lo suficientemente razonable para determinar qué cambio es "correcto", el segundo usuario debe resolver el conflicto (resolución).

METRO. erge, Integración (Fusión) - Combinando cambios independientes a una sola versión del documento. Se lleva a cabo cuando dos personas cambiaron el mismo archivo o al transferir cambios de una rama a otra.

R. eposity: un lugar donde el sistema de gestión de versiones almacena todos los documentos junto con el historial de su cambio y otra información de servicio.

R. evision. Los sistemas de control de versiones distinguen las versiones de la versión que se asignan automáticamente.

T. aG, Etiqueta (etiqueta) - que se puede asignar una versión específica del documento. La etiqueta es un nombre simbólico para un grupo de documentos, y describe no solo el conjunto de nombres de archivos, sino también la revisión de cada archivo. Las revisiones incluidas en la etiqueta de los documentos pueden pertenecer a diferentes puntos de tiempo.

T. rUNK, MAYOR LINE (TRUNK) es la rama principal del desarrollo del proyecto. La política de trabajo con el tronco puede diferir del proyecto al proyecto, pero en general es el siguiente: la mayoría de los cambios se realizan en el barril; Si se requiere un cambio serio, capaz de llevar a la inestabilidad, se crea una sucursal, que se fusiona con el barril cuando la innovación está suficientemente probada; Antes del lanzamiento de la próxima versión, se crea una rama de "liberación" en la que se realizan solo correcciones.

U. pDATE, SYNC (Actualización, Sincronización) - Sincronización de la copia de trabajo a algún estado específico del repositorio. La mayoría de las veces, esta acción significa actualizar una copia de trabajo al estado de almacenamiento muy fresco. Sin embargo, si es necesario, puede sincronizar una copia de trabajo y a un estado más antiguo que el actual.

W. copia de orking (copia de trabajo) - Copia de trabajo (local) de documentos.

Considere las posibilidades del DIP en el ejemplo de las versiones más asequibles y populares.

Eclipse (de inglés. Eclipse) es un entorno de desarrollo integrado gratuito para aplicaciones multiplataforma modular (Figura 69). Desarrollado y apoyado por la Organización sin fines de lucro Fundación Eclipse (http://www.eclipse.org/).

Eclipse original fue desarrollado por IBM como un estándar de IPR corporativo para desarrollar en diferentes idiomas bajo la plataforma de esta empresa. Según IBM, diseño y desarrollo, cuesta $ 40 millones. El código fuente estaba completamente abierto y puesto a disposición después de que Eclipse se haya transferido al desarrollo adicional de la comunidad independiente de IBM.

El marco OSGI y SWT / JFACE se basa en Eclipse, basado en la siguiente capa - RCP (plataforma de cliente rica, plataforma para desarrollar aplicaciones de clientes completas). RCP sirve como base no solo para Eclipse, sino también para otras aplicaciones de RCP, como Azureus y Archivo Arreglador. La siguiente capa es el eclipse en sí, que es un conjunto de extensiones de RCP: editores, paneles, prospectos, módulo CVS y Módulo de herramientas de desarrollo Java (JDT).

Eclipse: en primer lugar, un ICR completo de Java, dirigido al desarrollo del grupo: el soporte de CVS se incluye en la oferta de ECLIPSE, varios módulos SVN se están desarrollando activamente, hay soporte para VSS y otros. En virtud de la calidad libre y de alta calidad, Eclipse en muchas organizaciones es un estándar corporativo para desarrollar aplicaciones.

El segundo propósito de Eclipse es servir como una plataforma para desarrollar nuevas extensiones de las que ha ganado popularidad: cualquier desarrollador puede ampliar Eclipse con sus módulos. Ya hay herramientas de desarrollo C / C ++ (CDT) desarrolladas por ingenieros QNX con "IBM", y medios para COBOL, FORTRAN, Idiomas PHP y otros de varios desarrolladores. Muchas extensiones complementan el Eclipse el miércoles por los gerentes para trabajar con bases de datos, servidores de aplicaciones, etc.

Figura 69. . Interfaz de ventana principal Eclipse

Eclipse está escrito en Java, por lo tanto, es un producto independiente de la plataforma, con la excepción de la biblioteca SWT, que se desarrolla para todas las plataformas comunes. La biblioteca SWT se utiliza en lugar de una biblioteca de swing estándar para Java. Se basa completamente en la plataforma subyacente (sistema operativo), que proporciona la velocidad y la apariencia natural de la interfaz de usuario, pero a veces causa los problemas de compatibilidad y sostenibilidad de las aplicaciones en diferentes plataformas.

La base de Eclipse es la plataforma de cliente extendida (RCP de inglés. Plataforma de cliente rica). Sus componentes:

OSGI (conjunto estándar de suministros de conjuntos (paquetes));

SWT (kit de herramientas de widget portátil);

Jface (buffers de archivos, trabajando con texto, editores de texto);

Entorno de trabajo Eclipse (paneles, editores, proyecciones, maestros).

Otro popular ISR Free es Kdevelop (http://www.kdevelop.org, Fig. 70). KDevelop (Ing. KDevelop) - Entorno de desarrollo de software gratuito para sistemas operativos similares a UNIX. El proyecto comenzó en 1998. Kdevelop se aplica de acuerdo con la licencia GNU (licencia pública general).

Figura 70. Interfaz kdevelop

KDevelop no incluye compilador, en su lugar, utiliza ningún compilador para crear un código ejecutable.

La versión estable actual admite una gran cantidad de lenguajes de programación, como Hell, Bash, C, C ++, Fortran, Java, Pascal, Perl, PHP, Python, Ruby y SQL.

CDEVELPEL utiliza el componente incorporado: un editor de texto: a través de la tecnología KPARTS. El editor principal es Kate.

Funciones Kdewelop:

Iluminación del código fuente, teniendo en cuenta la sintaxis del lenguaje de programación utilizado, que se determina automáticamente;

Gerente de proyectos para proyectos de diferentes tipos, como AutoTake, Qtake para proyectos basados \u200b\u200ben tecnologías de QT y HET para proyectos basados \u200b\u200ben Java;

Navegador de clase (navegador de clase);

Front-End para la colección del compilador de GNU;

Front-end para el depurador de GNU;

Ayudantes para generar y actualizar clases y plataformas (marco);

Sistema de finalización de código automático (SI / C ++);

Soporte incorporado para el sistema de documentación del código fuente (Doxygen);

Uno de los sistemas de control de versiones: SCM, CV, Subversión, Perfor y Clearcase;

La función abierta rápida le permite navegar rápidamente a través de archivos.

Kdevelop Es una arquitectura "plug-in". Cuando el desarrollador realiza cambios, solo debe compilar el complemento. Es posible guardar perfiles que indican qué complementos deben cargarse.Kdevelop No se suministra con un editor de texto incorporado, está conectado como un complemento.Kdevelop No depende del lenguaje de programación y de la plataforma en la que comienza, apoyando KDE, GNOME y muchas otras tecnologías (por ejemplo, QT, GTK + y WXWidgets).

Depurador incorporadoKdevelop Le permite trabajar gráficamente con todas las herramientas de depuración, como puntos de interrupción y rastreo. También puede funcionar con complementos dinámicamente cargables, en contraste con la consola GDB.

En este momento hay alrededor de 50 a 100 complementos para este IDE. Entre los marcadores de códigos de proyectos persistentes más útiles, abreviaturas de código, lo que le permite implementar rápidamente texto, fuente de origen, que reformatea la guía de texto para guardar, busque expresiones regulares y búsqueda / reemplazo de proyectos.

El último ICR esMicrosoft Visual Studio. (Microsoft Visual Studio, Fig. 71). De echo,Microsoft Visual Studio. es la línea de productos de Microsoft, que incluye un entorno de desarrollo de software integrado y una serie de otras herramientas.


Figura 71. Interfaz de Microsoft Visual Studio

Microsoft Visual Studio. Incluye uno o más componentes a partir de los siguientes: Visual Basic.net, Visual C ++, Visual C #, Visual F #, Microsoft SQL Server, Visual Interdev, Visual J ++, Visual J #, Visual FoxPro, Fuente visual segura.

Una de las principales ventajas de Microsoft Visual Studio es la documentación de alta calidad del proceso de desarrollo y describiendo posibles problemas en la Biblioteca de MSDN. Sin embargo, la parte más interesante para la parte profesional dedicada a las complejidades de desarrollo existe solo en inglés.

Microsoft también ofrece un análogo gratuito del producto Visual Studio Express.

Alexey Fedorov, Natalia Elfova

El artículo anterior del ciclo actual se dedicó a la consideración del diseño lógico y físico de datos y herramientas utilizados en este proceso. Estábamos convencidos de que el diseño de datos desempeña un papel clave en el desarrollo de los sistemas de información, después de todo, los costos de la creación de solicitudes para los usuarios finales dependen de la calidad de este trabajo, así como con el apoyo posterior y la modernización de los creados. producto. El resultado de esta etapa es la base de datos "vacía" (es decir, la base de datos, la tabla de la cual en su mayoría no contiene registros, excepto, posiblemente las tablas de referencia, como una lista de entidades constituyentes de los códigos de la Federación O Rusia).

La siguiente etapa del ciclo de vida del sistema de información es el desarrollo de aplicaciones de clientes. El resultado de esta etapa es un producto terminado que consiste en una serie de aplicaciones que permiten a los usuarios ingresar datos en las tablas o para editar datos existentes, analizar los datos ingresados \u200b\u200by representarse en una forma más conveniente de gráficos, tablas de resumen o informes ( incluyendo documentos de "papel").

El proceso de diseño de datos para DBMS relacional es, en cierta medida, un proceso lógico y obedece una metodología estándar única. Esto provoca un bajo grado de dependencia de la secuencia realizada al diseñar estas acciones, ya que de la herramienta de diseño de datos exacta, se aplica y sobre si se aplica en absoluto. En realidad, es por eso que las herramientas de diseño de datos son más o menos similares a su interfaz que refleja esencialmente el proceso de dibujar modelos de datos en papel.

El proceso de creación de aplicaciones de clientes que se ejecutan con bases de datos es bastante difícil de describir en forma de una secuencia universal similar de acciones, ya que la lógica de una aplicación particular depende casi completamente de la lógica del proceso de negocio simulado. Las herramientas de desarrollo de aplicaciones, como una categoría de productos de software, existen mucho más tiempo que las herramientas de diseño de datos, y son más diversas, desde el compilador que se ejecuta desde la línea de comandos a las herramientas donde la aplicación terminada se recopila por el "Ratón" de los componentes terminados, y El código se genera automáticamente. Con una variedad de herramientas de desarrollo, deberían clasificar de alguna manera que intentaremos hacer en este artículo, mientras se les dijo cuál de ellos es conveniente aplicar de una manera u otra.

Clasificación de herramientas de desarrollo de aplicaciones.

Puede clasificar las herramientas de desarrollo de varias posiciones, por ejemplo, en función del lenguaje de programación admitido por ellos, o el rendimiento de las aplicaciones creadas en una plataforma particular, o la presencia de ciertas bibliotecas y fondos visuales en ellos. Intentaremos clasificar las herramientas de desarrollo de aplicaciones en función de la conveniencia de aplicarlas para crear productos que sean una interfaz de usuario a la base de datos.

Prácticamente cualquier herramienta de desarrollo, poco apropiada para la universalidad, se puede ver obligada a trabajar con cualquier base de datos: apoyar suficientemente la solicitud en este medio para desarrollar bibliotecas de terceros y la presencia de un conjunto de interfaces de cliente (API) para la plataforma en la que Se han creado aplicaciones. Sin embargo, no ningún par de productos "Herramienta de desarrollo más DBMS" es atractiva desde el punto de vista de los costos laborales asociados con la creación de tales aplicaciones. Puede escribir una aplicación completa que cause las funciones de la API del cliente e implementar una interfaz de usuario conveniente con el compilador de idioma y la biblioteca gráfica más simple (por ejemplo, que le permite cambiar el color de los píxeles en la pantalla) para El sistema operativo en el que funcionará esta aplicación. Pero los costos asociados con la implementación de dicho proyecto pueden ser completamente injustificados, en este caso, los desarrolladores deberán implementar funciones que ya están contenidas en las bibliotecas de clase y componentes de las herramientas de desarrollo, más aplicaciones más profundas con aplicaciones de base de datos o incluido el apoyo para crear dichas aplicaciones.

Herramientas de desarrollo enfocadas en DBMS específicos.

Hace diez a veinte años, en muchas aplicaciones que utilizan bases de datos, las funciones de la API del cliente se llamaron del código escrito en uno de los lenguajes de programación, la mayoría de las veces en C. es suficiente para observar la descripción de la parte del cliente de la parte del cliente de Casi cualquier servidor DBMS, y encontrará muchos ejemplos más fragmentos de código típicos, por ejemplo, para registrar al usuario, ejecutar consultas, etc. Sin embargo, se volvió lo suficientemente claro como para desarrollar los DBMS para desarrollar que los costos laborales asociados con la escritura de un código similar se pueden reducir significativamente al recoger los fragmentos de código más típicos y los elementos más comunes de la interfaz de usuario (incluso si incluso para los terminales alfanuméricos ) emitiendo estas bibliotecas en forma de un producto separado y agregando el entorno de desarrollo a ella y la utilidad de diseño del formulario de usuario para ver y editar datos, así como informes. Esto es exactamente cómo aparecieron los primeros desarrollos centrados en DBMS específicos, como las formas de Oracle * (el predecesor de la corriente Oracle Forms Developer.).

Los productos de esta clase en el mercado de herramientas de desarrollo están disponibles en la actualidad. Casi todos los fabricantes del servidor DBMS también producen herramientas de desarrollo de aplicaciones. En la gran mayoría de los casos, las versiones modernas de estas herramientas de desarrollo apoyan el acceso a los DBMS de otros fabricantes a un mínimo utilizando uno de los mecanismos de acceso a los datos universales (ODBC, OLE DB, BDE). Sin embargo, el acceso a "su" DBMS generalmente se lleva a cabo por la forma más eficiente, es decir, utilizando las API del cliente, los objetos contenidos en las bibliotecas de la parte del cliente de DBMS Server, clases especiales para acceder a estos datos DBMS o mediante la implementación de controladores para Mecanismos de acceso de datos universales, capaces de tener en cuenta las características específicas de este DBMS.

En una categoría separada, puede asignar entornos de desarrollo de la base de datos de escritorio. En el artículo de este ciclo dedicado al DBM de escritorio, ya hemos señalado que la gran mayoría de los DBMS de escritorio, que vivían hasta hoy, como Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual DBase, el acceso de soporte al servidor DBMS , como mínimo, utilizando mecanismos de acceso a datos universales, lo que hace posible atribuirlos condicionalmente a la categoría de medios de desarrollo. Sin embargo, observamos que actualmente la creación de aplicaciones en la arquitectura del cliente-servidor con su ayuda es un fenómeno infrecuente. Excepción, quizás, compone Microsoft Access: MSDE PAIRS, Microsoft Access - Microsoft SQL Server y Microsoft Visual FoxPro - Microsoft SQL Server. Aquí está el resultado de la política de Microsoft competente, luchando por la máxima compatibilidad de sus productos y proporcionando a los usuarios más indoloros para reemplazar sus bases de datos de escritorio en sus propios servidores de base de datos (Access-\u003e MSDE-\u003e Microsoft SQL Server, FoxPro-\u003e Visual FoxPro -\u003e Microsoft SQL Server).

Herramientas de desarrollo, universal en relación con DBMS.

Las herramientas de desarrollo, universal en relación con DBMS (o aplicar a dicha versatilidad), como regla general, son seguidores de los medios convencionales para desarrollar aplicaciones que no están directamente relacionadas con las bases de datos. Los ejemplos típicos de herramientas de desarrollo son Borland Pascal, Borland C ++, Microsoft QuickC. Capaz de usar bibliotecas de terceros, estas herramientas permitieron el acceso a las funciones de las API del cliente, y con el desarrollo de mecanismos de acceso de datos universales (como ODBC), y a las funciones de la API de la biblioteca que implementan tales mecanismos. Tenga en cuenta que a menudo es posible con la ayuda de estos desarrollos, los entornos de la base de datos de escritorio (como DBASE, FOXBASE) o Pseudo-compiladores para los idiomas de la familia XBase se crean (por ejemplo, Clipper).

Las versiones posteriores de los medios designados de desarrollo adquirieron bibliotecas de funciones y clases diseñadas para acceder a los datos con ciertos mecanismos universales. El desarrollo adicional de las herramientas de desarrollo llevó a la aparición de dos categorías de productos para este propósito.

La primera categoría incluye herramientas de desarrollo con extensas bibliotecas de clase, una gran cantidad de "maestros" y el código genera, pero la creación de código orientada "manual" y rara vez se utiliza para crear aplicaciones "estándar" para trabajar con bases de datos (aquí en la frase "estándar Aplicación "Nos referimos a la aplicación que tiene acceso directo a la base de datos con la que interactúa el usuario, es decir, el cliente" Classic "del servidor DBMS). Típico (y el único software realmente popular en el mercado de software) El representante de esta clase de producto es Microsoft Visual C ++. Usando las bibliotecas Microsoft Visual C ++ y MFC (Clases de Fundación Microsoft), puede crear cualquier aplicación si tiene habilidad, conocimiento, habilidad y tiempo. Sin embargo, las aplicaciones con una interfaz de usuario compleja (por ejemplo, usando bases de datos), no se desarrolla con tanta frecuencia (aunque los ejemplos de este uso se pueden encontrar incluso en la literatura doméstica). En su mayoría, este producto se utiliza para crear aplicaciones de clientes en caso de un requisito especial para ellos, como un alto rendimiento, la capacidad de llevar a cabo operaciones no estándar, etc.

La segunda categoría incluye las herramientas de desarrollo con herramientas visuales desarrolladas que literalmente "dibujan" la interfaz de usuario, borra parcialmente las diferencias entre el trabajo del programador y el usuario y el producto final de hostigamiento al atraer la interfaz de desarrollo de desarrolladores que no son los más altos CALIFICACIÓN (Si aprende cuidadosamente los programas de trabajo de los programas de los centros de capacitación especializados en capacitación para herramientas de desarrollo de Microsoft, Borland y Sybase, se puede encontrar que la duración del curso de capacitación, escuchando el cual el usuario habitual de Windows debe aprender a crear aplicaciones de clientes para el servidor DBMSS, varía de 5 a 10 días hábiles).

Es esta categoría de herramientas de desarrollo que se usa más comúnmente al crear aplicaciones de clientes. Los productos más populares de esta clase incluyen Microsoft Visual Basic., Borland Delphi, Sybase PowerBuilder. y Borland C ++ Builder. El entorno de desarrollo para tales productos es muy similar a lo externamente (con una precisión de la ubicación de las ventanas en la pantalla instalada "De forma predeterminada"): Como regla general, el entorno de desarrollo de dicho producto contiene un "blanco" de los proyectados. forma (analógico de la ventana), un panel separado con elementos de la interfaz de usuario y otros pictogramas Los objetos utilizados en la aplicación que se pueden seleccionar y colocar en el formulario, ventana, que muestra y edita las propiedades de uno de los elementos seleccionados en el Formulario (y, a veces, la lista de eventos a los que responde este artículo), la ventana Editor de código donde se pueden ingresar los fragmentos de código asociados con el procesamiento de ciertos eventos, así como el código que implementa la lógica de la operación de esta aplicación. Como regla general, los medios modernos para desarrollar una clase de este tipo hacen posible crear aplicaciones simples para la edición de datos prácticamente sin escribir código.

Recientemente, la creación de aplicaciones que utilizan el acceso a las bases de datos, pero ubicadas dentro de documentos ordinarios, ha sido muy popular. La base para desarrollar dichas aplicaciones son los idiomas macro de los editores relevantes. El único representante popular del desarrollo de esta categoría es visual Basic para aplicaciones, similar a las herramientas de desarrollo visual enumeradas anteriormente y difieren de las que la aplicación creada con ella está contenida dentro de los documentos de Microsoft Office y no están alienados de ellos.

Sin embargo, observamos que la división dada de las herramientas de desarrollo para estas dos clases es muy condicional. Como hemos hablado anteriormente, casi todos los medios de desarrollar aplicaciones con bases de datos, incluidas las orientadas en DBM específicas, mantengan al menos uno de los mecanismos de acceso de datos universales. Y casi todas las herramientas de desarrollo de aplicaciones "universales", si pertenecen al fabricante de cualquier servidor DBMS, admiten "sus" DBMS mejores que los DBMS de los fabricantes de terceros (esto se puede expresar, por ejemplo, en bibliotecas especiales de clases o componentes para acceder a este servidor, y también en presencia de un repositorio general de objetos y modelos de datos, y algunas veces comunes con la parte del cliente del servidor DBMS de configuración de parámetros de acceso o esquemas de datos)

Clasificación de aplicaciones utilizando bases de datos.

Aplicaciones en la arquitectura del cliente-servidor.

En los artículos anteriores de este ciclo, ya hemos hablado de lo que es una arquitectura "cliente-servidor" en una comprensión tradicional. Por lo tanto, solo recordamos brevemente que los sistemas de información creados en dicha arquitectura son un servidor de base de datos que manipula los datos y la aplicación cliente que lo atraiga y utiliza las API del cliente (o encapsulando sus clases de llamadas y componentes), o uno de los datos universales Mecanismos de acceso. Por lo general, cuando se utiliza una arquitectura de aplicaciones hasta el servidor de la base de datos, el monitoreo del cumplimiento de las reglas comerciales implementadas en forma de procedimientos almacenados, desencadenantes, restricciones de servidor y otros objetos de base de datos.

Para crear aplicaciones de clientes, en este caso, las instalaciones de desarrollo con instrumentos visuales desarrollados se usan más comúnmente, como Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C ++ Builder.

Sin embargo, tenga en cuenta que la elección de las arquitecturas de las aplicaciones modernas es actualmente bastante amplia y no está agotada por la arquitectura "clásica" del cliente-servidor, implica que la aplicación consiste en un servidor de base de datos y aplicaciones de clientes que interactúan con este servidor. Por lo tanto, discutiremos a continuación, qué desarrollos se usan convenientemente al crear aplicaciones distribuidas.

Aplicaciones distribuidas

Las aplicaciones distribuidas (o multiform de) generalmente consisten en servicios de presentación (o clientes "delgados" con los que los usuarios finales generalmente interactúan), los servicios de lógica empresarial implementados en forma de objetos empresariales (o servicios de capa intermedia, nivel medio; a menudo para describir un Establezca estos servicios Use el término middleware) y los servicios de datos (generalmente que consisten en bases de datos y mecanismos de acceso a datos). Los servicios de lógica empresarial están diseñados para recibir datos ingresados \u200b\u200bpor el usuario de los servicios de presentación, interactuando con los servicios de datos para realizar operaciones comerciales (por ejemplo, pedidos de procesamiento o calcular la contabilidad) y devolver los resultados de estas operaciones con los servicios de presentación.

A diferencia de las aplicaciones regulares en la arquitectura del cliente-servidor, en los sistemas multifunción "Thin" Clientes, por regla general, no tienen acceso directo a los datos. En su lugar, los clientes envían solicitudes a objetos comerciales especiales específicamente diseñados para este propósito. Aquellos, a su vez, pueden realizar operaciones comerciales solicitadas por el cliente (como procesamiento de pedidos, transacciones bancarias, etc.).

Algunos de los objetos empresariales pueden acceder a los servicios de datos utilizando ciertos mecanismos de acceso a datos. Dado que el usuario final no interactúa directamente con los objetos de negocios, este último generalmente no tiene una interfaz de usuario en la comprensión habitual. Físicamente, los objetos empresariales se pueden implementar en forma de servicios del sistema operativo, aplicaciones de consola o aplicaciones de Windows, así como las bibliotecas descargadas en el espacio de direcciones diseñadas específicamente para este propósito de la aplicación del servidor (servidor web, servidor de aplicaciones, monitor de transacciones, etc. .). A menudo, un objeto de negocio sirve a muchos clientes.

Para crear objetos empresariales, tanto en desarrollo de pruebas con instrumentos visuales desarrollados y herramientas de desarrollo centradas en "Manual" que crean un código de aplicación (como Visual C ++). Cabe señalar que las últimas versiones de casi todas las herramientas de desarrollo de aplicaciones de ventanas más populares (Microsoft Visual Basic, Borland Delphi y Visual C ++, Borland Delphi y C ++ Builder, Sybase PowerBuilder) apoyan la creación de varios tipos de Objetos empresariales (aplicaciones web, objetos ASP, servidores COM, etc.), excepto, quizás, Microsoft Access: este producto está diseñado en lugar de usuarios calificados que en los desarrolladores de sistemas distribuidos. A menudo, este propósito también utiliza la creación de aplicaciones Java (como Borland JBuilder).

Tenga en cuenta que, además de los medios "universales" para crear ambas aplicaciones en la arquitectura del cliente-servidor y los objetos comerciales para sistemas distribuidos, también hay fondos especializados en el mercado para crear objetos comerciales (generalmente aplicaciones web). Desde el desarrollo de esta clase para la plataforma Windows, Microsoft Visual Interdev es la más popular, cuya primera versión apareció en 1998. También puede mencionar otro producto interesante relacionado con la misma categoría de herramientas de desarrollo: Borland intrabuilder, que apareció en dos años antes, pero por alguna razón, a pesar de la creciente necesidad de productos de esta clase, que no recibió más desarrollo. Las herramientas para el desarrollo de una clase similar, como regla general, le permiten crear aplicaciones que generan dinámicamente el código HTML o el código en uno de los idiomas del script (vbscript o javascript), que transmite el servidor web al navegador de usuario Como parte de la página web, y percibe los datos ingresados \u200b\u200bpor el usuario en forma HTML y transferidos al navegador del servidor web.

Conclusión

En este artículo, discutimos el proceso de creación de solicitudes utilizando bases de datos, así como varias categorías de fondos utilizados en su desarrollo. Nos convencimos de que las herramientas de desarrollo se pueden dividir en las herramientas enfocadas en el uso de DBMS específicos, herramientas universales con respecto a DBMS, y entornos de base de datos de escritorio utilizados para desarrollar aplicaciones. Por otro lado, se pueden dividir en fondos enfocados en el diseño visual de la interfaz de usuario (esta categoría incluye Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C ++ Builder), y en nombre del código de código (Visual C ++).

Habiendo considerado las diversas herramientas más populares para desarrollar aplicaciones, estábamos convencidos de que los productos más similares generalmente son compatibles:

  • a un mínimo de los mecanismos de acceso de datos universales, lo que permite el uso de varios datos DBMS en las aplicaciones creadas;
  • creación de varios tipos de aplicaciones distribuidas;
  • generación automática del código de aplicación basado en modelos creados con las herramientas de diseño de datos más populares y los procesos de negocios de modelado.

También discutimos qué aplicaciones en la arquitectura cliente-servidor difieren de sistemas distribuidos y qué herramientas de desarrollo se pueden usar al crear ambos tipos de aplicaciones.

El ciclo de vida del sistema de información no se completa con el desarrollo de aplicaciones. Después de crearlos, se supone que debe probar, implementar, enseñar a los usuarios de su uso y, finalmente, para explotarlos durante varios años. Como resultado de dicha operación, se acumulan los datos, lo que, por regla general, son mucho más valiosos que las aplicaciones reales. Estos datos a menudo son necesarios para hacer que el material de soluciones de gestión importante, por lo tanto, es importante poder convertirlas en forma adecuada para un propósito similar. Para esto, existen medios relacionados con la categoría Business Intelligence: generadores de informes, herramientas de procesamiento de datos analíticas y la búsqueda de patrones. Hablaremos de ellos en el próximo artículo de este ciclo.

Para desarrollar de manera óptima un entorno de software, es necesario combinar varios lenguajes de programación, ya que cada uno de ellos está dirigido a realizar ciertos objetivos y tareas. Como, por ejemplo, varios comandos PHP le permiten crear una página web completa, pero en la práctica, casi siempre el script se usa junto con HTML, y generalmente el código fuente del script contiene una gran cantidad de filas. Pero, a pesar de esto, se debe tener en cuenta que el código en PHP puede estar en cualquier lugar del documento HTML, pero no tiene que usar HTML. Solo es necesario asegurarse de que el código PHP cree el código HTML correcto, que luego se mostrará correctamente por el navegador web.

HTML - lenguaje de marcado de hipertexto, que se utiliza para crear documentos en Internet. Usándolo, se crea una estructura necesaria y una cuadrícula de páginas, cuya apariencia se está mejorando por CSS y JavaScript. En este momento, la última versión es HTML5, que fue precedida por HTML4.01. La mayoría de los recursos web se construyen sobre la base de este idioma.

A diferencia de HTML 4, en los cuales 3 validadores, el validador HTML 5 es uno:. HTML 5 es compatible con MathML y \u200b\u200bSVG.

Nuevas etiquetas: Sección, Artículo, Aparte, HGROUP, encabezado, página de página, diálogo, figura, video, audio, fuente, incruste para insertar contenido con complemento (solo), marca, progreso, medidor, hora, rubí, rt, rp , Lienzo, Comando, Detalle, Datalist, Keygen, Salida.

Nuevos tipos de entrada: tel, búsqueda, url, correo electrónico, fecha de datos, fecha, mes, semana, hora, fecha de datos, número, rango, color.

Nuevos atributos para etiquetas: atributos de medios de ping para a y área, etc.

La desaparición de algunas etiquetas, debido al hecho de que pueden ser reemplazados por CSS: BEBEFONT, BIG, CENTRAL, FONT, S, Strike, TT, U.

La desaparición de los marcos debido al impacto negativo en toda la página.

La desaparición de algunas etiquetas se reemplazó en la especificación actualizada a más relevantes: acrónimo (utilizado por abbr), applet (objeto usado), isindex, dir.

Algunos atributos para las etiquetas no son compatibles debido a la falta de necesidad: Rev y Chartset en Link y A, Forma y coordina U A, etc.

Algunos atributos para las etiquetas no son compatibles debido al hecho de que cuando se usa CSS, se logra el mejor efecto: Alinee tiene todas las etiquetas, alinques, enlace, texto, vink en el cuerpo y así sucesivamente.

Nueva API: dibujando imágenes 2D en tiempo real; control sobre la reproducción de archivos multimedia; almacenamiento de datos en el navegador; edición; ARRASTRAR Y SOLTAR; trabajar con la red; MÍMICA; Nuevos elementos en DOM.

CSS es un lenguaje de descripción formal de la aparición de un documento escrito utilizando el lenguaje de marcado. CSS es un acrónimo para hojas de estilo en cascada / mesas de estilo en cascada. CSS es un lenguaje de estilo que define la visualización de los documentos HTML. Por ejemplo, CSS funciona con fuentes, color, campos, líneas, altura, ancho, imágenes de fondo, posicionamiento de elementos y muchas otras cosas. HTML se puede utilizar para diseñar sitios web, pero CSS proporciona grandes oportunidades y más precisas y trabajadas. CSS, hasta la fecha, apoyado por todos los navegadores.

HTML se utiliza para estructurar los contenidos de la página. CSS se utiliza para formatear este contenido estructurado. Como se desarrolla web, los diseñadores comenzaron a buscar la posibilidad de formatear documentos en línea. Para cumplir con los mayores requisitos de los consumidores, los fabricantes de navegadores (entonces, Netscape y Microsoft) inventaron nuevas etiquetas HTML, como que diferían de las etiquetas HTML originales en que determinaron la apariencia, y no la estructura. También condujo al hecho de que las etiquetas de estructuración originales, como

, más y más se aplican al diseño de páginas en lugar de estructurar el texto. Muchas etiquetas de diseño nuevas, como , solo se apoyó un navegador. "Necesita un navegador X para ver esta página" - Tal rechazo se ha convertido en el fenómeno habitual en los sitios web.

Se creó CSS \u200b\u200bpara corregir esta situación al proporcionar a los diseñadores web las posibilidades de diseño preciso respaldado por todos los navegadores. Al mismo tiempo, se produjo la presentación y el contenido del documento, que simplificó significativamente el trabajo.

La aparición de CSS se ha convertido en una revolución en el mundo del diseño web. Ventajas específicas CSS:

Administrar la visualización de una pluralidad de documentos usando una hoja de estilo;

Control más preciso sobre la aparición de páginas;

Varias vistas para diferentes medios de almacenamiento (pantalla, impresión, etc.);

Equipo de diseño complejo y trabajado.

Hay métodos para aplicar las reglas de CSS a un documento HTML.

Método 1: en línea / en línea (atributo de estilo). Puede aplicar CSS a HTML utilizando el atributo HTML de estilo. El fondo rojo se puede instalar de la siguiente manera:

Ejemplo

Esta es una página roja

Método 2: Interno (estilo de etiqueta). La segunda forma de insertar códigos CSS - HTML-TEG