SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
WSO2 Presentation Layer
                 - Nuwan Bandara
What is the presentation layer ?
● The place where data becomes information

● Where all underneath complexities are given
  a meaning

● The place where a first impressions in built
What it means to be the presentation
layer of a middleware platform

● A lot of data

● A lot of data formats

● Plenty of apis in various formats
JSP & Servlets
● Is the common choice is java based
  platforms

● Provides a solid platform to build UIs

● Have a rich toolset
Carbon UI
● In combination provides the UI for the
  underlying services layer

● Modular

● Separates the concerns

● Plugable
Limitations of the current
presentation platform
● The pluggable UI components are in .jar
  archives

● Not flexible for change

● Have a strict convention and is limited to the
  management console UIs
Solution & Alternatives
● Use a light weight frontend

● No deployment hassle

● Simply vi in the source

● PHP ? Python ? JavaScript ?
Advantages of Javascript
● One language across the board

● Wide developer community adoption

● A rich data format

● Plenty of rich libraries for front end
  development
Javascript in the server
● No mismatches of data back and forth

● One language at the client and at the server

● Share libraries between the client and the
  server

● Any javascript developer can complete the
  entire job
● A runtime that process javascript at the
  server

● easy of application development deployment
  lifecycle

● A useful tool set perform basic server side
  functionalities

● An extendable platform
How its been built
● Based on Mozilla Rhino
● Deployed as same as an exploded .war file
Hello World in Jaggery
  /helloworld.jag

    <%
         print('Hello World');
    %>
Additional Helpers
●   Log
●   Require
●   <%= %>
●   get/post/put/del
●   Include
●   File
●   Database
●   etc
JSON
/person.json

{
    "person":{
               "name":"nuwan",
               "tg":"development"
             }
}
How JSON makes it all easy
/data.jag
<%
var person = {"name":"nuwan", "company":"wso2"};
print(person);
%>

/display.html
<script>
$.get('data.jag', function(data) {
  alert('The name is : ' + data.name);
});
</script>
Jaggery and APIs
● Content negociation
  ○ Can send the page or the data based on the requested content
       type


● Natively support JSON (who's writing XML based apis
  anymore ;) )

● For this reason these APIs are inherently mobile friendly

● No extra effort to write the API and then the application
Jaggery Editor
●   For now only support IntelliJ Idea

●   Full fledge web based IDE - Coming Soon with UES

●   Developer Studio Based IDE - Coming Soon
Jaggery Debugger
Questions ?


Answers are at - http://jaggeryjs.org/documentation.jag


                       :)

Weitere ähnliche Inhalte

Was ist angesagt?

Slightly Advanced Topics in Gutenberg Development
Slightly Advanced Topics in Gutenberg Development Slightly Advanced Topics in Gutenberg Development
Slightly Advanced Topics in Gutenberg Development Caldera Labs
 
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Mike Hale
 
Node js - Enterprise Class
Node js - Enterprise ClassNode js - Enterprise Class
Node js - Enterprise ClassGlenn Block
 
IoT and developer chances
IoT and developer chancesIoT and developer chances
IoT and developer chancesChau Thanh
 
Building your own static site Using Hugo
Building your own static site Using HugoBuilding your own static site Using Hugo
Building your own static site Using HugoRakuten Group, Inc.
 
Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8DrupalSib
 
Configure python and wsgi
Configure python and wsgiConfigure python and wsgi
Configure python and wsgiSitthykun LY
 
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...niallo
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkAlive Kuo
 
Javascript basics
Javascript basicsJavascript basics
Javascript basicsFalcon2018
 
Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)
Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)
Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)Valery Lourie
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's worldSudar Muthu
 
OTLY: A framework for realtime collaboration
OTLY: A framework for realtime collaborationOTLY: A framework for realtime collaboration
OTLY: A framework for realtime collaborationXWiki
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Bibby Chung
 
Going Offline with JS
Going Offline with JSGoing Offline with JS
Going Offline with JSbrendankowitz
 

Was ist angesagt? (20)

