Bienvenido, invitado ( Identificarse | Registrarse )
![]() ![]() |
Apr 3 2009, 08:58 AM
Publicado:
#1
|
|
|
Lobo Alfa ![]() Grupo: Admin Mensajes: 14606 Registrado: 17-November 05 Desde: Mexico Miembro nº: 1 |
Escrito en 1995 Para Documentar un sistema en red
Las reglas de programación citados mas abajo, representan el núcleo de los principios de programación de un servidor. En algunas ocasiones se verán cambios o partes de código que no siguen el esquema común del código; esto se debe a las indicaciones señaladas por el proceso en sí o por pedido del cliente. Debido a que el acceso a las bases de datos es constante y en red el acceso es simultáneo, la red siempre se verá afectada por el número de archivos abiertos. Si se abren y cierran los archivos continuamente, la carga de red se altera de manera proporcional a la rapidez del equipo, y solo afecta el rendimiento de la terminal independiente y no de todos los nodos de la red. Este sistema optimiza el código para aprovechar la velocidad del CPU disminuyendo al máximo el tiempo en que un archivo se encuentra bloqueado por un usuario. Aunque este abrir y cerrar de archivos afecta la velocidad, solo lo hace en las máquinas que de todas maneras alentarían la red. Sin embargo se da preferencia a dejar libre memoria, ya que la diferencia en memoria disponible afecta el rendimiento. Aunque el sistema obliga a hacer un número infinito de reintentos, realmente solo afecta a los equipos con BENCH mayor a 2. (Ver nota mas adelante) Para reducir la baja de rendimiento del sistema en un equipo no apto para el mismo, se optó por realizar un procedimiento de acceso semejante a una biblioteca, con la diferencia que el bibliotecario será el programa, y al utilizar de manera adecuada las rutinas de bloqueo de registros del lenguaje, se crea un código mas robusto, por lo que en caso de una caída de la red lo único perdido es la ultima transacción, que puede identificarse en segundos. Así se tiene la ventaja de preservar la integridad de las bases de datos, y adicionalmente es muy fácil identificar que usuario estaba usando una base, permitiendo una corrección de errores independiente del software de Sistema Operativo de Red, a la vez que facilita asignar la responsabilidad a un equipo o persona específico y no al sistema. La misma capacidad de las máquinas que servirán como nodos fijarán la carga de la red aparente, ya que el sistema reacciona a la máquina y no a la red. Según los índices de Red de Norton Utilities, el tráfico de la información afecta el rendimiento solo en las maquinas MUY antiguas, sin afectar a los mas nuevos. Debe recordarse que los índices Norton de Red son mejores mientras mas grande sea el valor. En el manejo de disco en red deben considerarse los siguientes puntos: a )Netware crea un respaldo de los archivos borrados, dicho respaldo solo se elimina si se llena el disco (produce un mensaje de error) o si se da la orden PURGE. Este inconveniente lo provoca la red, porque el dar los PURGE es mantenimiento del administrador de la red y no del sistema de suministros. b )Los archivos temporales no deben hacerse en la red, sino en la ruta establecida por la variable de entorno TEMP, y en su defecto, se recomienda que se direccionen al disco duro local, si hay espacio suficiente. c )En algunos lenguajes por default el archivo temporal de memoria virtual SIEMPRE se hará en el directorio donde esté el ejecutable, si no es posible cambiarlo al disco duro ( en Clipper si se puede ) es necesario que el usuario tenga derecho de creación en ese directorio, o el sistema sufrirá una caída. Esto puede evitarse usando los parámetros SWAPPATH de Clipper, pero se recomienda usarlos al administrador de la red. d )Si el disco al que apuntan los archivos temporales esta comprimido (dblspace por ejemplo) el rendimiento del sistema (y su integridad) decrecen a la tercera parte. Se recomienda crear un proceso para medir los tiempos de acceso a red se que pueda llamarse en cualquier momento. Un procedimiento promedio muestra los resultados de una prueba de lectura/escritura secuencial en los modos Shared y Exclusive, dando como resultado el rendimiento real de acceso a archivos por nodo, independiente de la Red (aunque el CPU y disco del servidor influyen en la prueba, lo hacen por igual en cada nodo). Usando el módulo anterior puede verse la gran diferencia entre máquinas nuevas y otras un poco mas antiguas. El sistema se diseñó para ser usado en máquinas Pentium2 y en la primera implantación real, el sistema contó con varias máquinas Celeron con 16 mb de memoria, puede notarse que la degradación del sistema no se debe al programa. Debido a que el sistema en red espera una operación simultánea por varios nodos, hay que tratar de usar lecturas no exclusivas siempre que fuera posible, almacenando los campos necesarios en variables de memoria dejando el archivo cerrado excepto al leerse o escribirse datos. Para evitar que el carácter "fijo" de estas variables afecte los resultados, algunas operaciones solo pueden ser realizadas si hay un solo usuario en la red o con un nivel de acceso determinado en el sistema y/o en la red. Como se mencionó anteriormente, el mantener archivos cerrados siempre que sea posible aumenta la fiabilidad del sistema. Por ejemplo, una operadora del sistema puede recibir una llamada de un cliente que no se exprese claramente, y en lugar de mantener el archivo abierto hasta que los datos sean introducidos, restringiendo por lo tanto el acceso de otros usuarios o procesos, este sistema asegura que en un lapso no mayor de 3 segundos, y esto es en casos extremos, el archivo estará disponible para el usuario que lo requiere. En pruebas durante el desarrollo el tiempo de acceso cambia entre 30 y 40 centésimas de segundo, y la integridad de los archivos se asegura usando los datos solo cuando se requieran. La experiencia ha demostrado que el tiempo total de atención a un cliente normal, por una operadora capacitada, se limita a 18 segundos desde el momento en que se levanta el teléfono hasta que se despide el cliente, tomando como base 10000 registros de clientes. En la mayor parte de las tablas de CONSULTA no modificables, que necesiten la base abierta se trabaja sobre la base en sí y no sobre bases temporales. Esto es con el fin de presentar información mas confiable, causando uno de los puntos débiles del sistema, aunque esta debilidad es relativa, ya que en las pruebas en que se cortó intencionalmente la energía eléctrica, no se dañó la información. Como la base se abre en modo no exclusivo, no se pierde información en caso de fallas de la corriente eléctrica, pero mientras se esté usando la tabla, no es posible que otra terminal utilice un proceso que requiera exclusividad. En otras palabras, se debe dar prioridad a la actualización On-line de información que "solidez" relativa del sistema, si es necesario usar tablas directas sin cerrar la fuente de datos. Criterios de programación:
Según Nantucket los programas de Clipper 5.2 necesitan un mínimo de 120 en memoria convencional para funcionar, y 160 para un uso óptimo. Esta memoria debe sumarse al numero de Kb que reporta RTLINK, y estar disponible en memoria convencional ANTES de llamar al sistema. Ejemplo: Memoria Total Total RTLINK 311 Memoria Mínima 120 311+120 = 431 Memoria Recomendada 160 311+160 = 471 Algunos procesos necesitan mas memoria que otros, así que donde ha sido posible, se hacen comprobaciones adicionales de memoria disponible sobre la marcha. Esto es muy importante en los procedimientos que crean arrays de gran tamaño. NOTA Sobre EXOSPACE: El uso de EXOSPACE de Clipper 5.3 crea situaciones especiales de memoria. Se sugiere leer detenidamente el anexo correspondiente. Por otro lado, todos los chequeos de memoria que aparentemente sobran en 5.2, son necesarios para 5.3, pero después del crecimiento que ha tenido suministros, es posible que deban ponerse mas líneas de chequeo de memoria en lugares estratégicos. -------------------- __________________________
Por la ley y para siempre For the Rule and forever |
|
|
|
![]() ![]() |
| Versión Lo-Fi | Fecha y Hora actual: 31st July 2010 - 11:43 PM |