En aquest tema, explorarem com integrar aplicacions MUMPS amb tecnologies web. Aprendrem a crear aplicacions web que interactuen amb el backend MUMPS, utilitzant protocols com HTTP i eines com CGI (Common Gateway Interface). També veurem com servir pàgines web dinàmiques i gestionar sol·licituds web.
Objectius d'Aprenentatge
- Comprendre els conceptes bàsics de la integració web amb MUMPS.
- Configurar un servidor web per treballar amb MUMPS.
- Crear scripts CGI per interactuar amb MUMPS.
- Desenvolupar aplicacions web bàsiques que utilitzen MUMPS com a backend.
- Conceptes Bàsics de la Integració Web
Què és la Integració Web?
La integració web permet que les aplicacions MUMPS interactuïn amb aplicacions web, permetent la creació de pàgines web dinàmiques que poden accedir i manipular dades emmagatzemades en una base de dades MUMPS.
Components Clau
- Servidor Web: Serveix pàgines web als usuaris.
- CGI (Common Gateway Interface): Un estàndard per executar programes externs des d'un servidor web.
- HTTP (Hypertext Transfer Protocol): El protocol utilitzat per transferir dades a través de la web.
- Configuració del Servidor Web
Instal·lació d'un Servidor Web
Per començar, necessitem un servidor web. Apache és una opció popular i fàcil de configurar.
Instal·lació d'Apache (Linux)
Instal·lació d'Apache (Windows)
- Descarrega l'instal·lador d'Apache des del lloc web oficial.
- Executa l'instal·lador i segueix les instruccions.
Configuració per Executar Scripts CGI
Un cop instal·lat Apache, hem de configurar-lo per executar scripts CGI.
Configuració d'Apache per CGI
- Edita el fitxer de configuració d'Apache (
httpd.conf
oapache2.conf
). - Afegeix o descomenta les següents línies:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory>
- Reinicia Apache:
sudo service apache2 restart
- Creació d'un Script CGI
Exemple de Script CGI en MUMPS
Crearem un script CGI senzill que retorna un missatge "Hola Món".
Script CGI: hello.cgi
#!/usr/bin/env mumps main ; Estableix el tipus de contingut write "Content-type: text/html",! write "<html><body><h1>Hola Món des de MUMPS!</h1></body></html>",! quit
Permisos d'Execució
Assegura't que el script tingui permisos d'execució:
Prova del Script CGI
Obre un navegador web i accedeix a http://localhost/cgi-bin/hello.cgi
. Hauries de veure el missatge "Hola Món des de MUMPS!".
- Desenvolupament d'Aplicacions Web Bàsiques
Formularis Web i Processament de Dades
Podem crear formularis web que enviïn dades a scripts CGI per ser processades per MUMPS.
Exemple de Formulari HTML
<!DOCTYPE html> <html> <body> <form action="/cgi-bin/process.cgi" method="post"> Nom: <input type="text" name="nom"><br> <input type="submit" value="Enviar"> </form> </body> </html>
Script CGI per Processar el Formulari: process.cgi
#!/usr/bin/env mumps main new nom ; Llegeix les dades del formulari read nom ; Estableix el tipus de contingut write "Content-type: text/html",! write "<html><body><h1>Hola, ", nom, "!</h1></body></html>",! quit
Gestió de Sol·licituds HTTP
Podem utilitzar mètodes GET i POST per gestionar sol·licituds HTTP i interactuar amb el backend MUMPS.
Exemple de Gestió de Sol·licituds GET
#!/usr/bin/env mumps main new query ; Llegeix la cadena de consulta set query=$ZTRNLNM("QUERY_STRING") ; Processa la cadena de consulta ; (Aquesta part pot incloure la descomposició de la cadena en parells clau-valor) ; Estableix el tipus de contingut write "Content-type: text/html",! write "<html><body><h1>Consulta: ", query, "</h1></body></html>",! quit
Exercicis Pràctics
Exercici 1: Crear un Formulari de Registre
- Crea un formulari HTML que demani el nom, cognom i correu electrònic.
- Escriu un script CGI en MUMPS que processi el formulari i mostri un missatge de benvinguda amb les dades introduïdes.
Exercici 2: Desenvolupar una Aplicació Web de Llibreta d'Adreces
- Crea una aplicació web que permeti als usuaris afegir, veure i eliminar contactes d'una llibreta d'adreces.
- Utilitza scripts CGI en MUMPS per gestionar les operacions CRUD (Crear, Llegir, Actualitzar, Eliminar).
Solucions als Exercicis
Solució a l'Exercici 1
Formulari HTML
<!DOCTYPE html> <html> <body> <form action="/cgi-bin/register.cgi" method="post"> Nom: <input type="text" name="nom"><br> Cognom: <input type="text" name="cognom"><br> Correu Electrònic: <input type="email" name="email"><br> <input type="submit" value="Registrar"> </form> </body> </html>
Script CGI: register.cgi
#!/usr/bin/env mumps main new nom, cognom, email ; Llegeix les dades del formulari read nom, cognom, email ; Estableix el tipus de contingut write "Content-type: text/html",! write "<html><body><h1>Benvingut, ", nom, " ", cognom, "!</h1>",! write "<p>El teu correu electrònic és: ", email, "</p></body></html>",! quit
Solució a l'Exercici 2
Formulari HTML per Afegir Contacte
<!DOCTYPE html> <html> <body> <form action="/cgi-bin/add_contact.cgi" method="post"> Nom: <input type="text" name="nom"><br> Cognom: <input type="text" name="cognom"><br> Correu Electrònic: <input type="email" name="email"><br> <input type="submit" value="Afegir Contacte"> </form> </body> </html>
Script CGI: add_contact.cgi
#!/usr/bin/env mumps main new nom, cognom, email ; Llegeix les dades del formulari read nom, cognom, email ; Emmagatzema les dades en una variable global set ^contactes($increment(^contactes))=nom_"^"_cognom_"^"_email ; Estableix el tipus de contingut write "Content-type: text/html",! write "<html><body><h1>Contacte Afegit!</h1></body></html>",! quit
Conclusió
En aquesta secció, hem après els conceptes bàsics de la integració web amb MUMPS, com configurar un servidor web, crear scripts CGI i desenvolupar aplicacions web bàsiques. Amb aquests coneixements, estàs preparat per crear aplicacions web més complexes que interactuen amb el backend MUMPS. En el següent mòdul, explorarem com treballar amb APIs i serveis web per ampliar encara més les capacitats de les teves aplicacions.
Curs de Programació en MUMPS (M)
Mòdul 1: Introducció a MUMPS
Mòdul 2: Conceptes Bàsics de Programació
- Variables i Tipus de Dades
- Entrada i Sortida Bàsica
- Estructures de Control: IF, ELSE, FOR, WHILE
- Funcions i Procediments Bàsics
Mòdul 3: Treballant amb Dades
- Introducció a les Variables Globals
- Emmagatzematge i Recuperació de Dades
- Estructures de Dades: Arrays i Llistes
- Gestió d'Arxius en MUMPS
Mòdul 4: Conceptes Avançats de Programació
- Estructures de Control Avançades
- Gestió d'Errors i Depuració
- Programació Modular
- Funcions i Procediments Avançats
Mòdul 5: Gestió de Bases de Dades
- Introducció a les Bases de Dades MUMPS
- Operacions de Base de Dades: CRUD
- Indexació i Cerca
- Seguretat de la Base de Dades
Mòdul 6: Interfícies i Integració
- Interfície amb Altres Llenguatges
- Integració Web
- APIs i Serveis Web
- Interfície amb Bases de Dades SQL
Mòdul 7: Rendiment i Optimització
- Tècniques d'Optimització de Codi
- Gestió de Memòria
- Ajust de Rendiment
- Consideracions de Escalabilitat
Mòdul 8: Temes Avançats
- Concurrència i Processament Paral·lel
- Estructures de Dades Avançades
- Biblioteques i Extensions Personalitzades
- Estudis de Cas i Aplicacions del Món Real