SlideShare a Scribd company logo
1 of 19
XEO
         An open source web
        development framework

                      By Pedro Rio




www.xeoframework.org
Agenda
A little background


                             Consulting Firm – based in Portugal   2002 


    Enterprise Web Applications

     Enterprise means...
        Business Objects
     Business Rules                 Permissions
                                                              Our Own Platform
                       Calculation Rules

    Validation Rules          Selection, Filtering, Sorting
                             +

                 Interface
             Form Validation        Messages

2                                                                                11/8/2011
Agenda
Architecture overview

            RUNTIME ARCHITECTURE                  DEVELOPER ARCHITECTURE
    XEO CLIENT CONTROLLER
                                 XEO Modules
    LAYER
            XWC (XEO WEB
             COMPONENTS)


         XEO CORE SYSTEM
      XEO QL        Java API
                                                  . BUSINESS OBJECT DEFINITIONS
                                                  . JAVA FILES
                Permission Layer                  . XWC VIEWERS
                                                  . OTHERS (e.g. Lovs)




          Business Objects                            XEO Builder

                               XEO – DATA LAYER



3                                                                       11/8/2011
Agenda
Business Objects




    Business Object Definition
    Attributes
    Attribute Logic
          Required
          Valid
          Disabled
          Formula (etc...)
          Events
    Methods
    Events
    Permissions




4                                  11/8/2011
Agenda
And more?


     API             Query Language                       Permissions

    Create an instance of a Model
    boObject obj = boManagerBean.createObject(Context,“Book”);

    Set/Get Attribute Values
    obj.getAttribute(“title”).getValueString();
    obj.getAttribute(“edition”).setValueLong(2);

    Update/Delete                            Behavior
    obj.update();                            obj.getAttribute(“title”).isRequired()
    obj.destroy();
                           Transactional Support
                           Query and retrieve lists of results
                           (pages!)
5                                                                            11/8/2011
Agenda
And more?


      API            Query Language                  Permissions

           Select all instances of a Model
          “select Book”

                           Select a single book
                          “select Book where BOUI = ?”


                             Select with restrictions
    “select Book where title = „The Da Vinci Code‟
         and author.name = „Dan Brown‟”

    Select all Authors that edited a book
      “select Book.author”

6                                                             11/8/2011
Agenda
And more?


        API            Query Language                           Permissions
      Built-in Users, Groups and Profiles

      Instance-Level (OPL)                          Model-Level (Policies)
                Design Time                                      Runtime
                        owner (Represents a user/
                  +     group)                          Read Permission
                                                        Attribute “budget”   +
              OPL – Delete Permission (owner)
                                                                                 Managers
                                                                                  Group

    Only the user/group that‟s linked
    through the owner attribute, can delete
                                                         Projects Model
    the instance. Unless... Full Control
    (runtime)                                       You get a permission rule that
                                                    only users of group “Managers”
                                                    can read attribute “budget” in
                                                    instances of “Project”.
7                                                                                     11/8/2011
Agenda
Web Interface

    “JSF-like” Component-based approach

          Form
                          Tab                                         Backing
                                                                       Bean
                          Grid
                                             XEO Viewer
                                                                  Control Component
                                                                       Behavior


     Component Behavior          Renderer



                                                    XEO Runtime

            Integration!

                                                           + Ajax
      Model                      Component
     Definition                   Behavior

8                                                                                11/8/2011
Agenda
XEO Web Components




9                      11/8/2011
Agenda
XEO Web Components




     public class DemoBean extends XEOBaseBean {

     public DataListConnector getDataSource(){
         return new
            XEOObjectListConnector(
              boObjectList.list(getEboContext(), "select Ebo_Perf")
         );
     }

     }




10                                                                      11/8/2011
Agenda
XEO Web Components




     public class DemoBean extends XEOBaseBean {

     public DataListConnector getDataSource(){
         return new
            XEOObjectListConnector(
              boObjectList.list(getEboContext(), "select Ebo_Perf")
         );
     }

     }




11                                                                      11/8/2011
Agenda
XEO Web Components




12                     11/8/2011
Agenda
Use Cases


                  Practical Applications
                                    Public      Transportation
     Finance   Media & Telecom
                                 Institutions




13                                                        11/8/2011
Agenda
Hands-on!




            Demo




14                   11/8/2011
Agenda
Demo Model




             Speaker                    IndividualEvaluation
               Name
                                        Name
                                        Evaluation (List of Values)




                       TalkEvaluation
                       Name
                       Speaker
                       Date
                       Evaluations




15                                                                      11/8/2011
Agenda
Demo Model




                                                IndividualEvaluation
                                                Name
     Speaker                                    Date (Default Value = Today, Disabled)
                                                Evaluation (List of Values)
       Name




               TalkEvalExtended
               Name (Required, 5+ chars)
               Description
               Speaker
               Atendance (DefaultValue = 100)
               Date (Default Value = Today)
               Average
               Evaluations

               CalculateAverage()




16                                                                                         11/8/2011
Agenda
XEO Renderers




