Saltar al contenido principal
Versión: 20 R5 BETA

Gestión Cliente/Servidor

Las aplicaciones 4D Desktop pueden utilizarse en una configuración Cliente/Servidor, ya sea como aplicaciones combinadas cliente/servidor o como proyectos remotos.

  • merged client/server applications are generated by the Build Application manager. Se utilizan para el despliegue de aplicaciones.

  • remote projects are .4DProject files opened by 4D Server and accessed with 4D in remote mode. The server sends a .4dz version of the project (compressed format) to the remote 4D, thus structure files are read-only. Esta configuración se suele utilizar para probar la aplicación.

Connecting to a remote project from the same machine as 4D Server allows modifying the project files. This specific feature allows to develop a client/server application in the same context as the deployment context.

Abrir una aplicación cliente/servidor fusionada

Una aplicación cliente/servidor fusionada se personaliza y su puesta en marcha se simplifica:

  • Para lanzar la parte del servidor, el usuario simplemente hace doble clic en la aplicación servidor. No es necesario seleccionar el archivo proyecto.
  • Para lanzar la parte cliente, el usuario simplemente hace doble clic en la aplicación cliente, que se conecta directamente a la aplicación servidor.

These principles are detailed in the Build Application page.

Abrir un proyecto remoto

La primera vez que se conecte a un proyecto 4D Server a través de un 4D remoto, normalmente utilizará la caja de diálogo de conexión estándar. Thereafter, you will be able to connect directly using the Open Recent Projects menu or a 4DLink shortcut file.

Para conectarse remotamente a un proyecto 4D Server:

  1. Haga una de las siguientes cosas:
    • Select Connect to 4D Server in the Welcome Wizard dialog
    • Select Open/Remote Project... from the File menu or the Open toolbar button.

Aparece el diálogo de conexión de 4D Server. This dialog has three tabs: Recent, Available, and Custom.

If 4D Server is connected to the same subnetwork as the remote 4D, select Available. 4D Server incluye un sistema de difusión integrado que, por defecto, publica el nombre de los proyectos 4D Server disponibles en la red. La lista se ordena por orden de aparición y se actualiza dinámicamente.

To connect to a server from the list, double-click on its name or select it and click the OK button.

If the published project is not displayed in the Available list, select Custom. La página Personalizada le permite conectarse a un servidor publicado en la red utilizando su dirección de red y asignándole un nombre personalizado.

  • Project name: Defines the local name of the 4D Server project. This name will be used in the Recent page when referring to the project.
  • Network address: The IP address of the machine where the 4D Server was launched.
    • If two servers are executed simultaneously on the same machine, the IP address must be followed by a colon and port number, for example: 192.168.92.104:19814.
    • Por defecto, el puerto de publicación de un 4D Server es el 19813. Este número puede modificarse en los parámetros del proyecto.

The Activate development mode option opens the remote connection in a special read/write mode and requires to access the project folder from the remote 4D (compatibility option).

Once this page assigns a server, clicking the OK button will allow you to connect to the server.

Once a connection to the server has been established, the remote project will be listed on the Recent tab.

Actualización de los archivos del proyecto en el servidor

4D Server automatically creates and sends the remote machines a .4dz version of the .4DProject project file (not compressed) in interpreted mode.

  • An updated .4dz version of the project is automatically produced when necessary, i.e. when the project has been modified and reloaded by 4D Server. El proyecto se recarga:
    • automáticamente, cuando la ventana de la aplicación 4D Server pasa al frente del sistema operativo o cuando la aplicación 4D en la misma máquina guarda una modificación (ver abajo).
    • when the RELOAD PROJECT command is executed. Llamar a este comando es necesario cuando, por ejemplo, se ha sacado una nueva versión del proyecto desde la plataforma de control de fuentes.

Actualización de los archivos de proyecto en las máquinas remotas

Cuando se ha producido una versión .4dz actualizada del proyecto en 4D Server, las máquinas 4D remotas conectadas deben cerrar la sesión y volver a conectarse a 4D Server para poder beneficiarse de la versión actualizada.

Utilizar 4D y 4D Server en la misma máquina

Cuando 4D se conecta a un 4D Server en la misma máquina, la aplicación se comporta como 4D en modo monopuesto y el entorno de diseño le permite editar los archivos del proyecto. Esta funcionalidad le permite desarrollar una aplicación cliente/servidor en el mismo contexto de despliegue.

When 4D connects to a 4D Server on the same machine, the development mode is automatically activated, whatever the opening option status.

Each time 4D performs a Save all action from the design environment (explicitly from File menu or implicitly by switching to application mode for example), 4D Server synchronously reloads project files. 4D espera a que 4D Server termine de recargar los archivos del proyecto antes de continuar.

However, you need to pay attention to the following behavior differences compared to standard project architecture:

  • la carpeta userPreferences.{username} utilizada por 4D no es la misma carpeta utilizada por 4D Server en la carpeta proyecto. En su lugar, es una carpeta dedicada, llamada "userPreferences", almacenada en la carpeta sistema del proyecto (es decir, la misma ubicación que al abrir un proyecto .4dz).
  • la carpeta utilizada por 4D para los datos derivados no es la carpeta llamada "DerivedData" en la carpeta proyecto. En su lugar, se trata de una carpeta dedicada llamada "DerivedDataRemote" situada en la carpeta del sistema del proyecto.
  • el archivo catalog.4DCatalog no es editado por 4D sino por 4D Server. La información del catálogo se sincroniza mediante peticiones cliente/servidor
  • el archivo directory.json no es editado por 4D sino por 4D Server. La información del directorio se sincroniza mediante peticiones cliente/servidor
  • 4D utiliza sus propios componentes internos y plug-ins en lugar de los de 4D Server.

No se recomienda instalar plug-ins o componentes a nivel de la aplicación 4D o 4D Server.

Sesiones de usuarios remotos

On the server, the Session command returns a session object describing the current user session. This object is handled through the functions and properties of the Session class.

Utilización

The session object allows you to get information about the remote user session. You can share data between all processes of the user session using the session.storage shared object.

For example, you can launch a user authentication and verification procedure when a client connects to the server, involving entering a code sent by e-mail or SMS into the application. You then add the user information to the session storage, enabling the server to identify the user. De este modo, el servidor 4D puede acceder a la información del usuario para todos los procesos del cliente, lo que permite escribir código personalizado según el rol del usuario.

Disponibilidad

The remote user session object is available from:

  • Project methods that have the Execute on Server attribute (they are executed in the "twinned" process of the client process),
  • Triggers,
  • On Server Open Connection and On Server Shutdown Connection database methods.
info

Todos los procedimientos almacenados en el servidor comparten la misma sesión de usuario virtual. For more information, see this page on doc.4d.com.

Ver también (entrada de blog)

4D remote session object with Client/Server connection and Stored procedure.