SlideShare a Scribd company logo
FML
Un linguaggio semplice per la creazione di form web




                                                   Valentina De Rosa
                              Corso di laurea triennale in Informatica
                                                       a.a. 2010/2011
The only truly secure system is one that is powered off,
cast in a block of concrete and sealed in a lead–lined
room with armed guards.
                                            — E. Spafford
WEB & APP: Welcome, please enjoy our user’s data!
WhiteHat Website Security Statistics Report
ALCUNE STATISTICHE                                                 1/2
                     OWASP Top Ten Project




                     Siti vulnerabili

                     84%


                     Almeno una vulnerabilità
                     fra le 3 più pericolose

                     64%
WhiteHat Website Security Statistics Report
ALCUNE STATISTICHE                                                   2/2
                     OWASP Top Ten Project




                                         Numero medio di vulnerabilità
                                         critiche (per sito)

                                         230
Abilità di programmazione

                    Soluzioni esistenti




-                                     +
<email>
       <configuration>
               <from>restaurant@pizzarealm.com</from>
               <to>$email</to>
               <subject>Reservation made by $surname</subject>
               <text>Mr./Ms. $surname reserved a table for $people peop
               <success>Thank you for reserving a table on $date. We'll
       </configuration>
       <form>
               <name id="surname">



     FML
                            • perme"e di descrivere un’interazione
                       <label>Surname</label>
                       <optional>false</optional> HTML
                            • linguaggio simile ad
               </name>
                            • stru"ura semantica
               <email id="email">
                       <label>Email</label>
                       <optional>false</optional>
               </email>
               <date id="date">
                       <label>Reservation date</label>
                       <optional>false</optional>
               </date>
               <time id="time">
                       <label>Reservation time</label>
                       <interval step="15">12:00-15:00</interval>
<email>
       <configuration>
               <from>restaurant@pizzarealm.com</from>
               <to>$email</to>
               <subject>Reservation made by $surname</subject>
               <text>Mr./Ms. $surname reserved a table for $people peop
               <success>Thank you for reserving a table on $date. We'll
       </configuration>
       <form>
               <name id="surname">



     FML non è
                       <label>Surname</label>
                       <optional>false</optional>
               </name>
               <email id="email">
                       <label>Email</label>
                       <optional>false</optional>
               </email>
               <date id="date">
                       <label>Reservation date</label>
                       <optional>false</optional>
               </date>
               <time id="time">
                       <label>Reservation time</label>
                       <interval step="15">12:00-15:00</interval>
FML in de!aglio
1   2   3
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
HTTP




 1     Richiesta pagina
PROCESSO            Richiesta della pagina                             1/1




                                                           XHTML



                                                                       WWW



                                             Translator   Javascript




FML le     Parser      FMTree




                                             Evaluator      Mail




                     Con guration
                                                          Database
HTTP
                  +
                 DATI




Invio dei dati    2
PROCESSO            Invio dei dati                             1/1




                                                   XHTML



                                                               WWW



                                     Translator   Javascript




FML le     Parser       FMTree




                                     Evaluator      Mail




                     Con guration
                                                  Database
In conclusione
Each time we create
a fool–proof system
the universe
creates a be!er fool
Verso l’infinito...
Grazie

More Related Content

Similar to FML, un approccio semplice alla sicurezza web

20120424 b
20120424 b20120424 b
20120424 b
slidesharepimp
 
Cassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthCassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per month
daveconnors
 
Dia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GODia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GO
Ole Peter Smith
 
Practical RESTful Persistence
Practical RESTful PersistencePractical RESTful Persistence
Practical RESTful Persistence
Shaun Smith
 
Ch1(introduction to php)
Ch1(introduction to php)Ch1(introduction to php)
Ch1(introduction to php)
Chhom Karath
 
Séminaire Web Services
Séminaire Web ServicesSéminaire Web Services
Séminaire Web Services
e-Xpert Solutions SA
 
How fluentd fits into the modern software landscape
How fluentd fits into the modern software landscapeHow fluentd fits into the modern software landscape
How fluentd fits into the modern software landscape
Phil Wilkins
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1
Dennis Perlot
 
Interface de Voz con Rails
Interface de Voz con RailsInterface de Voz con Rails
Interface de Voz con Rails
Svet Ivantchev
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
Nathan Smith
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
Qspiders - Software Testing Training Institute
 
XMPP For Cloud Computing
XMPP For Cloud ComputingXMPP For Cloud Computing
XMPP For Cloud Computing
Bluendo
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
SREcon americas 2019 - Latency SLOs Done Right
SREcon americas 2019 - Latency SLOs Done RightSREcon americas 2019 - Latency SLOs Done Right
SREcon americas 2019 - Latency SLOs Done Right
Fred Moyer
 
