You are on page 1of 63

Universidad de Costa Rica

Facultad de Ingeniería
Escuela de Ingeniería Eléctrica

IE – 0502 Proyecto Eléctrico

SIMULADOR DE CIRCUITOS BASADO EN


WEB

Por:

RICARDO HERRERA MORENO

Ciudad Universitaria Rodrigo Facio


Julio de 2010
SIMULADOR DE CIRCUITOS BASADO EN
WEB

Por:
RICARDO HERRERA MORENO

Sometido a la Escuela de Ingeniería Eléctrica


de la Facultad de Ingeniería
de la Universidad de Costa Rica
como requisito parcial para optar por el grado de:

BACHILLER EN INGENIERÍA ELÉCTRICA

Aprobado por el Tribunal:

_________________________________
Ing. Lucky Lochi Yu Lo, P.h.D
Profesor Guía

_________________________________ _________________________________
Ing. Jaime Cascante Vindas, P.h.D Ing. Enrique Coen Alfaro, M.Sc.
Profesor Lector Profesor Lector

ii
DEDICATORIA
A mi madre y padre.

iii
RECONOCIMIENTOS
A los creadores y desarrolladores del lenguaje de programación PHP.

iv
ÍNDICE GENERAL

NOMENCLATURA................................................................................................................x
RESUMEN............................................................................................................................xi
CAPÍTULO 1: Introducción..................................................................................................1
1.1 Objetivos..............................................................................................................3
1.1.1 Objetivo general....................................................................................3
1.1.2 Objetivos específicos.............................................................................3
1.2 Metodología..........................................................................................................4
CAPÍTULO 2: Desarrollo teórico..........................................................................................5
2.1 Comparación JAVASCRIPT, ACTIONSCRIPT...................................................6
2.1.1 Archivos SWF incrustados en HTML ...............................................10
2.2 Diagramas del simulador ..................................................................................11
CAPÍTULO 3: Resultados...................................................................................................16
3.1 Creación de la interfaz WEB/C++ y habilitación del simulador.......................16
3.2 Diseño y herramientas WEB, FLEX y ACTIONSCRIPT.................................18
3.3 Desarrollo de interfaz con aplicaciones ACTIONSCRIPT/PHP/C++..............19
3.4 Estructura de la implementación del simulador................................................22
3.4.1 Estructura de la implementación C++................................................22
3.4.2 Estructura de la implementación PHP................................................25
3.4.3 Estructura de la implementación ACTIONSCRIPT...........................28
3.5 Tendencias de diseño.........................................................................................31
CAPÍTULO 4: Conclusiones y recomendaciones................................................................33
4.1 Conclusiones.....................................................................................................33
4.2 Recomendaciones..............................................................................................34
BIBLIOGRAFÍA..................................................................................................................35
APÉNDICES........................................................................................................................37
Apéndice A: Zend Framework.............................................................................................37
Apéndice B: Estructura Zend API........................................................................................38
Apéndice C: Tuberías en C++..............................................................................................39

v
ANEXOS..............................................................................................................................40
Anexo 1: Instalación y configuración de software...............................................................40
Anexo 2: Estructura de archivos .........................................................................................43
Anexo 3: Ejemplos de desarrollo .........................................................................................47

vi
ÍNDICE DE FIGURAS

Figura 2.1 Comparación JAVASCRIPT y ACTIONSCRIPT.................................................8


Figura 2.2 Archivos SWF incrustados en HTML...............................................................10
Figura 2.3 Organización de un servidor PHP.......................................................................11
Figura 2.4 Transferencia de datos entre servidor y cliente...................................................12
Figura 2.5 Estructura de programación del simulador.........................................................12
Figura 2.6 Estructura del flujo de programación de C++ a PHP.........................................13
Figura 2.7 Estructura del flujo de programación de PHP a ACTIONSCRIPT.....................14
Figura 2.8 Estructura del flujo de programación del simulador...........................................14
Figura 2.9 Estructura del flujo de diseño del simulador......................................................15
Figura 3.1 Estructura de programación del simulador.........................................................16
Figura 3.2 Estructura de programación ACTIONSCRIPT..................................................18
Figura 3.3 Estructura de interfaz para cargar/guardar..........................................................20
Figura 3.4 Estructura de interfaz para remover archivo.......................................................21
Figura 3.5 Estructura implementación C++.........................................................................22
Figura 3.6 Implementación método save_file librería C++.................................................23
Figura 3.7 Implementación programa erase_server_file librería C++.................................24
Figura 3.8 Estructura implementación PHP.........................................................................25
Figura 3.9 Implementación método save_file PHP..............................................................26
Figura 3.10 Implementación método remove_file PHP.......................................................27
Figura 3.11 Estructura implementación ACTIONSCRIPT..................................................28
Figura 3.12 Complemento estructura implementación ACTIONSCRIPT...........................29
Figura 3.13 Implementación método save_file ACTIONSCRIPT......................................30
Figura 3.14 Implementación método remove_file ACTIONSCRIPT..................................30
Figura 3.15 Primera tendencia de estructura del simulador web.........................................31
Figura 3.16 Segunda tendencia de estructura del simulador web........................................32
Figura A.1 Estructura Zend Framework ..............................................................................37
Figura B.1 Estructura Zend API ..........................................................................................38
Figura C.1 Estructura tubería C++........................................................................................39

vii
Figura A2.1 Estructura de archivos de la carpeta del usuario..............................................43
Figura A2.2 Estructura de archivos del Framework.............................................................44
Figura A2.3 Estructura de archivos públicos del Framework...............................................45

viii
ÍNDICE DE TABLAS

Cuadro 2.1 Comparación JAVASCRIPT, ACTIONSCRIPT...................................................7

ix
NOMENCLATURA

C++ Lenguaje de programación orientado a objetos.

PHP Lenguaje de programación orientado páginas web dinámicas.

HTML Lenguaje de programación para páginas web.

SCRIPT Archivos para la ejecución de órdenes en sistemas operativos.

JAVASCRIPT Lenguaje tipo script para acceder objetos web.

ACTIONSCRIPT Lenguaje de programación orientado a objetos web.

DEBIAN Sistema operativo GNU/Linux.

APACHE Programa servidor HTTP web.

FLEX Ambiente para desarrollar aplicaciones enriquecidas de internet.

AMF Formato de archivos actionscript.

x
RESUMEN
Este proyecto tuvo como objetivo principal el desarrollo de una interfaz WEB/C++

