Episodo 4. Servidor 1C:Enterprise
La base de datos de archivos propietarios de 1C es una elección perfecta para fines de desarrollo. También funciona muy bien para sistemas de producción realmente pequeños que atienden hasta 5 usuarios concurrentes. Cualquier cosa más grande que eso, y empezarás a recibir quejas de los usuarios. Escucharás que el sistema es lento, que hay períodos de completa falta de respuesta seguidos de mensajes de error extraños, etc. Por favor, intenta luchar contra tu instinto primario de gastar una gran cantidad de dinero en una actualización de hardware tan pronto como escuches la palabra "lento". Créeme, lo más probable es que estos problemas no tengan nada que ver con el rendimiento del hardware. Has llegado a un punto en el que necesitas cambiar de la base de datos basada en archivos a 1C:Enterprise Server y a un sistema de gestión de bases de datos real. Esto es lo que vamos a discutir hoy.
En una arquitectura de dos niveles, la aplicación cliente se comunica directamente con la base de datos. Envía consultas y procesa los resultados por sí misma.
La arquitectura de tres niveles agrega una cosa más al panorama. Es el servidor de aplicaciones que va justo en el medio entre el cliente y la base de datos. En cuanto a la base de datos, podemos usar cualquiera de estos cuatro sistemas de gestión de bases de datos (DBMS), pero en este episodio solo nos centraremos en MS SQL Server. Déjame mostrarte.
Ya he instalado SQL Server en una computadora separada, y este es el nombre de mi instancia de SQL Server. Uso el inicio de sesión "sa" para conectarme al servidor, y esta es la única configuración que necesito hacer aquí. Ahora, al servidor 1C.
Estoy ejecutando el instalador de la Plataforma. Modificar. Agregando un servidor 1C y sus herramientas administrativas. Siguiente. Y aquí están las configuraciones del servidor 1C. Definitivamente queremos que se ejecute como un servicio. Luego, necesitamos indicarle al servidor qué inicio de sesión de usuario usar. Puede ser Administrador, si conoces su contraseña. O podemos crear uno completamente nuevo solo para el servidor 1C, como este. Y aquí vamos.
Bien, veamos qué tenemos. Estoy ejecutando la Consola de Administración de Computadoras, yendo a servicios y aquí está nuestro servidor 1C:Enterprise en funcionamiento. Su única misión es servir a los clientes: aceptar sus solicitudes, procesarlas y devolver los resultados.
Para que esto funcione, el servidor necesita puertos de red abiertos, y aquí es donde se configuran. Puedes cambiarlos a lo que quieras y, más importante aún, asegurarte de que estén abiertos en la configuración del firewall.
Veamos los procesos del servidor 1C:Enterprise. Ejecuto el Administrador de Tareas, y aquí están los procesos que estamos buscando. Es un agente del servidor, un administrador de clústeres y un proceso de trabajo. Veamos por qué hay tantos y para qué los necesita el servidor. Cuando tu sistema crece, más y más usuarios envían sus solicitudes al servidor. Y esperan obtener respuestas. En algún momento, podrías notar que el hardware del servidor está sobrecargado.
Al mismo tiempo, los usuarios podrían empezar a quejarse de ralentizaciones. Si estas dos cosas ocurren al mismo tiempo, puedes empezar a compartir la carga de trabajo entre varias computadoras. En este caso, los usuarios se distribuyen automáticamente entre los servidores, de esta manera. Este tipo de configuración se llama clúster de servidores, y estos tres procesos facilitan el trabajo en equipo de los servidores.
El Agente del Servidor conecta una computadora al clúster. Por lo tanto, necesitas que esté en funcionamiento en cada computadora que desees usar como servidor. El Administrador de Clústeres coordina a todo este grupo y sirve como una puerta de acceso para los usuarios al clúster. Solo necesitas una copia de él, así que estamos bien donde estamos.
Los Procesos de Trabajo son nuestros caballos de batalla. Ellos se encargan de los usuarios: procesan sus solicitudes y envían los resultados de vuelta. Cada computadora en el clúster debe tener al menos uno de estos, así que aquí van.
¿Cómo configuramos todo esto?, podrías preguntar. Primero, necesitamos instalar el servidor 1C en cada computadora, por supuesto. Después de esto, podemos ejecutar la Consola de Clústeres y agregar todas las computadoras al clúster, de esta manera, o configurar los parámetros del clúster, así. Una cosa más importante. Cada computadora que funcione como parte del clúster de 1C:Enterprise debe tener su propia licencia de servidor. ¿Recuerdas esta tabla? Estos son los tres tipos de licencias que utiliza 1C:Enterprise.
Necesitamos instalar una licencia de servidor por separado en cada uno de los servidores, así. El procedimiento de activación de la licencia es exactamente el mismo. Tan pronto como empiezas a usar el servidor, recibes el mensaje que ya has visto, y sabes qué hacer a continuación.
Hablando de las licencias. ¿Qué hacemos con las de cliente? Obviamente, no podemos molestar a cada uno de nuestros usuarios con obtener un kit de licencias y activarlo. En su lugar, deberíamos activar una licencia multiusuario en uno de los servidores. Por supuesto, hay mucho más en la configuración del clúster, pero lo dejaremos para otra ocasión.
Ahora, aprendamos cómo migrar nuestra base de datos al nuevo entorno utilizando el Designer. Entonces, esta es mi estación de trabajo de desarrollo. Estoy ejecutando el Designer y abriendo una base de datos basada en archivos con la que mis usuarios han estado trabajando hasta ahora. Ahora, necesito pedir a mis usuarios que cierren sesión en la base de datos y asegurarme de que no haya nadie más aquí excepto yo.
También podría escribir un procedimiento sencillo que evite que alguien inicie sesión utilizando este procedimiento SetExclusiveMode. Ahora estoy volcando toda la base de datos en un archivo DT y guardándolo en mi escritorio. Bien, hemos terminado aquí, así que voy a cerrar este Designer y ejecutar otro 1C:Enterprise.
Primero, vamos a renombrar la antigua base de datos de producción, así. Ahora estoy agregando una nueva base de datos, dándole un nombre y diciéndole a la Plataforma que cree una base de datos basada en DBMS en lugar de una basada en archivos. A continuación, aquí hay un montón de configuraciones que necesitamos completar. Primero: Nombre del clúster de servidores. Este es el nombre de red de la computadora en la que ejecutas el servidor 1C.
Si tienes una configuración de clúster y hay varias computadoras ejecutando el servidor 1C, elige la que tiene el Administrador de Clústeres. En mi caso, no hay clúster, y el nombre de red de esta computadora es My1CServer. Así que esto es lo que escribo aquí. Luego, necesito especificar el nombre arbitrario de la base de datos. Llamémosla PROD nuevamente.
La siguiente configuración le indica a la plataforma cuán segura debe ser la conexión entre el cliente y el servidor 1C. Podemos configurar una conexión segura solo durante el apretón de manos o para toda la sesión, aunque esta última opción ralentizará el intercambio de datos entre el cliente y el servidor 1C.
Para este caso específico, realmente no necesito preocuparme por la seguridad, así que simplemente lo dejaré deshabilitado.
A continuación: Tipo de DBMS. Microsoft SQL Server, por favor. Siguiente: Nombre de red de la instancia del servidor DBMS. No tengo idea, pero preguntemos al servidor mismo. Aquí está mi computadora con SQL Server, y este es el nombre de red de la instancia. Bien, de vuelta al Designer. Copiando el nombre de la instancia de SQL Server. A continuación: el nombre arbitrario de la base de datos SQL. Llamémosla también PROD. Y los siguientes dos campos: el usuario y la contraseña que el servidor 1C utilizará al enviar solicitudes al servidor SQL.
Por favor, recuerda que tus usuarios de la aplicación nunca llaman directamente al servidor de base de datos y, por lo tanto, no necesitan contraseñas personales para la base de datos. La única entidad que llama a la base de datos es el servidor 1C, y necesita una sola contraseña para atender a todos los usuarios. Así que estoy utilizando el usuario "sa" y la contraseña aquí.
Y aquí vamos. Esta es mi nueva base de datos. La estoy abriendo con Designer, restaurando sus datos desde el archivo DT, y listo. ¡Mi base de datos está desplegada en el servidor 1C y lista para funcionar!