17                11/8/2011
Agenda
XEO Renderers




18                11/8/2011
Agenda
XEO Renderers




19                11/8/2011

More Related Content

What's hot

Understanding
Understanding Understanding
Understanding Arun Gupta
 
Connections Administration Toolkit - Product Presentation
Connections Administration Toolkit - Product PresentationConnections Administration Toolkit - Product Presentation
Connections Administration Toolkit - Product PresentationTIMETOACT GROUP
 
[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework[S lide] java_sig-spring-framework
[S lide] java_sig-spring-frameworkptlong96
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012Arun Gupta
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion developmentDataNext Solutions
 
Liferay hardening principles
Liferay hardening principlesLiferay hardening principles
Liferay hardening principlesAmbientia
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPTSummer Lu
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgArun Gupta
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-finalRohit Kelapure
 
PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012Arun Gupta
 
Java EE 7 and HTML5: Developing for the Cloud
Java EE 7 and HTML5: Developing for the CloudJava EE 7 and HTML5: Developing for the Cloud
Java EE 7 and HTML5: Developing for the CloudArun Gupta
 
Ejb3.1 for the starter
Ejb3.1 for the starterEjb3.1 for the starter
Ejb3.1 for the startershohancse
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Arun Gupta
 
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGArun Gupta
 
All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1Markus Eisele
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 

What's hot (20)

struts
strutsstruts
struts
 
Understanding
Understanding Understanding
Understanding
 
Unit iv
Unit ivUnit iv
Unit iv
 
Java beans
Java beansJava beans
Java beans
 
Connections Administration Toolkit - Product Presentation
Connections Administration Toolkit - Product PresentationConnections Administration Toolkit - Product Presentation
Connections Administration Toolkit - Product Presentation
 
[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012
 
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion development
 
Liferay hardening principles
Liferay hardening principlesLiferay hardening principles
Liferay hardening principles
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPT
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 
PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012
 
Java EE 7 and HTML5: Developing for the Cloud
Java EE 7 and HTML5: Developing for the CloudJava EE 7 and HTML5: Developing for the Cloud
Java EE 7 and HTML5: Developing for the Cloud
 
Ejb3.1 for the starter
Ejb3.1 for the starterEjb3.1 for the starter
Ejb3.1 for the starter
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
 
All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 

Similar to XEO: An open source web development framework

WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
Dojo CRUD Components
Dojo CRUD ComponentsDojo CRUD Components
Dojo CRUD ComponentsTom Mahieu
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and conceptsLuca Garulli
 
SharePoint 2010 Customization Poster
SharePoint 2010 Customization PosterSharePoint 2010 Customization Poster
SharePoint 2010 Customization Posterbrendonschwartz
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repositorynobby
 
Pure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextPure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextNoam Bunder
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Julie Lerman
 
Intro JBug Milano - September 2011
Intro JBug Milano - September 2011Intro JBug Milano - September 2011
Intro JBug Milano - September 2011JBug Italy
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersBrian Huff
 
SharePoint - Right Intro To Development
SharePoint - Right Intro To DevelopmentSharePoint - Right Intro To Development
SharePoint - Right Intro To DevelopmentMark Rackley
 
Nuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical OverviewNuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical OverviewNuxeo
 
Enyo Hackathon Presentation
Enyo Hackathon PresentationEnyo Hackathon Presentation
Enyo Hackathon PresentationBen Combee
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seamashishkulkarni
 
EBS and PDH, a comparision
EBS and PDH, a comparisionEBS and PDH, a comparision
EBS and PDH, a comparisionLarry Sherrod
 
Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008Stefane Fermigier
 
CommercialSystemsBahman.ppt
CommercialSystemsBahman.pptCommercialSystemsBahman.ppt
CommercialSystemsBahman.pptKalsoomTahir2
 
Spagic 3: OSGi Universal Middleware for an effective SOA solution
Spagic 3: OSGi Universal Middleware for an effective SOA solution Spagic 3: OSGi Universal Middleware for an effective SOA solution
Spagic 3: OSGi Universal Middleware for an effective SOA solution SpagoWorld
 

Similar to XEO: An open source web development framework (20)

WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
Dojo CRUD Components
Dojo CRUD ComponentsDojo CRUD Components
Dojo CRUD Components
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
SharePoint 2010 Customization Poster
SharePoint 2010 Customization PosterSharePoint 2010 Customization Poster
SharePoint 2010 Customization Poster
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
Pure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextPure Ejb Within An Agile Context
Pure Ejb Within An Agile Context
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)
 
Intro JBug Milano - September 2011
Intro JBug Milano - September 2011Intro JBug Milano - September 2011
Intro JBug Milano - September 2011
 
Intro jbug milano
Intro jbug milanoIntro jbug milano
Intro jbug milano
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio Developers
 
SharePoint - Right Intro To Development
SharePoint - Right Intro To DevelopmentSharePoint - Right Intro To Development
SharePoint - Right Intro To Development
 
Nuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical OverviewNuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical Overview
 
Enyo Hackathon Presentation
Enyo Hackathon PresentationEnyo Hackathon Presentation
Enyo Hackathon Presentation
 
Introduction To J Boss Seam
Introduction To J Boss SeamIntroduction To J Boss Seam
Introduction To J Boss Seam
 
EBS and PDH, a comparision
EBS and PDH, a comparisionEBS and PDH, a comparision
EBS and PDH, a comparision
 
Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008
 
Customizing Oracle EBS OA Framework
Customizing Oracle EBS OA FrameworkCustomizing Oracle EBS OA Framework
Customizing Oracle EBS OA Framework
 
Intershop bo
Intershop boIntershop bo
Intershop bo
 
CommercialSystemsBahman.ppt
CommercialSystemsBahman.pptCommercialSystemsBahman.ppt
CommercialSystemsBahman.ppt
 
Spagic 3: OSGi Universal Middleware for an effective SOA solution
Spagic 3: OSGi Universal Middleware for an effective SOA solution Spagic 3: OSGi Universal Middleware for an effective SOA solution
Spagic 3: OSGi Universal Middleware for an effective SOA solution
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

XEO: An open source web development framework

  • 1. XEO An open source web development framework By Pedro Rio www.xeoframework.org
  • 2. Agenda A little background Consulting Firm – based in Portugal 2002  Enterprise Web Applications Enterprise means... Business Objects Business Rules Permissions Our Own Platform Calculation Rules Validation Rules Selection, Filtering, Sorting + Interface Form Validation Messages 2 11/8/2011
  • 3. Agenda Architecture overview RUNTIME ARCHITECTURE DEVELOPER ARCHITECTURE XEO CLIENT CONTROLLER XEO Modules LAYER XWC (XEO WEB COMPONENTS) XEO CORE SYSTEM XEO QL Java API . BUSINESS OBJECT DEFINITIONS . JAVA FILES Permission Layer . XWC VIEWERS . OTHERS (e.g. Lovs) Business Objects XEO Builder XEO – DATA LAYER 3 11/8/2011
  • 4. Agenda Business Objects Business Object Definition Attributes Attribute Logic Required Valid Disabled Formula (etc...) Events Methods Events Permissions 4 11/8/2011
  • 5. Agenda And more? API Query Language Permissions Create an instance of a Model boObject obj = boManagerBean.createObject(Context,“Book”); Set/Get Attribute Values obj.getAttribute(“title”).getValueString(); obj.getAttribute(“edition”).setValueLong(2); Update/Delete Behavior obj.update(); obj.getAttribute(“title”).isRequired() obj.destroy(); Transactional Support Query and retrieve lists of results (pages!) 5 11/8/2011
  • 6. Agenda And more? API Query Language Permissions Select all instances of a Model “select Book” Select a single book “select Book where BOUI = ?” Select with restrictions “select Book where title = „The Da Vinci Code‟ and author.name = „Dan Brown‟” Select all Authors that edited a book “select Book.author” 6 11/8/2011
  • 7. Agenda And more? API Query Language Permissions Built-in Users, Groups and Profiles Instance-Level (OPL) Model-Level (Policies) Design Time Runtime owner (Represents a user/ + group) Read Permission Attribute “budget” + OPL – Delete Permission (owner) Managers Group Only the user/group that‟s linked through the owner attribute, can delete Projects Model the instance. Unless... Full Control (runtime) You get a permission rule that only users of group “Managers” can read attribute “budget” in instances of “Project”. 7 11/8/2011
  • 8. Agenda Web Interface “JSF-like” Component-based approach Form Tab Backing Bean Grid XEO Viewer Control Component Behavior Component Behavior Renderer XEO Runtime Integration! + Ajax Model Component Definition Behavior 8 11/8/2011
  • 10. Agenda XEO Web Components public class DemoBean extends XEOBaseBean { public DataListConnector getDataSource(){ return new XEOObjectListConnector( boObjectList.list(getEboContext(), "select Ebo_Perf") ); } } 10 11/8/2011
  • 11. Agenda XEO Web Components public class DemoBean extends XEOBaseBean { public DataListConnector getDataSource(){ return new XEOObjectListConnector( boObjectList.list(getEboContext(), "select Ebo_Perf") ); } } 11 11/8/2011
  • 13. Agenda Use Cases Practical Applications Public Transportation Finance Media & Telecom Institutions 13 11/8/2011
  • 14. Agenda Hands-on! Demo 14 11/8/2011
  • 15. Agenda Demo Model Speaker IndividualEvaluation Name Name Evaluation (List of Values) TalkEvaluation Name Speaker Date Evaluations 15 11/8/2011
  • 16. Agenda Demo Model IndividualEvaluation Name Speaker Date (Default Value = Today, Disabled) Evaluation (List of Values) Name TalkEvalExtended Name (Required, 5+ chars) Description Speaker Atendance (DefaultValue = 100) Date (Default Value = Today) Average Evaluations CalculateAverage() 16 11/8/2011