que permitió utilizar código C++ en un sitio web. Este código C++ fue una librería de

objetos y métodos característicos de sistemas electrónicos y la interfaz fue una forma de

utilizar los resultados de esta librería en el lenguaje de programación ACTIONSCRIPT.

Para lograr este objetivo se investigó en internet acerca de los lenguajes de

programación HTML, JAVASCRIPT, ACTIONSCRIPT y PHP. Luego de obtener

suficientes conocimientos sobre las técnicas de programación para sitios web y servidores.

Se determinó que las secciones de código HTML que necesitaba este proyecto requerían de

varias capas de código JAVASCRIPT y esto implica aprender varios estilos de programación

de este lenguaje. Este proyecto no estableció el tiempo necesario para aprender dichos

estilos y presentar una investigación clara de lo que se puede obtener con JAVASCRIPT,

esta fue la razón principal para desechar la programación con la tecnología JAVASCRIPT.

Se estudió sobre el lenguaje de programación PHP para un servidor de páginas web

APACHE en el sistema operativo Debian GNU/Linux Lenny 5. Este aprendizaje fue sobre

como PHP puede envolver el lenguaje C++ y utilizarlo como una librería propia e incluso

ejecutar código propio del servidor. También se aprendió sobre la interfaz para sitios web

Zend Framework, la cual se comunicó con el sitio web programado con ACTIONSCRIPT.

El desarrollo de la interfaz fue exitoso y se logró crear un ambiente de escritorio con

ayuda de ACTIONSCRIPT. Este es un sitio web capaz de solicitar al servidor PHP la

ejecución de la librería C++ y cualquier otro código en C++. Luego el servidor toma los

resultados de la ejecución y los envía al sitio web para responder las peticiones del usuario.

xi
CAPÍTULO 1: Introducción

Desde el punto de vista de las redes de computadoras, se tienen dos grandes tipos

de configuraciones: servidor y cliente. El servidor es la computadora configurada para

enviar cierta información a todas la computadoras que soliciten información por medio de

su dirección IP. El cliente es la computadora que por lo general presenta una configuración

establecida por los usuarios y las solicitudes de información que hacen los usuarios desde

su dirección IP son aleatorias.

El cliente, por lo general, utiliza un navegador de internet para acceder a los sitios

web, al hacer esto solicita al servidor que le envíe el código necesario para ejecutar el

código HTML que contiene el sitio web, de esta manera el flujo de información se da del

servidor al cliente. De esta forma, los programas que corren en la computadora personal de

cada usuario sólo se pueden ejecutar si son instalados por cada usuario que necesita

ejecutarlos, ya que los sitios web sólo cuentan con el código necesario para ejecutar el

código HTML del sitio web. Este tipo de sitos web que siempre muestran la misma

información con la misma presentación son conocidos como sitios web estáticos, ya que lo

que se ve es lo que se obtiene.

Años atrás para lograr un intercambio entre el servidor y el cliente, se configuraba

un servidor con programas que eran capaces de asociar las peticiones hechas desde el

cliente con programas que se encontraban en el servidor. Estos programas sólo permitían

acceder el servidor y ejecutar los programas de la misma forma, sin manipular el código

HTML del sitio web, estos fueron los primeros tipos de sitios web dinámicos.

1
Hoy en día navegamos por internet y nos encontramos sitios web que nos permiten

hacer consultas, descargar archivos, ejecutar audio y vídeo, realizar transacciones

bancarias, controlar algún dispositivo electrónico conectado a internet, jugar, realizar

llamadas, conferencias y mucho mas. Esto se debe a que el flujo de información entre el

servidor y el cliente ha mejorado de forma importante en el lado del servidor, ya que éste

no sólo se limita a dar el resultado de la petición hecha por el cliente si no que, por lo

general, actualiza el sitio web constantemente con nueva información, permitiendo así

manipular el código HTML del sitio web y presentar muchas opciones al usuario.

La necesidad de utilizar nuestros programas desde internet se debe en parte a que la

sociedad es cada vez mas asíncrona e internet permite realizar muchas actividades en

diferentes horas del día. Además, si nuestras aplicaciones están disponibles en internet

desde un sitio web que se encuentre en un servidor, no se requiere de la instalación de

programas especiales para ejecutarlos.

El lenguaje HTML consta de varias etiquetas (secciones de código) para ubicar los

distintos tipos de datos como son títulos, texto, imágenes, menús, botones entre otros. Estas

etiquetas se controlan por medio de un lenguaje de programación auxiliar como pueden ser

JAVASCRIPT y ACTIONSCRIPT. El lenguaje de programación JAVASCRIPT se compone

de varios estilos para manipular cada aspecto del código HTML, en cambio

ACTIONSCRIPT utiliza cada sección del código HTML como un objeto al igual que sucede

en C++. Debido al conocimiento previo de C++ es mas conveniente utilizar

ACTIONSCRIPT para este proyecto además, no se cuenta con el tiempo necesario para

aprender los distintos estilos del lenguaje JAVASCRIPT.

2
1.1 Objetivos

1.1.1 Objetivo General

Habilitar la simulación de sistemas electrónicos por medio de interfaz WEB/C++

1.1.2 Objetivos específicos

•Habilitar la simulación de sistemas electrónicos por medio de interfaz WEB/C++.

•Aprender sobre el diseño y herramientas WEB, FLEX y ACTIONSCRIPT.

•Desarrollar interfaz entre aplicaciones ACTIONSCRIPT/PHP/C++.

3
1.2 Metodología

Este proyecto se desarrolló con investigación en sitios web sobre las herramientas

HTML [1], JAVASCRIPT [2], PHP [3,17] y ACTIONSCRIPT [4,15]. Luego de obtener

los conocimientos necesarios se procedió a experimentar con ejemplos de programación

ejecutables.

Estos ejemplos de programación ejecutables permitieron desarrollar la interfaz de

programas entre el simulador C++ y el simulador WEB. Posteriormente se procedió al

desarrollo de otros componentes del simulador web que permitieron su uso intuitivo y su

uso como una herramienta web capaz de simular sistemas electrónicos.

4
CAPÍTULO 2: Desarrollo teórico

Es muy común utilizar un lenguaje de programación como C++ para simular los

sistemas electrónicos, digitales y otros si se cuenta con los respectivos modelos y

parámetros antes de instalarlos y ponerlos en marcha para así tener una referencia sobre su

funcionamiento. Pero esta simulación, al igual que casi todas las simulaciones posteriores