FMS Administration Seminar
FMS Administration SeminarFMS Administration Seminar
FMS Administration Seminar
Yoss Cohen
 
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
Alessandro Nadalin
 
Presentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubiPresentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubi
Valtech Canada
 
Employing Custom Fonts
Employing Custom FontsEmploying Custom Fonts
Employing Custom Fonts
Paul Irish
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
Aman Kohli
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
grim_radical
 

Similar to FML, un approccio semplice alla sicurezza web (20)

20120424 b
20120424 b20120424 b
20120424 b
 
Cassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthCassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per month
 
Dia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GODia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GO
 
Practical RESTful Persistence
Practical RESTful PersistencePractical RESTful Persistence
Practical RESTful Persistence
 
Ch1(introduction to php)
Ch1(introduction to php)Ch1(introduction to php)
Ch1(introduction to php)
 
Séminaire Web Services
Séminaire Web ServicesSéminaire Web Services
Séminaire Web Services
 
How fluentd fits into the modern software landscape
How fluentd fits into the modern software landscapeHow fluentd fits into the modern software landscape
How fluentd fits into the modern software landscape
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1
 
Interface de Voz con Rails
Interface de Voz con RailsInterface de Voz con Rails
Interface de Voz con Rails
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
 
XMPP For Cloud Computing
XMPP For Cloud ComputingXMPP For Cloud Computing
XMPP For Cloud Computing
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
SREcon americas 2019 - Latency SLOs Done Right
SREcon americas 2019 - Latency SLOs Done RightSREcon americas 2019 - Latency SLOs Done Right
SREcon americas 2019 - Latency SLOs Done Right
 
FMS Administration Seminar
FMS Administration SeminarFMS Administration Seminar
FMS Administration Seminar
 
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
 
Presentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubiPresentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubi
 
Employing Custom Fonts
Employing Custom FontsEmploying Custom Fonts
Employing Custom Fonts
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 

Recently uploaded

How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 

Recently uploaded (20)

How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 

FML, un approccio semplice alla sicurezza web

  • 1. FML Un linguaggio semplice per la creazione di form web Valentina De Rosa Corso di laurea triennale in Informatica a.a. 2010/2011
  • 2. The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead–lined room with armed guards. — E. Spafford
  • 3. WEB & APP: Welcome, please enjoy our user’s data!
  • 4. WhiteHat Website Security Statistics Report ALCUNE STATISTICHE 1/2 OWASP Top Ten Project Siti vulnerabili 84% Almeno una vulnerabilità fra le 3 più pericolose 64%
  • 5. WhiteHat Website Security Statistics Report ALCUNE STATISTICHE 2/2 OWASP Top Ten Project Numero medio di vulnerabilità critiche (per sito) 230
  • 6. Abilità di programmazione Soluzioni esistenti - +
  • 7. <email>        <configuration>                <from>restaurant@pizzarealm.com</from>                <to>$email</to>                <subject>Reservation made by $surname</subject>                <text>Mr./Ms. $surname reserved a table for $people peop                <success>Thank you for reserving a table on $date. We'll        </configuration>        <form>                <name id="surname"> FML • perme"e di descrivere un’interazione                        <label>Surname</label>                        <optional>false</optional> HTML • linguaggio simile ad                </name> • stru"ura semantica                <email id="email">                        <label>Email</label>                        <optional>false</optional>                </email>                <date id="date">                        <label>Reservation date</label>                        <optional>false</optional>                </date>                <time id="time">                        <label>Reservation time</label>                        <interval step="15">12:00-15:00</interval>
  • 8. <email>        <configuration>                <from>restaurant@pizzarealm.com</from>                <to>$email</to>                <subject>Reservation made by $surname</subject>                <text>Mr./Ms. $surname reserved a table for $people peop                <success>Thank you for reserving a table on $date. We'll        </configuration>        <form>                <name id="surname"> FML non è                        <label>Surname</label>                        <optional>false</optional>                </name>                <email id="email">                        <label>Email</label>                        <optional>false</optional>                </email>                <date id="date">                        <label>Reservation date</label>                        <optional>false</optional>                </date>                <time id="time">                        <label>Reservation time</label>                        <interval step="15">12:00-15:00</interval>
  • 10. 1 2 3
  • 11. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 12. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 13. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 14. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 15. HTTP 1 Richiesta pagina
  • 16. PROCESSO Richiesta della pagina 1/1 XHTML WWW Translator Javascript FML le Parser FMTree Evaluator Mail Con guration Database
  • 17. HTTP + DATI Invio dei dati 2
  • 18. PROCESSO Invio dei dati 1/1 XHTML WWW Translator Javascript FML le Parser FMTree Evaluator Mail Con guration Database
  • 20. Each time we create a fool–proof system the universe creates a be!er fool