Slightly Advanced Topics in Gutenberg Development
Slightly Advanced Topics in Gutenberg Development Slightly Advanced Topics in Gutenberg Development
Slightly Advanced Topics in Gutenberg Development
 
003. ReactJS basic
003. ReactJS basic003. ReactJS basic
003. ReactJS basic
 
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
 
Node js - Enterprise Class
Node js - Enterprise ClassNode js - Enterprise Class
Node js - Enterprise Class
 
IoT and developer chances
IoT and developer chancesIoT and developer chances
IoT and developer chances
 
Building your own static site Using Hugo
Building your own static site Using HugoBuilding your own static site Using Hugo
Building your own static site Using Hugo
 
Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8Andrew Berezovsky - Drupal 8 How to Migr8
Andrew Berezovsky - Drupal 8 How to Migr8
 
Configure python and wsgi
Configure python and wsgiConfigure python and wsgi
Configure python and wsgi
 
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web framework
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
 
Node js first look - 2016
Node js first look - 2016Node js first look - 2016
Node js first look - 2016
 
Polymer Web Framework - Swecha Boot Camp
Polymer Web Framework - Swecha Boot CampPolymer Web Framework - Swecha Boot Camp
Polymer Web Framework - Swecha Boot Camp
 
Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)
Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)
Using PHP IDEs with Drupal (DrupalDevDays Szeged 2014)
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's world
 
OTLY: A framework for realtime collaboration
OTLY: A framework for realtime collaborationOTLY: A framework for realtime collaboration
OTLY: A framework for realtime collaboration
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319
 
Going Offline with JS
Going Offline with JSGoing Offline with JS
Going Offline with JS
 
Django ws
Django wsDjango ws
Django ws
 

Andere mochten auch

Andere mochten auch (12)

OSI 7 Layer model
OSI 7 Layer modelOSI 7 Layer model
OSI 7 Layer model
 
L13 Presentation Layer Design
L13 Presentation Layer DesignL13 Presentation Layer Design
L13 Presentation Layer Design
 
Magento Presentation Layer
Magento Presentation LayerMagento Presentation Layer
Magento Presentation Layer
 
Presentation Layer (Layer OSI)
Presentation Layer (Layer OSI)Presentation Layer (Layer OSI)
Presentation Layer (Layer OSI)
 
SEJARAH OSI LAYER & FUNGSI LAYER APLIKASI
SEJARAH OSI LAYER & FUNGSI LAYER APLIKASISEJARAH OSI LAYER & FUNGSI LAYER APLIKASI
SEJARAH OSI LAYER & FUNGSI LAYER APLIKASI
 
Model OSI Layer
Model OSI LayerModel OSI Layer
Model OSI Layer
 
Osi
OsiOsi
Osi
 
Standart Komunikasi Data
Standart Komunikasi DataStandart Komunikasi Data
Standart Komunikasi Data
 
Application Layer
Application LayerApplication Layer
Application Layer
 
7 osi layer
7 osi layer7 osi layer
7 osi layer
 
Lecture 6 -_presentation_layer
Lecture 6 -_presentation_layerLecture 6 -_presentation_layer
Lecture 6 -_presentation_layer
 
Application Layer
Application Layer Application Layer
Application Layer
 

Ähnlich wie WSO2 Presentation Layer

Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroEPAM
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Toolsbarciszewski
 
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...WSO2
 
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...Yenlo
 
HTML5 New Features and Resources
HTML5 New Features and ResourcesHTML5 New Features and Resources
HTML5 New Features and ResourcesRon Reiter
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloudwesley chun
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Per Henrik Lausten
 
solution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptxsolution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptxGoogleDeveloperStude22
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Runwesley chun
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJSJITENDRA KUMAR PATEL
 
The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management
The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management
The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management WSO2
 
Web Development with AngularJS, NodeJS and ExpressJS
Web Development with AngularJS, NodeJS and ExpressJSWeb Development with AngularJS, NodeJS and ExpressJS
Web Development with AngularJS, NodeJS and ExpressJSJoão Rocha da Silva
 