que se necesitan para realizar cambios o probar el funcionamiento de los sistemas, se

realizan desde la computadora del ingeniero con sus programas, por lo que la necesidad de

ejecutar la simulación en cualquier momento desde internet sin tener que buscar y cargar

los archivos respectivos para realizar la simulación del sistema requerido es cada vez

mayor. Esta ventaja se buscó aprovechar en este proyecto.

Además, como las simulaciones se basan en los parámetros característicos de los

sistemas, entonces el mismo simulador web de los sistemas puede proporcionar un

seguimiento de estos parámetros para ser utilizados en futuras simulaciones.

5
2.1 Comparación JAVASCRIPT, ACTIONSCRIPT

Inicialmente se mencionó la necesidad de descargar, por medio de solicitudes a los

servidores, un código que permite manipular el lenguaje HTML que es ejecutado en todo el

navegador de internet. Este código se escribe en forma de script conocidos como archivos

de ejecución de instrucciones, los cuales contienen las instrucciones a ejecutar en un

ambiente HTML. El lenguaje de programación JAVASCRIPT fue el primero en utilizarse,

pero en los últimos años el lenguaje de programación ACTIONSCRIPT se ha vuelto popular

mas [5].

JAVASCRIPT es un lenguaje de programación muy completo pero muy complejo

pues estructura su programación como un pipeline, lo que obliga la existencia de distintas

etapas de instrucciones para realizar una o varias ejecuciones. Si se logra el correcto

funcionamiento de las etapas del sitio web con JAVASCRIPT se obtienen los mismos frutos

de su competencia y con un menor tiempo de ejecución.

ACTIONSCRIPT es un lenguaje integrado basado en la creación de objetos para

alcanzar el mismo nivel de su contrincante. Este tipo de lenguaje ha logrado incorporar el

ambiente de escritorio en los sitios web, aunque con un aumento en la duración de la

descarga del sitio web.

6
Si bien ACTIONSCRIPT esta basado en JAVASCRIPT, el ambiente de desarrollo

necesario para ambos lenguajes de programación son muy diferentes.

Cuadro 2.1 Comparación JAVASCRIPT, ACTIONSCRIPT

Característica actionscript javascript


Versión 3 1.8
Comentario última versión última versión
Herramientas necesarias php, amfphp, weborb, zendframework php, json, ajax, html5
Comentario se puede utilizar amfphp,weborb y se necesitan varios javascript que
zendframework para utilizar objetos controlen canvas de html5 y
actionscript como si fueran objetos luego solicitar con librerias json
php y objetos php envuelven objetos o ajax la ejecución de los
c++ objetos php que envuelven c++
para obtener los datos que
refresquen los javascript y
permitan una nueva ejecución.
Facilidad de instalación apache, php, eclipse, flex builder, apache, php
weborb, amfphp, zendframework
Comentario descargar e instalar es código libre descargar e instalar es código
libre
Facilidad de programar característica propia html5, dom, css, ajax, json
Comentario flex crea un ambiente propio en html json y ajax solicitan ejecución
que permite su propia ejecución de envían datos, dom proporciona
objetos nodos en javascript, css da estilo
y el canvas de html5 soporta
gráficos
Soporte navegador flash player chrome, firefox, safari,
opera
Comentario cualquier navegador con flash player no corre en internet explorer
uso de objetos as, php, c++ como ejecución
Fortalezas iguales
Comentario podría hacer mas directo el uso de es mas rápido en ejecutarse ya
aplicaciones c++ que es como un script

7
Debilidades sitio web basados en actionscript comunicación con servidor
Comentario no es recomendable hacer un sitio se trata de un script que controla
web completamente con html en el lado del cliente pues solo
actionscript, incluso si se usan una datos importantes es lo que se
técnicas especiales de flash. puede enviar y obtener del servidor.
Enlaces con otros lenguajes asp, php asp, php
Comentario asp es el tipo de servidor de asp es el tipo de servidor de
microsoft microsoft, también hay otros para
bases de datos.
Algún detalle en común que tenga similitud en sintaxis similitud en sintaxis
Comentario se parecen en el control de html se parecen en el control de html
pero en lo que respecta a los pero en lo que respecta a los
objetos son diferentes. objetos son diferentes.
Cualquier otro detalle que los comunicación entre html y control de componentes html
diferencie aplicación flash
Comentario solo se comunica en html pero crea controla de forma nativa html
su ambiente de ejecución.

Figura 2.1 Comparación JAVASCRIPT y ACTIONSCRIPT

8
Tal y como se aprecian en el cuadro y figura anteriores la tecnología JAVASCRIPT y

ACTIONSCRIPT. Como se aprecia ambos esquemas son muy similares, pero tienen un

lenguaje de programación basado en etiquetas (secciones de código HTML), necesita de

otro lenguaje secundario como son JAVASCRIPT y ACTIONSCRIPT para manipular estas

etiquetas y establecer comunicación con el servidor cuando sea necesario.

La diferencia fundamental que expone la figura 2.1 son las capas de código en

JAVASCRIPT que se requieren para lograr el mismo funcionamiento que con

ACTIONSCRIPT, esto debido a que es necesario crear la interactividad con el usuario,

manipulando a las etiquetas del código HTML con el lenguaje JAVASCRIPT.

9
2.1.1 Archivos SWF incrustados en HTML

Los archivos SWF son los archivos creados por la aplicación de desarrollo FLEX

que se utilizó en este proyecto, su principal ventaja es que son incrustados como una parte

de cualquier página web. El lenguaje de programación HTML soporta este tipo de

aplicaciones y se tomó la decisión de incrustar la aplicación que simula los circuitos web ya

que esta sólo es una parte de todo lo que puede ofrecer un sitio web para simular sistemas

electrónicos [7].

Figura 2.2 Archivos SWF incrustados en HTML

En la figura 2.2 se muestra el simulador web en un sitio web que utiliza código

HTML, con la tecnología JAVASCRIPT para acceder la base de datos de los dispositivos

que se pueden simular antes de simularlos y así el archivo SWF que contiene el simulador

de sistemas electrónicos, no sobrecarga nuestra aplicación escrita en ACTIONSCRIPT para

la simulación de sistemas electrónicos web.

10
2.2 Diagramas del simulador

El desarrollo del simulador requirió el entendimiento de la transferencia de datos

entre el servidor y el cliente. Esto consistió en un servidor con los programas a simular en

C++ convertidos en una librería PHP. El lenguaje PHP permitió administrar la librería

C++ y además permitió establecer una interfaz para las peticiones de ejecución

provenientes del lenguaje ACTIONSCRIPT.

Figura 2.3 Organización de un servidor PHP

La figura 2.3 expone el lenguaje de programación PHP que consta de dos partes, la

fundamental llamada ZEND capaz de ejecutar código en lenguaje binario si se crean los

objetos PHP y se enlazan estos objetos con las librerías correspondientes, que para este

proyecto fueron en C++.

La otra sección de PHP es el código encargado de administrar las peticiones de

ejecución que el cliente le hace al servidor, por lo que su tarea es escuchar los puertos de

entrada y procesar los datos para ser ejecutados por la parte ZEND [20].

11
Figura 2.4 Transferencia de datos entre servidor y cliente

La figura 2.4 muestra que el cliente tiene la tarea de descargar la página web con el

código de los programas ACTIONSCRIPT y así utilizar los programas C++ por medio de la

plataforma PHP.

Figura 2.5 Estructura de programación del simulador

12
La figura 2.5 expone la estructura de programación que se empleó utiliza la librería

de programas C++ para compilar una librería PHP permitiendo así a los programas del

simulador alcanzar el nivel de la plataforma PHP. La interfaz AMF (formato de mensajes

action) permitió crear un subnivel de programación para administrar las solicitudes de los

programas remotos de ACTIONSCRIPT. Estas, herramientas permitieron establecer los

requerimientos mínimos de la plataforma PHP. El simulador adquirió dos flujos de

ejecución de programas, el primero dentro de la plataforma PHP entre la librería PHP/C++

y la interfaz AMF, y el segundo flujo de ejecución de programas se estableció entre la

interfaz AMF y los programas ACTIONSCRIPT.

Figura 2.6 Estructura del flujo de programación de C++ a PHP

La plataforma PHP se construyó con dos partes, la primera de ellas es la librería

PHP/C++. Esta utiliza los archivos de cabecera e implementación de las aplicaciones

C++ como referencia para programar los archivos cabecera e implementación PHP. Los

archivos cabecera permitieron declarar la existencia de las librerías C++ para la creación

de la librería PHP/C++, los archivos de implementación son manejadores de clases y

métodos C++ necesarios para ejecutar el código.

13
Figura 2.7 Estructura del flujo de programación de PHP a ACTIONSCRIPT

La figura 2.7 expone, la segunda parte de la plataforma PHP incluyó un índice de

objetos remotos, el cual indica las forma de solicitar datos al servidor como muestra la

figura anterior.. Los objetos remotos permiten responder a las solicitudes de la página web,

ambas forman la interfaz AMF [8].

Figura 2.8 Estructura del flujo de programación del simulador

14
La figura 2.8 expone como la plataforma de programación PHP fue la parte

fundamental del simulador debido a que cuenta con dos niveles de programación

principales. El primer nivel lo constituye una máquina de script llamada ZEND la cual

ejecuta el código C++ establecido en la librería PHP/C++ de forma binaria. El segundo

nivel de programación es el núcleo PHP, el cual se encarga de administrar la interfaz AMF

a través de las solicitudes remotas de la página web, e iniciando posteriormente la ejecución

de la librería PHP/C++.

Figura 2.9 Estructura del flujo de diseño del simulador

La figura 2.9 muestra como el simulador se programó suponiendo la existencia de la

librería C++ en lenguaje C++. Por esto se procedió a crear la cabecera PHP para indicar

la nueva librería PHP/C++, luego se desarrolló la implementación PHP para establecer

las variables y memoria utilizada por los programas C++ en la plataforma PHP. Estas dos

piezas de programación permitieron crear la librería PHP/C++. Luego se continuó con la

segunda parte de la plataforma PHP y se programó la interfaz AMF para atender las

solicitudes remotas. Por último fue necesario utilizar ACTIONSCRIPT para ejecutar las

llamadas de los objetos remotos [19].

15
CAPÍTULO 3: Resultados

Los objetivos del proyecto se cumplieron satisfactoriamente, se logró crear una

interfaz entre los sistemas electrónicos simulados con C++ y los sistemas electrónicos

simulados en un sitio WEB. Para ello se investigó y desarrolló el código necesario en

ACTIONSCRIPT, obteniéndose el ambiente necesario para la simulación de sistemas

electrónicos en una página web. Además, se investigó y desarrolló el código necesario en

PHP lográndose un puente entre los lenguajes C++ y ACTIONSCRIPT.

3.1 Creación de la interfaz WEB/C++ y habilitación del simulador

Figura 3.1 Estructura de programación del simulador

La estructura de programación del simulador que se muestra en la figura 3.1, es la

misma que se pronóstico desde la etapa de teoría y con la cual se creó la interfaz que

permitió la simulación de circuitos en un sitio web.

16
Repasando la investigación expuesta se cuenta con una librería de circuitos C++

con ciertas características, la cual se quiso simular en un sitio web. Para ello se construyó

un versión de la misma librería pero en PHP, similar a un mapeo de las entradas y salidas

del código C++ para tomar e ingresar datos desde PHP. Esta técnica es conocida como

“envolver el código”. También se tuvo que desarrollar elementos de código que tomaron

las entradas y salidas requeridas y las enviaran y recibieran del sitio web. Por último,

ACTIONSCRIPT tiene sus propios dispositivos de lenguaje para administrar mensajes,

además, permitió crear y manipular todos elementos web necesarios del simulador.

17
3.2 Diseño y herramientas WEB, FLEX y ACTIONSCRIPT

Figura 3.2 Estructura de programación ACTIONSCRIPT

Se muestra en la figura 3.2 la estructura básica de un sitio web creado con

ACTIONSCRIPT. Tal y como se explicó en la sección 2.1.1, este código se puede utilizar

como un complemento en cualquier página web y fue de esta forma como se utilizó en el

proyecto.

La estructura de este tipo de complementos es una característica propia del lenguaje

ACTIONSCRIPT, la figura revela que este lenguaje cuenta con una gran cantidad de

elementos de programación que permiten un ambiente de escritorio en un sitio web. Todos

estos objetos fueron controlados por medio de eventos, tales como: presionar un botón,

mover una imagen, abrir un menú, escribir un texto, enviar o recibir datos al servidor.

18
Luego que se identifica el evento, los controladores o funciones para la búsqueda de

cambios en la etiquetas responden a las peticiones del usuario.

3.3 Desarrollo de interfaz con aplicaciones ACTIONSCRIPT, PHP,