Meetup - Building by Composition - Samuel Jesus
Meetup - Building by Composition - Samuel JesusMeetup - Building by Composition - Samuel Jesus
Meetup - Building by Composition - Samuel JesusSamuel Jesus
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloudwesley chun
 

Ähnlich wie WSO2 Presentation Layer (20)

Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Tools
 
Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
 
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
 
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
Ballerina cloud native middleware as a programming language | Yenlo - WSO2 In...
 
NodeJS
NodeJSNodeJS
NodeJS
 
HTML5 New Features and Resources
HTML5 New Features and ResourcesHTML5 New Features and Resources
HTML5 New Features and Resources
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
solution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptxsolution Challenge design and flutter day.pptx
solution Challenge design and flutter day.pptx
 
Flour
FlourFlour
Flour
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
 
ApacheCon09: Avro
ApacheCon09: AvroApacheCon09: Avro
ApacheCon09: Avro
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management
The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management
The WSO2 Business Activity Monitor - Optimizing Enterprise Data Management
 
Web Development with AngularJS, NodeJS and ExpressJS
Web Development with AngularJS, NodeJS and ExpressJSWeb Development with AngularJS, NodeJS and ExpressJS
Web Development with AngularJS, NodeJS and ExpressJS
 
Meetup - Building by Composition - Samuel Jesus
Meetup - Building by Composition - Samuel JesusMeetup - Building by Composition - Samuel Jesus
Meetup - Building by Composition - Samuel Jesus
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 

Mehr von Nuwan Bandara

Modern Computing System & Beyond
Modern Computing System & BeyondModern Computing System & Beyond
Modern Computing System & BeyondNuwan Bandara
 
API Marketplaces - The Enterprise Version
API Marketplaces - The Enterprise VersionAPI Marketplaces - The Enterprise Version
API Marketplaces - The Enterprise VersionNuwan Bandara
 
Digital Transformation with WSO2 Middleware
Digital Transformation with WSO2 MiddlewareDigital Transformation with WSO2 Middleware
Digital Transformation with WSO2 MiddlewareNuwan Bandara
 
Architecting the Digital Enterprise
Architecting the Digital EnterpriseArchitecting the Digital Enterprise
Architecting the Digital EnterpriseNuwan Bandara
 
APIs as your digital connector
APIs as your digital connectorAPIs as your digital connector
APIs as your digital connectorNuwan Bandara
 
Monetizing on APIs with better API management and monitoring
Monetizing on APIs with better API management and monitoringMonetizing on APIs with better API management and monitoring
Monetizing on APIs with better API management and monitoringNuwan Bandara
 
Developing Enterprise Applications with the WSO2 Application Platform
Developing Enterprise Applications with the WSO2 Application PlatformDeveloping Enterprise Applications with the WSO2 Application Platform
Developing Enterprise Applications with the WSO2 Application PlatformNuwan Bandara
 
Jaggery Introductory Webinar
Jaggery Introductory WebinarJaggery Introductory Webinar
Jaggery Introductory WebinarNuwan Bandara
 
Users: SOA Last Mile - WSO2Con 2011
Users: SOA Last Mile - WSO2Con 2011Users: SOA Last Mile - WSO2Con 2011
Users: SOA Last Mile - WSO2Con 2011Nuwan Bandara
 
Rapid Web Application Development with the WSO2 Mashup Server
Rapid Web Application Development with the WSO2 Mashup ServerRapid Web Application Development with the WSO2 Mashup Server
Rapid Web Application Development with the WSO2 Mashup ServerNuwan Bandara
 
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Nuwan Bandara
 

Mehr von Nuwan Bandara (12)

Modern Computing System & Beyond
Modern Computing System & BeyondModern Computing System & Beyond
Modern Computing System & Beyond
 
API Marketplaces - The Enterprise Version
API Marketplaces - The Enterprise VersionAPI Marketplaces - The Enterprise Version
API Marketplaces - The Enterprise Version
 
Digital Transformation with WSO2 Middleware
Digital Transformation with WSO2 MiddlewareDigital Transformation with WSO2 Middleware
Digital Transformation with WSO2 Middleware
 