C++

El desarrollo de la interfaz utilizando los tres lenguajes mencionados fue una labor

que requirió paciencia, por lo que se planificó una demostración de las capacidades de la

interfaz, Para ello se creó el código correspondiente en los tres lenguajes, siendo capaz de

cargar y guardar en archivos de texto las características básicas de un elemento o sistema

electrónico, tales como su imagen, posición en la pantalla y el nombre del archivo asociado

a los datos correspondientes al sistema electrónico. También se desarrolló el código en

lenguajes C++ y PHP para ejecutar aplicaciones propias del servidor. Por lo que se

escribió un programa para remover los archivos guardados por el usuario en el servidor,

desde el sitio web.

19
Figura 3.3 Estructura de interfaz para cargar/guardar

La figura 3.3 muestra, como las solicitudes de la página web escrita en

ACTIONSCRIPT llegan hasta el servidor PHP y este recibe o envia las características de los

circuitos electrónicos como entradas o salidas de los circuitos expresados en C++.

El proceso para enviar o recibir datos de un determinado sistema electrónico se

logró con el uso de objetos remotos declarados en el sitio web e implementados en el

servidor PHP para su uso, tal y como se explicará mas adelante.

Las entradas o salidas requeridas u obtenidas según el caso, por el código en C++,

se implementó utilizando la librería C++ existente desde los objetos remotos que se

encontraban en el servidor PHP, los cuales responden a las solicitudes hechas por el usuario

desde el sitio web.

20
Figura 3.4 Estructura de interfaz para remover archivo

Tal y como se aprecia en la figura 3.4, las acciones necesarias para remover un

archivo con información sobre un sistema, comienza cuando se recibe una solicitud para

que un archivo sea removido, la cual es administrada por el objeto remoto correspondiente,

el cual debido a que se encontraba localizado en el servidor PHP fue programado para

realizar una llamada al sistema y remover el archivo indicado por el sitio web. Luego, la

ejecución del código en C++, para borrar archivos retorna un mensaje al servidor sobre el

borrado o no del archivo.

21
3.4 Estructura de la implementación del simulador

El desarrollo de la interfaz utilizando los tres lenguajes mencionados requirió la

implementación de múltiples elementos para cada lenguaje, los cuales permitieron la

comunicación entre lenguajes y la ejecución de las acciones solicitadas.

3.4.1 Estructura de la implementación C++

Figura 3.5 Estructura implementación C++

La figura 3.5 expone la librería C++ que se creó con tres secciones, la sección

“hello” permitió el uso de código C++ en PHP. La sección “elements” usó un objeto C++

y sus características en PHP. La sección “erase_server_file” habilitó el uso de cualquier

código en el servidor PHP.

22
Figura 3.6 Implementación método save_file librería C++

La figura 3.6 muestra, la implementación del método “save_file” formó parte del

archivo fuente “processor.cc” en la extensión “elements”. Este permitió almacenar la

dirección de la imagen del dispositivo que se encuentra en el servidor y la posición del

sistema electrónico en el simulador utilizando el nombre del archivo deseado por el usuario

desde el sitio web.

De esta manera, se necesitó un objeto tipo texto el cual fue una cadena de caracteres

con funciones para borrar, establecer tamaño y determinar si esta vacío el objeto texto.

Estos objetos texto permitieron crear mas cadenas de caracteres de forma mas rápida y

precisa para el manejo de archivos en el servidor.

23
Figura 3.7 Implementación programa erase_server_file librería C++

La figura 3.7 muestra, la implementación del programa “erase_server_file”

proveniente del archivo “main.cpp” del programa “erase_server_file”. La cual provocó un

ejecutable que tomó el nombre del archivo a eliminar desde linea de comandos y se utilizó

por el servidor cuando fue necesario. Este contó con el objeto texto mencionado

anteriormente para un conveniente uso de archivos en C++ pero además del método “run”

que permitió la ejecución de cualquier otro programa y obtener su resultado este método

fue la tubería implementada como explica la figura C.1 del apéndice C.

24
3.4.2 Estructura de la implementación PHP

Figura 3.8 Estructura implementación PHP

La figura 3.8 expone, sobre las cuatro secciones que se obtuvieron, la primera de

ellas “hello” se utilizó como una simple prueba del uso de la librería PHP en C++, luego

las secciones “zend_amf” y “simulator_menu” utilizaron objetos PHP que pueden ser

accedidos por ACTIONSCRIPT por medio del formato de mensajes actionscript llamado

AMF. La sección “zend_amf” fue una prueba para comprobar la comunicación total entre

los tres lenguajes por medio del mensaje “hello” por otra parte la sección

“simulator_menú” utiliza toda librería la librería C++ por medio del objeto files de PHP.

Por último la sección “erase_server_file” es una solicitud de ACTIONSCRIPT para ejecutar

la eliminación de archivos en el servidor desde PHP.

25
Figura 3.9 Implementación método save_file PHP

La figura 3.9 muestra, la implementación del método “save_file” del archivo

“simulatormenu.php” en la carpeta “amf ” como muestra la figura A 2.3 del anexo 2. Este

método obtiene un arreglo de instrucciones y datos del sitio web, luego de separar el arreglo

utiliza el elemento “processor” de la librería C++.

Como el sistema operativo del servidor permitió sobreescribir archivos el primer

dato del arreglo es un selector acerca de la escritura del archivo dando al usuario del sitio

web la oportunidad para crear archivos así como la oportunidad para sobreescribir archivos

existentes.

26
Figura 3.10 Implementación método remove_file PHP

La figura 3.10 expone, la implementación del método “save_file” del archivo

“simulatormenu.php” en la carpeta “amf ” como muestra la figura A 2.3 de anexo 2. Este

método crea un comando con el nombre del programa a ejecutar y el nombre del archivo,

luego ejecuta el código en el servidor y utiliza la salida del programa para verificar la

ejecución.

27
3.4.3 Estructura de la implementación ACTIONSCRIPT

Figura 3.11 Estructura implementación ACTIONSCRIPT

La figura 3.11 muestra, las dos secciones que se programaron en la etapa de

etiquetas o elementos MXML del sitio web los cuales utiliza el usuario. La sección de

objetos remotos declaró la existencia de un objeto para comunicar la página web con el

servidor PHP de forma bidireccional. La sección panel permitió crear el ambiente de

escritorio en sitio web por lo que contó con funciones para manipular eventos por el uso de

las etiquetas como presionar botones, arrastrar imágenes de los elementos del simulador

web, visualizador de menús para elegir elementos del simulador web utilizar archivos del

servidor PHP.

28
Figura 3.12 Complemento estructura implementación ACTIONSCRIPT

La figura 3.12 expone, la interactividad entre las etiquetas, manejadores de eventos

y funciones del sitio web. Las etiquetas son el medio de comunicación entre el usuario y el

sitio web incluido el servidor PHP, por lo que los manejadores responden a las acciones

solicitadas por el usuario luego según la etiqueta existió la posibilidad de comunicarse con

el servidor para obtener datos y procesarlos o simplemente responder al evento, en

cualquier caso la acción final fue mostrar un resultado en la misma etiqueta que solicitó

toda la interacción o en varias etiquetas.

29
Figura 3.13 Implementación método save_file ACTIONSCRIPT

La figura 3.13 muestra, la implementación del método “save_file” en el archivo

“simulator_menu.mxml” de la carpeta “flex” en el servidor. Permitió el uso del objeto

remoto “save_file” en el servidor PHP, para esto se estableció una etiqueta llamada

“file_name” para ingresar el nombre del archivo, luego se concatenó todos los datos en un

único conjunto para enviarlos al servidor.

Figura 3.14 Implementación método remove_file ACTIONSCRIPT

La figura 3.14 expone, la implementación del método “remove_file” en el archivo

“simulator_menu.mxml” de la carpeta “flex” en el servidor. Permitió el uso del objeto

remoto “remove_file” en el servidor PHP, también se creó un manejador de eventos, el cual

se activó cuando el servidor responde por medio del objeto remoto.

30
3.5 Tendencias de diseño

Figura 3.15 Primera estructura para continuación del simulador web

La figura 3.5 expone, el desarrollo de la interfaz utilizando los tres lenguajes

mencionados llevó a dos tendencias para la continuación del simulador de circuitos web a

gran escala. La primera de ellas se basó en la ejecución del código del simulador existente

por medio de una tubería, lo cual se explica en el apéndice C; con lo cual se obtendrá un

archivo que permite la construcción de los elementos requeridos en la librería C++/PHP

utilizando el archivo como entrada y entregando a PHP una tabla de datos necesarios para

la simulación en ACTIONSCRIPT.

31
Figura 3.16 Segunda estructura para continuación del simulador web

La figura 3.6 muestra, la otra opción para la continuación del simulador es la

utilizada hasta el momento en el desarrollo del simulador la cual consistió en ejecutar cada

elemento requerido en la librería C++/PHP y luego entregarlo por medio de PHP al código

ACTIONSCRIPT; para esto se requiere el código del simulador en C++ e implementar las

mismas funciones en la librería.

32
CAPÍTULO 4: Conclusiones y recomendaciones

4.1 Conclusiones
4.1.1 Habilitación del simulador

La habilitación de la simulación de circuitos electrónicos por medio de una interfaz

WEB/C++ fue un éxito. La interfaz fue capaz de utilizar y/o ejecutar código C++ y

suministrar al sitio web los datos solicitados. Debido al uso del lenguaje PHP como

puente entre el código C++ y el código ACTIONSCRIPT.

4.1.2 Diseño de la interfaz

El diseño de la interfaz requirió el aprendizaje de los lenguajes de

programación PHP y ACTIONSCRIPT con esto se entendió el flujo de información

entre el sitio web y la computadora que lo hospeda lo cual permitió la ejecución de

programas en el lado del servidor para enviar los datos solicitados al sitio web en el

lado del cliente. Para esto fue muy importante conocer las partes ZEND y

PHP para la ejecución y administración de datos propias del lenguaje PHP.

4.1.3 Desarrollo de la interfaz

El desarrollo de la interfaz utilizando los tres lenguajes C++, PHP y

ACTIONSCRIPT fue un éxito, principalmente por la facilidad del código PHP para

manipular el código C++ y también para comunicarse con el sitio web hecho en

ACTIONSCRIPT [15].

33
4.2 Recomendaciones
4.2.1 Desarrollo del simulador

El desarrolló de todos lo elementos del simulador se debe orientar a utilizar el

código C++ para ejecutar los sistemas electrónicos, luego en la etapa de PHP se

toman las entradas proporcionadas por ACTIONSCRIPT y los resultados de C++

para realizar un flujo de datos del computador servidor al computador cliente. La

última etapa del sitio web se encarga de administrar los resultados del código C++

y interactuar con el usuario.

4.2.2 Lectura

Además de la lectura de este documento se tuvo que entender como mínimo las [10]

y [20] las cuales explicaron los conceptos básicos para ejecutar código C++ desde

PHP. La [8] mostró los principios sobre el envío y recepción de mensajes entre el

servidor PHP y el cliente ACTIONSCRIPT. Por último la [19] ayudó a

utilizar código C++ del servidor y manipular el resultado de este código como

una entrada de datos lo que se conoce como tubería.

4.2.3 Fuente de investigación

Este documento contó con un disco compacto el cual incluyó el código fuente

para la instalación y ejecución de la interfaz y principios del simulador web, pero

además contiene un archivo de texto llamado “información y mejoras” el cual se

utilizó como una bitácora sobre todo lo realizado, en especial sitios web sobre

muchos ejemplos para el desarrollo de código.

34
BIBLIOGRAFÍA

1. Wikipedia. “HTML”,

http://es.wikipedia.org/wiki/HTML

2. Wikipedia. “JavaScript”,

http://es.wikipedia.org/wiki/JavaScript

3. Wikipedia. “PHP”,

http://es.wikipedia.org/wiki/PHP

4. Wikipedia. “ActionScript”,

http://es.wikipedia.org/wiki/ActionScript

5. Wikipedia. “Server-side scripting”,

http://en.wikipedia.org/wiki/Server_side_scripting

6. Wikipedia. “SWF”,

http://es.wikipedia.org/wiki/Swf

7. Wikipedia. “XMLHttpRequest”,

http://es.wikipedia.org/wiki/XMLHttpRequest

8. HowtoForge. “Basic Web Server On Ubuntu 9.04 With Zend Framework”,

http://www.howtoforge.com/basic-web-server-on-ubuntu-9.04-with-zend-

framework

9. Zend Technologies Ltd. “Programmer's Reference Guide”,

http://framework.zend.com/manual/en/learning.quickstart.intro.html

10. Golemon, S. “DEB Installation”, http://devzone.zend.com/article/1021-Extension-