Architecting the Digital Enterprise
Architecting the Digital EnterpriseArchitecting the Digital Enterprise
Architecting the Digital Enterprise
 
APIs as your digital connector
APIs as your digital connectorAPIs as your digital connector
APIs as your digital connector
 
Monetizing on APIs with better API management and monitoring
Monetizing on APIs with better API management and monitoringMonetizing on APIs with better API management and monitoring
Monetizing on APIs with better API management and monitoring
 
Developing Enterprise Applications with the WSO2 Application Platform
Developing Enterprise Applications with the WSO2 Application PlatformDeveloping Enterprise Applications with the WSO2 Application Platform
Developing Enterprise Applications with the WSO2 Application Platform
 
Jaggery Introductory Webinar
Jaggery Introductory WebinarJaggery Introductory Webinar
Jaggery Introductory Webinar
 
The Cloud
The CloudThe Cloud
The Cloud
 
Users: SOA Last Mile - WSO2Con 2011
Users: SOA Last Mile - WSO2Con 2011Users: SOA Last Mile - WSO2Con 2011
Users: SOA Last Mile - WSO2Con 2011
 
Rapid Web Application Development with the WSO2 Mashup Server
Rapid Web Application Development with the WSO2 Mashup ServerRapid Web Application Development with the WSO2 Mashup Server
Rapid Web Application Development with the WSO2 Mashup Server
 
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
 

Kürzlich hochgeladen

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Kürzlich hochgeladen (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

WSO2 Presentation Layer

  • 1. WSO2 Presentation Layer - Nuwan Bandara
  • 2. What is the presentation layer ? ● The place where data becomes information ● Where all underneath complexities are given a meaning ● The place where a first impressions in built
  • 3. What it means to be the presentation layer of a middleware platform ● A lot of data ● A lot of data formats ● Plenty of apis in various formats
  • 4. JSP & Servlets ● Is the common choice is java based platforms ● Provides a solid platform to build UIs ● Have a rich toolset
  • 5. Carbon UI ● In combination provides the UI for the underlying services layer ● Modular ● Separates the concerns ● Plugable
  • 6. Limitations of the current presentation platform ● The pluggable UI components are in .jar archives ● Not flexible for change ● Have a strict convention and is limited to the management console UIs
  • 7. Solution & Alternatives ● Use a light weight frontend ● No deployment hassle ● Simply vi in the source ● PHP ? Python ? JavaScript ?
  • 8. Advantages of Javascript ● One language across the board ● Wide developer community adoption ● A rich data format ● Plenty of rich libraries for front end development
  • 9. Javascript in the server ● No mismatches of data back and forth ● One language at the client and at the server ● Share libraries between the client and the server ● Any javascript developer can complete the entire job
  • 10. ● A runtime that process javascript at the server ● easy of application development deployment lifecycle ● A useful tool set perform basic server side functionalities ● An extendable platform
  • 11. How its been built ● Based on Mozilla Rhino ● Deployed as same as an exploded .war file
  • 12. Hello World in Jaggery /helloworld.jag <% print('Hello World'); %>
  • 13. Additional Helpers ● Log ● Require ● <%= %> ● get/post/put/del ● Include ● File ● Database ● etc
  • 14. JSON /person.json { "person":{ "name":"nuwan", "tg":"development" } }
  • 15. How JSON makes it all easy /data.jag <% var person = {"name":"nuwan", "company":"wso2"}; print(person); %> /display.html <script> $.get('data.jag', function(data) { alert('The name is : ' + data.name); }); </script>
  • 16. Jaggery and APIs ● Content negociation ○ Can send the page or the data based on the requested content type ● Natively support JSON (who's writing XML based apis anymore ;) ) ● For this reason these APIs are inherently mobile friendly ● No extra effort to write the API and then the application
  • 17. Jaggery Editor ● For now only support IntelliJ Idea ● Full fledge web based IDE - Coming Soon with UES ● Developer Studio Based IDE - Coming Soon
  • 19. Questions ? Answers are at - http://jaggeryjs.org/documentation.jag :)