Writing-Part-I-Introduction-to-PHP-and-Zend

35
11. Corlan, M. “Flex and PHP: remoting with Zend AMF”,

http://corlan.org/2008/11/13/flex-and-php-remoting-with-zend-amf/

12. Zend Technologies Ltd. “Zend Framework Documentation”,

http://framework.zend.com/docs/overview

13. Zend Technologies Ltd. “Create Your Project”,

http://framework.zend.com/manual/en/learning.quickstart.create-project.html

14. Eclipse. “Eclipse Europa Winter Packages”,

http://www.eclipse.org/downloads/packages/release/europa/winter

15. Adobe Labs. “Adobe Flex Builder 3 for Linux”,

http://labs.adobe.com/technologies/flex/flexbuilder_linux/

16. hospedajeydominios.com. “Capítulo 31_ Source Discussion”,

http://www.hospedajeydominios.com/mambo/documentacion-manual_php-pagina-

zend_structure.html

17. hospedajeydominios.com. “Manual PHP”, http://www.hospedajeydominios.com/

mambo/documentacion-manual_php-pagina-index.html

18. Curso de programación en C para GNU/Linux (VII). “Tuberías”,

http://blog.txipinet.com/2006/11/05/48-curso-de-programacion-en-c-para-gnu-

linux-vii/

19. Adobe Help Resource Center. “Adobe Flex 3 Help”,

http://livedocs.adobe.com/flex/3/html/index.html

20. Zend developer zone. “Wrapping C++ Classes in a PHP Extension”,

http://devzone.zend.com/article/4486

36
Apéndices

Apéndice A

A.1 Zend Framework

Figura A.1 Estructura Zend Framework

La figura A.1 expone la estructura Zend Framework. Es un estilo de programación

para el servidor zend el cual permitió organizar los archivos que utilizó el simulador en el

lado del servidor como del cliente. Este estilo de organización cuenta con tres etapas los

controladores, las vistas y los modelos; los controladores permitieron ejecutar las vistas y

manipular modelos, las vistas contienen la información que se presenta a los usuarios, los

modelos son la descripción del funcionamiento de la aplicación. Se utilizaron los

controladores y las vistas ya que el modelo es muy sencillo porque el simulador es solo

una página web. La idea fundamental del Zend Framework es administrar las aplicaciones

del servidor [9].

37
Apéndice B

B.1 Estructura Zend API

Zend API es el nombre que se le da a los módulos creados por los desarrolladores

para ejecutar código requerido, también se les conoce como extensiones pero se pueden

entender fácilmente como una librería personal.

Figura B.1 Estructura Zend API

La figura B.1 muestra la estructura Zend API. La idea es simple, el programador

C++ sabe que requiere archivos de cabecera e implementación para sus programas, pues

para una librería Zend se necesitó además archivos de cabecera e implementación para las

funciones que utiliza la parte Zend en PHP y también para indicar la existencia de la

librería a la parte Zend [16].

38
Apéndice C

C.1 Tuberías en C++

Las tuberías conectaron la salida estándar de un proceso con la entrada estándar de

otro proceso. Las tuberías permitieron una comunicación unidireccional entre procesos lo

que permitió pasar los resultados de la ejecución de un programa a otro. La forma como se

utilizaron las tuberías en DEBIAN fue por medio de las instrucciones popen() y pclose() las

cuales crearon un proceso hijo el cual ejecutó el comando requerido y su salida fue

almacenada en un archivo, por lo cual estas instrucciones entregaron un puntero al fichero

para utilizar la salida.

Figura C.1 Estructura tubería C++

La figura C.1 expone, la estructura de una tubería que fue la llamada al proceso para

ejecutar y su ejecución lo que conllevó a una salida almacenada en un fichero del cual se

tiene acceso por medio de un puntero [18].

39
ANEXOS

Anexo 1. Instalación y configuración de software

Sistema operativo

Debian GNU/Linux Lenny 5.0.4

Apache

Se editó /etc/apache2/apache2.conf y se añadió

ServerName <nombre_servidor>

PHP:

Se añadió el camino de la librería del Zend Framework al archivo de configuración

de PHP [11].

/$sudo gedit /etc/php5/apache2/php.ini

include_path = ".:/var/www/current/library:/usr/share/php5:/usr/share/pear"

/$sudo gedit /etc/php5/cli/php.ini

include_path = ".:/var/www/current/library:/usr/share/php5:/usr/share/pear"

40
Zend Framework

Se descargó [9] y se tomó configuración de [12, 13].

Se descomprimió el ZendFramework en /var/www

Se hizo un enlace a ZendFramework

/$sudo ln -s ZendFramework current

Se editó la configuración de consola

/$sudo gedit ~/.bashrc


PATH=/opt/ZendFramework/current/bin:"${PATH}"

Se cambiaron los permisos de la carpeta /var/www

/$sudo chown -R usuario:www-data /var/www

Se ejecutó para obtener ayuda del ejecutable

/$zf ?

Se ingresó a la carpeta /var/www/ y se creó un zendframework

/$zf create project Web_circuit_simulator

Se agregó la librería ZendFrameWork al proyecto creado

/$sudo cp -r /var/www/ZendFramework/current/library/Zend
/var/www/Web_circuit_simulator/library/Zend

Se creó el controlador

/$zf create controller Simulator

Se creó la acción

/$zf create action index Simulator

Se probó la instalación en http://nombre_servidor/Web_circuit_simulator/public/

41
Eclipse

Se instaló sun-java6-bin sun-java6-jre.

Se descargo de [14] la versión “eclipse for c/c++ developers“

Se descomprimió y se movió carpeta a /usr/local/Eclipse

Se ejecutó eclipse y se escogio un “workspace” en /home/<usuario>/Workspace

Flex

Se descargó [15].

Se creó carpeta /usr/local/Flex

Se ejecutó

/$sudo sh flexbuilder_linux_install_a5_112409

Se ejecutaron los pasos del instalador, se acepto la licencia y se indico las rutas a las
carpetas /Flex y /Eclipse en /usr/local creadas anteriormente.

42
Anexo 2. Estructura de archivos

Se logró ubicar todas las carpetas necesarias para el desarrollo de la interfaz y los

principios del simulador en la carpeta del usuario /home/<usuario>/ las carpetas

utilizadas son las siguientes y mostradas en la figura A 2.1.

Figura A 2.1 Estructura archivos de la carpeta del usuario

ZendFramework: Fue la primer carpeta instalada en estos anexos, contiene el

código necesario para comunicarse con ACTIONSCRIPT.

Web_circuit_simulator: Se creó utilizando las herramientas de ZendFramework,

permitió organizar y crear páginas de la interfaz y el simulador, fue la carpeta fuente

del sitio web presentado a los usuarios.

43
Workspace: Fue creada durante la instalación del programa para desarrollo Eclipse,

esta carpeta contiene los proyectos en lenguaje ACTIONSCRIPT.

Extensiones/programas: Fueron tres carpetas creadas para ubicar el código

necesario para crear las librerías que permiten a PHP ejecutar código C++.

También el programa con tubería y ejecutar código del sistema operativo.

Figura A 2.2 Estructura archivos del Framework

La figura A 2.2 muestra la estructura de archivos Framework, además, se explica a

continuación.

application: Fueron las carpetas de configuración, modelos, controladores y vistas

del sitio web, la carpeta mas utilizada fue la carpeta de vistas porque guardó los

enlaces a los ejemplos que fueron desarrollados en este proyecto.

docs: Se creó junto con el proyecto contiene el archivo de configuración del

servidor APACHE.

44
library: Su existencia permitió enlazar el proyecto con el código de

ZendFramework, aunque se configuró PHP para que ZendFramework fuera

utilizado como parte de la configuración.

public: Permitió almacenar los archivos utilizados por el sitio web.

tests: Se creó junto con el proyecto según el manual de ZendFramework concede

varias opciones para la prueba del sitio web.

Figura A 2.3 Estructura archivos públicos del Framework

La figura A 2.3 expone, la estructura de archivos de la carpeta “public”, la cual es

utilizada regularmente por el sitio web.

amf: Con esta carpeta se pudo almacenar los archivos PHP que manejaron los

solicitudes de la aplicación ACTIONSCRIPT.

circuit_simulator: En esta carpeta se crearon los archivos de texto, imágenes y

configuración de utilizados por el sito web durante la ejecución.

45
flex: Fue la carpeta utilizada por el ambiente de desarrollo Eclipse para crear y

almacenar las aplicaciones ACTIONSCRIPT utilizadas por el sitio web durante la

ejecución.

46
Anexo 3. Ejemplos de desarrollo

Ejemplo básico sobre comunicación PHP y ACTIONSCRIPT

Se creó la carpeta llamada /home/<usuario>/hello en la misma ubicación de la

carpeta Workspace de Eclipse.

Se almacenaron todos los archivos necesarios para la creación de la extensión en la

carpeta anterior.

Se ingresó en la carpeta anterior y se ejecutó

/$phpize

/$./configure --enable-hello

/$make

/$sudo make install

El último comando permitió ubicar la nueva librería ZendFramework de

/home/<usuario>/hello/modules/hello.so a la carpeta de las extensiones de

PHP en /usr/lib/php5/20060613+lfs

Se reinició el servidor con

/$sudo /etc/init.d/apache2 restart

Se creó la acción en el controlador del ZendFramework

/$zf create action hello Simulator

Se creó el archivo hello.phtml en la carpeta del ZendFramework

/home/<usuario>/Web_circuit_simulator/application/views/scripts/simulator

Se hizo una prueba en http://nombre_servidor/simulator/hello

47
Ejemplo sobre interfaz Web/C++

Se utilizó la librería creada en el ejemplo anterior.

Se creó un archivo PHP correspondiente a los objetos para la comunicación con la

aplicación ACTIONSCRIPT. Estos objetos también manipulan la librería C++.

Se creó carpeta /flex en la carpeta /public del ZendFramework

Se ejecutó eclipse y se escogió

file > new > flex project

Se estableció

aplicación web

tipo de servidor php

carpeta raíz /flex de la carpeta /public del ZendFramework

url raíz http://<nombre_servidor>/flex/

Se copió la carpeta zend_amf a la carpeta /home/<usuario>/Workspace de eclipse

Se utilizó propiedades de carpeta zend_amf para establecer en los argumentos

adicionales del compilador en la opción flex compiler

-locale en_US -services "services-config.xml"

Se escribió el código ACTIONSCRIPT necesario para comunicarse con el

servidor PHP y manipular los datos recibidos.

Se guardó para compilar

Se copió archivo hello.js en carpeta /circuit_simulator de la carpeta /public del

ZendFramework

Se creó archivo hellofinal.phtml en carpeta del ZendFramework

48
/home/<usuario>/Web_circuit_simulator/application/views/scripts/simulator

Se creó acción en ZendFramework

/$zf create action hellofinal Simulator

Se hizo una prueba en http://nombre_servidor/simulator/hellofinal

49
Ejemplo sobre principios del simulador Web de circuitos C++

Se creó la carpeta llamada /home/<usuario>/elements en la misma ubicación de la

carpeta Workspace de Eclipse por comodidad.

Se almacenaron todos los archivos necesarios para la creación de la extensión en la

carpeta anterior.

Se ingresó en la carpeta anterior y se ejecutó

/$phpize

/$./configure --enable-hello

/$make

/$sudo make install

El último comando permitió ubicar la nueva librería ZendFramework de

/home/<usuario>/elements/modules/elements.so a la carpeta de las extensiones de

PHP en /usr/lib/php5/20060613+lfs

Se reinició el servidor con

/$sudo /etc/init.d/apache2 restart

Se creó un archivo PHP correspondiente a los objetos para la comunicación con la

aplicación ACTIONSCRIPT. Estos objetos también manipulan la librería C++.

Se ejecutó eclipse y se escogió

file > new > flex project

50
Se estableció

aplicación web

tipo de servidor php

carpeta raíz /flex de la carpeta /public del ZendFramework

url raíz http://<nombre_servidor>/flex/

Se copió la carpeta simulator_menu a la carpeta /home/<usuario>/Workspace de

eclipse

Se utilizó propiedades de carpeta simulator_menu para establecer en los argumentos

adicionales del compilador en la opción flex compiler

-locale en_US -services "services-config.xml"

Se escribió el código ACTIONSCRIPT necesario para comunicarse con el servidor

PHP y manipular los datos recibidos.

Se guardó para compilar

Se creó archivo simulatormenu.phtml en carpeta del ZendFramework

/home/<usuario>/Web_circuit_simulator/application/views/scripts/simulator

Se creó acción en ZendFramework

/$zf create action simulatormenu Simulator

Se hizo una prueba en http://nombre_servidor/simulator/simulatormenu

51

You might also like